CSE584: Software Engineering Lecture 2: Requirements & Specification (A)

1/16/01


Click here to start


Table of Contents

CSE584: Software Engineering Lecture 2: Requirements & Specification (A)

Requirements & specification

Our plan of attack: this week

Our plan of attack: next week

Non-functional requirements

A key problem: ambiguity

In logic it’s clear

Formalization still leaves open questions

“dog” (noun)

“shoe” (noun, Webster’s): six definitions including

A students’ view

Another high-level issue

Formalism

Don’t be confused…

Basics of program correctness

Examples

Sequential execution

Conditional execution

Be careful!

Another classic mis-specification

Assignment statements

Examples

Loops

Loop invariants

Example

Termination

What’s left in classic program correctness?

Correctness of data structures

So what?

Formal methods

Potential benefits

C.A.R. Hoare, 1988

Observation

Anthony Hall’s view

Styles of specifications

Model-oriented

Z (“zed”)

Basics: you already read this

The classic example

Points about the Z reading

More points about the Z reading

Schema calculus: sweet!

But don’t try this on programs!

Z/CICS

1992 Queen’s Award for Technological Achievement

...

Other success stories

Tool support for Z?

Analyzing specifications

An example (skipping lots of steps): Jackson & Vaziri

Desired properties of delete

Underlying technologies

Algebraic specifications (in one slide)

Finite state machines

Many, many models

Walkman example (due to Alistair Kilgour, Heriot-Watt University)

A common problem

Statecharts (Harel)

PPT Slide

Tools

i-Logix screenshot

Analysis

Which we’ll look at next week

Author: CSE

Email: notkin@cs.washington.edu

Home Page: http://www.cs.washington.edu/education/courses/584

Download presentation source