Research Review 2021

2021 Research Review / Day 1

Untangling the Knot: Automating Software Isolation

Software-reliant systems need to evolve over time to meet new requirements and take advantage of new technology. However, all too often the structure of software becomes too complicated to allow rapid and cost-effective improvements. This challenge is common in long lived DoD systems and not uncommon even in newer systems, and it makes isolating a collection of functionality for use in a new context, or clean replacement by an improved version, difficult. Software refactoring can facilitate such changes but can require tens of thousands of staff hours. 

This project has created a refactoring assistant that generates recommended refactorings that isolate functionality from its tangle of system dependencies. Our goal is to reduce the time required for this kind of software refactoring by two-thirds. In one DoD example, a contractor estimated 14 thousand hours of software development work alone (excluding integration and testing) to isolate a mission capability from the underlying hardware platform. If successful, our work would reduce the development time required to less than 5 thousand hours.

Our prototype combines advances in search-based software engineering with static code analysis and refactoring knowledge. It is unique in its focus on mission-relevant goals as opposed to improving general software metrics. This goal is incorporated in genetic algorithms through fitness functions that guide the search to solutions for the project-specific goal. In practice, our prototype recommends solutions that solve more than 85% of the problem on typical projects, suggesting that our effort reduction goal is obtainable. The search algorithm relies on a representation derived from static code analysis and uses formalizations of refactorings as operations to apply during search.

2021_Untangling the Knot: Automating Software Isolation
Generating Refactoring Recommendations

This work has broad implications for moving existing software to modern architectures and infrastructures such as service-based, microservice, cloud environments, and containers. It also addresses a pervasive research challenge in improving automated support for architecture refactoring tasks.

In Context

This FY2019-21 project

  • builds on prior DoD line-funded research in software architecture analysis, static code analysis, and identifying technical debt
  • aligns with the CMU SEI technical objective to make software delivery timely so that the cadence of acquisition, delivery, and fielding is responsive to and anticipatory of the operational tempo of DoD warfighters
  • addresses a widespread, recurring need in software organizations. As requirements and technology are never frozen in time, the need to adapt working software to new contexts is likely to remain a common need across many software systems
Principal Investigator

James Ivers

Principal Investigator

James Ivers
Principal Engineer

SEI Collaborators

Robert Nord
Principal Member of The Technical Staff

Ipek Ozkaya
Tech. Director, Engineering Intelligent Software Systems

Chris Seifried
Associate Engineer

SEI Contributors

Mario Benítez

Vaughn Coates

Andrew Kotov

Reed Little

Craig Mazzotta

Scott Pavetti

Scott Sinclair

Jake Tannenbaum

External Collaborators

Thiago Ferreira
Assistant Professor
University of Michigan, Dearborn

Clem Izurieta
Associate Professor
Montana State University

Marouane Kessentini
Associate Professor
University of Michigan, Dearborn

Chris Timperley
Systems Scientist
Carnegie Mellon University

Students

Chaima Abid (University of Michigan)

Gavin Austin (Montana State University)

Jared Frank (University of Pittsburgh)

Carly Jones (Carnegie Mellon University)

Katie Li (Carnegie Mellon University)

Red Rajput (Carnegie Mellon University)

Amy Tang (Carnegie Mellon University)

Jeff Yackley (University of Michigan)