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.