Variability in program design: the interaction of process with knowledge
Generate an AI Snapshot to get a quick, structured summary of this paper.
A concise AI-generated summary of the paper will appear here once you click Generate AI Snapshot.
TL;DR
A model of program design is proposed to explain program variability, and is experimentally supported; Variability is shown to be the result of different decisions made by programmers during three stages in the design process.
Abstract
A model of program design is proposed to explain program variability, and is experimentally supported. Variability is shown to be the result of different decisions made by programmers during three stages in the design process. In the first stage, a solution is created based on a particular design approach. In the second stage, actions in the solution are organized by features they share. The actions may then be merged together to define a more concise solution in program code, the third stage of design. Different programs will be created depending, on the approach taken to design the features selected to group actions in a solution, and the features used to merge actions to form program code. Each of the variants observed in the study was traced to the use of a specific piece of information by a programmer at one of the three stages of program design. Many different programs were created as the process of design interacted with the knowledge of the programmer.
