Capture and Visualization of Architectural Design Decisions
The focus of this project is on the capture and the visualization of architectural decisions and their complex interdependencies to better understand the rationale behind some decisions and to support the reasoning about the system and its evolution. A tool will be developed to capture, store, represent and display these decisions and the interdependencies of them.
Software Architectural Knowledge is the integrated representation of the software architecture of a software-intensive system, the architectural design decisions that led to the current design, and the external context/environment that constrained it. However, it is not uncommon that the architectural design is often the only documented or formalized component of the architectural knowledge. This may hinder productivity in complex projects where the architecture is routinely analyzed but valuable time is spent reworking the rationale behind a certain design or decision; moreover, the full architectural knowledge could remain tacit and be easily forgotten or lost if the original architect is no longer working on the project.
The development of a "plug-in" tool for IBM's Eclipse open-source development platform will assist the documentation or formalization of the architectural knowledge. Initial focus is on the storage and display of a network of interdependent design decisions. The tool must be flexible enough to allow experimenting with various representations, and will eventually automate the collection of design decisions and rationale.