Instructor
Dr. Huzefa Kagdi
Room & Time
Butler-Carlton Hall 316 (Egress map/Emergency route)
CS 202 (Egress map/Emergency route)
Tuesday and Thursday, 9:30 AM to 10:45 AM
Resources
Syllabus
Schedulehttp://web.mst.edu/%7Ekagdih/csmst/home.htmlhttp://registrar.mst.edu/documents/egress/egress_compsci_202.pdfhttp://blackboard.mst.edu/http://blackboard.mst.edu/shapeimage_2_link_0shapeimage_2_link_1shapeimage_2_link_2shapeimage_2_link_3

Description

Give graduate students an overview of software evolution and the associated research field. Software artifacts such as source code and design documents are produced in an inherently incremental manner via continuous change. They undergo changes due to factors such as defect corrections, feature additions, and design improvements. This general phenomenon is described as software evolution. The course will focus on the software engineering aspects of software evolution. This includes maintenance, program comprehension, reverse engineering, and analysis methods and techniques. ACM/IEEE Software Engineering Curriculum Guidelines identified software evolution among the ten key areas of software engineering education.

Prerequisite

Breadth course in software engineering (e.g., CS 206) or instructor's permission

Topics

  1. Design and Application Frameworks

  2.   Design Recovery

  3.   Empirical Studies

  4.   Mining Software Repositories (MSR)

  5.   Program Understanding/Comprehension

  6.   Reverse Engineering and Reengineering

  7.   Software Change Management

  8.   Software Analysis and Transformation

  9.   Software Evolution Process Models

  10.   Software Metrics for Maintenance

  11.   Software Traceability

  12.   Software Reuse

  13.   Software Visualization


Reading Material and References

Reading will largely include technical papers from International journals, conferences, and workshops.

Format

The course will be organized in the form of a research seminar. The instructor will give introductory lectures on the various topics of software evolution. Students will be required to read, present, and review papers from the reading list prepared for the course. The instructor will provide the paper review format. Additionally, students will need to do a term project (e.g., software prototype development and in-depth literature survey) and submit a ten-page project report in the form of an IEEE two-column proceedings format. Active participation in the class discussion on papers will be also an integral part of the class. There are no midterm and final exams in this course.

Assessment

  1. Project (including final report and presentation): 35%

  2. Paper Presentations: 35% (~5 papers)

  3. Paper Reviews: 10%

  4. Daily Class Participation: 20%

  5. No Exams

News & Announcement