THE EFFECTS OF LAYERING AND ENCAPSULATION ON SOFTWARE-DEVELOPMENT COST AND QUALITY

Citation
Sh. Zweben et al., THE EFFECTS OF LAYERING AND ENCAPSULATION ON SOFTWARE-DEVELOPMENT COST AND QUALITY, IEEE transactions on software engineering, 21(3), 1995, pp. 200-208
Citations number
21
Categorie Soggetti
Computer Sciences","Engineering, Eletrical & Electronic","Computer Science Software Graphycs Programming
ISSN journal
00985589
Volume
21
Issue
3
Year of publication
1995
Pages
200 - 208
Database
ISI
SICI code
0098-5589(1995)21:3<200:TEOLAE>2.0.ZU;2-1
Abstract
Software engineers often espouse the importance of using abstraction a nd encapsulation in developing software components, They advocate the ''layering'' of new components on top of existing components, using on ly information about the functionality and interfaces provided by the existing components, This layering approach is in contrast to a ''dire ct implementation'' of new components, utilizing unencapsulated access to the representation data structures and code present in the existin g components, By increasing the reuse of existing components, the laye ring 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 improv es developer productivity or component quality. We discuss three contr olled experiments designed to gather such empirical evidence, The resu lts support the contention that layering significantly reduces the eff ort 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. Experimen ts such as these illustrate a number of interesting and important issu es in statistical analysis, We discuss these issues because, in our ex perience, they are not well-known to software engineers.