CS205 Notes 4
(30 August 2006)
cs205 Wednesday 30 August 2006
(Notes continued from Class 3)
- Friday, 1 September: Quiz 1 (covers classes 1-4 and Chapters 1-3
and 9)
- Monday, 4 September: Read Chapter 4 and Chapter 5 through section 5.2
- Friday, 8 September: Problem Set 2 (will be handed out Wednesday)
Specifying Procedures
What kinds of documentation do we need to allow modular development?
How does a specification constrain a client?
Our procedural specifications will use three clauses:
- REQUIRES — what the client must satisfy before calling the
procedure (the precondition)
- MODIFIES — what state may be modified by the procedure (any
state not listed in a modifies clause, may not be modified)
- EFFECTS — what the procedure guarantees will be true after the
procedure returns (the postcondition), so long as the client
satisfied the precondition in the REQUIRES clause
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.
requires → (effects & everything that is
not listed in modifies is unchanged)
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?
Both version numbers "1.5.0" and "5.0" are used to identify this release
of the Java 2 Platform Standard Edition. Version "5.0" is the product
version, while "1.5.0" is the developer version. The number "5.0" is
used to better reflect the level of maturity, stability, scalability and
security of the J2SE.
The number "5.0" was arrived at by dropping the leading "1." from
"1.5.0". Where you might have expected to see 1.5.0, it is now 5.0 (and
where it was 1.5, it is now 5).
From Java
1.5.0/5.0 Release Notes