REQUIREMENTS ENGINEERING

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

SWE Introduction to Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Software Requirements
Requirements Engineering Processes
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software Requirements
Overview of Software Requirements
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements 2.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Software Requirements l Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Chapter 5: Requirement Engineering Process Omar Meqdadi SE 2730 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
©Ian Sommerville Software Engineering Slide 1 Software Requirements l Definition: Description and Specifications of a system l Topics covered: Functional.
Dr. Tom WayCSC Software Requirements CSC 4700 Software Engineering Lecture 2 Based on Sommerville, Chapter 6.
AGU COE/COC Software Engineering CSE 402 / CSC 308 Slide 1 Requirements engineering l The process of establishing the services that the customer requires.
소프트웨어공학 강좌 1 Chap 4. Software Requirements - Descriptions and specifications of a system - Soo-Mi Choi
 To describe the principal requirements engineering activities and their relationships  To introduce techniques for requirements elicitation and analysis.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Software Requirements Descriptions and specifications of a system.
Chapter 4 Requirements Engineering Processes Objectives l To describe the principal requirements engineering activities and their relationships l To.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
Requirements Engineering Overview Senior Design Don Evans.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Chapter 4 Software Requirements
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Software Engineering, 8th edition. Chapter 7 1 Courtesy: ©Ian Sommerville 2006 March 20 th, 2008 Lecture # 12 Requirements Engineering Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Chapter 4 Requirements Engineering (3/3) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Requirements Engineering. Requirements engineering processes The processes used for RE vary widely depending on the application domain, the people involved.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Requirements Analysis
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
CS223: Software Engineering Lecture 8: Requirement Engineering.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Chapter 4 – Requirements Engineering Part 2 1Chapter 4 Requirements engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
1 Software Requirements Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements (utvalgte foiler fra Kap 6 og 7 i Sommerville)
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.
Software Engineering, COMP201 Slide 1 Software Requirements.
Pepper modifying Sommerville's Book slides
Requirements Engineering Processes
Software Requirements
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
SNS College of Engineering Coimbatore
EKT 421 SOFTWARE ENGINEERING
Software Requirements
Software Requirements
Software Requirements
Requirements Engineering Processes
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

REQUIREMENTS ENGINEERING

What is a requirement? Descriptions of the services provided by the system and its operational constraints. Reflects the needs of customers for a system. May be… A high level, abstract statement of a service that the system should provide A constraint on the system A detailed formal definiton of a system function.

Requirements engineering The process of finding out, analysing, documenting and checking these services and constraints.

Types of requirements User requirements: high-level abstract requirements Statements of what services the system is expected to provide and the constraints under which it must operate. System requirements: The detailed description of what the system should do Set out the system’s func., services and operational constraints in detail.

Types of requirements cont. User requirements may be expanded into several system requirements by adding detail, explaining the services and functions. Requirements should be written at different levels of detail because of different readers.

Functional and nonfunctional 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. Non-functional requirements constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. Domain requirements Requirements that come from the application domain of the system and that reflect characteristics of that domain.

Functional requirements Describe the system function in detail, its input and outputs, exceptions etc. Depends on… The type of software The expected users of the software The specification of the functional requirements should be complete and consistent.

Nonfunctional requirements May relate to reliability, response time and store occupancy. Constraints are I/O device capability, system representations, etc. May specify performance security and availability. So more critical than individual functional requirements. Failing to meet can mean the whole system is unusable.

Types of nonfunctional requirements Product req. Specify product behavior Performance, reliability, portability, usability Organisational req. Process standards, implementation, delivery External req. Interoperability, legislative, ethical

Examples Functional requirement: Nonfunctional requirement: “The customer must place an order within two minutes of registering.” Nonfunctional requirement: “The customer must be able to access their account 24 hours a day, seven days a week.”

Domain requirements Derived from the application domain and describe system characteristics and features that reflect the domain. 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.

Domain requirements example Tolerance level of landing gear on an aircraft (different on dirt, asphalt, water), or what happens to fiber optics line in case of sever weather during winter Olympics (Only domain-area experts know)

Domain requirements problems 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 explicit.

User requirements Should describe the functional and nonfunctional requirements. Should only specify the external behavior of the system. System design characteristics, software jargon, structured or formal notations, system implementation should be excluded. Should be written in simple language.

Guidelines for writing requirements 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 jargon.

System requirements Expanded version of user req. Describe the external behavior of the system and its operational constraints. Must not include how the system designed and implemented.

Problems with NL specification Ambiguity The readers and writers of the requirement must interpret the same words in the same way. NL is naturally ambiguous so this is very difficult. Over-flexibility The same thing may be said in a number of different ways in the specification. Lack of modularisation NL structures are inadequate to structure system requirements.

Structured language specifications Limits the terminology that can be used and use templates to specify system req. System req. May be specified by: Using forms Using tables Using graphical models

