Software Requirements. Objectives: l To introduce the concepts of user and system requirements l To describe functional / non-functional requirements.

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Software Requirements
Software Requirements
Software Requirements and the Requirements Engineering Process Chapters 5 and 6.
Introduction to Software Engineering
Software Requirements
SWE Introduction to Software Engineering
Software Requirements
7M701 1 Software Engineering Software Requirements Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 5
SWE Introduction to Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software Requirements
1 To introduce the concepts of user and system requirements To introduce the concepts of user and system requirements To describe functional and non- functional.
1 CSC-3324: Chapter 4 Title: What is a requirement? Mandatory reading: Sommerville 6, 7 th ed., Chap.: 7.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 5 Slide 1 Software Requirements l Descriptions and specifications of a system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
المحاضرة الثالثة. 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 2006Software Engineering, 8th 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.
SOFTWARE DESIGN AND ARCHITECTURE
Chapter 4 Requirements engineering Chapter 4 – Requirements Engineering Lecture 1 1.
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.
Adaptive Processes © Adaptive Processes Simpler, Faster, Better Software Requirements.
Software Requirements Presented By Dr. Shazzad Hosain.
소프트웨어공학 강좌 1 Chap 4. Software Requirements - Descriptions and specifications of a system - Soo-Mi Choi
Software Requirements Descriptions and specifications of a system.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
Software Requirements. Objectives l To introduce the concepts of user and system requirements l To describe functional and non-functional requirements.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
IS550: Software requirements engineering Dr. Azeddine Chikh 2. Functional and non-functional requirements.
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Slide 1 CS 310 Ch 6: Software Requirements Requirements engineering: establishing the services that the customer requires from a system and the constraints.
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.
Software Requirements Software Requirements - adopted & adapted from I. Sommerville, 2004.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 / 54 Software Requirements.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 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.
Software Engineering, 8th edition. Chapter 6 1 Courtesy: ©Ian Sommerville 2006 March 05 th, 2009 Lecture # 8 Software Requirements.
Chapter 4 – Requirements Engineering Lecture 1 The hardest part of the software task is arriving at a complete and consistent specification, and much of.
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.
©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 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Requirement Classification Nisa’ul Hafidhoh Teknik Informatika
1 Software Requirements Descriptions and specifications of a system.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software Engineering, COMP201 Slide 1 Software Requirements.
Types and Characteristics of Requirements
Classifications of Software Requirements
Chapter 4 – Requirements Engineering
Software Requirements
Presentation on Software Requirements Submitted by
Chapter 4 Requirements Engineering (1/3)
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
Software Requirements
SNS College of Engineering Coimbatore
Software Requirements
Software Requirements
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

Software Requirements

Objectives: l To introduce the concepts of user and system requirements l To describe functional / non-functional requirements & Domain requirements l Problems with Requirements using Natural Language

What is a requirement? It is about WHAT not HOW Requirements are the descriptions of the services provided by a system for the customer and The constraints under which it operates and is developed. It may range from a high level abstract statement to a detailed mathematical (exact/precise) specification It may be as complex as a 500 pages of description This is inevitable as requirements may serve a dual function It may serve as the basis for a bid for a contract or the basis for the contract itself

What is requirements engineering? It is the process of discovering, analyzing, documenting and validating the requirements of the system Each software development process goes through the phase of requirements engineering

Why requirements? What are the advantages of a complete set of documented requirements? Ensures the user (not the developer) drives system functionalities Helps avoiding confusion and arguments Helps minimizing the changes Changes in requirements are expensive. Changing the requirements costs: 3 x as much during the design phase 5-10 x as much during implementation x as much after release [Code Complete]

Why requirements? 2/3 of finished system errors are requirements and design errors A careful requirements process doesn’t mean there will be no changes later Average project experiences about 25% changes in the requirements This accounts for 70-80% rework of the project Important to plan for requirements changes in the case of critical applications

Different levels of abstraction User requirements Usually the first attempt for the description of the requirements Services and constraints of the system In natural language or diagrams Readable by everybody Serve business objectives System requirements Services and constraints of the system in detail Useful for the design and development Precise and cover all cases Structured presentation

Example User requirement: The library system should provide a way to allow a client to borrow a book from the library. System requirement: The library system should provide a withdraw interaction that allows a patron to withdraw a book given the isbn and copy number of the book to be withdrawn. The interaction fails if: The book is already withdrawn, the book is not in the library's collection The client has already withdrawn 5 books The client owes more than Rs5 The book is on hold by someone else…..

Requirements readers

Types of requirements Functional requirements Services the system should provide What the system should do or not in reaction to particular situations Non-functional requirements Constraints on the services or functions offered by the system Examples: Timing constraints, constraints on the development process (CASE, language, development method…), standards etc Domain requirements Come from the application domain of the system and that reflect characteristics of that domain May be functional or non-functional Examples: Medicine, library, physics, chemistry Note: You can have user/system functional/non-functional requirements.

User requirements First attempt to describe functional and non-functional requirements Understandable by the user(natural language NL) Problems Natural Language: Lack of clarity - ambiguous language Requirements confusion - functional, non-functional requirements, design information are not distinguished(illustrious) Requirements amalgamation – several requirements are defined as a single one Incompleteness – requirements may be missing Inconsistency – requirements may contradict themselves

System requirements Elaborate the user requirements to get a precise, detailed and complete version of them Used by designers and developers An important aspect is how to present/write system requirements Natural language is often used! The difference between user and system requirements must not be thought as a detail

Writing system requirements Natural language (informal requirements) Reviled by academics But widely practiced: everybody can read them, finding a better notation is hard Structured natural language Forms/templates are used to bring some rigor (strictness) to natural language presentations Graphical notations Using boxes, arrows… but they mean different things to different people Formal specification Based on logic, state machines… Hard to understand for many people

Functional Requirements(Describe functionality or system services) Depend on the type of software, expected users and the type of system where the software is used Functional user requirements may be high-level statements of what the system should do BUT functional system requirements should describe the system services in detail

Non-functional requirements(Define system properties and constraints ) They can be categorized into: Product requirements Product behavior Ex: Timing, performance, memory, reliability, portability, usability Organizational requirements Policies and procedures in the customer’s and developer’s organizations Example: Process requirements, implementation requirements, delivery requirements External requirements Factors externals to the system and the development process Example: Interoperability, legislation, ethics Non-functional requirements may be more critical than functional requirements. (The system may be useless…)

Non-functional requirements It is important to be able to test/verify/check non- functional requirements

Domain requirements Derived from the application domain and describe system characteristics and features that reflect the domain If domain requirements are not satisfied, the system may be unworkable

Problems with NL specification Ambiguity The readers and writers of the requirement must interpret the same words in the same way. NL is naturally vague 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

Example: If sales for current month are below target sales, then report is to be printed unless difference between target sales and actual sales is less than half of difference between target sales and actual sales in previous month, or if difference between target sales and actual sales for the current month is less than 5%. Problems: Difficult to read Ambiguity: sales and actual sales, 5% of what? Incomplete: what if sales are above target sales?

THANK YOU !