MWF 12.10-1.00, Coover 1213
Instructor
Professor Suraj C. Kothari
|
Teaching Assistants
|
Contents
Aim:
The objective
of the course is to learn about the real-world challenges of
maintaining and evolving large software.
Upon completion of this course, students will
have the ability to:
Explain important aspects of software evolution and maintenance.
Identify and apply appropriate program reading strategies.
Use different types of program comprehension tools.
Evaluate program analysis techniques and tools.
Perform defect analysis and quality inspections of software.
Gather, analyze, and present information on technical topics.
Lectures:
Meeting Times: M W F 12.10-1.00
Location: Coover 1213
Regular attendance and participation in the lectures is required. Instructor should be informed if you are going to miss a lecture.
Topics:
Aspects of software evolution and maintenance such as program comprehensions, defect analysis etc.
Process and planning such the IEEE/EIA 12207 life cycle process.
Tools such as program comprehension and defect analysis tools.
Current research such as concern-based program analysis and software visualization.
Learning Activities:
Discussion of foundational material.
Gathering information from the Internet.
Goal-directed reading of expository and research papers.
Empirical studies with source code and tools.
Critical analysis of the proposed problem solving techniques.
Presentations on project work.
References:
The
material will be selected from research papers and reference books. The website
has a list of papers. The reference books are listed below.
Projects (45%)
Weekly homework assignments (45%)
Attendance, participation, and exemplary work (10%)
There will be three or four projects which will involve activities such as experimenting with tools, goal-directed reading of large software, defect analysis of software, writing reports, and giving PowerPoint presentations.
Both the homework and the projects will involve reading technical papers. You will be using the ISU Electronic Library a lot.
All homework answers must be well written and typed. Hard copies should be submitted at the beginning of the class on due dates.
Grading will be pretty close to the scale with A:91% and above, B:81% to 90%, and so on.
Academic Integrity
All your
work (including the labs) should be done individually unless otherwise
specified. You are not allowed to use work done by others, or obtain the answers
directly in any form (such as from the web). If you have any questions
about what is allowed/not allowed, please contact the instructor or the
TAs.
Any cases of cheating will be dealt with the strictest possible
measures allowed by the university, please refer to the university
policies on academic dishonesty.
Disability
Students with disability should inform the instructor so that appropriate
arrangements can be made to help them.
Office hours
Hours | Location | |
Professor Kothari | Mon 2:30-3:30, F 1:10-2:10 | 3132 Coover Hall |
Students can make appointments to see the instructor outside the office hours. Make appointments by talking to the instructor before or after the class. Appointments are not necessary during scheduled office hours.
Week |
Day |
Lecture Topics |
Reading |
HW/Project |
Week 1 | M Aug 22 | General Introduction(PPT) PDF |
| |
W Aug 24 | Overview of Software Evolution (PPT) (PDF) | |||
F Aug 26 | Overview of Software Maintenance (PPT) (PDF) | Paper cited in HW-1 | ||
Week 2 | M Aug 29 | Program Comprehension (PPT) (PDF) | HW-1 9/2 | |
W Aug 31 | Structural Analysis Java (PPT) (PDF) | |||
F Sept 2 | Summary Lecture (PPT) (PDF) (code example) | Papers for HW-2. | ||
Week 3 | M Sept 5 | Holliday | Proj-1 9/7 HW-2 9/9
| |
W Sept 7 | FEAT Project and Tool (PPT) (PDF) | Papers for Project 1. | ||
F Sept 9 | FEAT Project and Tool | |||
Week 4 | M Sept 12 | FEAT Project and Tool | HW-3 9/16 Interim Report | |
W Sept 14 | Concern-based Program Comprehension (PPT) (PDF) | |||
F Sept 16 | Concern-based Program Comprehension | |||
Week 5 | M Sept 19 | Efficient Debugging (PPT) (PDF) | Proj-1 draft 9/21 HW-3 9/23 Final Report | |
W Sept 21 | Guest Lecture by Mike Lockwood from Lockheed Martin | |||
F Sept 23 | Feedback on Project 1 Interim Reports Efficient Debugging Demonstration | |||
Week 6 | M Sept 26 | Proj-1 9/28 HW-4 9/30 | ||
W Sept 28 | ||||
F Sept 30 | ||||
Week 7 | M Oct 3 | HW-5 10/7 | ||
W Oct 5 | ||||
F Oct 7 | ||||
Week 8 | M Oct 10 | |||
W Oct 12 | ||||
F Oct 14 | ||||
Week 9 | M Oct 17 | |||
W Oct 19 | ||||
F Oct 21 | ||||
Week 10 | M Oct 24 | |||
W Oct 26 | ||||
F Oct 28 | ||||
Week 11 | M Oct 31 | HW-7 11/2 | ||
W Nov 2 | Hands on Experience with the C-Vision Tool | |||
F Nov 4 | ||||
Week 12 | M Nov 7 | |||
W Nov 9 | ||||
F Nov 11 | ||||
Week 13 | M Nov 14 | |||
W Nov 16 | ||||
F Nov 18 | ||||
Week 14 | M Nov 21 | Thanksgiving Break | ||
W Nov 23 | ||||
F Nov 25 | ||||
Week 15 | M Nov 28 | |||
W Nov 30 | ||||
F Dec 2 | ||||
Week 16 | M Dec 5 | |||
W Dec 7 | ||||
F Dec 9 | ||||
Week 17 | M Dec 12 | Exam week | ||
The objective of this project is to study some source code comprehension tools and communicate your knowledge through presentations and demos of the tools. Tools and the underlying abstractions are active areas of research. We will discuss the abstractions and the highlights of the research in the class. Several source code comprehension tools are listed at URL: http://grok2.tripod.com/code_comprehension.html
You will do the following:
8/26-9/7 | Select your team members. Download Wink and learn how to use it. Read the report on the comparative study of five tools; the URL is given below. Gather information on tools from the Internet. Submit the first interim report on your work on 9/7 including a log of your work. Note that each person keeps a separate log and submits it individually. Identify the names of team mates on your log. |
9/7-9/21 | Experiment with the tools and prepare the first draft of your presentation. Email: 1. Draft of your presentation on 9/21 (one per team), 2. A Word document that includes a log of your work and comments describing your learning experience thru this project. |
9/28 | Submit the final presentation and the demo by email 9/28. |
10/3-10/7 | Presentations will be scheduled: |
Resources:
Word Document or PDF
CPRE 416: Software Evolution and Maintenance Homework 1 (10 points)
Assigned: August 26, 2005
Due: September 2, 2005 at the beginning of the class
Name: Fill in on your answer sheet
Read the assigned paper on the software maintenance study conducted by NASA and answer the given questions. URL for the paper: http://www.cs.umd.edu/projects/SoftEng/ESEG/papers/ICSE96.html
QUESTIONS:
The homework is worth 10 points, out of which 2 points will be for the quality of writing, presentation, and following instructions. Copy the top 4 lines and fill in your name on the answer sheet. The homework must be type written.
CPRE 416: Software Evolution and Maintenance Homework 2 (20 points)
Assigned: September 2, 2005
Due: September 9, 2005 at the beginning of the class
Name: Fill in on your answer sheet
Search relevant paper(s) and look for material on program slicing to answer the given questions.
Start with the paper we discussed in the class on econometric modeling for estimating program comprehension efforts (URL for the paper: http://portal.acm.org/citation.cfm?id=837837)
Note that the papers can be downloaded from ISU Electronic library. We have discussed in class how to use the Electronic Library.
QUESTIONS:
The homework is worth 20 points, out of which 4points will be for the quality of writing, presentation, and following instructions. Copy the top 4 lines and fill in your name on the answer sheet. The homework must be type written.
Homework 3 (Click to download Xinu Code Word Copy of HW-3 )
CPRE 416: Software Evolution and Maintenance Homework 3 (40 points)
Assigned: September 9, 2005
Due: 1. September 16, Interim Report, 2. September23, Final Report
Name: Fill in on your answer sheet
Imagine that you have an interview in two weeks with the company Xinuworks. The position is with the file systems group and the job involves enhancing and maintaining the file systems code for the Xinu operating system. You need to prepare for the interview by reading the Xinu code with particular emphasis on the file system code. You try to understand the Xinu file system code with the help of in-line documentation and also whatever information you can find on the web about Xinu.
For this homework you are going to write a document about your experience of reading this real-world Xinu code. Specifically, do the following:
Log your effort (dates and time you have spent on this homework. This should be a separate page attached at the end of the final report. All the documents must be typed using a word processor with proper formatting etc. Use the 10 or 11 point font.
I will look for creativity, substantial amount work, and a well written document.
You can have discussions with your classmates but never see or share each other’s documents in any form.
There are different implementations of Xinu for different platforms. You should use the specific implementation that I have provided for this homework.
Bonus points will be given if you use a program comprehension tool and discuss how the tool was useful.
There will be 10% penalty if the documents are not submitted in class on the due dates.
NOTE: Download and extract the Xinu code by decompressing the zip file. If you have any difficulties or if you have any other questions ask those in class on Monday, September 12.
Homework 4 (In MSWord Format)
CPRE 416: Software Evolution and Maintenance Homework 4 (15 points)
Assigned: September 23, 2005
Due: September 30, 2005
Name: Fill in on your answer sheet
The objective of this homework is for you to review and apply the material from the discussions in class on slicing and its use for efficient debugging.
Reference for the material discussed in class: Efficient debugging with slicing and backtracking, http://www2.umassd.edu/SWPI/slicing/purdue/TR80P.pdf
1: int x, i;
2: x = 0;
3: read(i); /* Get an integer value for x */
4: switch(i) {
5: case 0: x += 1;
6: break;
7: case 1:
8: case 2:
9: case 3: x += 2;
10: default: x += 3;
11: } /* end switch */
12: printf("i = %d\tx = %d\n", i, x);
Instructions: As usual copy the top for lines at the top of your answer sheet. The answers must be typed and well formatted using a word processor. Include the above code in your answer sheet, include each question followed by its answer. This homework should be done completely independently; do not discuss it with your classmates. I will take some points off if these instructions are not followed
This homework requires you to apply the control flow logic of the switch statement. In case you do not know how it works, refer to a C book or some reference on C.
Answer the following questions with respect to the above code.
We have discussed in class precise definitions for program slicing. I will look for precise answers based on those definitions..
There will be 10% penalty if the homework is not submitted in class on the due date.
Homework 6 (MS Word, PDF, Needed Code Files (zipped folder) )
Homework 7 ( MS WORD PDF )
Code Reading and Program Comprehension – annotated bibliography - http://www2.umassd.edu/swpi/processbibliography/bib-codereading2.html#Deimel90
Software Evolution http://www.program-transformation.org/Transform/TeachingSoftwareEvolution
FEAT project. http://www.cs.ubc.ca/labs/spl/projects/feat/
Robillard Home Page: http://www.cs.mcgill.ca/~martin/
Concern Graph URL: http://www.cs.ubc.ca/labs/spl/projects/concerngraph.html
ISU-Rockwell DARPA SEC project. http://dirac.ee.iastate.edu/sec/
Aristotle research group. http://www.cc.gatech.edu/aristotle/
AspectJ. http://eclipse.org/aspectj/
Java structural analysis tool, user guide. http://www.alphaworks.ibm.com/tech/sa4j.
The aspect-oriented software architecture design (TAOSAD) portal. http://trese.cs.utwente.nl/taosad/
Rigi Tool: http://www.rigi.csc.uvic.ca/
FEAT Project URL: http://www.cs.ubc.ca/labs/spl/projects/feat/
JEX Project URL: http://www.cs.mcgill.ca/~martin/jex/
CodeSurfer. http://www.grammatech.com/products/codesurfer/codesurfer.html
CMU Software Architecture Website: http://www.sei.cmu.edu/ata/ata_init.html
Star Tool Website: http://www.cse.ucsd.edu/~wgg/Software/StarTool/
Bandera project. http://bandera.projects.cis.ksu.edu/