Program evolution: processes of software change
Program evolution: processes of software change
Object-oriented programming: an objective sense of style
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Keynote address - data abstraction and hierarchy
OOPSLA '87 Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Property-Based Software Engineering Measurement
IEEE Transactions on Software Engineering
Large-scale C++ software design
Large-scale C++ software design
A Validation of Object-Oriented Design Metrics as Quality Indicators
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
AntiPatterns: refactoring software, architectures, and projects in crisis
AntiPatterns: refactoring software, architectures, and projects in crisis
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Exploring the relationship between design measures and software quality in object-oriented systems
Journal of Systems and Software
On the criteria to be used in decomposing systems into modules
Communications of the ACM
The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics
IEEE Transactions on Software Engineering
Object-Oriented Design Heuristics
Object-Oriented Design Heuristics
Object-Oriented Software Construction
Object-Oriented Software Construction
Principles of Concurrent Programming
Principles of Concurrent Programming
Computer
Metrics and Laws of Software Evolution - The Nineties View
METRICS '97 Proceedings of the 4th International Symposium on Software Metrics
Automatic Detection of Design Problems in Object-Oriented Reengineering
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
Evolution in Open Source Software: A Case Study
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Identifying Refactoring Opportunities Using Logic Meta Programming
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
A Metric-Based Approach to Enhance Design Quality through Meta-pattern Transformations
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Detecting Design Flaws via Metrics in Object-Oriented Systems
TOOLS '01 Proceedings of the 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS39)
Predicting Maintainability with Object-Oriented Metrics - An Empirical Comparison
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
Using History Information to Improve Design Flaws Detection
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
Understanding Class Evolution in Object-Oriented Software
IWPC '04 Proceedings of the 12th IEEE International Workshop on Program Comprehension
Evolution Spectrographs: Visualizing Punctuated Change in Software Evolution
IWPSE '04 Proceedings of the Principles of Software Evolution, 7th International Workshop
Efficient Relational Calculation for Software Analysis
IEEE Transactions on Software Engineering
Modularity and the evolution of software evolvability
Modularity and the evolution of software evolvability
Product Metrics for Automatic Identification of "Bad Smell" Design Problems in Java Source-Code
METRICS '05 Proceedings of the 11th IEEE International Software Metrics Symposium
Automatic Generation of Detection Algorithms for Design Defects
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
On the usage and usefulness of OO design principles
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Moving architectural description from under the technology lamppost
Information and Software Technology
Classics in software engineering
An empirical study of cycles among classes in Java
Empirical Software Engineering
Studying the evolution of the Eclipse Java editor
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
CCVisu: automatic visual software decomposition
Companion of the 30th international conference on Software engineering
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Some issues in the 'archaeology' of software evolution
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Multi-criteria detection of bad smells in code with UTA method
XP'05 Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering
Hi-index | 0.00 |
This paper proposes to use a historical perspective on generic laws, principles, and guidelines, like Lehman's software evolution laws and Martin's design principles, in order to achieve a multi-faceted process and structural assessment of a system's architectural evolution. We present a simple structural model with associated historical metrics and visualizations that could form part of an architect's dashboard. We perform such an assessment for the Eclipse SDK, as a case study of a large, complex, and long-lived system for which sustained effective architectural evolution is paramount. The twofold aim of checking generic principles on a well-know system is, on the one hand, to see whether there are certain lessons that could be learned for best practice of architectural evolution, and on the other hand to get more insights about the applicability of such principles. We find that while the Eclipse SDK does follow several of the laws and principles, there are some deviations, and we discuss areas of architectural improvement and limitations of the assessment approach.