• DocumentCode
    1257502
  • Title

    A controlled experiment in maintenance: comparing design patterns to simpler solutions

  • Author

    Prechelt, Lutz ; Unger, Barbara ; Tichy, Walter F. ; Brossler, P. ; Votta, Lawrence G.

  • Author_Institution
    Fakultalt fur Informatik, Univ. Karlsruhe, Germany
  • Volume
    27
  • Issue
    12
  • fYear
    2001
  • fDate
    12/1/2001 12:00:00 AM
  • Firstpage
    1134
  • Lastpage
    1144
  • Abstract
    Software design patterns package proven solutions to recurring design problems in a form that simplifies reuse. We are seeking empirical evidence whether using design patterns is beneficial. In particular, one may prefer using a design pattern even if the actual design problem is simpler than that solved by the pattern, i.e., if not all of the functionality offered by the pattern is actually required. Our experiment investigates software maintenance scenarios that employ various design patterns and compares designs with patterns to simpler alternatives. The subjects were professional software engineers. In most of our nine maintenance tasks, we found positive effects from using a design pattern: either its inherent additional flexibility was achieved without requiring more maintenance time or maintenance time was reduced compared to the simpler alternative. In a few cases, we found negative effects: the alternative solution was less error-prone or required less maintenance time. Overall, we conclude that, unless there is a clear reason to prefer the simpler solution, it is probably wise to choose the flexibility provided by the design pattern because unexpected new requirements often appear. We identify several questions for future empirical research
  • Keywords
    object-oriented programming; professional aspects; software maintenance; software reusability; Decorator pattern; controlled experiment; design patterns; design problem; maintenance tasks; new requirements; professional software engineers; proven solutions; recurring design problems; reuse; software design patterns; software maintenance scenarios; Books; Computer Society; Delay effects; Guidelines; Packaging; Runtime; Software maintenance; Solids; Terminology; Testing;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.988711
  • Filename
    988711