Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers
Software engineering metrics and models
Software engineering metrics and models
Designing families of data types using exemplars
ACM Transactions on Programming Languages and Systems (TOPLAS)
Statistical modelling in GLIM
Copying and Swapping: Influences on the Design of Reusable Software Components
IEEE Transactions on Software Engineering
An empirical study of the object-oriented paradigm and software reuse
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Advances in computers
Software engineering (3rd ed.): a practitioner's approach
Software engineering (3rd ed.): a practitioner's approach
Software component design-for-reuse: a language-independent discipline applied to ADA
Software component design-for-reuse: a language-independent discipline applied to ADA
Software engineering (4th ed.)
Software engineering (4th ed.)
Component-based software using RESOLVE
ACM SIGSOFT Software Engineering Notes
Studying programmer behavior experimentally: the problems of proper methodology
Communications of the ACM
Software Metrics: A Rigorous Approach
Software Metrics: A Rigorous Approach
Software Component with ADA
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Defining and Validating Measures for Object-Based High-Level Design
IEEE Transactions on Software Engineering
Experience report: using RESOLVE/C++ for commercial software
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Transitioning a model-based software engineering architectural style to Ada 95
Proceedings of the conference on TRI-Ada '95: Ada's role in global markets: solutions for a changing complex world
A Preliminary Software Engineering Theory as Investigated by Published Experiments
Empirical Software Engineering
Techniques for Modeling Workflows and Their Support of Reuse
Business Process Management, Models, Techniques, and Empirical Studies
A Case Study Approach to Teaching Component Based Software Engineering
CSEET '00 Proceedings of the 13th Conference on Software Engineering Education & Training
Reengineering towards components using "Reconn-exion"
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Complementarities Between Organizational IT Architecture and Governance Structure
Information Systems Research
FIS'2009 Proceedings of the Second Future internet conference on Future internet
Hi-index | 0.01 |
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.