Program evolution: processes of software change
Program evolution: processes of software change
An empirical approach to the study of errors in large software under maintenance
The Institute of Electrical and Electronics Engineers, Inc on Conference on software maintenance--1985
Problems with automatic restructurers
ACM SIGPLAN Notices
Object-oriented analysis and design with applications (2nd ed.)
Object-oriented analysis and design with applications (2nd ed.)
Journal of Systems and Software - Special issue of the best papers from the Oregon Workshop on Software Metrics, 1993
The mythical man-month (anniversary ed.)
The mythical man-month (anniversary ed.)
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Object-Oriented Design Heuristics
Object-Oriented Design Heuristics
Design Patterns CD: Elements of Reusable Object-Oriented Software, (CD-ROM)
Design Patterns CD: Elements of Reusable Object-Oriented Software, (CD-ROM)
Software Evolution and Software Evolution Processes
Annals of Software Engineering
Evolving Object-Oriented Designs with Refactorings
Automated Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Metrics and Laws of Software Evolution - The Nineties View
METRICS '97 Proceedings of the 4th International Symposium on Software Metrics
Evolution in Open Source Software: A Case Study
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Software Design
Architecture Analysis Tools to Support Evolution of Large Industrial Systems
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
A stochastic approach to automated design improvement
PPPJ '03 Proceedings of the 2nd international conference on Principles and practice of programming in Java
Refactoring to Patterns
Categorization of Common Coupling and Its Application to the Maintainability of the Linux Kernel
IEEE Transactions on Software Engineering
Quantifying the Quality of Object-Oriented Design: The Factor-Strategy Model
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
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
Using dependency models to manage complex software architecture
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Search-Based Software Maintenance
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
On the Complexity of Design in Imaging Software
ICECCS '06 Proceedings of the 11th IEEE International Conference on Engineering of Complex Computer Systems
IEEE Transactions on Software Engineering
Software evolution in open source projects—a large-scale investigation
Journal of Software Maintenance and Evolution: Research and Practice
Search-based refactoring for software maintenance
Journal of Systems and Software
Hi-index | 0.00 |
The ability of a software system to survive is not only dependent on a good architectural design, but also the effective management of architectural changes as the system evolves over time. With the emergence of incremental and evolutionary development approaches, this evolution is no longer restricted to the maintenance phase of development, but now manifests itself during system elaboration and construction. Structural complexity is often inadvertently introduced as the number of interdependencies between parts of the system grows and design goals are violated. Such increasing complexity may paradoxically impede its survivability. Software architects must, therefore, learn to track, manage, and mitigate software complexity since, left unchecked, it can lead to systems that are difficult to maintain and evolve. There are two key aspects of software systems that must be monitored in order to effectively manage the inherent complexity that is systematically introduced in evolving systems: the stability of intermediate forms must be preserved, and structural complexity must be monitored to prevent incidental (excessive) complexity from being introduced. While these key aspects of software architecture are often monitored independently in evolving systems, an integrative metric-based approach would provide a more comprehensive means of assessing the impact that architectural changes have on overall system quality. In this study, an integrative, multidimensional approach was used to examine the evolutionary changes that occurred in the architectural stability and structural complexity over 21 releases of Hibernate, a large-scale open source software system.