Table of Contents
CSE584: Software EngineeringLecture 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 Awardfor 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
|