Supporting the collaborative development of requirements and architecture documentation
Tom-Michael Hesse, Barbara Paech · 2013
In most software projects, particular requirements significantly drive the design of the software architecture by forcing architectural decisions to be made. As requirements and architecture are refined iteratively, their extensions and improvements need to be aligned continuously. Much research has been conducted to identify such requirements and their impact on architecture. However, it remains a problem how to collaboratively document such requirements and architectural knowledge under development. In particular, knowledge of architectural decisions such as assumptions or alternatives for the system erodes over time and can even vaporize completely. A major reason is the inability to easily manage informality and complexity of knowledge when performing both requirements engineering and architecture design. Therefore, we propose a documentation model for decisions supporting the intertwined documentation of related requirements and architecture knowledge. It provides documentation elements, which are common to both disciplines. In order to support refinement in documentation, knowledge can be iteratively accumulated at different levels of granularity. So the model fits to the twin peaks model of requirements and architecture. In consequence, the comprehension and collaboration between requirements engineers and system architects is improved by negotiating and refining the same documentation together in an ongoing process. We apply our approach to an example in order to demonstrate that it is applicable and useful for managing architectural decision knowledge in relation to the grounding requirements.