software requirements engineering negotiation and specification process lecture-19

23
Software Requirements Engineering Negotiation and Specification Process Lecture-19

Upload: melvin-washington

Post on 12-Jan-2016

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Software Requirements Engineering Negotiation and Specification Process Lecture-19

Software Requirements Engineering

Negotiation and Specification Process

Lecture-19

Page 2: Software Requirements Engineering Negotiation and Specification Process Lecture-19

Recap Negotiation process

Activities Negotiation meetings Requirement prioritization

Page 3: Software Requirements Engineering Negotiation and Specification Process Lecture-19

Today’s lecture Negotiation process Specification

Writing functional requirements

Page 4: Software Requirements Engineering Negotiation and Specification Process Lecture-19

4

Negotiation During negotiation, the software engineer

reconciles the conflicts between what the customer wants and what can be achieved given limited business resources

Requirements are ranked (i.e., prioritized) by the customers, users, and other stakeholders

Risks associated with each requirement are identified and analyzed

Rough guesses of development effort are made and used to assess the impact of each requirement on project cost and delivery time

Using an iterative approach, requirements are eliminated, combined and/or modified so that each party achieves some measure of satisfaction

Page 5: Software Requirements Engineering Negotiation and Specification Process Lecture-19

5

Requirements A description of how the system should

behave, or of a system property or attribute.

They might be a constraint on the development process of the system.

Page 6: Software Requirements Engineering Negotiation and Specification Process Lecture-19

6

Requirements (Cont..) A user-level facility

Word processor must include a spell checking and correction command

A very general system property The system must ensure that personal information

is never made available without authorization A specific constraint on the system

The sensor must be polled 10 times per second A constraint on the development of the

system The system should be developed using C#

Page 7: Software Requirements Engineering Negotiation and Specification Process Lecture-19

7

Requirements (Cont…) Requirements therefore invariably contain a

mixture of problem information, statements of system behavior and properties and design and manufacturing constraints.

The primary measure of success of a software

system is the degree to which it meets the purpose for which it was intended.

Page 8: Software Requirements Engineering Negotiation and Specification Process Lecture-19

8

Functional Requirements What inputs the system should accept What outputs the system should produce What data the system should store that other

systems might use What computations the system should

perform The timing and synchronization of the above

Page 9: Software Requirements Engineering Negotiation and Specification Process Lecture-19

9

How detailed requirements should be? Abstracts requirements are the requirements

of the stakeholders Detailed requirements are a system

specification

Page 10: Software Requirements Engineering Negotiation and Specification Process Lecture-19

Types of requirement User requirements

Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers.

System requirements A structured document setting 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.

10

Page 11: Software Requirements Engineering Negotiation and Specification Process Lecture-19

11

User and system requirements User requirements

1. System shall generate monthly reports showing the cost of drugs prescribed by each clinic during the month

System requirements1.1 On the last working day of each month, a summary of drugs prescribed, their cost and the prescribing clinics shall be generated1.2 The system shall automatically generate the report for printing after 17:30 on the last working day of each month1.3 A report shall be created for each clinic and shall list the individual drug names, the total number of prescriptions, the number of doses prescribed and the total cost of prescribed drugs1.4 If drugs are available in different dose unit (e.g. 10mg, 20mg, etc.) separate reports shall be created for each dose unit1.5 Access to all cost reports shall be restricted to authorized users listed on a management access control list

Page 12: Software Requirements Engineering Negotiation and Specification Process Lecture-19

12

Readers of different types of requirements specification User requirements

Client managers System end-users Client engineers Contractor managers System architects

System requirements System end-user Client engineer System architects Software developers

Page 13: Software Requirements Engineering Negotiation and Specification Process Lecture-19

13

Deriving Requirements from use case(s)

Page 14: Software Requirements Engineering Negotiation and Specification Process Lecture-19

14

Example Use CaseUse Case ID: UC-01

Use Case Name: Sign up

Actors: Application user, Gmail server (secondary actor)

Description: User is signing up to get registered and to get backup of his/her qaza history on cloud.

Trigger: User selects the application icon.

Preconditions: User has downloaded application successfully.

Postconditions: User is successfully signed up and log-in information is stored on the phone. In future the user should be logged in automatically.

Normal Flow: 1. User selects “Prayer Assistant”. 2. System ask for Gmail id, password and sect. 3. User give Gmail id, password and sect. 4.System will confirm email id through Gmail server5. System stores information. 6. System displays a confirmation dialog to give feedback that “user is successfully registered”.

