University of Virginia, Department of Computer Science
CS201J: Engineering Software, Fall 2002

Notes: Thursday 5 September 2002
Assignments Due

Notes and Questions

What do we need to divide a problem into independent subproblems?

How does a specification constrain a client?

Our procedural specifications will use three clauses:

An implementation of a procedural specification is satisfactory if: if the client satisfies the precondition before the call, the postcondition is always satisfied after the call returns.

What is the point of having a MODIFIES clause?

What are the advantages and disadvangates of formal (instead of informal) specifications?

If a procedure's specification has no REQUIRES clause, what is the precondition?

If a procedure's specification has no MODIFIES clause, what can it modify?

What does it mean when a procedure has no EFFECTS clause?


`Then you should say what you mean,' the March Hare went on.

`I do,' Alice hastily replied; `at least--at least I mean what I say--that's the same thing, you know.'

`Not the same thing a bit!' said the Hatter. `You might just as well say that "I see what I eat" is the same thing as "I eat what I see"!'

`You might just as well say,' added the March Hare, `that "I like what I get" is the same thing as "I get what I like"!'

`You might just as well say,' added the Dormouse, who seemed to be talking in his sleep, `that "I breathe when I sleep" is the same thing as "I sleep when I breathe"!'

`It IS the same thing with you,' said the Hatter, and here the conversation dropped, and the party sat silent for a minute, while Alice thought over all she could remember about ravens and writing-desks, which wasn't much.

Alice in Wonderland

CS201J University of Virginia
Department of Computer Science
CS 201J: Engineering Software
Sponsored by the
National Science Foundation