1
1.10.2004 Software Engineering 2004 Jyrki Nummenmaa 1
REQUIREMENT SPECIFICATION
- Today: Requirements Specification
- Requirements tell us what the system should do -
not how it should do it.
- Requirements are independent of the
implementation tools, programming paradigm, etc.
- However, the requirements are then analysed with
the intended implementation methodology in mind.
1.10.2004 Software Engineering 2004 Jyrki Nummenmaa 2
The Basic Waterfall Model
Requirements specification Maintenance Testing Implementation Analysis & Design
1.10.2004 Software Engineering 2004 Jyrki Nummenmaa 3
Prototyping
Requirements
- spec. - V&V
Maintenance
- V&V
Testing - V&V Quick Implementa- tion - V&V Design - V&V
V&V = Verification and Validation
Quick Analysis & Design - V&V Implementation
- V&V
1.10.2004 Software Engineering 2004 Jyrki Nummenmaa 4
Requirement specification – motivation and basics
- Requirement specification is generally the most
crucial phase of an average software project - if it succeeds then a complete failure is unlikely.
- The requirements specification can be used as a
basis for a contract.
- The requirements specification can (and should)
also be eventually used to evaluate if the software fulfills the requirements.
- As users generally can not work with formal
specifications, natural language specifications must or should often be used.
1.10.2004 Software Engineering 2004 Jyrki Nummenmaa 5
Typical Documents
- Basic textual document, e.g. according to the
ANSI/IEEE Standard 830 – will be discussed later.
- A conceptual model of the domain, which may be
already available or built separately.
- A description of the processes, e.g. a data flow
diagram.
- A textual description of the use cases – will be
discussed later.
1.10.2004 Software Engineering 2004 Jyrki Nummenmaa 6
Formal Languages?
- Usually much too difficult to understand even for
an above average user.
- You may be able to verify the system, but how can
you verify the requirements?
- They are usually used for critical well-defined
systems and/or concurrent processing, which is notoriously difficult to handle.