Software Requirement Engineering SE - 391 Resource Person: Ikram Ullah Khan.

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Software Requirements
Software Requirements
Introduction to Software Engineering Dr. Basem Alkazemi
Introduction to Software Engineering
SWE Introduction to Software Engineering
WKES 3202 SOFTWARE REQUIREMENTS ENGINEERING SEMESTER 1 SESSION 2004/2005.
Software Requirements
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software Requirements
Overview of Software Requirements
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Requirements Engineering
المحاضرة الثالثة. 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.
©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.
Software Requirements Presented By Dr. Shazzad Hosain.
소프트웨어공학 강좌 1 Chap 4. Software Requirements - Descriptions and specifications of a system - Soo-Mi Choi
Chapter 4 – Requirements Engineering 1Chapter 4 Requirements engineering.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
Software Requirements Lecture # 3. 2 Kinds of Software Requirements Functional requirements Non-functional requirements Domain requirements Inverse requirements.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
What are Requirements?. "The hardest single part of building a system is deciding what to build... No other part of the work so cripples the resulting.
Software Requirements Engineering: What, Why, Who, When, and How
Requirements Engineering Overview Senior Design Don Evans.
IS550: Software requirements engineering Dr. Azeddine Chikh 2. Functional and non-functional requirements.
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.
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
 To introduce the concepts of user and system requirements  To describe functional and non-functional requirements  To explain how software requirements.
Week 3: Requirement Analysis & specification
Software Requirements
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 6: Requirement Engineering.
Chapter 4 – Requirements Engineering Lecture 1 The hardest part of the software task is arriving at a complete and consistent specification, and much of.
Software Requirements. Objectives: l To introduce the concepts of user and system requirements l To describe functional / non-functional requirements.
Chapter 4 Requirements Engineering (1/3) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Requirement Classification Nisa’ul Hafidhoh Teknik Informatika
1 Software Requirements Engineering (CS 708) Dr. Ghulam Ahmad Farrukh.
1 Software Requirements Descriptions and specifications of a system.
1 Review of Lectures 1-21 Lecture # Introduction Requirements form the basis for all software products Requirements engineering is the process,
Chapter 4 Requirements engineering 1 Chapter 4 – Requirements Engineering.
Software Engineering, COMP201 Slide 1 Software Requirements.
Software Requirements Engineering (CS 708)
Types and Characteristics of Requirements
EKT 421 SOFTWARE ENGINEERING
Classifications of Software Requirements
Chapter 4 – Requirements Engineering
Software Requirements
Software Requirements
Presentation on Software Requirements Submitted by
Chapter 4 Requirements Engineering (1/3)
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
Software Requirements
Software Requirements
SNS College of Engineering Coimbatore
Software Requirements
Software Requirements
Requirements Analysis
Software Requirements Engineering
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

Software Requirement Engineering SE Resource Person: Ikram Ullah Khan

Introduction Requirements form the basis for all software products Requirements engineering is the process, which enables us to systematically determine the requirements for a software product

What is requirement? Something required, something wanted or needed –Webster’s dictionary Requirements are…a specification of what should be implemented. They are descriptions of how the system should behave, or of a system property or attribute. They may be a constraint on the development process of the system. –Sommerville and Sawyer 1997 There is a huge difference between wanted and needed and it should be kept in mind all the time

5 Software Requirements - 1 A complete description of what the software system will do without describing how it will do it is represented by the software requirements

6 Software Requirements - 2 Software requirements are complete specification of the desired external behavior of the software system to be built

7 Software Requirements - 3 Software requirements may be: – Abstract statements of services and/or constraints – Detailed mathematical functions

8 Software Requirements - 4 Software requirements may be: – Part of the bid of contract – The contract itself – Part of the technical document, which describes a product

9 IEEE Definition A condition or capability that must be met or possessed by a system...to satisfy a contract, standard, specification, or other formally imposed document – IEEE Std 729

Sources of Requirements Stakeholders –People affected in some way by the system Documents Organization standards Existing systems Domain/business area Regulations etc.

Levels of Requirements Stakeholders describe requirements at different levels of details Business Requirements –Why the software product is being developed –Vision and Scope document User Requirements –Look at the functionality of the software product from the user’s perspective –Use Case Document Product Requirements –Functional Requirements –Non-Functional Requirements –Software Requirement Specification(SRS)

