Teaching Java framework design using classic problems

  • Authors:
  • H. Conrad Cunningham;Yi Liu;Cuihua Zhang

  • Affiliations:
  • University of Mississippi, University, MS;South Dakota State University, Brookings, SD;Northwest Vista College, San Antonio, TX

  • Venue:
  • Journal of Computing Sciences in Colleges
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

In a 1976 article [4] Parnas observes, "Variations in application demands, variations in hardware configurations, and the ever-present opportunity to improve a program means that software will inevitably exist in many versions." He argues that the design of a program should be approached as the design of a family of related programs. He defines a program family as a set of programs "whose common properties are so extensive that it is advantageous to study the common properties of the programs before analyzing individual members." If programmers can identify and exploit these "common aspects and predicted variabilities" [6], the resulting software can be constructed to reuse code for the common parts and to enable convenient adaptation of the 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.