Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
Subject-oriented programming: a critique of pure objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
ICSE '94 Proceedings of the 16th international conference on Software engineering
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Product-line architectures in industry: a case study
Proceedings of the 21st international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Extreme programming explained: embrace change
Extreme programming explained: embrace change
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
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Assuring Good Style for Object-Oriented Programs
IEEE Software
Evolution and Composition of Reusable Assets in Product-Line Architectures: A Case Study
WICSA1 Proceedings of the TC2 First Working IFIP Conference on Software Architecture (WICSA1)
Structural Analysis of the Software Architecture - A Maintenance Assessment Case Study
WICSA1 Proceedings of the TC2 First Working IFIP Conference on Software Architecture (WICSA1)
Scenario-Based Software Architecture Reengineering
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Representing variability in a family of MRI scanners
Software—Practice & Experience
Adaptable architecture generation for embedded systems
Journal of Systems and Software - Special issue: Computer systems
Evaluation of Tool Support for Architectural Evolution
Proceedings of the 19th IEEE international conference on Automated software engineering
Behavioural inheritance in the UML to model software product lines
Science of Computer Programming - Special issue: Software variability management
MACS '05 Proceedings of the 2005 workshop on Modeling and analysis of concerns in software
Case studies on Analyzing Software Architectures for Usability
EUROMICRO '05 Proceedings of the 31st EUROMICRO Conference on Software Engineering and Advanced Applications
An approach to refactoring of executable UML models
Proceedings of the 2006 ACM symposium on Applied computing
Practical refactoring of executable UML models
Nordic Journal of Computing
Representing concerns in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Software systems in-house integration: Architecture, process practices, and strategy selection
Information and Software Technology
The SEXTANT Software Exploration Tool
IEEE Transactions on Software Engineering
Identifying and addressing problems in object-oriented framework reuse
Empirical Software Engineering
Visual identification of software evolution patterns
Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting
Defining and continuous checking of structural program dependencies
Proceedings of the 30th international conference on Software engineering
Visually localizing design problems with disharmony maps
Proceedings of the 4th ACM symposium on Software visualization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Connecting Architecture and Implementation
OTM '09 Proceedings of the Confederated International Workshops and Posters on On the Move to Meaningful Internet Systems: ADI, CAMS, EI2N, ISDE, IWSSA, MONET, OnToContent, ODIS, ORM, OTM Academy, SWWS, SEMELS, Beyond SAWSDL, and COMBEK 2009
Combating architectural degeneration: a survey
Information and Software Technology
Diagnosis and semi-automatic correction of detected design inconsistencies in source code
IWST '09 Proceedings of the International Workshop on Smalltalk Technologies
Viability for codifying and documenting architectural design decisions with tool support
Journal of Software Maintenance and Evolution: Research and Practice
Language support for managing variability in architectural models
SC'08 Proceedings of the 7th international conference on Software composition
Integrating requirements and design decisions in architecture representation
ECSA'10 Proceedings of the 4th European conference on Software architecture
Causes of premature aging during software development: an observational study
Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
A systematic review of software architecture evolution research
Information and Software Technology
Controlling software architecture erosion: A survey
Journal of Systems and Software
Towards a development framework based on behavior recombination
OTM'11 Proceedings of the 2011th Confederated international conference on On the move to meaningful internet systems
Easing software evolution: change-data and domain-driven approach
Proceedings of the 5th India Software Engineering Conference
Software architecture analysis of usability
EHCI-DSVIS'04 Proceedings of the 2004 international conference on Engineering Human Computer Interaction and Interactive Systems
A framework for policy driven auto-adaptive systems using dynamic framed aspects
Transactions on Aspect-Oriented Software Development II
Induced intentional software views
Computer Languages, Systems and Structures
Architecting for usability: a survey
Journal of Systems and Software
FOCUS: an adaptation of a SWEBOK-based curriculum for industry requirements
Proceedings of the 34th International Conference on Software Engineering
Systematizing pragmatic software reuse
ACM Transactions on Software Engineering and Methodology (TOSEM)
Refactoring support for Smalltalk using static type inference
Proceedings of the International Workshop on Smalltalk Technologies
A multiple case study of design pattern decay, grime, and rot in evolving software systems
Software Quality Control
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
Towards flexible automated software architecture erosion diagnosis and treatment
Proceedings of the WICSA 2014 Companion Volume
Architectural bad smells in software product lines: an exploratory study
Proceedings of the WICSA 2014 Companion Volume
Hi-index | 0.00 |
Design erosion is a common problem in software engineering. We have found that invariably, no matter how ambitious the intentions of the designers were, software designs tend to erode over time to the point that redesigning from scratch becomes a viable alternative compared to prolonging the life of the existing design. In this paper, we illustrate how design erosion works by presenting the evolution of the design of a small software system. In our analysis of this example, we show how design decisions accumulate and become invalid because of new requirements. Also it is argued that even an optimal strategy for designing the system (i.e. no compromises with respect to e.g. cost are made) does not lead to an optimal design because of unforeseen requirement changes that invalidate design decisions that were once optimal.