View this PageEdit this PageUploads to this PageHistory of this PageHomeRecent ChangesSearchHelp Guide

Syllabus

Reengineering/Maintenance




Goal


In this course, students will learn three areas of maintenance: corrective and enhancement maintenance, reuse, and configuration management as well as reverse engineering.


Prerequisites



  • CS core

  • SE Process

  • SE bootcamp


Description


This course covers the reengineering and maintenance aspect of software engineering. Particularly, enhancement maintenance, reverse engineering, reuse and configuration management are considered. This course also covers small-scale practice. For this purpose, there are several homeworks in which the students use CASE tools or other software tools.

Textbooks



  • Takang, A. A., and Grubb, P. A. (1996). Software Maintenance: Concepts and Practice. Boston: International Thomson Computer Press.

  • Leach, R. J. (1997). Software Reuse: Methods, Models, and Costs. NewYork: McGraw-Hill.


Assessment


The final grade is based on the following: 2 exams, 3 homeworks, and 1 group project (4 person per group)


Schedule



  • Week 1: Introduction

  • Business
  • What is maintenance?
  • What is reverse/re- engineering?
  • What is reuse?
  • What is configuration management?

  • Week 2: Corrective maintenance

  • Bugs and bug reports
  • Static analysis
  • Dynamic analysis
  • Regression fault

  • Week 3: Enhancement maintenance

  • Perfective maintenance
  • Adaptive maintenance

  • Week 4: Reverse Engineering I

  • Scope of reverse engineering
  • Codes, specifications, and documentations
  • Domain analysis
  • Design recovery

  • Homework 1: Design recovery

  • Week 5: Reverse Engineering II

  • Static analysis
  • Dynamic analysis

  • Week 6: Project report
  • Week 7: Review & Mid-term exam
  • Week 8: Reuse I

  • Reusability
  • Reverse engineering for reuse

  • Homework 2: Reuse


  • Week 9: Reuse II

  • Design for reuse
  • Object-orientation and reuse

  • Week 10: Configuration management I


  • Version control
  • Documentation and specification

  • Homework 3: Version control
  • Week 11: Configuration management II

  • Multiplatform software
  • Automation

  • Week 12: Reengineering and Maintenance in software cycle
  • Week 13: Current trend and practice
  • Week 14: Project final report
  • Week 15: Review & Final exam

Resources



  • Personnel

  • Instructor
  • TA

  • Hardware

  • UNIX workstation per person (computer cluster)
  • PC per person (computer cluster)

  • Software

  • StP or Rational Rose
  • Software refinary
  • Microsoft word
  • UNIX development tools (c++, make, sccs, etc.)