Keynote address - data abstraction and hierarchy
OOPSLA '87 Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum)
Object-oriented metrics that predict maintainability
Journal of Systems and Software - Special issue on object-oriented software
Object-oriented software metrics: a practical guide
Object-oriented software metrics: a practical guide
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
Experimentation in software engineering: an introduction
Experimentation in software engineering: an introduction
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
Object-Oriented Design Heuristics
Object-Oriented Design Heuristics
Data Envelopment Analysis: Theory, Methodology and Application
Data Envelopment Analysis: Theory, Methodology and Application
Assessing and Understanding Efficiency and Success of SoftwareProduction
Empirical Software Engineering
Identifying High Performance ERP Projects
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
Search-Based Software Maintenance
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
Proceedings of the 8th annual conference on Genetic and evolutionary computation
How to design a good API and why it matters
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Data Envelopment Analysis: A Comprehensive Text with Models, Applications, References and DEA-Solver Software
Effective Java (2nd Edition) (The Java Series)
Effective Java (2nd Edition) (The Java Series)
Practical API Design: Confessions of a Java Framework Architect
Practical API Design: Confessions of a Java Framework Architect
Using concept mapping for maintainability assessments
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Assessing software product maintainability based on class-level structural measures
PROFES'06 Proceedings of the 7th international conference on Product-Focused Software Process Improvement
Hi-index | 0.00 |
Library software is generally believed to be well-structured and follows certain design guidelines due to the need of continuous evolution and stability of the respective APIs. We perform an empirical study to investigate whether the design of open-source library software is actually superior to that of application software. By analyzing certain design principles and heuristics that are considered important for API design, we extract a set of software metrics that are expected to reflect the improved nature of libraries. An initial comparison by conventional statistical analysis confirms the overall belief that products of different software size scale should not be compared by simply examining metric values in isolation. In this paper, we propose the use of Data Envelopment Analysis (DEA), borrowed from production economics, as a means of measuring and benchmarking the quality of different object-oriented software designs captured by software metrics and apply this approach to the comparison of library and application software. The advantages offered by DEA and the differences between the application of DEA in an economic and a technological context are discussed. Results of the approach are presented for 44 open-source projects, equally divided between libraries and applications.