search menu icon-carat-right cmu-wordmark

Identifying and Protecting Architecturally Significant Code

May 2014 Presentation
Mehdi Mirakhorli (DePaul University), Jane Cleland-Huang (DePaul University)

Presentation at SATURN 2014. This talk demonstrates how software-development organizations can utilize Archie to integrate architecture awareness into their developers' daily programming and testing activities.

Publisher:

Software Engineering Institute

This presentation was created for a conference series or symposium and does not necessarily reflect the positions and views of the Software Engineering Institute.

Abstract

As a software system grows in size, it becomes progressively difficult for programmers to understand the underlying architectural intent and to extract the architectural knowledge they need to implement changes successfully. Unfortunately, anecdotal evidence has shown that such knowledge tends to be tacit, stored in people’s heads, and scattered across software artifacts and repositories. Furthermore, architectural knowledge has a tendency to vaporize over time. Given the size, complexity, and longevity of many projects, developers often lack a comprehensive knowledge of architectural design decisions and make changes in the code that inadvertently degrade the underlying design. In this talk, I present the Archie tool suite, initially funded by the National Science Foundation and further developed under sponsorship of the Department of Homeland Security (DHS). Archie is designed to detect architectural design decisions in code, monitor them during long-term maintenance activities, keep developers informed as they make changes, and help protect critical areas of the code from potential architecture degradation. Archie is a smart integrated-development environment, and several of its components are designed for integration into the DHS’s Software Assurance Market Place (SWAMP). This talk demonstrates how software-development organizations can utilize Archie to integrate architecture awareness into their developers’ daily programming and testing activities. Through a large-scale case study, I demonstrate Archie’s use in practice.