Software-intensive systems are typically designed around a set of architectural decisions. These decisions are often based on well-known architectural tactics, which work together to shape the structure, behavior, properties, processes, and governance of the delivered solution. Unfortunately, architectural quality often degrades over time as ongoing maintenance activities are undertaken to correct faults, improve performance, or to adapt the system in response to changing requirements. This research presents a novel and practical approach for addressing the problem of architectural degradation based on a new concept of tactic Traceability Information Models (tTIMs). tTIMS provide semantically typed, reusable, and extensible traceability links, and are designed to significantly simplify the traceability process, reduce its costs, scale up to support traceability and architectural preservation in large and complex projects, and facilitate the visualization of underlying design rationales to the software maintainer. The proposed techniques will have the potential to impact a wide variety of high-performance and safety critical software systems.
The project makes several important contributions. First, it provides a potentially transformative solution for integrating existing techniques from the field of architectural assessment and trace retrieval into the maintenance process. Second it develops new algorithms and techniques for capturing and reusing traceability knowledge across projects in the form of a reusable infrastructure of semantically typed traceability links. Third, it provides new visualization techniques for communicating underlying architectural decisions and their interrelationships to developers and maintainers within the context of common software engineering tasks. Fourth, it advances cutting edge trace-retrieval solutions by utilizing a combination of trace retrieval, machine learning, and structural analysis techniques in order to detect classes related to architectural tactics and then to classify those classes according to specific roles in the tactic. Finally, it utilizes this information to automatically generate architecturally significant traceability links.