Automated Design Conformance during Continuous Integration
November 2022 • Presentation
This project developed an automated conformance checker prototype that can be used in a continuous integration workflow to detect and report nonconformances within minutes.
Software Engineering Institute
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.
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.