News
- The project (write-up and code) is now due on Dec. 5 instead of Dec. 1
- The final will be a 24-hour take-home, posted on Dec. 12 and due on Dec. 13
- Project outline is now due on Nov. 5 instead of Nov. 3
- Homework 2 has been posted
- Homework 1 has been posted
- Project suggestions are online
- The first lecture will be on Friday, September 26
Overview
Instructor: Iulian Neamtiu
Lectures: MWF 01:10 p.m. - 02:00 p.m., HMNSS 1502
Office hours: MWF 02:10 p.m. - 03:10 p.m.
Grading: Project (50%) + Final Exam (35%) + Class participation (15%). Homeworks count toward class participation.
Final exam: Take-home, due Dec. 13
Synopsis: Covers the principles, tools, and techniques for disciplined software evolution. Includes migration strategies, change patterns, software maintenance, legacy system reengineering, reverse engineering for program understanding, middleware, source code analysis, software visualization, and program transformation tools.
Schedule
Date | Topic | Reading | Notes |
Sep 26 | Introduction |   |   |
Sep 29 | Software processes | Sommerville, Ch. 4, pp 64--82 (up to sec. 4.4) |   |
Oct 1 | Process activities |   |   |
Oct 3 | Software evolution overview | Sommerville, Ch. 21 |   |
Oct 6 | No silver bullet | No Silver Bullet: Essence and Accidents of Software Engineering | Homework 1 posted |
Oct 8 | "No
silver bullet" reloaded: retrospective on "essence and accidents
of software engineering" "No silver bullet" refired (Brooks, Ch. 17) |   | |
Oct 10 | Rapid software development | Sommerville, Ch. 17, pp 391--405 (up to sec. 17.3) |   |
Oct 13 | XP continued, Agile vs plan-driven methods | Get Ready for Agile Methods, with Care |   |
Oct 15 | Mythical man-month | Brooks: Ch. 2 (full), Ch. 11 (full), Ch. 19 (pp 265--271, 273--275) |   |
Oct 17 | Recent topics in SE | Mens, Wermelinger, Ducasse, Demeyer, Hirschfeld, and Jazayeri, Challenges in Software Evolution | Homework 1 due (at the beginning of class) |
Oct 20 | Fault localization | No reading. Guest lecture by Dennis Jeffrey |   |
Oct 22 | Software Aging | Parnas, Software Aging | Pick project topic |
Oct 24 | SE for C programs |
Neamtiu, Foster and Hicks, Understanding Source Code Evolution Using Abstract Syntax Tree Matching Raghavan, Rohana, Leon, Podgurski, and Augustine, Dex: A Semantic-Graph Differencing Tool for Studying Changes in Large Code Bases |   |
Oct 27 | SE for Java programs | Dig and Johnson, The Role of Refactorings in API Evolution | Homework 2 due (at the beginning of class) |
Oct 29 | Ren, Shah, Tip, Ryder and Chesley, Chianti: a tool for change impact analysis of java programs |   | |
Oct 31 | Apiwattanapong, Orso, and Harrold, A Differencing Algorithm for Object-Oriented Programs |   | |
Nov 3 | Open source | Mockus, Fielding, and Herbsleb, Two case studies of open source software development: Apache and Mozilla |   |
Nov 5 | SE for OS kernels | Spinellis, A tale of four kernels | Project outline due |
Nov 7 | Padioleau, Lawall, Hansen and Muller, Documenting and automating collateral evolutions in linux device drivers |   | |
Nov 10 | Fault prediction | Kim, Zimmermann, Whitehead, and Zeller, Predicting Faults from Cached History |   |
Nov 12 | Dynamic updating | Neamtiu, Hicks, Stoyle and Oriol, Practical Dynamic Software Updating for C |   |
Nov 14 | Arnold and Kaashoek, Ksplice: Automatic rebootless kernel updates |   | |
Nov 17 | Architectural evolution | van der Hoek, Rakic, Roshandel, and Medvidovic, Taming Architectural Evolution |   |
Nov 19 | Schema evolution | Ferrandina, Meyer, Zicari, Ferran, and Madec, Schema and Database Evolution in the 02 Object Database System |   |
Nov 21 | Reengineering | Sneed, Planning the reengineering of legacy systems |   |
Nov 24 | Lehman's laws | Lehman, Rules and Tools for Software Evolution Planning and Management |   |
Nov 26 |   | ||
Nov 28 | No class-Thanksgiving | ||
Dec 1 | Project presentations: Kamal, Tony and Jorge, Ben and Nathan |   | |
Dec 3 | Project presentations: Jude, Jack and Danny, Guowu and Jianbo |   | |
Dec 5 | Project presentations: Glenn, Reaz and Asif | Project due |
Projects
Each student is expected to complete a research project, write up the material describing the project in a similar manner to research papers, and present the project in class (in one of the last three classes in December). The project can have an implementation or theoretical flavor (or both).
The instructor has suggested possible project topics, but the students are encouraged to choose their own topics (as long as they are relevant to this class).
The projects can be completed individually or in teams, with the expectation for team projects being commensurately higher than for individual projects.
Resources
- International Workshop on Principles of Software Evolution (IWPSE): 2007, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998.
- Conferences: ICSM, ICSE, ASE
-
Books
- The Mythical Man-Month by Frederick P. Brooks
- Software Engineering by Ian Sommerville. Web material