• DocumentCode
    1488004
  • Title

    Protected variation: the importance of being closed

  • Author

    Larman, Craig

  • Volume
    18
  • Issue
    3
  • fYear
    2001
  • fDate
    5/1/2001 12:00:00 AM
  • Firstpage
    89
  • Lastpage
    91
  • Abstract
    The Pattern Almanac 2000 (Addison Wesley, 2000) lists around 500 software-related patterns, and given this reading list, the curious developer has no time to program! Of course, there are underlying, simplifying themes and principles to this pattern plethora that developers have long considered and discussed. One example is L. Constantine´s (1974) coupling and cohesion guidelines. Yet, these principles must continually resurface to help each new generation of developers and architects cut through the apparent disparity in myriad design ideas and help them see the underlying and unifying forces. One such principle, which B. Meyer (1988) describes is the Open-Closed Principle (OCP): modules should be both open (for extension and adaptation) and closed (to avoid modification that affect clients). OCP is essentially equivalent to the Protected Variation (PV) pattern: identify points of predicted variation and create a stable interface around them. OCP and PV formalize and generalize a common and fundamental design principle described in many guises. OCP and PV are two expressions of the same principle: protection against change to the existing code and design at variation and evolution points, with minor differences in emphasis
  • Keywords
    object-oriented programming; software quality; software reusability; OCP; Open-Closed Principle; Pattern Almanac 2000; cohesion guidelines; fundamental design principle; predicted variation; protected variation; software-related patterns; stable interface; unifying forces; Data encapsulation; Engines; Gettering; Java; Logic design; Neural networks; Protection; Runtime; Shape; Virtual machining;
  • fLanguage
    English
  • Journal_Title
    Software, IEEE
  • Publisher
    ieee
  • ISSN
    0740-7459
  • Type

    jour

  • DOI
    10.1109/52.922731
  • Filename
    922731