The blackboard model of problem solving
AI Magazine
A framework for information systems architecture
IBM Systems Journal
A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
Future Generation Computer Systems - Special issue: high performance computing and networking (HPCN)
Specification and Analysis of System Architecture Using Rapide
IEEE Transactions on Software Engineering - Special issue on software architecture
Reverse engineering to the architectural level
Proceedings of the 17th international conference on Software engineering
Software architecture recovery and restructuring through clustering techniques
ISAW '98 Proceedings of the third international workshop on Software architecture
Architecture-based runtime software evolution
Proceedings of the 20th international conference on Software engineering
A language and environment for architecture-based software development and evolution
Proceedings of the 21st international conference on Software engineering
Linux as a case study: its extracted software architecture
Proceedings of the 21st international conference on Software engineering
Recovering software architecture from the names of source files
Journal of Software Maintenance: Research and Practice
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
Taming architectural evolution
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Evaluating software architectures by coloured petri nets
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Towards pattern-based design recovery
Proceedings of the 24th International Conference on Software Engineering
Model-based adaptation for self-healing systems
WOSS '02 Proceedings of the first workshop on Self-healing systems
Self-organising software architectures for distributed systems
WOSS '02 Proceedings of the first workshop on Self-healing systems
Playing Detective: Reconstructing Software Architecture from Available Evidence
Automated Software Engineering
Design erosion: problems and causes
Journal of Systems and Software
Architectural Mismatch: Why Reuse Is So Hard
IEEE Software
Architectural Mismatch: Why Reuse Is So Hard
IEEE Software
The 4+1 View Model of Architecture
IEEE Software
Scenario-Based Analysis of Software Architecture
IEEE Software
Autonomy and Software Technology on NASA's Deep Space One
IEEE Intelligent Systems
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
A survey on software architecture analysis methods
IEEE Transactions on Software Engineering
Laws of Software Evolution Revisited
EWSPT '96 Proceedings of the 5th European Workshop on Software Process Technology
A Software Architecture Evaluation Model
Proceedings of the Second International ESPRIT ARES Workshop on Development and Evolution of Software Architectures for Product Families
Forward and reverse repair of software architecture
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Acme: an architecture description interchange language
CASCON '97 Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
The Space Station Operations Control Software: A Case Study in Architecture Maintenance
HICSS '01 Proceedings of the 34th Annual Hawaii International Conference on System Sciences ( HICSS-34)-Volume 9 - Volume 9
xADL: Enabling Architecture-Centric Tool Integration with XML
HICSS '01 Proceedings of the 34th Annual Hawaii International Conference on System Sciences ( HICSS-34)-Volume 9 - Volume 9
Avoiding Architectural Degeneration: An Evaluation Process for Software Architecture
METRICS '02 Proceedings of the 8th International Symposium on Software Metrics
A Comparison of four Reverse Engineering Tools
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Pattern-Supported Architecture Recovery
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
A Survey of Architecture Description Languages
IWSSD '96 Proceedings of the 8th International Workshop on Software Specification and Design
Software Rejuvenation: Analysis, Module and Applications
FTCS '95 Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
Does the Code Match the Design? A Process for Architecture Evaluation
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Reconciling Software Requirements and Architectures: The CBSP Approach
RE '01 Proceedings of the Fifth IEEE International Symposium on Requirements Engineering
Software Architecture Recovery based on Pattern Matching
ICSM '03 Proceedings of the International Conference on Software Maintenance
Lightweight Prevention of Architectural Erosion
IWPSE '03 Proceedings of the 6th International Workshop on Principles of Software Evolution
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
The Weighted Combined Algorithm: A Linkage Algorithm for Software Clustering
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
Support for Evolving Software Architectures in the ArchWare ADL
WICSA '04 Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture
Symphony: View-Driven Software Architecture Reconstruction
WICSA '04 Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture
Mae---a system model and environment for managing architectural evolution
ACM Transactions on Software Engineering and Methodology (TOSEM)
Architectural Software Configuration Management in Molhado
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
A Comparative Analysis of Architecture Frameworks
APSEC '04 Proceedings of the 11th Asia-Pacific Software Engineering Conference
Information-Theoretic Software Clustering
IEEE Transactions on Software Engineering
Architecture Decisions: Demystifying Architecture
IEEE Software
A comprehensive approach for the development of modular software architecture description languages
ACM Transactions on Software Engineering and Methodology (TOSEM)
Journal of Software Maintenance and Evolution: Research and Practice
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
ArchEvol: versioning architectural-implementation relationships
Proceedings of the 12th international workshop on Software configuration management
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
Runtime recovery and manipulation of software architecture of component-based systems
Automated Software Engineering
The Golden Age of Software Architecture
IEEE Software
Evaluating software refactoring tool support
ASWEC '06 Proceedings of the Australian Software Engineering Conference
Software Architecture as a Set of Architectural Design Decisions
WICSA '05 Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture
A Case Study in Incremental Architecture-Based Re-engineering of a Legacy Application
WICSA '05 Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
A Method for Detecting and Measuring Architectural Layering Violations in Source Code
APSEC '06 Proceedings of the XIII Asia Pacific Software Engineering Conference
Towards A Process-Oriented Software Architecture Reconstruction Taxonomy
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
High-impact Refactoring Based on Architecture Violations
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
Self-Managed Systems: an Architectural Challenge
FOSE '07 2007 Future of Software Engineering
A Comparison of Static Architecture Compliance Checking Approaches
WICSA '07 Proceedings of the Sixth Working IEEE/IFIP Conference on Software Architecture
Domains of concern in software architectures and architecture description languages
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
How Software Designs Decay: A Pilot Study of Pattern Evolution
ESEM '07 Proceedings of the First International Symposium on Empirical Software Engineering and Measurement
Documenting after the fact: Recovering architectural design decisions
Journal of Systems and Software
Automatic modularity conformance checking
Proceedings of the 30th international conference on Software engineering
Runtime software adaptation: framework, approaches, and styles
Companion of the 30th international conference on Software engineering
An industrial case study of architecture conformance
Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement
Using Patterns to Capture Architectural Decisions
IEEE Software
Query Technologies and Applications for Program Comprehension (QTAPC 2008)
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Static extraction and conformance checking of the runtime architecture of object-oriented systems
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Proceedings of the 15th workshop on Early aspects
Self-adaptive software: Landscape and research challenges
ACM Transactions on Autonomous and Adaptive Systems (TAAS)
A dependency constraint language to manage object-oriented software architectures
Software—Practice & Experience
Architectural Mismatch: Why Reuse Is Still So Hard
IEEE Software
Software Architecture Reconstruction: A Process-Oriented Taxonomy
IEEE Transactions on Software Engineering
Combating architectural degeneration: a survey
Information and Software Technology
ArchC#: a new architecture description language for distributed systems
FSEN'07 Proceedings of the 2007 international conference on Fundamentals of software engineering
Software architecture and software configuration management
SCM'01/SCM'03 Proceedings of the 2001 ICSE Workshops on SCM 2001, and SCM 2003 conference on Software configuration management
Elements of Software Configuration Management
IEEE Transactions on Software Engineering
Modular specification and checking of structural dependencies
Proceedings of the 12th annual international conference on Aspect-oriented software development
Experiences with using the systematic method for architecture recovery (SyMAR)
Proceedings of the South African Institute for Computer Scientists and Information Technologists Conference
Maintaining architectural conformance during software development: a practical approach
ECSA'13 Proceedings of the 7th European conference on Software Architecture
PANDArch: a pluggable automated non-intrusive dynamic architecture conformance checker
ECSA'13 Proceedings of the 7th European conference on Software Architecture
Towards extensive software architecture erosion repairs
ECSA'13 Proceedings of the 7th European conference on Software Architecture
Automated architectural evaluation of web information systems
Proceedings of the 19th Brazilian symposium on Multimedia and the web
Towards flexible automated software architecture erosion diagnosis and treatment
Proceedings of the WICSA 2014 Companion Volume
Proceedings of the WICSA 2014 Companion Volume
Hi-index | 0.04 |
Software architectures capture the most significant properties and design constraints of software systems. Thus, modifications to a system that violate its architectural principles can degrade system performance and shorten its useful lifetime. As the potential frequency and scale of software adaptations increase to meet rapidly changing requirements and business conditions, controlling such architecture erosion becomes an important concern for software architects and developers. This paper presents a survey of techniques and technologies that have been proposed over the years either to prevent architecture erosion or to detect and restore architectures that have been eroded. These approaches, which include tools, techniques and processes, are primarily classified into three generic categories that attempt to minimise, prevent and repair architecture erosion. Within these broad categories, each approach is further broken down reflecting the high-level strategies adopted to tackle erosion. These are: process-oriented architecture conformance, architecture evolution management, architecture design enforcement, architecture to implementation linkage, self-adaptation and architecture restoration techniques consisting of recovery, discovery and reconciliation. Some of these strategies contain sub-categories under which survey results are presented. We discuss the merits and weaknesses of each strategy and argue that no single strategy can address the problem of erosion. Further, we explore the possibility of combining strategies and present a case for further work in developing a holistic framework for controlling architecture erosion.