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
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.
ReadIndustry'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.
ReadUntangling 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.
ReadUntangling 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 MoreUntangling 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.
WatchUntangling 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.
DownloadAI 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 MoreUntangling 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.
WatchNext-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.
ReadUntangling 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 MorePoster - 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.
DownloadUntangling 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 MoreCan 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.
ReadUntangling 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.
WatchUntangling the Knot: Recommending Component Refactorings
• Poster
By James Ivers
This poster describes early research intended to outperform refactoring recommendations based only on quality metrics.
DownloadUntangling the Knot: Recommending Component Refactorings
• Presentation
By James Ivers
This presentation describes work to improve the ability to evolve software efficiently.
Learn MoreApplying 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