CSC 7110: Software Engineering Environments and Tools
a.k.a. CSC 7110: Software Analysis

Winter Term 2015
Meetings: Monday and Wednesday 04:30PM - 05:50PM
Room: 318 STAT (State Hall)
Instructor: Prof. Marwan Abi-Antoun
E-mail: (Please include CSC 7110 in the subject line for faster replies.)
Phone: (313) 577-2831 (Please call only during regular office hours. However, you may send email anytime.)
Office: Suite 14.110.2 Maccabees Building
Office Hours: Monday and Wednesday, 3:30PM – 4:30PM or by appointment.

Blackboard: Important information will be posted on Blackboard (


There are no required textbooks. Some optional references:

Schedule of Topics, Readings, and Assignments

The slides for the lectures will be in Blackboard. This schedule is tentative and subject to change. Please check back regularly. A date with an asterisk * indicates an exception to the office hours. Please make an appointment to see the instructor at a different time if needed. The important deadlines are highlighted. Generally, all assignments are due before class on the due date.

Quizzes to be announced at a later date.

# Date
Assignment (dates subject to change!)
Static Analysis
1 Jan 12‡ Course introduction  

‡ Jan 26: Last Day to Add/Drop Classes
(with tuition cancellation)

2 Jan 14 Introduction to Static Analysis
Abstract Syntax Trees
Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions  
  Jan 19 University Holiday -- no class    
3 Jan 21 Program Semantics   Assignment1: Program Semantics and Representation (written)
(Due Jan. 28)
4 Jan 26 AST Visitor 1


5 Jan 28 AST Visitor 2   Install Crystal static analysis framework
Read Getting Started
Assignment2:  Visitor-based static analysis using Eclipse/Crystal
(Due Feb. 04)
6 Feb 02 University closed -- no classes    
7 Feb 04 Crystal Static Analysis Framework: AST-based analyses
Crystal Static Analysis Framework: Demo
Overview of Eclipse
Using Eclipse for Static Analysis
8 Feb 09 Dataflow Analysis: Introduction; Zero Analysis    
9 Feb 11 Dataflow Analysis: Lattices, Abstraction Functions, Control Flow Graphs    
10 Feb 16 Dataflow Analysis: Flow functions, Worklist algorithm    
11 Feb 18 Dataflow Analysis: Worklist algorithm; Practice exercises   Assignment3: Dataflow Analysis (written)
(Due Feb. 25)
12 Feb 23 Dataflow Analysis: Constant Propagation; Flow sensitivity; Reaching Definitions;     
13 Feb 25 CUT: Dataflow Analysis: Live Variables;
Dataflow Analysis:  Correctness: Termination; Soundness
  Assignment4: Dataflow Analysis (written/programming)
(Due Mar. 11)
14 Mar 02* Crystal Static Analysis Framework    
15 Mar 04* Midterm Exam   * Instructor not available to meet Mar. 02 -- Mar. 06
16 Mar 09 Project discussion    
17 Mar 11 Project discussion
Midterm Solution
  Mar 16

Spring Break -- No classes

‡ Mar 16-- Mar 21: Spring Break.
Mar 18
Analysis tools
18 Mar 23 Dataflow Analysis: PREfix   Project: proposals due
19 Mar 25‡ Dataflow Analysis: Inter-procedural analysis A Static Analyzer for Finding Dynamic Programming Errors ‡ Mar 29: Last day to Withdraw.
Type systems
20 Mar 30 Featherweight Java 1 Featherweight Java: a Minimal Core Calculus for Java and GJ
(first 11 pages) 
21 Apr 01 Featherweight Java 2    
22 Apr 06 Featherweight Java 3    
23 Apr 08 Check-Your-Understanding (CYU) activity
Review of Featherweight Java quiz
  Project: interim status report due
Quiz on Featherweight Java
Dynamic analysis
24 Apr 13 Dynamic Analysis 1    
25 Apr 15 Dynamic Analysis 2    
Special topics
26 Apr 20 Security Analysis 1    
27 Apr 22 Security Analysis 2    
28 Apr 27‡ Industry case study: quality at Microsoft
Official Course Evaluations
  ‡ Instructor will not be present while students complete the evaluation forms.
‡ April 27: Classes End.
  Fri May 1 Final Project Presentations
Same time: 04:30PM - 06:30PM
5057 Woodward Room 3104.7
  Project: presentations and final reports due
Based on the University's official schedule for finals.


Academic integrity: Violations of academic integrity will be handled in accordance with the WSU policy.

Special accommodations: If you have a documented disability that requires accommodations, you will need to register with Student Disability Services for coordination of your academic accommodations. The Student Disability Services (SDS) office is located at 1600 David Adamany Undergraduate Library in the Student Academic Success Services department. SDS telephone number is 313-577-1851 or 313-577-3365 (TDD only). Once you have your accommodations in place, I will be glad to meet with you privately during my office hours to discuss your special needs. Student Disability Services’ mission is to assist the university in creating an accessible community where students with disabilities have an equal opportunity to fully participate in their educational experience at Wayne State University.

Late day policy: Each student has 5 late days for the entire semester which can be used on any assignment, so long as the assignment hand-in is not on the critical path for the following assignment.  When turning in your work, just let the instructor know how many late days you are using for that assignment. Work turned in late after the late days are used up will only be accepted under extraordinary circumstances, such as a documented medical emergency. In other words, after you use all your late days, you will get a grade of zero for every assignment that you turn in late. Late days cannot be used for the final project presentations or reports.

Possible topics

Possible tools

Possible assignments

Possible readings

Credits and Acknowledgements

This course reuses, by written permission, material by Professor Jonathan Aldrich from Carnegie Mellon University.

Last Updated: Tuesday, April 28, 2015 10:51:11 AM