1
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
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.
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
Requirement specification – motivation and basics
- Requirement specification is generally a 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.
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
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.
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
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.
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
Graphical Languages?
- Examples:
- Entity-Relationship (ER) model for conceptual
description
- Data Flow diagrams for process description
- These are, however, often more suitable for analysis and
design tasks.
- Simple languages (like the above) work well in practice
- In requirement specification, they should be used to model
the application domain and the processes.
- If a domain conceptual model exists, it should be used to
accompany the requirements.
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
Good Requirements Specification Qualities
- Complete
- Accurate
- Unambiguous
- Verifiable (How can you verify ”user friendliness”?)
- Consistent
- Modifiable (also the requirements change)
- Traceable (where has each requirement come from?)