• DocumentCode
    752647
  • Title

    The effects of layering and encapsulation on software development cost and quality

  • Author

    Zweben, Stuart H. ; Edwards, Stephen H. ; Weide, Bruce W. ; Hollingsworth, Joseph E.

  • Author_Institution
    Dept. of Comput. & Inf. Sci., Ohio State Univ., Columbus, OH, USA
  • Volume
    21
  • Issue
    3
  • fYear
    1995
  • fDate
    3/1/1995 12:00:00 AM
  • Firstpage
    200
  • Lastpage
    208
  • Abstract
    Software engineers often espouse the importance of using abstraction and encapsulation in developing software components. They advocate the “layering” of new components on top of existing components, using only information about the functionality and interfaces provided by the existing components. This layering approach is in contrast to a “direct implementation” of new components, utilizing unencapsulated access to the representation data structures and code present in the existing components. By increasing the reuse of existing components, the layering approach intuitively should result in reduced development costs, and in increased quality for the new components. However, there is no empirical evidence that indicates whether the layering approach improves developer productivity or component quality. We discuss three controlled experiments designed to gather such empirical evidence. The results support the contention that layering significantly reduces the effort required to build new components. Furthermore, the quality of the components, in terms of the number of defects introduced during their development, is at least as good using the layered approach. Experiments such as these illustrate a number of interesting and important issues in statistical analysis. We discuss these issues because, in our experience, they are not well known to software engineers
  • Keywords
    data encapsulation; data structures; object-oriented programming; software cost estimation; software quality; software reusability; abstract data types; abstraction; component quality; controlled experiments; developer productivity; empirical evidence; encapsulation; layering approach; software development cost; software engineers; software quality; software reuse; statistical analysis; Computer languages; Computerized monitoring; Costs; Data structures; Encapsulation; Productivity; Programming; Software quality; Software systems; Statistical analysis;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.372147
  • Filename
    372147