ELEC-876
Software Re-engineering
Fall 2011


Course Instructor:

Dr. Ying Zou
Office: Goodwin Hall, Room 731
Email:ying.zou@queensu.ca
Office Hour: Appointment by email

Course Description

This course covers software re-engineering techniques and tools that facilitate the evolution of legacy systems. This course is broken into three major parts. In the first part, the course discusses the terminology and the processes pertaining to software evolution. In the second part, the course provides the fundamental re-engineering techniques to modernize legacy systems. These techniques include source code analysis, architecture recovery, and code restructuring. The last part of the course focuses on specific topics in software re-engineering research. The topics include software refactoring strategies, migration to Object Oriented platforms, quality issues in re-engineering processes, migration to network-centric environments, and software integration.

Text: Lecture notes, book chapters, journal and conference papers
Location: WLH 616
Lectures: Thursday 11:00 - 14:00


Course Outline

  1. Introduction to software re-engineering
  2. Program comprehension
  3. Software re-engineering techniques in source code transformation and refactoring strategies
  4. Software metrics & quality
  5. Re-engineering economics
  6. Techniques for the migration of legacy systems into network centric environments
  7. Software integration issues and enabling technologies in web-enabled and distributed environments.

Course Structure

The course will be consisted of lectures and student presentations. There are about 6 weeks of lectures. The other 6 weeks will be seminar format where students will present assigned research papers. Students will also do a project singly or in pairs, including a class presentation of the project. The marking scheme is:
 
 
Midterm 10%
Project proposal 10%
Project Progress Reports  20%
Final Report 50%
Class Participation 10%

Tentative Course Schedule


Week Topic Notes and Assignments
 Week 1 Introduction to Software Reengineering Introduction
Software Reengineering
 Week  2 Control Flow Graphs, Paper Presentation Control Flow Graphs; Example
 Week 3 Data Flow Analysis, Paper Presentation Data Flow Analysis
 Week 4 Data Flow Analaysis, Paper Presentation Data Flow Analysis
 Week 5 Project Proposal Presentation
 Week 6 Project Proposal Presentation
 Week 7 Cancelled
 Week 8 Midterm
Week 9 Software Metrics & Quality, Paper Presentation Software Metrics & Quality 
Week 10 Project Progress Presentation
Week 11 Software Reengineering Economics; Paper Presentation Software Reengineering Economics 
Week 12 Project Final Presentation 

Paper Presentation Schedule

Week 2: Code Clone Detection and Analysis Week 3: Software Archiecture and Recovery Techniques Week 4: Program Comprehension and Analysis Week 9: Software Metrics Week 11: Software Migration

Resources for Lectures


Software Reengineering Tools


Last updated September, 2009
Copyright © 2009 Department of Electrical and Computer Engineering,

Queen's University, Kingston, Ontario