Untangling the Knot: Enabling Rapid Software Architecture Evolution
This collection contains artifacts from several projects that apply AI techniques to automate labor-intensive engineering activities and make refactoring recommendations.
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 Contents
-
Industry's Cry for Tools That Support Large-Scale Refactoring
April 11, 2022 • Conference Paper
By James Ivers, Robert Nord, Ipek Ozkaya, Chris Seifried, Christopher S. Timperley (Carnegie Mellon University), Marouane Kessentini (Oakland University)
This paper introduces an industry survey that assessed which tools developers use in large-scale refactoring efforts and how well those tools support refactoring.
read -
Untangling the Knot: Enabling Architecture Evolution with Search-Based Refactoring
March 15, 2022 • Conference Paper
By James Ivers, Chris Seifried, Ipek Ozkaya
This paper describes a search-based algorithm that recommends a series of refactorings that isolate specified software from its architectural dependencies.
read -
Untangling the Knot: Automating Software Isolation
November 7, 2021 • Presentation
By James Ivers
Our prototype tool combines advances in search-based software engineering with static code analysis and refactoring knowledge for cost-effective software improvement.
read -
Untangling the Knot: Automating Software Isolation
November 5, 2021 • Video
By James Ivers
This short video provides an introduction to a research topic presented at the SEI Research Review 2021.
watch -
Untangling the Knot: Enabling Rapid Software Evolution
November 5, 2021 • Poster
This fact sheet describes AI techniques to recommend refactorings that can improve the structure of software in significantly less time manual refactoring.
read -
AI for Software Engineering
August 4, 2021 • Presentation
By James Ivers, Ipek Ozkaya
This talk describes the state of research in AI applied to improving software development efficiency and the SEI's recent progress in search-based refactoring.
read -
Untangling the Knot: Enabling Rapid Software Evolution
December 15, 2020 • Video
By James Ivers
This project uses AI techniques to recommend refactorings that can improve the structure of software in significantly less time than it takes to manually refactor.
watch -
Next-Generation Automated Software Evolution Refactoring at Scale
November 30, 2020 • Conference Paper
By James Ivers, Ipek Ozkaya, Robert Nord, Chris Seifried
This paper describes a vision for creating the next generation of industry-relevant tools for automating software evolution and automated refactoring at scale.
read -
Untangling the Knot: Enabling Rapid Software Evolution
November 4, 2020 • Presentation
By James Ivers
This project uses AI techniques to recommend refactorings that can improve the structure of software in significantly less time than it takes to manually refactor.
read -
Poster - Untangling the Knot
November 4, 2020 • Poster
By Robert Nord, Ipek Ozkaya, James Ivers
This project uses AI techniques to recommend refactorings that can improve the structure of software in significantly less time than it takes to manually refactor.
read -
Untangling the Knot: Recommending Refactorings
May 7, 2020 • Presentation
By James Ivers
The Untangling the Knot project uses AI techniques to recommend a set of refactorings that isolates functionality from dependencies with the rest of the system.
read -
Can AI Close the Design-Code Abstraction Gap?
January 27, 2020 • Conference Paper
By James Ivers, Ipek Ozkaya, Robert Nord
This paper argues that the software engineering community can use AI/ML techniques to advance automation in design analysis and to make design improvements.
read -
Untangling the Knot: Recommending Component Refactorings
November 11, 2019 • Video
By James Ivers
Watch SEI principal investigator Mr. James Ivers discuss research on applying AI techniques to rapidly increase the pace of making structural changes to software code bases.
watch -
Untangling the Knot: Recommending Component Refactorings
October 28, 2019 • Poster
By James Ivers
This poster describes early research intended to outperform refactoring recommendations based only on quality metrics.
read -
Untangling the Knot: Recommending Component Refactorings
October 28, 2019 • Presentation
By James Ivers
This presentation describes work to improve the ability to evolve software efficiently.
read -
Applying AI to Reduce Software Improvement Costs
September 30, 2019 • Fact Sheet
By Ipek Ozkaya, James Ivers
This fact sheet summarizes several SEI projects seeking collaborators with whom to apply AI techniques that automate labor-intensive software engineering activities.
read