Levels of requirements

Example: Levels of requirements Business Requirement: To allow the customer to pay for gas at the pump User Requirement: Swipe credit or debit card Enter a security PIN number Request a receipt at the pump Product Requirement: Prompt the customer to put his or her card into the reader Detect that the card has been swiped Determine if the card was incorrectly read and prompt the customer to swipe the card again Parse the information from the magnetic strip on the card

Importance of Software Requirements The hardest single part of building a software system is deciding what to build...No other part of the work so cripples the resulting system if done wrong. No other part is difficult to rectify later –Fred Brooks Examples –The system shall maintain records of all payments made to employees on accounts of salaries, bonuses, travel/daily allowances, medical allowances, etc. –The system shall interface with the central computer to send daily sales and inventory data from every retail store –The system shall support at least twenty transactions per second

Requirement Engineering

Characteristics of good requirements Complete –Each requirement must fully describe the functionality to be delivered Correct –Each requirement must accurately describe the functionality to be built Feasible –It must be possible to implement each requirement within the known capabilities and limitations of the system and its operating environment Necessary –Each requirement should document a capability that the customers really need Prioritize –Assign an implementation priority to each functional requirement

Characteristics of good requirements Unambiguous –All readers of a requirement statement should arrive at a single, consistent interpretation of it Verifiable –See whether you can devise a few tests or use other verification approaches, such as inspection, reviews etc Traceable etc. –A traceable requirement can be linked backward to its origin and forward to the design elements and source code that implement it

18 Examples of Requirements - 1 The system shall maintain records of all payments made to employees on accounts of salaries, bonuses, travel/daily allowances, medical allowances, etc.

19 Examples of Requirements - 2 The system shall interface with the central computer to send daily sales and inventory data from every retail store

20 Examples of Requirements - 3 The system shall maintain records of all library materials including books, serials, newspapers and magazines, video and audio tapes, reports, collections of transparencies, CD- ROMs, DVDs, etc.

21 Examples of Requirements - 4 The system shall allow users to search for an item by title, author, or by International Standard Book Number The system’s user interface shall be implemented using a web browser

22 Examples of Requirements - 5 The system shall support at least twenty transactions per second The system facilities which are available to public users shall be demonstrable in ten minutes or less

Class Activity Development of a Web Based Result Declaration System for Lahore Board (Extract two requirements from each category)

Types of Software Requirements Functional requirements Non-functional requirements Domain requirements Inverse requirements Design and implementation constraints

Functional Requirements Statements describing what the system does A requirement that specifies a function that a system or system component must be able to perform. Statements of services the system should provide –Reaction to particular inputs –Behavior in particular situations Functional requirements are supported by non-functional requirements

Examples of Functional requirements A library system that provides a single interface to a number of databases of articles in different libraries. The user shall be able to search either the entire database of patients or select a subset from it (admitted patients, or patients with asthma, etc.) The system shall solve a quadratic equation using the following formula x = (-b+sqrt(b 2 – 4*a*c))/(2*a)

Non-Functional Requirements Most non-functional requirements relate to the system as a whole. They include constraints on timing, performance, reliability, security, maintainability, accuracy, the development process, standards, etc. They are often more critical than individual functional requirements Must be built into the framework of the software product Failure to meet a non-functional system requirement may make the whole system unusable

Non-Functional Requirements For example, if an aircraft system does not meet reliability requirements, it will not be certified as ‘safe’ If a real-time control system fails to meet its performance requirements, the control functions will not operate correctly Non-functional requirements arise through user needs, because of budget constraints, because of organizational policies, because of the need of interoperability with other software and hardware systems, or because of external factors such as safety regulations, privacy legislation, etc

Types of non-Functional Requirements Product Requirements –Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc Organizational 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.

Product Requirements Product requirements Efficiency requirements Reliability requirements Portability requirements Usability requirements Performance requirements Space requirements

Product Requirement Examples The system shall allow one hundred thousand hits per minute on the website The system shall not have down time of more than one second for continuous execution of one thousand hours

Organizational Requirements Standards Requirements Implementation Requirements Delivery Requirements Examples – The system development process and deliverable documents shall conform to the MIL-STD-2167A – Any development work sub-contracted by the development organization shall be carried out in accordance with Capability Maturity Model

