Derive initial model from UI screens, using these heuristics:
Refine object model using requirements narrative.
Refine operation model using requirements narrative and thoughtful functional analysis.
Specific modeling guidelines.
Object and operation naming.
Inheritance
Details of object derivation.
When interface screens are well laid out and clearly defined, object derivation is generally straight forward.
The following table summarizes the derivation of model types from common interface forms.
Details of operation derivation.
Object and operation derivation examples from the Calendar Tool.
Another example -- viewing objects and operations from the Calendar Tool.
Summary observations about the analysis and specification phases of the software.
The goal of requirements modeling is to build an abstract model of the user-level requirements.
There is very beneficial feedback between the requirements analysis and specification phases of the software development process.
Modeling the concrete GUI?
Some practical benefits of formal specification.
Formal specification with preconditions and postconditions.
Formal specification maxims.
Overview of JML predicate notation.
For a little practice with UML, Figure 3 shows diagrams for these definitions, in two equivalent formats.
An initial formal definition of UserDB.add.
On the use of quantifiers.
No Duplicates
Input value checking.
Ordering of multi-record output lists.
Unbounded quantification.
Using auxiliary functions.
All of the issues having been resolved, the resulting complete spec for the user and group databases is as follows:
Major goals of the design process
Adhere to the specification
Achieve design quality goals: Traceability -- elements of the design trace back to corresponding elements of the specification.
Modularity -- elements of the design are organized