Role of Automation in Reducing Software Refactoring Costs
• Presentation
Publisher
Software Engineering Institute
Topic or Tag
Abstract
Long-lived systems like Department of Defense (DoD) weapon systems need to continuously evolve to take advantage of new technologies and to meet new requirements. Over time, software tends to become more complex and less modular as its capabilities evolve. As software becomes more difficult to change, maintenance costs and schedule delays increase. When organizations favor investing in new features over refactoring their software, the underlying problem increases. Relying on manual efforts to resolve such problems is the norm today but also impacts schedules. Automation can significantly reduce these cost and schedule impacts.
We will present a new automation approach and tool that helps teams to improve the modularity of their software, supporting common DoD drivers like capability reuse, migration to new platforms, and containerizing software for DevOps. Given a simple specification of the capability to be modularized, the refactoring assistant generates specific recommendations for code changes that reduce the entanglement of the target code with other code. We will present results from an open source example to illustrate the application and share data on the effort involved.
Our goal is to remove a common barrier to software refactoring by reducing its costs, resulting in an environment in which teams have the flexibility to make significant improvements to code quality without breaking project budgets or necessitating extended feature freezes because of the expected costs of refactoring.