External Requirements Ethical requirements Interoperability requirements External requirements Legislative requirements Privacy requirements Safety requirements

External Requirements Examples The system shall not disclose any personal information about members of the library system to other members except system administrators The system shall comply with the local and national laws regarding the use of software tools Observations on non-Functional Reqs Non-functional requirements can be written to reflect general goals for the system. Examples include: – Ease of use – Recovery from failure – Rapid user response

Observations on non-functional Requirements Goals are open to misinterpretation Objective verification is difficult Non-functional requirements should be written in a quantitative manner as much as possible, which is not always easy for customers – Example: For some goals, there are no quantitative measures, e.g., maintainability – Chances of conflicts within non-functional requirements are fairly high, because information is coming from different stakeholders. Non-functional requirements should be highlighted in the requirements document

How to measure non-functional Reqs NFRs should be expressed quantitatively using metrics (measures) that can be objectively tested PropertyMeasure Speed 1. Processed transactions/second 2. Response time 3. Screen refresh time Size 1. K bytes 2. Number of function points Ease of use 1. Training time 2. Number of help frames Robustness 1. Time to restart after failure 2. Percentage of events causing failure 3. Probability of data corruption on failure

Metrics for non-functional Reqs PropertyMeasure Reliability 1. Mean time to failure 2. Probability of unavailability 3. Rate of failure occurrence 4. Availability Portability 1. Percentage of target-dependent statements 2. Number of target systems

Domain Requirements Requirements that come from the application domain and reflect fundamental characteristics of that application domain These can be both the functional or non- functional requirements These requirements, sometimes, are not explicitly mentioned Domain experts find it difficult to convey domain requirements Domain requirements can impose strict constraints on solutions. This is particularly true for scientific and engineering domains.

Domain Requirement Examples In a commission-based sales businesses, there is no concept of negative commission. However, if care is not taken novice developers can be lured into developing systems, which calculate negative commission Banking domain has its own specific constraints, for example, most banks do not allow over-draw on most accounts, however, most banks allow some accounts to be over-drawn

Inverse Requirements They explain what the system shall not do. Many people find it convenient to describe their needs in this manner These requirements indicate the indecisive nature of customers about certain aspects of a new software product Example: The system shall not use red color in the user interface, whenever it is asking for inputs from the end-user

Design and Implementation Constraints They are development guidelines within which the designer must work These requirements can seriously limit design and implementation options Can also have impact on human resources Examples  The system shall be developed using the Microsoft.Net platform  The system shall be developed using open source tools and shall run on Linux operating system

42 Comments on Examples Notice the level of detail in different requirements described above. Some are very detailed compared to others

43 Comments on Examples Notice the ambiguity in the requirement, which uses the term ‘appropriate viewers’ This requirement does not mention the formats of documents and types of viewers, which can be used

44 Comments on Examples Notice the ambiguity in the requirement for solving the quadratic equation. The requirement does not speak about the possibility when the value of ‘a’ is zero x = (-b+sqrt(b 2 – 4*a*c))/2*a

45 Comments on Examples Incomplete and ambiguous requirements are open to multiple interpretations and assumptions This can lead to the development of poor quality, or faulty, software products

Requirement Problems The requirements don’t reflect the real needs of the customer for the system Requirements are inconsistent and/or incomplete It is expensive to make changes to requirements after they have been agreed upon There are misunderstandings between customers, those developing the system requirements, and software engineers developing or maintaining the system Requirement specification in natural language pose some problems which include  Lack of clarity  Requirements confusion  Requirements amalgamation

Problems with Natural Language Natural language understanding relies on the specification readers and writers using the same words for same concept A natural language requirements specification is over-flexible. “You can say the same thing in completely different ways” It is not possible to modularize natural language requirements. It may be difficult to find all related requirements

Impact of Wrong Requirements Requirements errors account for 70 percent to 85 percent of the rework costs on a software project (Wiegers 2003). When requirements are wrong, systems are late, unreliable and don’t meet customers needs Requirement errors results in enormous loss of time, revenue, market share, and trust of customers

What a Requirement Looks Like Unique Requirements ID Document Structure Relations Description Rationale Origin Validation / Test-Case Customer Satisfaction

References Readings open from all books/ sources