1 software requirements specification srs in xp dr. zahid anwar
DESCRIPTION
Requirements Analysis Understanding the customer’s requirements for a software system how to do itTRANSCRIPT
1
Software Requirements Specification
SRS in XP
Dr. Zahid Anwar
“Dilbert” on Extreme and Agile Programming
CS428 4-2
Requirements Analysis
Understanding the customer’s requirements for a software system
how to do it
Requirements analysis Sometimes called requirements
elicitation or requirements discovery 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, trade unions, etc. These are called stakeholders
Problems of requirements analysis
Stakeholders don’t know what they really want
Stakeholders express requirements in their own terms
Different stakeholders may have conflicting requirements
Organisational and political factors may influence the system requirements
The requirements change during the analysis process. New stakeholders may emerge
The requirements analysis process
Requirementsvalidation
Domainunderstanding Prioritization
Requirementscollection
Conflictresolution
Classification
Requirementsdefinition andspecification
Processentry
CS428 4-7
RequirementsRequirements should be
specific, so you can tell whether you met them.
precise as necessary, but no moreFunctional requirements
inputs, outputs, and the relations between them
in theory, can specify completelyNon-functional requirements
hard to specify, can’t specify completely• scalability
• maintainability• portability
• ...
• security• reliability• efficiency• usability
CS428 4-8
Functional requirementsInputs, outputs, and the relationship
between them
Use CasesFormats, standard interfacesBusiness rules and complex formula
CS428 4-9
Functional requirementsCommand language
The “get” command will transfer ...Web pages
Input forms, dynamic pagesConnections to other systems
Files, sockets, XML, …Reports, displays
Functional requirements Requirement: a desired relationship among
phenomena of the environment of a system, to be brought about by the hardware/software machine that will be constructed and installed in the environment.
A specification describes machine behavior sufficient to achieve the requirement. A specification is a restricted kind of
requirement Lathe
OperatorMachine
RequiredBehaviorof lathe
Specification Requirements
Functional requirements Requirements define necessary objectives e.g.
software must handle error states reasonably and effectively, and provide explicit feedback to the users.
Specifications Define How to Meet The Objectives list out all possible error states for a certain form, along
with all of the error messages that should be displayed to the user.
CS428 4-12
Non-functional requirementsPerformance
Must answer a query in 3 secondsUsability
New user must be able to finish buying a book in 15 minutes
90% of users must say they like interfaceMaintainability
New programmers should be able to fix first bug in two weeks on the job
CS428 4-13
Nonfunctional requirementsTechnology
Must use JavaBusiness
Must get it finished in 1 year spending less than $1,000,000.
XP Requirements: Release PlanningRelease Planning
Happens in the beginning of every project Made up of 2 phases: Exploration + Planning Game
Each project divided up into 1+ releasesEach release must
Be small Must deliver enough features to be of business
value Consist of a collection of user stories to provide
features
User StoriesUser story is a
short description of what the business or customer wants the software to do, written by the customer in the customer terminology without techno-syntax.
User Stories Index Cards Usually written on index
cards because easy to understand Pass around Tear up Prioritize
One and only one business feature
Written by & focus on customer
Avoid details of specific technology, data base layout, and algorithms
Poor User Stories
Too vague and hard to Estimate Test
Defines implementation details
Customer doesn’t care about Tomcat or Dreamweaver
Splitting of Stories
More than one business feature Search and Selection
functionality
Split
Planning Game Example (From Textbook)Northwind Inc Business Problem
Large reseller of food & beverage products. Product sales over direct-mail catalogs.
Processing of orders done over the phone from initial input of
the order to shipment and
delivery of the order
3-19
Create a Web presence that allows customers to self-order Northwind products and
track the status of their orders all the way through to shipment
3-20
User Stories for Northwind
Quick High-Level Design Flow
3-21
User Story Estimating &Planning Game Estimating
Estimates are in Story Points 1 story point = 1 ideal day
Planning Game Prioritization of User Stories
Priority is from 1 to n, not high, medium, low. Velocity Determination
(No. of Devs/Load ✕ Iteration Length in Business DaysE.g. for
• 8 developers• 2-week iteration• load factor=4 (time devs spend not coding (meetings, email, pair
programming)• Iteration team velocity (#story pts team can complete)= (8/4 X 10)
= 20 User Story Selection according to priority (may not exceed velocity)
Planning Game Planning happens once at the start of each iteration
Plan for just one iteration at a time Planning game is the main interface between customer and
development team How it works
Customer provides all the story cards that have been written Developers write on each card an estimate of how long it will
take to implement Developers provide an estimate of available developers X
time (= “velocity”) Customer chooses stories by priority to fill the available time
VelocityVelocity =
(iteration length x No of Developers) / Load Factor
Load factor is the multiplier that connects how long you think things will take to how long they actually take
e.g. you think 2 days, it takes 6, so load factor is 3 (which is fairly typical!)
Story SelectionVelocity of a single iteration(4/3 ✕ 10) = 13
Two week Iteration
User Stories Review
Planning Game Class Exercise Groups of 5 with Subgroups
One Manager: Responsibilities includepassing information from the customers to the
programmers/designers. ensuring that project runs according to the strict time schedule keeps both groups on task during each phase.Presents the Stories and Design
Two Programmers: Facilitate the goals of the customer.Velocity calculationStory Points Estimation
Two Customers: responsible for fine-tuning of the general specifications supplied by the instructorWriting user story cards, prioritization and selection
Deliverables 5-10 user stories with prioritization, velocity & high-level
design
Toaster Electronic Thermometer
Wristwatch for Blind users
Windows Media Player
for TVSpice Rack for Blind People
Universal Remote Control
Sugar Dispenser for
Diabetics
ToasterToaster ModeThe User inserts a loaf of bread and specifies the desired temperature and the heating timeThe bread is heated until the time has elapsedand the toaster is turned off automatically
Toaster Mode Forced StopThe User can stop the toaster at any time beforethe time has elapsed by pressing a push button
Oven ModeThe User doesn’t specify a time by turning off the time Knob therefore the toaster heats to the desired temperature until the user turns it off.
Toaster Mode Stop NotificationWhen the timer expires and the heating stops andthe toaster informs the user by making a beep sound.