Alternative Flows: 4a. IN step 4 of the normal flow, if the user enter wrong email Id1.Sytem will display a warning message “Email id is not exist” .2.System will ask to re enter email id.Use Case resumes on step 4 of normal flow

Exceptions:

Includes:Special Requirements:

Assumptions: As to download application from Google play store user must have Gmail account

Notes and Issues:

Page 15: Software Requirements Engineering Negotiation and Specification Process Lecture-19

15

Possible Functional Requirements The user shall download the mobile application

through play store. The system shall display sign up form which takes

Gmail id and password and sect as input. The system shall verify that user’s provided

account exist at Gmail server. The system shall display a warning message

“Email id is not exist” with an option “re enter email id”.

The system shall display a confirmation message to give feedback that “user is successfully registered”.

Page 16: Software Requirements Engineering Negotiation and Specification Process Lecture-19

16

Characteristics of a good SRS Correct Unambiguous Complete Consistent Ranked for importance and/or stability Verifiable Modifiable Traceable

Page 17: Software Requirements Engineering Negotiation and Specification Process Lecture-19

17

Correct An SRS is correct if, and only if, every

requirement stated therein is one that the software shall meet.

There is no tool or procedure that ensures correctness.

The SRS should be compared with any applicable superior specification, such as A system requirements specification, with other

project documentation, and with other applicable standards, to ensure that it agrees.

Alternatively the customer or user can determine if the SRS correctly reflects the actual needs.

Traceability makes this procedure easier and less prone to error.

Page 18: Software Requirements Engineering Negotiation and Specification Process Lecture-19

18

Unambiguous An SRS is unambiguous if, and only if, every

requirement stated therein has only one interpretation. As a minimum, this requires that each characteristic of

the final product be described using a single unique term.

The SRS should be unambiguous both to those who create it and to those who use it.

However, these groups often do not have the same background and therefore do not tend to describe software requirements the same way.

How to avoid ambiguity Natural language pitfalls Requirements specification languages Representation tools

Page 19: Software Requirements Engineering Negotiation and Specification Process Lecture-19

19

Complete An SRS is complete if, and only if, it includes the

following elements: All significant requirements, whether relating to

functionality, performance, design constraints, attributes, or external interfaces.

Definition of the responses of the software to all realizable classes of input data in all realizable classes of situations.

Note that it is important to specify the responses to both valid and invalid input values.

Full labels and references to all figure, tables, and diagrams in the SRS and definition of all terms and units of measure.

Page 20: Software Requirements Engineering Negotiation and Specification Process Lecture-19

20

Consistent An SRS is consistent if, and only if, no subset of individual requirements

described in it conflict. The three types of likely conflicts in an SRS are as follows: The specified characteristics of real-world objects may conflict. For

example, The format of an output report may be described in one requirement as tabular

but in another as textual. One requirement may state that all lights shall be green while another may state

that all lights shall be blue.There may be logical or temporal conflict between two specified actions. For

example, One requirement may specify that the program will add two inputs and another

may specify that the program will multiply them. One requirement may state that “A” must always follow “B,” while another may

require that “A and B” occur simultaneously. Two or more requirements may describe the same real-world object but

use different terms for that object. For example, a program’s request for a user input may be called a “prompt” in one requirement and a “cue” in another. The use of standard terminology and definitions promotes consistency.

Page 21: Software Requirements Engineering Negotiation and Specification Process Lecture-19

21

Verifiable An SRS is verifiable if, and only if, every requirement

stated therein is verifiable. A requirement is verifiable if, and only if, there exists

some finite cost-effective process with which a person or machine can check that the software product meets the requirement.

In general any ambiguous requirement is not verifiable. Non verifiable requirements include statements such as

“works well,” ”good human interface,” and “shall usually happen.”

These requirements cannot be verified because it is impossible to define the terms “good,” “well,” or “usually.” The statement that “the program shall never enter an infinite loop” is non-verifiable because the testing of this quality is theoretically impossible.

Page 22: Software Requirements Engineering Negotiation and Specification Process Lecture-19

22

Modifiable Stable Traceable

Page 23: Software Requirements Engineering Negotiation and Specification Process Lecture-19

23

Summary Negotiation process Specification process

Requirements Types of requirements Users of requirements Deriving requirements from a use case Characteristics of a good SRS