Syllabus - Software Methodology - Winter 2003

Week 1: Software Process

January 3:
Introduction to Software Engineering, software development processes.

Week 2: Software Reengineering, Architecture, Project Management

January 6:
Software reengineering
Due: Review of Lifecycle Planning

January 8:
Introduction to software architecture and common architectural styles.
Due: Project selection and overview description

January 6/9 (Laboratory):
Using CVS to download source code
Software configuration management using Subversion

January 10:
Software project management, software risk analysis
Due: Review of Software Risk Management: Principles and Practices

Week 3: Requirements Engineering

January 13:
Requirements analysis and specification, scenarios in the requirements process
Due: Reverse-engineered software architecture

January 15:
Requirements analysis and specification, cost estimation
Due: Project scenarios document

January 17:
User interface design, paper prototyping

Due: Review of Prototyping for Tiny Fingers
Due: Review of Chapter 3 (sections 3.1, 3.2 only) Requirements Elicitation

Week 4: Software Architecture

January 20:
No class, birthday of Martin Luther King, Jr.

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

January 24:
Abstraction, modularity, separation of concerns
Due: Project time estimate, risk analysis

Week 5: Software Qualities, Software Design

January 27:
UML structure diagrams.
Due: Review of Software Engineering Principles
Due: Review of Software: It's Nature and Qualities

January 29:
UML sequence diagrams, processes & threads, flow of control
Due: User manual

January 31:
Software qualities, white & black box testing
Due: Homework #1 (UML assignment)

Week 6: Black-box Testing

February 3:
No class, work on take-home Exam #1

February 5:
Using fault models to guide testing, user interface attacks
Due: Take home Exam #1

February 7:
System interface attacks
Due: Software design document

Week 7: White-box testing, Software Inspections

February 10:
Control flow diagrams, all-paths testing

February 12:
Software inspections

February 14:
Software inspections video
Due: Review of Path Testing

Week 8: Software Evolution (1)

February 17:
No class, President's Day

February 19:
Software evolution

February 21:
In-class presentations on project status
Due: Acceptance test plan
Due: Review of Software Aging

Week 9: Software Evolution (2)

February 24:
Software evolution
Due: Homework #2 (White box testing)
Due: Review of Rules and Tools for Software Evolution Planning and Management

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

February 26:
Source code analysis for evolution-related metrics

February 28:
Exam #2

Week 10: Model Checking, Agent-Based Software Engineering

March 3:
Guest lecture: Luca de Alfaro, Model Checking

March 5:
Guest lecture: Martin Griss, Agent-Based Software Engineering

March 7:
Software Engineering card game

Week 11: Software Configuration Management, Acceptance Testing and Project Delivery

March 10:
Software Configuration Management

March 10/13 (Laboratory):
Software acceptance testing. Each group will have a scheduled acceptance test time. Acceptance tests might be scheduled outside laboratory times.

March 12:
Software Configuration Management

March 14:
No lecture, meet in lab for project presentations.
Due: Final project notebook

Last updated: 2/18/2003