Teaching Java framework design using classic problems

H. Conrad Cunningham, Yi Liu, Cuihua Zhang · Journal of computing sciences in colleges · 2006

In a 1976 article [4] Parnas observes, Variations in application demands, variations in hardware configurations, and ever-present opportunity to improve a program means that software will inevitably exist in many versions. He argues that design of a program should be approached as design of a family of related programs. He defines a program family as a set of programs whose properties are so extensive that it is advantageous to study properties of programs before analyzing individual members. If programmers can identify and exploit these common aspects and predicted variabilities [6], resulting software can be constructed to reuse for parts and to enable convenient adaptation of variable parts for specific applications. A quarter-century after his original article, Parnas notes that there is growing academic interest and some evidence of real industrial success in applying this idea, yet the majority of industrial programmers seem to ignore it in their rush to produce code [5]. If software families are to become pervasive, students need to learn to design and construct them effectively.

Read the paper · More papers on PaperTik