Chapter 4 Software Requirements

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Software Requirements
Software Requirements
Introduction to Software Engineering Dr. Basem Alkazemi
Software Engineering COMP 201
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
©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.
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.
المحاضرة الثالثة. 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.
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
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 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Requirements Engineering Overview Senior Design Don Evans.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
IS550: Software requirements engineering Dr. Azeddine Chikh 2. Functional and non-functional requirements.
Chapter 6+7 in textbook 1 Chapter 4 Software Requirements 1.
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.
Software Requirements Software Requirements - adopted & adapted from I. Sommerville, 2004.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 / 54 Software Requirements.
 To introduce the concepts of user and system requirements  To describe functional and non-functional requirements  To explain how 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.
Week 3: Requirement Analysis & specification
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.
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.
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)
©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.
Chapter 4 – Requirements Engineering
Software Requirements
Software Requirements
Presentation on Software Requirements Submitted by
Chapter 5 – Requirements Engineering
Requirements Engineering
Software Requirements
Chapter 4 Software Requirements
Software Requirements
Software Requirements
Software Requirements
Software Requirements
Software Requirements
Software Requirements
Software Requirements
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

Chapter 4 Software Requirements Chapter 6,and 7 in textbook 1

Objectives To understand the concept of software requirements To understand the difference between functional and non functional requirements Understand the importance of getting it right. Understand how requirements are documented (the SRS document) 2

Overview What are software requirements? User and system requirements Functional requirements Non functional requirements Domain requirements User and system requirements Interface specification Why is it important to get it right? The SRS document 3

What are Software Requirements “The descriptions of the system services and constraints that are generated during the requirements engineering process.” Developed during the first phase in the software development life cycle.

The LIBSYS case study A library system that provides a single interface to a number of databases of articles in different libraries. Users can search for, download and print these articles for personal study.

Requirements types Functional requirements Non-functional requirements Domain requirements

Functional Requirements

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 requirements can be User requirements: high-level statements of system functionality System requirements: describe the system services in detail.

User requirements- examples The user shall be able to search either all of the initial set of databases or select a subset from it. The user shall be able to order any book by company xyz.

Problems Problems arise when requirements are not precisely stated (Ambiguous) Ambiguous requirements may be interpreted in different ways by developers and users.

Non-Functional Requirements

Non-Functional Requirements These define system properties, constraints, and process requirements

System Properties Reliability, Response time Maintainability Storage requirements.

Constraints I/O device capability, Data representations used in system interfaces

Process Requirements Mandating a particular CASE system, Programming language or Development method.

Which do you think is more critical, A functional or non-functional requirement and why? Have a look at the following video Non-functional requirements may be more critical than functional requirements. If these are not met, the system is useless. If an aircraft does not provide its reliability requirement it will not be certified as safe for operation.

Europeana Project

Types of Non-functional requirements

Examples Product requirement Organisational requirement The user interface for LIBSYS shall be implemented as simple HTML without frames or Java applets. Organisational requirement The system development process and deliverable documents shall conform to the process and deliverables defined in XYZCo-SP-STAN-95. External requirement The system shall not disclose any personal information about customers apart from their name and reference number to the operators of the system.

Verifiable Non-functional requirements Non-functional requirements may be very difficult to state precisely Imprecise requirements may be difficult to verify. Therefore we need a statement using some measure that can be objectively tested.

Example The system shall be easy to use Better expressed as: Experienced users shall be able to use all the system functions after a total of two hours training. After this training, the average number of errors made by experienced users shall not exceed two per day.

Requirements measures

Domain Requirments

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.

Example The deceleration of the train shall be computed as: Dtrain = Dcontrol + Dgradient where Dgradient is 9.81ms2 * compensated gradient/alpha and where the values of 9.81ms2 /alpha are known for different types of train.

Class Activity Working with your team, identify the type of requirements listed on the sheet. When you are done discuss your decisions with the rest of the class. Check each requirement, if you got it right give yourself 1 point. Compute your total. The winning teams will get a smiley sticker

User and System Requirements

