18 664

Software Refactoring

Carnegie Mellon University · UGRD · Fall 2026

1 section
Add to a schedule

Catalog description

Refactoring aims to improve the system's structural quality without changing its behavior. It is essential practice to guarantee programs' longevity since maintenance activities often degrade the system structure. Thus, it is in the software companies' best interests to ensure that developers know how to refactor their systems. Unfortunately, refactoring is not a trivial task; it can change the entire system structure! Undesirable effects can occur if developers do not know how to carry on these changes. They can degrade the structural quality and even introduce defects. The focus of the course is to learn how to confidently apply refactoring operations. Students will learn to apply refactoring for different granularity levels in a software system and additional resources such as APIs, databases, and test code. By the end of the course, students are expected to (i) recognize symptoms in the source code that warrant refactoring; (ii) apply refactoring at the architectural level and code level; (iii) evaluate the impact of the applied refactoring operations, (iv) design, implement, and deploy a tool to support software refactoring. This course is especially intended for ECE students pursuing a Master of Science degree in Software Engineering. Prerequisite: 18-652 Min. grade C

Sections

Current meeting, instructor, credit, and enrollment details

Updated 4 hours ago

001

Availability not recently verified
Class #carnegie_mellon-18664Fall 2026UGRD12 credits
Days & times
No scheduled meeting time
Meeting dates
Location
Instructor
Staff
Class numbers and section codes come from the registrar.
Spot missing or incorrect course data?