Syllabus - Software Methodology - Fall 2002

Week 1: Software Process, Reengineering

September 18:
Introduction to Software Engineering, software development processes

September 20:
Software reengineering

Week 2: Design Modeling, Software Architecture, Project Management

September 23:
Unified Modeling Language (UML) structure diagrams
Due: Project selection and overview description

September 24 (Laboratory):
Reverse-engineering UML diagrams from code, using CVS to download source code

September 25:
Introduction to software architecture and common architectural styles.

September 27:
Software project management, software risk analysis
Due: Homework #1 (UML assignment)

Week 3: Requirements Engineering

September 30:
Requirements analysis and specification, scenarios in the requirements process
Due: Reverse-engineered UML diagrams

October 1 (Laboratory):
Software configuration management using Subversion

October 2:
Requirements analysis and specification, cost estimation
Due: Project scenarios document

October 4:
User interface design, paper prototyping

Week 4: Software Architecture

October 7:
Evaluation of software architectures

October 9:
Due: In-class presentation giving project overview, goals, UI
Due: Project source code and documents under configuration control
Due: Requirements specification for proposed modifications, including UI sketches

October 11:
Evaluation of software architectures
Due: Project time estimate, risk analysis
Receive: Questions for take-home Exam #1

Week 5: Software Design

October 14:
No formal class meeting, class time can be used for Exam #1.

October 16:
UML sequence diagrams, processes & threads, flow of control
Due: User manual
Due: Take home Exam #1

October 18:
Abstraction, modularity, separation of concerns, introduction to design patterns

Week 6: Software Qualities, Black-box Testing

October 21:
Software qualities, white & black box testing

October 23:
Using fault models to guide testing, user interface attacks
Due: Software design document

October 25:
System interface attacks

Week 7: White-box testing, Software Inspections

October 28:
Control flow diagrams, all-paths testing

October 30:
Software inspections

November 1:
Software inspections video

Week 8: Software Evolution

November 4:
Software evolution
Due: Homework #2 (White box testing)

November 6:
Software evolution
Due: Acceptance test plan

November 8:
Code decay, predicting fault incidence

Week 9: Software Configuration Management

November 11:
No class, Veteran's Day

November 12 (Laboratory):
Software inspections of project code. Each group must bring paper copies of their code to the inspection (one copy per group member).

November 13:
Software configuration management

November 15:
Software configuration management

Week 10: Literate Programming, Extreme Programming (XP)

November 18:
Literate programming

November 20:
Extreme programming, literate programming

November 22:
Exam #2

Week 11: Acceptance Testing and Project Delivery

November 25:
Software Engineering card game

November 26 (Laboratory):
Software acceptance testing (2 groups). Each group will have a scheduled acceptance test time, which may not occur during the laboratory.

November 27:
No lecture, meet in lab for project presentations.
Due: Final project notebook, including source code, and up-to-date documentation

Last updated: 10/30/2002