Prerequisites: CS 180 or equivalent; graduate standing
Description: Covers the principles, tools, and techniques for disciplined software evolution. Includes migration strategies, change patterns, software maintenance, legacy system reengineering, reverse engineering for program understanding, middleware, source code analysis, software visualization, and pro- gram transformation tools.
Credit: May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.