Presentation on theme: "Lecture 5: Requirements Engineering Dr Valentina Plekhanova University of Sunderland, UK"— Presentation transcript:
Lecture 5: Requirements Engineering Dr Valentina Plekhanova University of Sunderland, UK
Lecture 5Valentina Plekhanova 2 What is a Requirement? What is a Requirement? [Pfleeger, 1998] requirement A requirement is a feature of the system or a description of something the system is capable of doing in order to fulfil the system’s purpose.
Lecture 5Valentina Plekhanova 3 What is a Requirement? It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification. May be the basis for a bid for a contract - therefore must be open to interpretation. May be the basis for the contract itself - therefore must be defined in detail. Both these statements may be called requirements.
Lecture 5Valentina Plekhanova 4 Wicked Problems [Sommerville; Vliet] Originally this term was defined by Rittel and Webber, in wicked problem A “wicked problem" is a complex problem, i.e. this problem is very difficult to define and/or identify (e.g. define related entities, definitive problems specification). In general, no one can accurately predict where/when we can expect the problem and what effect it will have on the software production, etc. The problem can be tackled after it has happened.
Lecture 5Valentina Plekhanova 5 Wicked Problems Most large software systems address wicked problems. Problems which are so complex that they can never be fully understood and where understanding develops during the system development. Therefore, requirements are normally both incomplete and inconsistent.
Lecture 5Valentina Plekhanova 6 A Stakeholder..!!! stakeholder The notion of stakeholder is used to refer to anyone who should have some influence on the system requirements, e.g. end-users, engineers, business managers, domain experts, etc.
Lecture 5Valentina Plekhanova 7 Some Reasons for Inconsistency Some Reasons for Inconsistency Different stakeholders have different requirements and they may define these in different ways. There is a constantly shifting compromise in the requirements... Different people may negotiate different parts.
Lecture 5Valentina Plekhanova 8 Some Reasons for Incompleteness Requirements can be interpreted differently. Many requirements can be identified clearly only after some experience with the system. Too many details would need to be specified. Customer asks for too little. The world changes. It is difficult to define the level of precision in the requirements statements. Informal language (e.g. natural language) does not help in requirements statements.
Lecture 5Valentina Plekhanova 9 Requirements: Functional and Non-Functional Functional requirements Functional requirements describe system services or functions. Non-functional requirements Non-functional requirements is a constraint on the system or on the development process, e.g. timing constraints, standards, etc.
Lecture 5Valentina Plekhanova 11 Requirements Engineering The process of establishing the services that the customer requires from a system … under the constraints with which it operates... and is developed!
Lecture 5Valentina Plekhanova 12 The Requirements Engineering Process Feasibility Study Requirements Analysis Requirements Definition Requirements Specification Requirements Validation 5
Lecture 5Valentina Plekhanova Feasibility study Find out if the current user needs can be satisfied given the available technology and budget? problems A definition of the problems. Alternative solutions benefits Alternative solutions and their expected benefits. Required resources, costs, time dates Required resources, costs, time and delivery dates for each alternative solution. 1
Lecture 5Valentina Plekhanova Requirements Analysis stakeholders Find out what system stakeholders require from the system. 2
Lecture 5Valentina Plekhanova Requirements Definition 4. Requirements Specification …. ultimate purpose The ultimate purpose of the requirements-related activities is: To understand the goals of the system; To document the requirements to be met; To specify the qualities required of the software solution: functionality, performance, reliability, etc.
Lecture 5Valentina Plekhanova Requirements Definition A statement in natural language plus diagrams of the services the system provides and its operational constraints A statement in natural language plus diagrams of the services the system provides and its operational constraints. Define the requirements in a form understandable to the customer. It represent an understanding between the customer and developer of what the customer needs/wants. It is usually written jointly by the customer and developer. Written for customers. Written for customers. 3
Lecture 5Valentina Plekhanova Requirements Specification A structured document setting out detailed descriptions of the system services. Define the requirements in detail. It uses technical terms to define the system services: a very precise, even mathematical description – but it must be understandable by the client. Written as a contract between client and contractor. Written as a contract between client and contractor. 4
Lecture 5Valentina Plekhanova 18 Software Specification A detailed software description which can serve as a basis for a design or implementation. Written for developers. Written for developers.
Lecture 5Valentina Plekhanova 19 An Example of: Requirements Document Structure An Example of: Requirements Document Structure (1) Introduction Describe need for the system and how it fits with business objectives. Glossary Define technical terms used. System models Define models showing (high level architectural) system components and relationships.
Lecture 5Valentina Plekhanova 20 Requirements Document Structure Requirements Document Structure (cont 2) Non-functional requirements definition Define constraints on the system and the development process. System evolution Define fundamental assumptions on which the system is based and anticipated changes. Requirements specification Detailed specification of functional requirements.
Lecture 5Valentina Plekhanova 21 Requirements Document Structure Requirements Document Structure (cont 3) Appendices System hardware platform description. Database requirements (as an ER model perhaps). Index o More examples of requirements document can be found in [Pfleeger, 1998; Sommerville]
Lecture 5Valentina Plekhanova Requirements Validation Concerned with demonstrating the requirements define the system that the customer really wants. Requirements error costs are high so validation is very important... Fixing a requirements error after delivery may cost up to 100 times the cost of fixing an implementation error. Prototyping is an important technique of requirements validation. 5
Lecture 5Valentina Plekhanova 23 Requirements Checking Validity Validity – Does the system provide the functions which best support the customer’s needs? Consistency Consistency – Are there any requirements conflicts? Completeness Completeness – Are all functions required by the customer included? Realism Realism – Can the requirements be implemented given available budget and technology?
Lecture 5Valentina Plekhanova 24 Key Points It is very difficult to formulate a complete and consistent requirements specification. A requirements definition, a requirements specification and a software specification are ways of specifying software for different types of reader. The requirements document is a description for customers and developers. Requirements errors are usually very expensive to correct after system delivery. Reviews involving client and contractor staff are used to validate the system requirements. Stable requirements are related to core activities of the customer for the software. Volatile requirements are dependent on the context of use for the system.
Lecture 5Valentina Plekhanova 25 Week 8: Project Control Session Tutorial Time: 10 minutes for each Team Tutorial Time: 10 minutes for each Team Scheduledocumentation Students will present project file, particularly Schedule, plus any project documentation. Students will describe where they are in the project and any problems encountered. During the discussion reviewers will ask to see evidence of deliverables for any tasks that are complete to determine whether they have in fact been done.