CSE403 SOFTWARE ENGINEERING Winter 1999
Instructor: Alan Shaw, Sieg 419, 543-9298, shaw@cs.washington.edu
Office Hours: M, W 4:30 - 5:30, or by appointment
Teaching Assistant: Sean Sandys, sds@cs.washington.edu
Office Hours: tba
Grading: Group project - 50%
Midterm Exam ( In Class, Open Book, Friday Feb 26) - 30%
Homework - 20%
Required Text : C. Ghezzi, M. Jazayeri, D. Mandrioli, Fundamentals of Software Engineering, Prentice-Hall, 1991.
Topic Outline*
1. Introduction (Chapters 1-3, Sec, 7.1)
Defining SE, Some Principles, Software Life Cycle
2. Requirements and Design Specifications (Chapter 5)
Contents of a Requirements Document
Informal Specification Methods: Data Flow Diagrams, Entity-
Relationship Diagrams
Formal Methods: Operational vs. Descriptive
State-Based: Finite State Machines, Statecharts, Petri-Nets
First-Order Logic, Real-Time Logic, Algebraic Specifications
Verification: Executing Specifications, Analysis
3. Design and Development Methodologies (Chapter 4; Secs. 7.3.1, 7.3.2)
Software Structures and Interfaces: Modularization
Object-Oriented Schemes, Concurrency
Design Approaches: Structured Analysis/Structured Design (SA/SD), Jackson’s System Development (JSD)
Configuration Management
4. Software Verification (Chapter 6)
Program Proving With Hoare Logic
Testing Methods: Coverage, Black and White Box Testing of Modules,
Walkthroughs, Systems Testing
5. Management Aspects (Chapter 8)
Project Organization, Scheduling With Gantt and PERT Charts, Software
Metrics and Cost Estimation
6. Tools and Environments (Chapter 9)
7. Software Process models: CMM
* Citations refer to the text. Notes on various topics will also be distributed.