Download presentation
Presentation is loading. Please wait.
Published byHillary McDonald Modified over 8 years ago
1
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu university E-mail: Engmaisak@hotmail.com. Tell:0615648915 WWW.ENGMAISAK.BLOGSPOT.COM February – July 2016 SOFTWARE ENGINEERING (CS3529) TARGET CLASSES: CS14: A,B
2
2 Lecture 1,2 CHAPTER 4 – REQUIREMENTS ENGINEERING
3
TOPICS COVERED CHAPTER 4 REQUIREMENTS ENGINEERING 3 Requirements definition. Functional, non-functional requirements and domain requirements The software requirements document Requirements engineering processes 1&2) Requirements elicitation and analysis 3) Requirements validation 4)Requirements management
4
REQUIREMENT, USER REQ & SYSTEM REQ CHAPTER 4 REQUIREMENTS ENGINEERING 4 Requirement is defined as the process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed. The requirements themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process User requirements are statements in a language that is understandable to a user of what services the system should provide and the constraints under which it operates. System requirements are more detailed descriptions of the system services and constraint, written for developers of the system.
5
TYPES OF REQUIREMENTS CHAPTER 4 REQUIREMENTS ENGINEERING 5 1.Functional requirements Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations. May state what the system should not do. Functional system requirements should describe the system services in detail. 2.Non-functional requirements Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. Often apply to the system as a whole rather than individual features or services. 3.Domain requirements Constraints on the system from the domain of operation
6
REQUIREMENTS IMPRECISION CHAPTER 4 REQUIREMENTS ENGINEERING 6 Problems arise when requirements are not precisely stated. Unclear requirements may be interpreted in different ways by developers and users. Example: Consider the term ‘search’ in requirement 1 User intention – search for a patient name across all appointments in all clinics; Developer interpretation – search for a patient name in an individual clinic. User chooses clinic then search.
7
REQUIREMENTS COMPLETENESS AND CONSISTENCY CHAPTER 4 REQUIREMENTS ENGINEERING 7 In principle, requirements should be both complete and consistent: 1.Complete They should include descriptions of all facilities required. 2.Consistent There should be no conflicts or contradictions in the descriptions of the system facilities. In practice, it is impossible to produce a complete and consistent requirements document.
8
NON-FUNCTIONAL REQUIREMENTS CHAPTER 4 REQUIREMENTS ENGINEERING 8 These define system properties and constraints e.g. reliability, response time and storage requirements. Constraints are I/O device capability etc. Non-functional requirements may be more critical than functional requirements. If these are not met, the system may be useless.
9
TYPES OF NONFUNCTIONAL REQUIREMENT CHAPTER 4 REQUIREMENTS ENGINEERING 9
10
NON-FUNCTIONAL CLASSIFICATIONS CHAPTER 4 REQUIREMENTS ENGINEERING 10 Product requirements Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc. Organisational requirements Requirements which are a consequence of organisational policies and procedures e.g. process standards used, implementation requirements, etc. External requirements Requirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc.
11
DOMAIN REQUIREMENTS CHAPTER 4 REQUIREMENTS ENGINEERING 11 The system’s operational domain imposes requirements on the system. For example, a train control system has to take into account the braking characteristics in different weather conditions. Domain requirements may be new functional requirements, constraints on existing requirements or define specific computations. If domain requirements are not satisfied, the system may be unworkable.
12
DOMAIN REQUIREMENTS PROBLEMS CHAPTER 4 REQUIREMENTS ENGINEERING 12 Understandability Requirements are expressed in the language of the application domain; This is often not understood by software engineers developing the system. Implicitness Domain specialists understand the area so well that they do not think of making the domain requirements clear.
13
THE SOFTWARE REQUIREMENTS DOCUMENT CHAPTER 4 REQUIREMENTS ENGINEERING 13 The software requirements document is the official statement of what is required of the system developers. It should include both a definition of user requirements and a specification of the system requirements. It is NOT a design document. As far as possible, it should set of WHAT the system should do rather than HOW it should do it.
14
USERS OF A REQUIREMENTS DOCUMENT CHAPTER 4 REQUIREMENTS ENGINEERING 14
15
THE STRUCTURE OF A REQUIREMENTS DOCUMENT CHAPTER 4 REQUIREMENTS ENGINEERING 15 Preface Introduction Glossary (Technical terms) User Requirements definition System architecture System requirements specification System models System evolution Appendices Index
16
GUIDELINES FOR WRITING REQUIREMENTS CHAPTER 4 REQUIREMENTS ENGINEERING Invent a standard format and use it for all requirements. Use language in a consistent way. Use “ shall” for mandatory requirements, “ should” for desirable requirements. Use text highlighting to identify key parts of the requirement. Avoid the use of computer terminologies. Include an explanation (rationale) of why a requirement is necessary. The main advantages of using a standard format to specify requirements are: a)All requirements have the same format so are easier to read, b)The definition of form fields mean that writers are less likely to forget to include information c)Some automated processing is possible.
17
REQUIREMENTS ENGINEERING PROCESSES CHAPTER 4 REQUIREMENTS ENGINEERING 17 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements. However, there are a number of generic activities common to all processes A.Requirements elicitation / discovery; B.Requirements analysis; C.Requirements validation; D.Requirements management. In practice, RE is an iterative activity in which these processes are interleaved.
18
REQUIREMENTS ENGINEERING PROCESSES 1 &2 ) REQUIREMENTS ELICITATION/DISCOVERY AND ANALYSIS CHAPTER 4 REQUIREMENTS ENGINEERING 18 The process of gathering information about the required and existing systems and distilling the user and system requirements from this information. Interaction is with system stakeholders from managers to external regulators. Systems normally have a range of stakeholders. So it is difficult to gather the requirements. The main reasons why eliciting requirements is difficult are: a)Stakeholders don ʼ t know what they want b)Stakeholders use their own language that requirements engineers may not understand. c)Stakeholder requirements may conflict d)Political factors may influence the system requirements e)The business environment may change during elicitation.
19
REQUIREMENTS ENGINEERING PROCESSES 1 &2 ) REQUIREMENTS ELICITATION/DISCOVERY AND ANALYSIS - ETHNOGRAPHY CHAPTER 4 REQUIREMENTS ENGINEERING 19 Ethnography is an observational technique where an analyst spends a period of time observing work and noting how the participants carry out their tasks. It is particularly useful in identifying essential cooperation in work processes.
20
REQUIREMENTS DISCOVERY AND ANALYSIS: 1. INTERVIEWING CHAPTER 4 REQUIREMENTS ENGINEERING 20 Formal or informal interviews with stakeholders are part of most RE processes. Types of interview: 1.Closed interviews based on pre-determined list of questions 2.Open interviews where various issues are explored with stakeholders. Effective interviewing Be open-minded, avoid pre-conceived ideas about the requirements and are willing to listen to stakeholders. Prompt the interviewee to get discussions going using a springboard question, a requirements proposal, or by working together on a prototype system.
21
REQUIREMENTS DISCOVERY AND ANALYSIS: 2.USE CASES (1/2) CHAPTER 4 REQUIREMENTS ENGINEERING 21 Use-cases are a scenario based technique in the UML which identify the actors in an interaction and which describe the interaction itself. Scenario should include the following: 1.A description of what is expected when the scenario starts 2.A description of the normal flow of events 3.A description of what can go wrong and how to handle it 4.Information about concurrent activities 5.A description of the system state when the scenario finishes Sequence diagrams may be used to add detail to use-cases by showing the sequence of event processing in the system.
22
REQUIREMENTS DISCOVERY AND ANALYSIS: 2.USE CASES (2/2) CHAPTER 4 REQUIREMENTS ENGINEERING 22 UCD for the Mental Hospital Center-Patient management system
23
REQUIREMENTS ENGINEERING PROCESSES 3) REQUIREMENTS VALIDATION CHAPTER 4 REQUIREMENTS ENGINEERING 23 Concerned with demonstrating that 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. Requirements validation is the process of checking the requirements for validity, consistency, completeness, realism and verifiability. Requirements validation techniques are: 1.Requirements reviews: Systematic manual analysis of the requirements. 2.Prototyping: Using an executable model of the system to check requirements. 3.Test-case generation:Developing tests for requirements to check testability.
24
REQUIREMENTS ENGINEERING PROCESSES 4) REQUIREMENTS MANAGEMENT CHAPTER 4 REQUIREMENTS ENGINEERING 24 Requirements management is the process of managing changing requirements during the requirements engineering process and system development. New requirements emerge as a system is being developed and after it has gone into use. You need to keep track of individual requirements and maintain links between dependent requirements so that you can assess the impact of requirements changes. You need to establish a formal process for making change proposals and linking these to system requirements. The stages in the requirements change management process are: 1.Problem analysis and change specification 2. Change analysis and costing 3. Change implementation
25
KEY POINTS CHAPTER 4 REQUIREMENTS ENGINEERING 25 Requirements for a software system set out what the system should do and define constraints on its operation and implementation. Functional requirements are statements of the services that the system must provide or are descriptions of how some computations must be carried out. And Non-functional requirements often constrain the system being developed and the development process being used. The software requirements document is an agreed statement of the system requirements. It should be organized so that both system customers and software developers can use it. You can use a range of techniques for requirements elicitation including interviews, and use-cases. Requirements validation is the process of checking the requirements for validity, consistency, completeness, realism and verifiability. Requirements management is the process of managing and controlling changes.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.