Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Transitioning legacy assets to a product line architecture
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Software technology maturation
ICSE '85 Proceedings of the 8th international conference on Software engineering
Software maintenance and evolution: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Software architecture: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Design and use of software architectures: adopting and evolving a product-line approach
Design and use of software architectures: adopting and evolving a product-line approach
Design Rules: The Power of Modularity Volume 1
Design Rules: The Power of Modularity Volume 1
Experiences in assessing product family software architecture for evolution
Proceedings of the 24th International Conference on Software Engineering
FORM: A feature-oriented reuse method with domain-specific reference architectures
Annals of Software Engineering
Metrics to Assess the Likelihood of Project Success Basedon Architecture Reviews
Empirical Software Engineering
Design erosion: problems and causes
Journal of Systems and Software
Using the Options Analysis for Reengineering (OAR) Method for Mining Components for a Product Line
SPLC 2 Proceedings of the Second International Conference on Software Product Lines
Object-Oriented Architectural Evolution
Proceedings of the Workshop on Object-Oriented Technology
Architectural Evolution of Legacy Product Families
PFE '01 Revised Papers from the 4th International Workshop on Software Product-Family Engineering
MAP - Mining Architectures for Product Line Evaluations
WICSA '01 Proceedings of the Working IEEE/IFIP Conference on Software Architecture
How well can we predict changes at architecture design time?
Journal of Systems and Software
Architecture-based specification-time software evolution
Architecture-based specification-time software evolution
A Role-Based Metamodeling Approach to Specifying Design Patterns
COMPSAC '03 Proceedings of the 27th Annual International Conference on Computer Software and Applications
Architecture Paradigms and Their Influences and Impacts on Component-Based Software Systems
HICSS '04 Proceedings of the Proceedings of the 37th Annual Hawaii International Conference on System Sciences (HICSS'04) - Track 9 - Volume 9
Autonomous Adaptation to Dynamic Availability Using a Service-Oriented Component Model
Proceedings of the 26th International Conference on Software Engineering
Introducing the puLSE approach to an embedded system population at testo AG
Proceedings of the 27th international conference on Software engineering
Evaluating Architectural Stability Using a Metric-Based Approach
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
Quality-Driven Software Architecture Model Transformation
WICSA '05 Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture
Software Evolution and Feedback: Theory and Practice
Software Evolution and Feedback: Theory and Practice
Software systems in-house integration: Architecture, process practices, and strategy selection
Information and Software Technology
Quality Attributes for Service-Oriented Architectures
SDSOA '07 Proceedings of the International Workshop on Systems Development in SOA Environments
An Evolution Model for Software Modularity Assessment
WoSQ '07 Proceedings of the 5th International Workshop on Software Quality
Software Evolution
A value-based approach for documenting design decisions rationale: a replicated experiment
Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge
Symbiosis and Software Evolvability
IT Professional
Evaluating evolvability of computer based systems architectures - an ontological approach
ECBS'97 Proceedings of the 1997 international conference on Engineering of computer-based systems
Building up and reasoning about architectural knowledge
QoSA'06 Proceedings of the Second international conference on Quality of Software Architectures
Predictability and evolution in resilient systems
SERENE'11 Proceedings of the Third international conference on Software engineering for resilient systems
Rapid prototyping of domain-specific architecture languages
Proceedings of the 15th ACM SIGSOFT symposium on Component Based Software Engineering
Software architecture evolution through evolvability analysis
Journal of Systems and Software
Graph-based implicit knowledge discovery from architecture change logs
Proceedings of the WICSA/ECSA 2012 Companion Volume
International Journal of Human Capital and Information Technology Professionals
Science of Computer Programming
The state of the art and future perspectives in systems of systems software architectures
Proceedings of the First International Workshop on Software Engineering for Systems-of-Systems
Hi-index | 0.00 |
Context: Software evolvability describes a software system's ability to easily accommodate future changes. It is a fundamental characteristic for making strategic decisions, and increasing economic value of software. For long-lived systems, there is a need to address evolvability explicitly during the entire software lifecycle in order to prolong the productive lifetime of software systems. For this reason, many research studies have been proposed in this area both by researchers and industry practitioners. These studies comprise a spectrum of particular techniques and practices, covering various activities in software lifecycle. However, no systematic review has been conducted previously to provide an extensive overview of software architecture evolvability research. Objective: In this work, we present such a systematic review of architecting for software evolvability. The objective of this review is to obtain an overview of the existing approaches in analyzing and improving software evolvability at architectural level, and investigate impacts on research and practice. Method: The identification of the primary studies in this review was based on a pre-defined search strategy and a multi-step selection process. Results: Based on research topics in these studies, we have identified five main categories of themes: (i) techniques supporting quality consideration during software architecture design, (ii) architectural quality evaluation, (iii) economic valuation, (iv) architectural knowledge management, and (v) modeling techniques. A comprehensive overview of these categories and related studies is presented. Conclusion: The findings of this review also reveal suggestions for further research and practice, such as (i) it is necessary to establish a theoretical foundation for software evolution research due to the fact that the expertise in this area is still built on the basis of case studies instead of generalized knowledge; (ii) it is necessary to combine appropriate techniques to address the multifaceted perspectives of software evolvability due to the fact that each technique has its specific focus and context for which it is appropriate in the entire software lifecycle.