CprE 556: Scalable Software Engineering
Spring 2011

 


 
Instructor

Professor Suraj C. Kothari
kothari at iastate dot edu, 
(515) 294-7212
Office: 3132 Coover Hall

 

Teaching Assistants
 
   
   

 


Contents

Syllabus Class Activities Research Papers Projects Office Hours
Homework Grading Links WebCT  

 

Link1

Link2

 

 

 

 


Syllabus

Aim:
 This course will focus on working with real-world software that is often hard to understand and analyze because of its size and complexity. The objective of the course is to learn strategies and tools for applying  high-level reasoning to complex software in various contexts such as defect analysis, impact analysis, safety or security concerns, or developing architectural views of the software.

Topics:
 

You will be engaged in analyzing complex software, learning new tools for analyzing software, reading technical papers, communicating your knowledge through written documents and oral presentations, and above all critical thinking and problem solving.

Textbook:
 The material will be selected from research papers and reference books. The website has a list of papers.

Expected Work and Grading:

  1. Weekly homework (75%)

  2. Final  Exam (25%)

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
The departmental policy will be followed. Students with disability should inform the instructor so that appropriate arrangements can be made to help them.

Office hours

  Hours Location
Professor Kothari Tuesday 9:30-10:20, Thursday 1:10-2:00 3132 Coover Hall


Students can always make appointments outside the office hours.  Make appointments by talking to the instructor before or after the class. Appointments are not necessary during scheduled office hours.


Class Schedule

Week

Lecture Topics

Homework Problems

Reading

Week 1

Reasoning about complex software: Introduction

Introduction to Software Configuration Management (SCM)

Slides PPT  PDF

 

 

Week 2 Introduction to Software Evolution (PPT and  PDF), a fun quiz on computer evolution (PPT PDF) , code sample (PDF) for the discuss on Thursday (1/19) regarding cross-cutting memory leaks and how to analyze those. 

Lecture 4: Defect Analysis -1 (PDF)

 

Homework 1 Due on Thursday, January 26, statement (WORD PDF), CODE (ZIP)

 

Week 3

Lecture 5: Memory Leaks  (PPT)

Lecture 6: Introduction to Security Vulnerabilities (PPT)

Homework 2  Due on Thursday, February 2, statement and code (WORD),

 

Week 4 (Jan 30-Feb 3)

Lecture 7: Two security Vulnerabilities Buffer Overflow (PDF) and SQL Injection  ( PDF)

Lecture 8: Program Analysis (PDF)


 
 
Week 5

(Feb 6-Feb10)

Lecture 9-10 Introduction to Static Analysis (PDF)

(Note: Lecture 9 file is replaced by a new file that combines lectures 9 and 10)

Homework 3  Due on Thursday, February 16, statement (PDF)

 

 

Week 6

(Feb 13-Feb17)

Lecture 12- Program Comprehension (PDF)

We will use the XINU as the first case study for program comprehension and discuss strategies to understand the file system code. The required code Xinu-Source (zip file, will be needed for HW-5)

Homework 4  Due on Thursday, February 23, statement (PDF)

 
Week 7

(Feb 20- Feb 24)

Document (PDF): Basics of the Xinu File system ( will be needed for HW-5)

Concern-based program understanding (PDF) About FEAT tool (PDF)

Homework 5 Due on Thursday, March 9, statement (WORD or PDF)

Use the already posted Xinu-Source and the document on basics of the Xinu File system.

 

 
Week 8

A worldwide competition for software developers - an article from Wall Street Journal (PDF) - I think you will find it interesting. (An Iowa State Alumni is an executive for the company that hosts these competitions) 

Human Complexity of Software Lecture 15 (PPT)

How would I go about understanding Xinu File System - student responses (PDF)

 
Week 9

Software Defect Analysis using C-Vision tool - Flash Demo  You can download the file and use the Flash viewer to see the demo.

(Demo File)

 

 
Week 10

Spring Break

 

 
Week 11

March 20- March 24

Lecture 19 - Program slicing and it application to efficient debugging (PPT)

Version Model (PPT)

HW-6 (WORD):  Program Slicing (Due March 30)

HW-7 (WORD):  Detecting memory leaks using CVision tool (Due April 6)

 
Week 12

March 27- March 31

Configuration Management (PPT)

 

 
Week 13

April 3 -April l7

 

 

 
Week 14

April 10 - April 14

Software verification using abstraction and refinement (PPT)

 
Week 15

April 17 - April 21

Details of the final exam

A position paper - starting point for one part of the final exam

 

 
Week 16

April 24- April 28

Individual Interactions

 

 
Week 17

Final Exam on Thursday, May 4, 7:30 to 9:30 (Final Exam Schedule posted on university website)

 

 

 

Papers

1.        MOPS: An Infrastructure for Examining Security Properties of Software, by Hao Chen and David Wagner

2.        Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code, by Dawson Engler, David Yu Chen, Seth Hallem, Andy Chou, and Benjamin Chelf

3.        Jeromy Carriere Rick Kazman. Playing detective: Reconstructing software architecture from available evidence. Technical Report CMU/SEI-97-TR-010 3, page 52, 1997.

4.        F. P. Brooks, Jr. The Computer Scientist as Toolsmith, Communications of the ACM, 39:61–68,1996.

 


Links