We provide a definition for a user requirement. User Requirements Written for customers Statements in natural language Describe the services the system provides and its operational constraints. May include diagrams or tables Should describe functional and non-functional requirements Should be understandable by system users who don’t have detailed technical knowledge. We provide a definition for a user requirement.

We provide a specification for a system requirement. System Requirements Statements that set out detailed descriptions of the system’s functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor. Intended to be a basis for designing the system. Can be illustrated using system models We provide a specification for a system requirement.

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.

Definition and Specifications

Interface Specification Most systems must operate with other systems and the operating interfaces must be specified as part of the requirements.

The SRS document

Why is it important to get it right? If you don’t do it right you will build a very elegant software solution that solves the wrong problem.  the result is project failure (wasted time, and money, personnel frustration, and customer dissatisfaction.

Representing Requirements The SRS document The Software Requirements Specification (SRS) document is the official statement of what is required of the system developers.

The SRS document 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 WHAT the system should do rather than HOW it should do it.

Users of the SRS

Structure of the SRS Preface Introduction Glossary User requirements definition System architecture (high level) System requirements specification System models System evolution Appendices Index

Requirments Engineering

Requirements Engineering Process “The process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed.” The result is a specification :“representing the requirements in a manner that ultimately leads to successful software implementation.

Requirements engineering Involves the following processes Feasibility Study  Feasibility Report Requirements elicitation  System Models Requirements Specification  user and system requirements Requirements validation  Requirements document (SRS) + Requirements Management

Requirements Engineering Process

The Feasibility Study A feasibility study decides whether or not the proposed system is worthwhile. A short focused study that checks If the system contributes to organisational objectives; If the system can be engineered using current technology and within budget; If the system can be integrated with other systems that are used.

Requirements Elicitation 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. May involve end-users, managers, engineers involved in maintenance, domain experts, etc. These are called stakeholders.

Requirements discovery Sources of information Documentation System stakeholders Interviews Observation (ethnography) Specifications of similar systems

Stakeholders for LIBSYS Can you identify possible stakeholders for the LIBSYS? Library manager Article providers Students Staff

Analysis : System models Why? The model aids the analyst in understanding the system, thereby makes the requirements analysis easier and more systematic. The model becomes the focal point of review. The model becomes foundation for design. Produced during requirements analysis. More on modeling in chapter 5.

Requirements specification It is the final work product produced by the requirements engineer. The SRS document It serves as a foundation for the software design and implementation.

Requirements Validation The process of ensuring that the requirements actually define the system that the customer wants. Why is it important? The cost of fixing a requirements problem by making a system change is much greater than repairing design or coding errors.

Validation checks Validity checks Consistency checks Is this what the user wants? Consistency checks Requirements should not conflict Completeness checks Requirements should define all functions and constraints Realism checks Ensure they could be implemented Verifiability Requirements should be written so that they are verifiable, you should be able to write tests for each requirement.

Validation techniques Requirements reviews A team of reviewers manually check the requirements. Prototyping An executable model of the system is demonstrated to customers. Test-case generation Requirements should be testable. If tests are difficult or impossible to design, this means that the requirements will be difficult to implement. Developing tests before any code is written is used in ----?

Requirements Management Why? Requirements for large software systems are always changing. Because the problem can not be fully specified, the requirements are usually incomplete and bound to change. During the software process the stakeholders understanding of the problem is constantly changing After the system is installed, new requirements will emerge. What? It is the process of understanding and controlling changes to system requirements.

Requirements Management Planning Requirements identification Each requirement must be uniquely identified A change management process Assess the impact and cost of change Traceability policies Define the relationship between requirements CASE tool support

Good Requirements Explanation Characteristic Everything the software is supposed to do and responses of the software to all classes of input data are specified in the SRS Complete The requirement does not contradict any other requirement Consistent Every requirement in the SRS represents something required in the final system. Correct The requirement is concisely stated without recourse to technical jargon, acronyms (unless defined elsewhere in the Requirements document. Every requirement has one and only one interpretation. Unambiguous There is a cost effective method that can check whether the final software meets the requirement. Verifiable