Prerequisites: CS 180 or equiva- lent; graduate standing
Description: Covers the principles, tools, and techniques for disciplined software evolution. Includes migration strategies, change patterns, soft- ware maintenance, legacy system reengineering, reverse engineering for program understanding, mid- dleware, source code analysis, software visualization, and program transformation tools. May be taken Satisfactory (S) or No Credit (NC) by students advanced to candidacy for the Ph.D.