Syllabus

290G - Topics in Software Engineering - Winter 2005

Software Evolution

Week 1: Software Evolution Introduction

January 4:
Course overview, introduction to Kenyon software evolution infrastructure

January 6:
Due: Software Aging

Week 2 - Software Evolution Introduction (2)

January 11:
Due: Does Code Decay? Assessing the Evidence from Change Management Data
Due: Rules and Tools for Software Evolution Planning and Management

January 13:
Due: Two Case Studies of Open Source Software Development: Apache and Mozilla

Week 3 - Mining Software Configuration Management Repositories

January 18:
Due: Research Infrastructure for Empirical Science of F/OSS
Due: Populating a Release History Database from Version Control and Bug Tracking Systems
Due: Term project description (1 page)

January 20:
Due: Preprocessing CVS Data for Fine-Grained Analysis
Due: Mining CVS repositories, the softChange experience

Week 4 - History-Guided Understanding (1)

January 25:
Due: Four Interesting Ways in Which History Can Teach Us About Software
Due: Hipikat: Recommending Pertinent Software Development Artifacts

January 27:
Due: Mining Version Histories to Guide Software Changes

Week 5 - History-Guided Understanding (2)

Feburary 1:
Due: CVS Release History Data for Detecting Logical Couplings

Due: An Integrated Approach for Studying Architectural Evolution

February 3:
Due: Detecting Merging and Splitting Using Origin Analysis

Week 6 - Visualization

February 8:
Due: Visualizing Software Changes
Due: Visualizing Software Release Histories: The Use of Color and Third Dimension

Feburary 10:
Due: Unifying Artifacts and Activities in a Visual Tool for Distributed Software Development Teams
Due: Exploring Software Evolution Using Spectrographs

Week 7 - Code Clones

February 15:
Due: An Ethnographic Study of Copy and Paste Programming Practices in OOPL
Due: Assessing the Benefits of Incorporating Function Clone Detection in a Development Process

Feburary 17:
Due: Problems Creating Task-relevant Clone Detection Reference Data
Due: Rough draft of final project report

Week 8 - Dependency Evolution

February 22:
Due: A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance

February 24:
Due: Identification of Software Instabilities

Week 9 - Analysis Techniques

March 1:
Due: Flexible Consistency Checking

March 3:
Due: A Unified Interprocedural Program Representation for a Maintenance Environment

Week 10 - Evolution Case Studies

March 8:
Due: Using Software Trails to Rebuild the Evolution of Software
Due: An Empirical Approach to Studying Software Evolution

March 10:
Due: In-class presentation of term research project

March 18:
Due: Final project report

Last modified: 12/29/2004