Form-based specifications Definition of the function or entity. Description of inputs and where they come from. Description of outputs and where they go to. Indication of other entities required. Pre and post conditions (if appropriate). The side effects (if any) of the function.

Form based specification example ECLIPSE/Workstation/Tools/DE/FS/3.5.1 Function: Add node Description: Adds a node to an existing design. Inputs: Node type, Node Position Outputs: Design identifier Pre/Post conditions: Other attributes: Definition: ECLIPSE/Workstation/Tools/DE/RD/3.5.1

Structured lang. specification cont. By using formatted specification variability is reduced and req. are organised more efficiently. When complex requirements are needed tables or graphical models can be used. Use tables when there are a number of possible alternative situations. Use graphical models when you need to show how state changes or describe a sequence of actions.

The requirements document SRS (software requirement specification) is the official statement of what the system developers should implement Includes both user requirements and detailed specification of the system requirements.

The requirements document cont. Has a diverse set of users the req. document has to be a compromise between communicating the requirement to customers, defining them in precise detail for developers and testers and including information about possible system evolution. The level of detail depends on the type of system that is being developed and the development process used. External contractor: very detailed Iterative development process: less detailed

IEEE requirements standard Defines a generic structure for a requirements document that must be instantiated for each specific system. Introduction. General description. Specific requirements. Appendices. Index.

Feasibility studies A feasibility study decides whether or not the proposed system is worthwhile. Inputs: List of business requirements, system description, how the system improve business Outputs: Answer of the question “Should we do this development?”

Elicitation and analysis Involves technical staff working with customers to find out about the application domain, the services that the system should provide and the system’s operational constraints. STAKEHOLDER: End-users, managers, engineers involved in maintenance, domain experts, trade unions, etc. Shortly; people affected by the system directly or indirectly.

Requirements discovery The process of gathering information about the proposed and existing systems and distilling the user and system requirements from this information. This information comes from documentation, system stakeholders and the specifications of similar systems.

Registration.boun.edu.tr Who are stakeholders?

Interviewing In formal or informal interviewing, the Requirements Engineering team puts questions to stakeholders about the system that they use and the system to be developed. There are two types of interview Closed interviews where a pre-defined set of questions are answered. Open interviews where there is no pre-defined agenda and a range of issues are explored with stakeholders.

Scenarios Scenarios are real-life examples of how a system can be used. They should include A description of the starting situation; A description of the normal flow of events; A description of what can go wrong; Information about other concurrent activities; A description of the state when the scenario finishes.

Registration scenario

Use cases Use-cases are a scenario based technique in the UML which identify the actors in an interaction and which describe the interaction itself. A set of use cases should describe all possible interactions with the system. Sequence diagrams may be used to add detail to use-cases by showing the sequence of event processing in the system.

Registration use cases Drop course Add course Consent Requests Registration Office Course scheduling Student Instructor

Add CMPE 352 Student course Cmpe 352 Instructor Ayse Basar Bener request acquired Regs system : BOUNsystem RegsPage Mypage return Add OK Inform available Add available Add confirm inform

Ethnography A social scientists spends a considerable time observing and analysing how people actually work. Social and organisational factors of importance may be observed. Ethnographic studies have shown that work is usually richer and more complex than suggested by simple system models. Requirements that are derived from the way that people actually work rather than the way which process definitions suggest that they ought to work. Reality!!! Requirements that are derived from cooperation and awareness of other people’s activities.

Requirements validation Concerned to validate that the requirements define the system that the customer really wants. Requirements error costs are high so validation is very important Fixing a requirement error before completing project or delivering it is much more cheaper...

Requirements checking Validity. Does the system provide the functions which best support the customer’s needs? Consistency. Are there any requirements conflicts? Completeness. Are all functions required by the customer included? Realism. Can the requirements be implemented given available budget and technology Verifiability. Can the requirements be checked?

Requirements management Requirements management is the process of managing changing requirements during the requirements engineering process and system development. Requirements are inevitably incomplete and inconsistent There will be always requirements during the process as business needs change and a better understanding of the system is developed; Different viewpoints have different requirements and these are often contradictory; Students do not want to take courses starting at 09.00am, Instructors do not want to come to school everyday.

Requirements change management Should apply to all proposed changes to the requirements. Principal stages Problem analysis. Discuss requirements problem and propose change; Change analysis and costing. Assess effects of change on other requirements; Change implementation. Modify requirements document and other documents to reflect change.

References Ian Sommerville, Software Engineering http://www.requirementsauthority.com/functional-and-non-functional.html http://en.wikipedia.org/wiki/Sequence_diagram Deriving Tabular Event-Based Specifications from Goal-Oriented Requirements Models - Renaud De Landtsheer, Emmanuel Letier and Axel van Lamsweerde Bahill A.T. And Dean F.F., Handbook of Systems Engineering and Management