CSSE 575 Schedule

Summer 2015-6

Week

Session

Topics

Slides

Preparation

Project Work Due

 

1

Tues, June 7 - Google Hangout at 5:30 PM

Course intro

 

 

 

Intro to software maintenance & evolution

  Intro

 

 

Details of project work in the course

See links to project work, below

 

 

 

 

 

 

 

 

 

Start Part 1 - Better software at the coding level!

Start Fowler book

Software Change

Fowler, Ch 1 - 3 (but I'm bringing the books to class!)

 

Bad smells - 1 & 2. 

Bad Smells - 1

 

 

 

Bad Smells - 2

 

 

Time for initial discussion & practice on project work, meetings with Steve

 

 

 

 

 

 

Mon, Jun 13, 7 AM - Milestone 1, Journal

 

2

Tues, June 14

Refactoring principles

Refactoring

Fowler, Ch (2,) 6, 7, 8

Composing methods 

Composing 

 

 

 

 

 

 

 

 

 

 

Moving features between objects

Moving

 

 

Organizing data

Organizing

 

 

 

Time for initial discussion & practice on project work, meetings with Steve 

 

  What if people did maintenance for free? Watch "Zen and the art of software maintenance" before class

 

Simplifying conditional expressions

  Conditionals

(we did this one a week early)

 

Try for Mon, Jun 20, 7 AM - Milestone 2, Journal

 

3

Thurs, June 30 (a replacement date)

Making method calls simpler 

Method calls 

Fowler, Ch 9, 10, 11, 12

 

 

 

 

 

 

 

Dealing with generalization Generalization We'll look at what Visual Studio does, from their website.  

Big refactorings

Big refactorings 

  Read the example, "Little steps and big smells" for discussion in class. And there was a more promising sounding article, but it disappeared - sorry!

Instead read "How to do large scale refactoring," including the link to Martin Fowler's cute "Strangle the classes."

Time for initial discussion & practice on project work, meetings with Steve

 

And read about "lambdas as refactoring!"

 

 

 

If we have time left today, we'll discuss the first topic for Week 9 - software evolution - see first Weeek 9 reading, below

Mon, Jun 27, 7 AM - Milestone 3, Journal

 

4

Tues, July 5 (moves Week 5 meeting forward)

Start Part 2 - Better software by higher-level tactics!

 

 

Early versions of these slides are now out there, so you can preview our discussions:

Please at least scan these articles below for key ideas !

Stepping back to view swre maint and evolution

 

Swre maint issues

Process case history

 

 

 

 

 

 

 

 

The swre maint process

Swre maint process

Maintainability article

Role of software documentation

Documentation 

Documentation article

 

Program understanding

Program Understanding

Automated smell detection

 

Intro to Exam 1

 

Get take home Exam 1.

 

Time for initial discussion & practice on project work, meetings with Steve

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Mon, 7 AM - Milestone 4, Journal

5

Thurs, July 7 (alternative)

 

Reengineering and Reverse engineering

Here are early versions of the slides:

 

Reeng & Rev eng

Please at least scan these articles below for key ideas :

Reverse Engineering survey paper

 

 

 

 

 

 

 

 

 

I'll also talk about a couple of reverse engineering studies.   If you'd like to look at them (optional), the case studies are here and here.  

Reverse engineering tools

Rev eng tools

Reverse Engineering tool paper

 

Impact analysis 

Impact analysis

Impact paper

 

Review of first exam

You can discuss your answers and thoughts

 

 

Time for initial discussion & practice on project work, meetings with Steve

 

 

 

 

 

 

Mon, 7 AM - Milestone 5, Journal

 

6

Fri, July 15 - (Alternate time due to Steve's travel)

Seam model (from Michael Feathers' book)

  Seam Model

Read Feathers Ch 4, which is about his Seam model.

 11:55 PM - Exam 1- turn in on Moodle !!!

Changing software 1 - common problems. 

Problems Changing Swre -1

Read Ch 6 and skim the others so you get what they are about. We'll hit highlights of key chapters in class.

 

 

 

 

 

 

 

 

Changing software 2 - heuristic solutions.

Problems Changing Swre - 2

Then pick a few topics from chapters 7 - 23, which look relevant to your project, and study these thoroughly. The weekly assignment will include trying the things they recommend.

 

Breaking dependencies

Breaking Dependencies 

In his Ch 25, Feathers deals with techniques for this. Pick three and focus on those (for class discussion and for the weekly assignment).

 

Time for initial discussion & practice on project work, meetings with Steve

 

 

 

 

 

 

Mon, 7 AM - Milestone 6, Journal

 

7

Tues, July 26 ( I'll be connecting from CA, on vacation)

Start Part 3 - Theory of Maintenance

 

We'll start by discussing what each person did with material from Feathers!

 Model-based design for Maint

Model-based

Review the CMM model for maint

 

 

 

 

 

 

 

Evolution of versions and config mgmt

Versions & config 

Fun article - a practitioner's tips to config mgmt during maintenance

Reuse-based software maint & evolution 

Reuse-based 

A cool article on preventive maintenance.

The material used in the slides, from Jarzabek, can be found here.

Time for initial discussion & practice on project work, meetings with Steve

 

 

 

 

Mon, 7 AM - Milestone 7, Journal

 

8

Fri, July 29 (pushed back because prior week was put in its place)

Evolvable products

Product lines and Evolvability intro

Read about the product line approach, and a paper on evolvability.

Analysis of software repositories 

Repositories

Read this survey article on mining swre repositories.

 

 

 

 

 

 

 

 

Predicting bugs and costs

Predicting Bugs

A good bug prediction paper that takes on one aspect!

 

Time for initial practice on project work, meetings with Steve

 

 

Mon, 7 AM - Milestone 8, Journal

  Skipping Tues, Aug 2 (I'm at SEI in Pittsburgh)        

 

9

Tues, Aug 9

Theory of software evolution - discussed June 20

Evolution - with visualization

Paper on software evolution & Swre visualization video

Read paper on Swre Evolution

A model for evolutionary growth - discussed June 20

Evolutionary Growth

Read paper on evolution theory

 

 

 

 

 

 

 

 

Statistical modeling

Statistical modeling

Read paper on measuring complexity

 

 

Special - Steve's SEI presentation about architecture and maintenance

Mon, Aug 15, 7 AM - Milestone 9, Journal

        Get Exam 2See also Practice Exam and take home Exam - 2 from earlier classes.  

 

10

Thurs, Aug 18 (Moved to accommodate Matt)

Measurable maintainability

Measurable maintainability

Can we measure this? and Measuring Open Source Products' Maintainability

 

Maintenance management

Maintenance Management

An Outsourced View of Maint Mgmt

 

 

 

 

 

 

 

 

Final discussions

 

 

Presentation

Summary

 

Course evaluations. 

 

 

Exam - 2 due, 11:55 PM, on Moodle !!! 

Final project meetings with Steve