Foundations of Software Engineering

Fall 2013 Goto 2014 edition
Lecture: Tuesday/Thursday 3:00 - 4:20 p.m., GHC 4211
12 units

Section A: Wednesday 1:30-2:20, DH 2122
TA: Michael Maass and Patrick Woody, mmaass [at] cs [dot] cmu [dot] edu and pwoody [at] andrew.cmu.edu, Office Hours: Tuesday 5:30-6:30 and Thursday 4:30-5:30

Instructors

Professor Christian Kästner
kaestner@cs.cmu.edu
Office Hours: Monday 2:30 - 3:30 p.m. in Wean 5122

Professor Bill Scherlis
Open Door Policy: If the instructors' office doors is open and no-one else is in a meeting, we are happy to answer any course-related questions.  For appointments, email the instructors.

Schedule of Topics, Readings, and Assignments

Details, slides, assignments, and announcements can be found on blackboard.

Below is the preliminary schedule of topics for the course. Assignments are due at 11:59 p.m. on their scheduled due date (unless otherwise indicated within the assignment document).

2013

Unit

Topics

Recitations

Assignment Due

27-Aug

Software Engineering

What is Software Engineering/Course Structure

Modern IDEs

 

29-Aug

Testing

QA and reliability

  

3-Sep

 

Practicum presentations

Source repositories

1. Practicum report

5-Sep

 

Practicum presentations

  

10-Sep

Testing

Maintaining code (docs, refact, contin integ)

Unit testing tools

2a. OSE project descr

12-Sep

Testing

Quality attributes

  

17-Sep

Analysis

Inspection and bug reporting

Build tools

 

19-Sep

Analysis

Testing and coverage

 

3. Unit tests, coverage

24-Sep

Development

Static analysis: automating inspection, conc.

Analysis tools

 

26-Sep

Testing

Concurrency and dynamic analysis

 

4. Inspection (for concurrency)

1-Oct

Design

Design principles

The UML

 

3-Oct

Design

Design Patterns, Frameworks and Libraries

 

5. Static+dynamic analysis

8-Oct

Architecture

Architecture

Pattern recognition

 

10-Oct

Architecture

Architecture in practice

  

15-Oct

Design

Design Process

Review

 

17-Oct

 

Midterm

 

6. Pattern mining

22-Oct

Requirements

Requirements specification

Midterm post-mortem

 

24-Oct

Requirements

Standards and compliance

  

29-Oct

Requirements

Small team processes, earned value

Framework Tour (TA choice)

 

31-Oct

Process

Iteration and risk

  

5-Nov

Process

Scrum and small-team practice

Requirements

7. Requirements, team

7-Nov

 

OSE Presentations

  

12-Nov

 

OSE Presentations

Concurrency

2b. OSE report

14-Nov

 

OSE Presentations, Teams

  

19-Nov

Software Engineering

Architecture/Organization/Business (STEs)

No recitation

 

26-Nov

Process

Small team experience

Integration Day (demo)

 

28-Nov

 

Requirements Presentations

  

3-Dec

Software Engineering

Language/Tools/Infrastructure/Process

Final demo/Review

 

5-Dec

Software Engineering

Course summary and reflection