Negotiation and Specification Process

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Software Requirements
Software Requirements
Characteristics of a good SRS
Introduction to Software Engineering Dr. Basem Alkazemi
Information System Design IT60105 Lecture 3 System Requirement Specification.
Software Requirements
SWE Introduction to Software Engineering
Software Requirements
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
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 Software Requirements Specification Lecture 14.
Software Engineering Chapter 6 Software requirements
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
The Software Development Life Cycle: An Overview
Software Requirements Specification (SRS) Complete description of external behavior of software system Complete description of external behavior.
Typical Software Documents with an emphasis on writing proposals.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
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.
Requirements Documentation CSCI 5801: Software Engineering.
Requirements Reference: Chapters 5, 6, & 8. CMSC 345, Fall Objectives To introduce the concepts of user and system requirements To explain functional.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Requirements Engineering Overview Senior Design Don Evans.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
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.
1 Quality Attributes of Requirements Documents Lecture # 25.
Requirement Engineering. Recap Flow Based Modeling DFDs CFDs Processing narratives Class-based Model How to select classes? How to find attributes and.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Requirements / Specifications. 01/18/10CS-499G2 Requirements Determine what the customer needs (wants) the software to do  What are requirements?  An.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Week 3: Requirement Analysis & specification
Software Engineering Chapter 6 Software requirements Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Software Requirements
Software Requirements Specification Document (SRS)
Requirements Analysis
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
CS223: Software Engineering Lecture 8: Requirement Engineering.
UML - Development Process 1 Software Development Process Using UML.
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.
1 Software Requirements Descriptions and specifications of a system.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
Types and Characteristics of Requirements
Chapter 4 – Requirements Engineering
Software Requirements
Presentation on Software Requirements Submitted by
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
Elaboration & Negotiation Process
SNS College of Engineering Coimbatore
Requirements Reference: Software Engineering, by Ian Sommerville, 6th edition, Chapters 5, 6, & 8.
Lecture # 7 System Requirements
Engineering Quality Software
Chapter 3 Requirements Engineering
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

Negotiation and Specification Process Lecture-19

Recap Negotiation process Activities Negotiation meetings Requirement prioritization

Today’s lecture Negotiation process Specification Writing functional requirements

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

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.

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#

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.

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

How detailed requirements should be? Abstracts requirements are the requirements of the stakeholders Detailed requirements are a system specification

Types of requirement User requirements System 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.

User and system requirements User requirements System shall generate monthly reports showing the cost of drugs prescribed by each clinic during the month System requirements 1.1 On the last working day of each month, a summary of drugs prescribed, their cost and the prescribing clinics shall be generated 1.2 The system shall automatically generate the report for printing after 17:30 on the last working day of each month 1.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 drugs 1.4 If drugs are available in different dose unit (e.g. 10mg, 20mg, etc.) separate reports shall be created for each dose unit 1.5 Access to all cost reports shall be restricted to authorized users listed on a management access control list

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 Software developers

Deriving Requirements from use case(s)

Example Use Case Normal Flow: Alternative Flows: Exceptions: Includes: Use 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 server 5. 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 Id 1.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:

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”.

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

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.

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

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.

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.

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.

Modifiable Stable Traceable

Summary Negotiation process Specification process Requirements Types of requirements Users of requirements Deriving requirements from a use case Characteristics of a good SRS