Architecture to Implementation
Architecture can be analyzed, instantiated, and dynamically modified during runtime. However, without maintaining consistency between the architecture and other artifacts, an architecture becomes just a nice picture. — Institute for Software Research, UCI
Concepts
Architecture cannot replace implementation, neither can implementation replace architecture; both artifacts are equally important. However, to achieve the maximum benefits from these artifacts, they must remain consistent with each other.
Maintain consistency between architecture and implementation artifacts throughout development. In order to trust results of architectural analysis and testing techniques or to trust product representations in a product line architecture, an architecture and its implementation must accurately and faithfully represent each other.
Architectures evolve over time just as implementation. Architectures evolve as new design decisions and features are incorporated into a system, or a system is maintained.
Techniques
Incorporate architecture throughout development. Many modern development environments incorporate the use of version control and consistency checking of source code and low level design artifacts such as class diagrams. Environments should support design at the architectural level as well.
Capture architecture evolution using a repository and with tool support to maintain mappings between architecture and source code over time. Versioning architecture has the potential to realize many of the benefits currently enjoyed from versioning other artifacts such as source code.
Tools
- ArchEvol - integrates ArchStudio 3 with Eclipse, used for source code development, while providing a uniform software repository managed by Subversion.
- c2.fw - a Java framework for event-based architectures