search menu icon-carat-right cmu-wordmark

Untangling the Knot: Enabling Rapid Software Architecture Evolution

Collection
This collection contains artifacts from several projects that apply AI techniques to automate labor-intensive engineering activities and make refactoring recommendations.
Publisher

Software Engineering Institute

Abstract

This collection contains artifacts from several projects that apply artificial intelligence (AI) techniques to automate labor-intensive engineering activities, starting with automation that recommends and implements refactorings that isolate functionality from its tangle of dependencies with the rest of the system. Our work combines advances in search-based software engineering, static code analysis, machine learning algorithms, and refactoring knowledge. With this combination, we aim to reduce the time required for this kind of architecture refactoring by two-thirds.

With the work that we have already completed, we can help programs with C# software to analyze the implications of plans to break legacy applications into service or microservice architectures, migrate services to the cloud, rehost software to new platforms, or replace dated software components with newer options. Our initial work can help determine the size of proposed changes, which is beneficial for portfolio analysis or increment planning within a program. Support for Java software is coming soon.

The SEI would like to collaborate with the right programs to apply this work to address today's important problems and gain feedback to improve our ongoing research.

Collection Items