• DocumentCode
    2035816
  • Title

    OO design patterns, design structure, and program changes: an industrial case study

  • Author

    Bieman, James M. ; Jain, Dolly ; Yang, Helen J.

  • Author_Institution
    Dept. of Comput. Sci., Colorado State Univ., Fort Collins, CO, USA
  • fYear
    2001
  • fDate
    2001
  • Firstpage
    580
  • Lastpage
    589
  • Abstract
    A primary expected benefit of object-oriented (OO) methods is the creation of software systems that are easier to adapt and maintain. OO design patterns are especially geared to improve adaptability, since patterns generally increase the complexity of an initial design in order to ease future enhancements. For design patterns to really provide benefit, they must reduce the cost of future adaptation. The evidence of improvements in adaptability through the use of design patterns and other design structures consists primarily of intuitive arguments and examples. There is little empirical evidence to support claims of improved flexibility of these preferred structures. In this case study, we analyze 39 versions of an evolving industrial OO software system to see if there is a relationship between patterns, other design attributes, and the number of changes. We found a strong relationship between class size and the number of changes-larger classes were changed more frequently. We also found two relationships that we did not expect: (1) classes that participate in design patterns are not less change prone-these pattern classes are among the most change prone in the system, and (2) classes that are reused the most through inheritance tend to be more change prone. These unexpected results hold up after accounting for class size, which had the strongest relationship with changes
  • Keywords
    inheritance; object-oriented methods; object-oriented programming; software maintenance; adaptability; class size; design structure; inheritance; object-oriented design patterns; program changes; software maintenance; Books; Computer aided software engineering; Computer industry; Computer science; Costs; Documentation; Pattern analysis; Programming profession; Software design; Software maintenance;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance, 2001. Proceedings. IEEE International Conference on
  • Conference_Location
    Florence
  • ISSN
    1063-6773
  • Print_ISBN
    0-7695-1189-9
  • Type

    conf

  • DOI
    10.1109/ICSM.2001.972775
  • Filename
    972775