Software Development Processes Course: Research Paper
Requirements Engineering
Types of Requirements
Functional
Non-functional
Quality Attributes
Constraints on the Product
Constraints on the Development process
Business
Marketing
Examples of Functional Requirements
The product should be able to compute student grades from weighted examinations, assignments, and projects.
I want the product to track all online automobile sales within a one hundred mile radius of my home for the past six months.
I need to be able to provide an explanation to my customer why they do not qualify for a loan.
Examples of NonFunctional Requirements
The software must provide at least 1/10th second response to up to 1,000 simultaneous users.
Users with vision no better than 20/100 must be able to use all features of the product.
The software must be available for use by at least 200 simultaneous users at least 99.99% of the time.
Describing Requirements
Natural Language
Structured Natural Language
User Story
Use Case
User Story Example
User Login
A non-administrative user should be able to access all the user functionality of the system by enteringa correct user name and password.
What constitutes a correct user name and a valid password should be described in the Glossary of the Requirements Specification.
Use Case Example
Recipe Program
List recipes for Specified Ingredients
1. Start application
2. Display Welcome Screen
3. Select List recipes
4. Request Ingredients
5. Enter ingredients
6. Display corresponding recipes
7. Exit application
A Term
Feature
A functional capability of interest to users.
Examples
Working with a single appointment
Viewing my future schedule for a day, week, or month
Monitoring Database Usage
Activities of Requirements Engineering
Elicitation
Analysis and Negotiation
System Modeling
Specification
Validation
Management
An Elicitation Method
Rapid Appplication Development
Interview
Structured
Open-ended
Questionaire
Survey
Analysis Method
Examine each requirement
Is it unambiguous
Is it complete
Is it feasible
If uncertain, need prototyping or modeling
Modeling Using UML
Use Case Diagram
Using the Class Diagram
Use Case Diagram Example
Personal Scheduler
Establish Identity
Add Appointment
Dellete Appointment
Move Appointment
Change Appointment
View a Day
View a Week
View a Month
Delete Schedule
Create New Schedule
Class Diagram Example
Some requirements for a TV Log
Cap-1:Must support information on up to 5,000 television episodes.
Cap-2: Must be able to handle up to 1,000 distinct TV shows.
Cap-3: Must be able to have 300 word opinion of any episode.
Rep-1: Must be able to retrieve list of episodes and dates for any show.
Des-1: Must be able to report show, network, episodes about which we have information.
Sec-1: Muust keep all information encrypted when not actively in use.
A Class Diagram Example
Showing relationships to major User data
Identify major user data
Place each identified type of data in a rectangle.
Put each requirement in a rectangle.
Draw a line from each requirement rectangle to those data rectangles it affects.
Showing relationships among requirements
Place each requirement in a rectangle.
Draw a line between each pair of requirements where one affects the other.
Put an arrowhead at the end of each line to show the direction of the relationship.
Label the line the name of that relationship.
Using Software requirements Specification
Goals
Describe the current requirements
Facilitate reviews
Provide a reference for the design
Testing use cases
Explaining vocabulary
Communication between developers and business stakeholders
Support tracing
A Sample Format
Introduction
Product Goals
Business Stakeholders
Intended Audience
Project Scope
Document Conventions
More sample Format
Product Overview
Potential Users
What Users Might do with the Product
Operating Environments
Assumptions and dependencies
More Sample format
The Current Requirements
Funtional
Nonfunctional
Quality Attributes
Performance
Reliability
Satety
Security
etc
More Sample Format
Constraints on the Product
Constraints on the Development Process
Business
Marketing
Glossary of Terms
Desirable properties for the SRS
Correct
Unambiguous
Complete
Consistent
According to the IEEE Standard 830
More desirable Properties
Unambiguous
Traceable
Prioritized
Testable
A method for Validation
Each individual requirement should be:
Atomic
Uniquely identified
Complete
Consistent and unambiguous
Traceable
Prioritized
Testable
A Method for requirements Management
Tracking
Controling Revisions
Maintaining sublists
Completed
Top Priority uncompleted
Current iteration backlog
Postponed to later iteration
Postponed to later release
Requirements Summary
Three types of Requirements Engineerinng
Comprehensive initial requirements
Tentative initial requirements with periodic updates
Just enough requirements for this release or iteration with periodic updates
Non-functional requirements often are much harder to satisfy because their impact is diffuse.
Requirements must be understood by all stakeholders.
Customer
Manager
Supplier
Point of Sale System
Check Inventory
Order Stock
Cashier
Generate Invoice
<<include>>
Check out
Update Inventory
Payment
Scan Item
Bank
Refund
Exchange
Cash Payment
Card Payment
Recieve Stock
Generate Sales
Reports
<<include>>
<<include>>
<<extend>>
<<extend>>
<<include>>
Service Desk
<<include>>
<<include>>
<<include>>
dispatch
close
dateReceived: Date[0..1]
isPrepaid: Boolean[1]
number: String[1]
price: Money
Order
getCreditRating(): String
name[1]
address[0..1]
Customer
quantity: Integer
price: Money
Order Line
Product
{If Order.customer.getCreditRating is "poor"
then Order.isPrepaid must be true}
billForMonth(Integer)
remind()
contactName
creditRating
creditLimit
Corporate Customer
creditCardNumber
Personal Customer
Employee
*
1
1
*
{ordered}lineItems
*
1
0..1salesRep
*
UML Class DIagram