CS 160 - Software Engineering

Cay S. Horstmann

Fall 2006

Announcements

Schedule (Subject to frequent change)

Aug. 23
First day of class
Sign up for wireless laptop account (or confirm your login)
Windows users: Install Cygwin
Lecture: The software development process
Reading: Kruchten, Rational Unified Process, Ch. 1
Aug. 25 Registered students: Last day to email me your prerequisite quiz
Students wishing to add: First day to email me your prerequisite quiz
Aug. 28
Note classroom change to SCI311
Be sure to bring your laptop
Lab: CVS
Aug. 30
Lecture: Project management
Be sure to bring your laptop
Reading: Greene/Stellman, Project Management, Ch. 4
Sep. 4 Labor Day
Sep. 5 Last Day to Drop
Students wishing to add: Last day to email me your prerequisite quiz
Project teams formed
Sep. 6
Lecture: Requirements analysis
Reading: Greene/Stellman, Project Management, Sec. 6.1 - 6.3
Lab: GanttProject
Sep. 11
Lecture: Effective Use Cases
Lab: Writing use cases
Reading: Adolph/Bramble/Cockburn/Page: Patterns for Effective Use Cases. Read the following patterns: EverUnfoldingStory, LeveledSteps, ScenarioPlusFragment, ExhaustiveAlternatives, ActorIntentAccomplished, and Adornment.
Sep. 13
Lecture: Risk management and progress tracking
Lab: Track+
Sep. 18 Homework 1 (Schedule/Requirements)
Lecture: Architectural design
Reading: Fowler et al., Patterns of Enterprise Application Architecture
Sep. 20
Team progress report
Lecture: Design documentation
Reading: Larmen Ch. 16
Lab: Architecture/GlassFish
Sep. 25
Lecture/Lab: Build automation with Ant
Reading: Larmen Ch. 15
Sep. 27
Team progress report
Lecture: Design patterns
Oct. 2
Lecture/Lab: Design choices
Oct. 4
Exam 1 | Solutions Section 1 | Section 2
Oct. 9
Lecture: Testing
Reading: Hamill, Unit Test Frameworks
Lab: Unit testing
Homework 2 (Ant/GlassFish)
Oct. 11
Team progress report
Section 1 notes | Section 2 notes
Oct. 16 Team progress report
Lecture: Project metrics | Notes
Lab: Dashboards
Oct. 18
Lab 10 | Notes
Oct. 23
Team progress report
Lecture: Refactoring
Lab 11
Oct. 25
QuickieQuiz Reading: Fowler, Refactoring
Ch. 3 until Speculative Generality (inclusive)
Ch. 6 until Remove Assignment to Parameters (inclusive)
Ch. 11 until Collapse Hierarchy (inclusive)
Oct. 30
Homework 3 (Testing)
Team progress report
Notes
Lab: RUP
Nov. 1
Lecture: Agile Methods 1
Notes
Reading: Beck, Extreme Programming
Nov. 6
Lecture: Agile Methods 2
Lab: Agile Methods
Nov. 8
Lecture: Walkthroughs and inspections
Reading: Spinellis, Code Reading
Nov. 13
Lecture: Open Source Software
Notes
Lab: Code Inspections
Nov. 15
Team progress report
Lab: Design your Midterm
Nov. 20
Exam 2.
Nov. 22
Lecture: People and team management
Nov. 27
Lecture: The discipline of software engineering
Homework 4 (Metrics)
Nov. 29
Lecture: Social and ethical issues of SE
Dec. 4 Project Demos: Documentation
Dec. 6
Last day of class
Project Demos: Working Code
Dec. 11 CS160-1 Final 0945-1200
Dec. 13
CS160-3 Final 0945-1200

Course Topics:

Topic

Hours

Software Engineering Principles

An Overview of the SE Discipline

An Overview of Development Methodologies

3

Requirements Elicitation and Analysis

Functional Specifications

Use Cases

6

Design

Architectural Design

OO Design Techniques

Design Documentation

12

Configuration Management

Build Automation

Version Control

3

Quality Control

Unit and System Testing

Formulating Test Plans

Executing Regression Tests

Code Walkthroughs

6

People and Team Management

Project Planning

Developing Project Plans

Measuring Project Progress

Issue Tracking

3

Social and Ethical Issues, such as

Copyright and software ownership

Professional codes and obligations

1

Additional Topics

By instructor preference, these may include topics such as

Additional depth in OOA or OOD

UI Design

Metrics

4

Exams and Presentations

2

TOTAL

40