File(s) under permanent embargo
Software architecture design reasoning: a case for improved methodology support
Software architecture design is a critical aspect of developing large-scale software systems. However, the practice of architecture design reasoning is immature, partly because of a lack of practical methodology support. The authors discuss why capturing design rationale-the elements of design reasoning-is useful and how developers use it in architecture design. They demonstrate architecture design reasoning's application with a UML-based modeling method called Architecture Rationale and Elements Linkage.