4.2 Activities
- Reading, Review, and Inspection
- A reasonable process for evolving from definition to specification
is repeated review for validity, consistency, completeness, and
realism.
- Prototyping
- Especially useful for validity and completeness
- Static model checking
- Requires a more formal notation and supporting tools
4.2.1 Prototyping
- The principal use is to help customers and developers understand the
requirements for the system
- The prototype may be used for user training before a final system is
delivered
- The prototype may be used for back-to-back testing
4.2.1.0 Prototyping benefits
- Misunderstandings between software users and developers are exposed
- Missing services may be detected
- Confusing services may be identified
- A working system is available early in the process
- The prototype may serve as a basis for deriving a system specification
4.2.1.0 Approaches
- Evolutionary prototyping
- Throw-away prototyping
4.2.1.0 Evolutionary prototyping
- Must be used for systems where the specification cannot be developed
in advance e.g. AI systems and user interface systems
- Based on techniques which allow rapid system iterations
- Verification is impossible as there is no specification. Validation means
demonstrating the adequacy of the system
4.2.1.0 Throw-away prototyping
- Used to reduce requirements risk
- The prototype is developed from an initial specification, delivered for
experiment then discarded
- The throw-away prototype should NOT be considered as a final
system
- Some system characteristics may have been left out
- There is no specification for long-term maintenance
- The system will be poorly structured and difficult to maintain
4.2.1.0 Prototyping techniques
- Executable specification languages
- Very high-level languages
- Application generators and 4GLs
- Composition of reusable components
4.2.1.0 Very high-level languages
- Languages which include powerful data management facilities
- Need a large run-time support system. Not normally used for large
system development
- Some languages offer excellent UI development facilities
- Some languages have an integrated support environment whose
facilities may be used in the prototype
4.2.1.0 Prototyping languages
Commonly used are
- SmallTalk
- LISP
- Prolog
- 4GLs
4.2.1.0 Fourth-generation languages
- Domain specific languages for business systems based around a
database management system
- Normally include a database query language, a screen generator, a
report generator and a spreadsheet
- May be integrated with a CASE toolset
- Cost-effective for small to medium sized business systems 4GLs
4.2.1.0 User interface prototyping
- It is impossible to pre-specify the look and feel of a user interface in an
effective way. prototyping is essential
- UI development consumes an increasing part of overall system
development costs
- Prototyping may use very high loevel languages such as Smalltalk or
Lisp
- User interface generators may be used to "draw" the interface and
simulate its functionality