Towards supporting the software architecture life cycle
Rainer Weinreich, Georg Buchgeher
The Journal of Systems and Software 85 (2012) 546– 561
Abstract:
Software architecture is a central element during the whole software
life cycle. Among other things, software architecture is used for communication
and documentation, for design, for reasoning about important system properties,
and as a blueprint for system implementation. This is expressed by the software
architecture life cycle, which emphasizes architecture-related activities like
architecture design, implementation, and analysis in the context of a software
life cycle. While individual activities of the software architecture life cycle
are supported very well, a seamless approach for supporting the whole life cycle
is still missing. Such an approach requires the integration of disparate
information, artifacts, and tools into one consistent information model and
environment. In this article we present such an approach. It is based on a
semi-formal architecture model, which is used in all activities of the
architecture life cycle, and on a set of extensible and integrated tools
supporting these activities. Such an integrated approach provides several
benefits. Potentially redundant activities like the creation of multiple
architecture descriptions are avoided, the captured information is always
consistent and up-to-date, extensive tracing between different information is
possible, and interleaving activities in incremental
development and design are supported.