Software Development Processes Course: Research Paper

profilefarzadbigz
RequirementsEngineering.pptx

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