search menu icon-carat-right cmu-wordmark
quotes
2022 Research Review / DAY 3

Automated Design Conformance during Continuous Integration

Software architecture enables our ability to innovate through extensible design and to deliver future growth in capability that is affordable and timely. To reduce the time needed to field capabilities and to lower lifecycle costs, the DoD has instructed program managers to consider a modular open systems approach (MOSA). MOSA promotes extensibility through technical standards such as the Future Airborne Capability Environment (FACE). Achieving these qualities depends on how the design allocates responsibilities to components and on what relationships are allowed among these components, which means that it depends on the software architecture. Co-evolving architecture and code is good practice for both new development and modernization, and it is increasingly important as programs adopt a software acquisition pathway using Agile and DevSecOps approaches.

The end goal—to build and evolve systems that provide timely and cost-effective capability to users—is achieved only if the implemented code conforms to the architecture. However, a gap exists in verifying that implemented capabilities satisfy the design constraints of the intended architecture.

This project developed an automated conformance checker prototype that can be used in a continuous integration workflow to detect and report nonconformances within minutes, instead of the months or years it takes to discover these problems today.

The central research of this project is automatic recognition of abstractions commonly used in software architecture from source code. This includes extracting relevant facts from the source code and related artifacts, inferring architecture abstractions from those facts, and synthesizing the abstractions into a design. Inferring design from code is hard because there are few indications of intent in the code and because implementations of an abstraction show significant variations both within a project and across projects. Many software projects reuse one or more off-the-shelf frameworks, and we use information implicit in these frameworks to advance automation in architecture analysis to extract design as implemented in C++ source code. We are focusing on detecting nonconformance in systems using architecture communication styles, such as publish-subscribe, that are essential to achieving the extensibility goals of MOSA.

This project developed an automated conformance checker prototype that can be used in a continuous integration workflow to detect and report nonconformances within minutes, instead of the months or years it takes to discover these problems today.

Dr. Robert Nord
Principal Member of the Technical Staff
Robert Nord

The conformance checker will benefit developers and program managers. Developers can detect problems continuously and near the time they are introduced, allowing faster and more economical realignment of implementation and architecture. Program managers can hold developers (contractor or organic) accountable for delivering sustainable systems.

In Context

This FY2020–22 project

  • aligns with SEI strategic focus areas of timely and trustworthy software by introducing automation into the development and acquisition lifecycle
  • aligns with the DoD software strategy to mitigate technical debt by identifying instances of technical debt as it is introduced
  • advances our understanding of how architecture inference differs from other code inference problems and the research challenges that follow from these differences
The key to this work is new research inferring design information from source code. Detecting design constructs is challenging due to imprecise definitions of abstractions, variation in implementation, and limits of fact-gathering analyses. The key to this work is new research inferring design information from source code. Detecting design constructs is challenging due to imprecise definitions of abstractions, variation in implementation, and limits of fact-gathering analyses.