Untangling the Knot: Enabling Rapid Software Architecture Evolution
• Collection
Publisher
Software Engineering Institute
Topic or Tag
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

Role of Automation in Reducing Software Refactoring Costs
• Presentation
By Mario Benitez Preciado, James Ivers
This talk describes a case study on the use of automation for large-scale software refactoring using an open source example.
Learn More
Dependent or Not: Detecting and Understanding Collections of Refactorings
• Article
By Thiago Ferreira (University of Michigan), James Ivers, Jeffrey J. Yackley (University of Michigan), Marouane Kessentini (Oakland University), Ipek Ozkaya, Khouloud Gaaloul (Oakland University)
This paper describes a theory for reasoning about refactorings by defining an ordering dependency relation and organizing them as a set of refactoring graphs.
Read
Industry's Cry for Tools That Support Large-Scale Refactoring
• Conference Paper
By James Ivers, Robert Nord, Ipek Ozkaya, Christopher 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
• Conference Paper
By James Ivers, Christopher 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
• 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.
Learn More
Untangling the Knot: Automating Software Isolation
• 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
• Poster
By Software Engineering Institute
This fact sheet describes AI techniques to recommend refactorings that can improve the structure of software in significantly less time manual refactoring.
Download
AI for Software Engineering
• 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.
Learn More
Next-Generation Automated Software Evolution Refactoring at Scale
• Conference Paper
By James Ivers, Ipek Ozkaya, Robert Nord, Christopher 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
• 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
Untangling the Knot: Enabling Rapid Software Evolution
• 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.
Learn More
Poster - Untangling the Knot
• Poster
By Robert Nord, Ipek Ozkaya, James Ivers, Jared Frank
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.
Download
Untangling the Knot: Recommending Refactorings
• 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.
Learn More
Can AI Close the Design-Code Abstraction Gap?
• 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
• 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
• Poster
By James Ivers
This poster describes early research intended to outperform refactoring recommendations based only on quality metrics.
Download
Untangling the Knot: Recommending Component Refactorings
• Presentation
By James Ivers
This presentation describes work to improve the ability to evolve software efficiently.
Learn More
Applying AI to Reduce Software Improvement Costs
• Fact Sheet
By Software Engineering Institute
This fact sheet summarizes several SEI projects seeking collaborators with whom to apply AI techniques that automate labor-intensive software engineering activities.
Learn More