2021 Research Review / DAY 1
Automated Design Conformance During Continuous Integration
Software architecture enables our ability to innovate through extensible design, which provides for 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). However, a gap exists in verifying whether implemented capabilities satisfy the design constraints of a reference architecture such as FACE.
This project is creating an automated conformance checker that can be integrated into the continuous integration workflow to detect and report nonconformances in hours instead of the months or years it takes to discover these problems today. This technology will correctly identify design nonconformances with precision greater than 90%.
Developers can detect problems continuously and near the time they are introduced, allowing faster and more economical realignment of implementation and design.
The central research of this project is recognizing abstractions commonly used in software architecture in C++ source code. Extracting design from code is hard because there are few indications of intent in the code and because implementations show significant variations. We see potential in applying code analysis, software architecture knowledge, and machine learning to extract design as implemented in the code and check conformance with the intended design. We are focusing on detecting nonconformance with architecture communication styles that are essential to achieving the 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 design. Program managers can hold developers (contractor or organic) accountable for delivering sustainable systems.
This FY2020-22 project
- advances the state of the art in applying machine learning (ML) to software engineering tasks
- aligns with SEI strategic focus areas of timely and trustworthy software by introducing automation into the development and acquisition lifecycle