Architectural mismatch or why it's hard to build systems out of existing parts
Proceedings of the 17th international conference on Software engineering
Change cases: use cases that identify future requirements
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Software architecture classification for estimating the cost of COTS integration
Proceedings of the 21st international conference on Software engineering
Reverse Architecting Approach for Complex Systems
ICSM '97 Proceedings of the International Conference on Software Maintenance
Mapping Requirements to Reusable Components Using Design Spaces
ICRE '00 Proceedings of the 4th International Conference on Requirements Engineering (ICRE'00)
Programming Jakarta Struts
Cocoon: Building XML Applications
Cocoon: Building XML Applications
IEEE Software
A Feature Oriented Approach to Modeling and Reusing Requirements of Software Product Lines
COMPSAC '03 Proceedings of the 27th Annual International Conference on Computer Software and Applications
Modeling Adaptive and Evolvable Software Product Lines Using the Variation Point Model
HICSS '04 Proceedings of the Proceedings of the 37th Annual Hawaii International Conference on System Sciences (HICSS'04) - Track 9 - Volume 9
Symphony: View-Driven Software Architecture Reconstruction
WICSA '04 Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture
Explicit assumptions enrich architectural models
Proceedings of the 27th international conference on Software engineering
Essential CVS
IEEE Transactions on Software Engineering
Software Structure Metrics Based on Information Flow
IEEE Transactions on Software Engineering
A rationale-based architecture model for design traceability and reasoning
Journal of Systems and Software
Extending Software Architecting Processes with Decision-Making Activities
Balancing Agility and Formalism in Software Engineering
Controversy Corner: On the similarity between requirements and architecture
Journal of Systems and Software
Managing assumptions during agile development
SHARK '09 Proceedings of the 2009 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Effort Estimation in Capturing Architectural Knowledge
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Viability for codifying and documenting architectural design decisions with tool support
Journal of Software Maintenance and Evolution: Research and Practice
Rationale, decisions and alternatives traceability for architecture design
Proceedings of the 5th European Conference on Software Architecture: Companion Volume
On the modularity impact of architectural assumptions
Proceedings of the 2012 workshop on Next Generation Modularity Approaches for Requirements and Architecture
Journal of Visual Languages and Computing
Hi-index | 0.00 |
During the creation of a software architecture, the architects and stakeholders take a lot of decisions. Many of these decisions can be directly related to functional or quality requirements. Some design decisions, though, are more or less arbitrarily made on the fly because of personal experience, domain knowledge, budget constraints, available expertise, and the like. These decisions, as well as the reasons for those decisions, are often not explicit upfront. They are implicit, and usually remain undocumented. We call them assumptions. There is no accepted way to document assumptions, and the relation between the software architecture and these assumptions easily gets lost, becomes hidden in the girders of the architecture. They are rediscovered at a later stage, when the software evolves and assumptions become invalid or new assumptions contradict earlier ones. In this paper, we develop a method to recover such assumptions from an existing software product. We illustrate the method by applying it to a commercial software product, and show how the results can help assess the evolutionary capabilities of its architecture.