Top Banner

of 40

RE-lectur-1

Apr 04, 2018

Download

Documents

Yasir Khan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 7/31/2019 RE-lectur-1

    1/40

    1

    Software Requirements

    Engineering

  • 7/31/2019 RE-lectur-1

    2/40

    2

    Introduction

    Requirements form the basis for allsoftware products

    Requirements engineering is theprocess, which enables us to

    systematically determine therequirements for a software product

  • 7/31/2019 RE-lectur-1

    3/40

    3

    Software Requirements

    Lecture # 1

  • 7/31/2019 RE-lectur-1

    4/40

    4

    Requirement

    Something required, something wanted

    or needed

    Websters dictionary

    There is a huge difference between

    wantedand neededand it should bekept in mind all the time

  • 7/31/2019 RE-lectur-1

    5/40

    5

    Requirements

    IEEE Standard 729 defines it as (1) a

    condition or capability needed by a

    user to solve a problem or achieve an

    objective; (2) a condition or capability

    that must be met or possessed by a

    system...to satisfy a contract, standard,

    specification, or other formally

    imposed document

  • 7/31/2019 RE-lectur-1

    6/40

    6

    Importance of Requirements

    The hardest single part of building a

    software system is deciding what to

    build...No other part of the work so

    cripples the resulting system if done

    wrong. No other part is difficult to

    rectify later

    Fred Brooks

  • 7/31/2019 RE-lectur-1

    7/40

    7

    Requirements Engineering

    Requirements elicitation

    Requirements analysis and negotiation Requirements specification

    System modeling

    Requirements validation

    Requirements management

  • 7/31/2019 RE-lectur-1

    8/40

    8

    Software Requirements - 1

    A complete description ofwhatthe

    software system will do without

    describing how it will do it is

    represented by the software

    requirements

  • 7/31/2019 RE-lectur-1

    9/40

    9

    Software Requirements - 2

    Software requirements are completespecification of the desired external

    behavior of the software system to bebuilt

    They also represent External behaviorof the system

  • 7/31/2019 RE-lectur-1

    10/40

    10

    Software Requirements - 3

    Software requirements may be:

    Abstract statements of services and/or

    constraints

    Detailed mathematical functions

  • 7/31/2019 RE-lectur-1

    11/40

    11

    Software Requirements - 4

    Software requirements may be:

    Part of the bid of contract

    The contract itself

    Part of the technical document, which

    describes a product

  • 7/31/2019 RE-lectur-1

    12/40

    12

    IEEE Definition

    A condition or capability that must be

    met or possessed by a system...to

    satisfy a contract, standard,

    specification, or other formally

    imposed document

    IEEE Std 729

  • 7/31/2019 RE-lectur-1

    13/40

    13

    IEEE Definition

    A condition or capability needed by a

    user to solve a problem or achieve an

    objective

  • 7/31/2019 RE-lectur-1

    14/40

    14

    Sources of Requirements

    Stakeholders

    People affected in some way by the

    system

    Documents

    Existing system Domain/business area

  • 7/31/2019 RE-lectur-1

    15/40

    15

    Levels of Software Requirements

    Stakeholders describe requirements at

    different levels of detail

    What versus How

    One persons floor is another persons

    ceiling

  • 7/31/2019 RE-lectur-1

    16/40

    16

    What Versus How

    User needs

    Product space

    Actual products behavior

    Architecture/data flow

    Module specifications

    Algorithms

    Code

    WhatHow

    What

    HowWhat

    HowWhat

    How

    What

    HowWhat

    How

  • 7/31/2019 RE-lectur-1

    17/40

    17

    Importance of Software

    Requirements The hardest single part of building a

    software system is deciding what to

    build...No other part of the work so

    cripples the resulting system if done

    wrong. No other part is difficult to

    rectify later

    Fred Brooks

  • 7/31/2019 RE-lectur-1

    18/40

    18

    Examples of Requirements - 1

    The system shall maintain records of

    all payments made to employees on

    accounts of salaries, bonuses,

    travel/daily allowances, medical

    allowances, etc.

  • 7/31/2019 RE-lectur-1

    19/40

    19

    Examples of Requirements - 2

    The system shall interface with the

    central computer to send daily sales

    and inventory data from every retail

    store

  • 7/31/2019 RE-lectur-1

    20/40

    20

    Examples of Requirements - 3

    The system shall maintain records of

    all library materials including books,

    serials, newspapers and magazines,

    video and audio tapes, reports,

    collections of transparencies, CD-

    ROMs, DVDs, etc.

  • 7/31/2019 RE-lectur-1

    21/40

    21

    Examples of Requirements - 4

    The system shall allow users to search

    for an item by title, author, or by

    International Standard Book Number

    The systems user interface shall beimplemented using a web browser

  • 7/31/2019 RE-lectur-1

    22/40

    22

    Examples of Requirements - 5

    The system shall support at least

    twenty transactions per second

    The system facilities which are

    available to public users shall bedemonstrable in ten minutes or less

  • 7/31/2019 RE-lectur-1

    23/40

    23

    Kinds of Software Requirements

  • 7/31/2019 RE-lectur-1

    24/40

    24

    Kinds of Software Requirements

    Functional requirements

    Non-functional requirements

    Domain requirements

    Inverse requirements

    Design and implementation constraints

  • 7/31/2019 RE-lectur-1

    25/40

    25

    Functional Requirements

  • 7/31/2019 RE-lectur-1

    26/40

    26

    Functional Requirements - 1

    Statements describing what the system

    does

    Functionality of the system

  • 7/31/2019 RE-lectur-1

    27/40

    27

    Functional Requirements - 2

    Statements of services the system

    should provide

    Reaction to particular inputs

    Behavior in particular situations

  • 7/31/2019 RE-lectur-1

    28/40

    28

    Functional Requirements - 3

    Sequencing and parallelism are also

    captured by functional requirements

    Abnormal behavior is also documented

    as functional requirements in the formof exception handling

  • 7/31/2019 RE-lectur-1

    29/40

    29

    Functional Requirements - 4

    Functional requirements should be

    complete and consistent

    Customers and developers usually

    focus all their attention on functionalrequirements

  • 7/31/2019 RE-lectur-1

    30/40

    30

    Functional Requirements Example # 1

    The system shall solve a quadratic

    equation using the following formula

    x = (-b+sqrt(b24*a*c))/2*a

  • 7/31/2019 RE-lectur-1

    31/40

    31

    Functional Requirements Example # 2

    The user shall be able to search either

    the entire database of patients or select

    a subset from it (admitted patients, or

    patients with asthma, etc.)

  • 7/31/2019 RE-lectur-1

    32/40

    32

    Functional Requirements Example # 3

    The system shall provide appropriate

    viewers for the user to read documents

    in the document store

  • 7/31/2019 RE-lectur-1

    33/40

    33

    Functional Requirements Example # 4

    Every order shall be allocated a unique

    identifier (ORDER_ID) which the user

    shall use to access that order

  • 7/31/2019 RE-lectur-1

    34/40

    34

    Functional Requirements Example # 5

    The system shall allow customers to

    return non-perishable items within

    fifteen days of the purchase. A

    customer must present the original sale

    receipt to return an item

  • 7/31/2019 RE-lectur-1

    35/40

    35

    Comments on Examples

    Notice the level of detail in different

    requirements described above. Some

    are very detailed compared to others

  • 7/31/2019 RE-lectur-1

    36/40

    36

    Comments on Examples

    Notice the ambiguity in therequirement, which uses the term

    appropriate viewers

    This requirement does not mention the

    formats of documents and types ofviewers, which can be used

  • 7/31/2019 RE-lectur-1

    37/40

    37

    Comments on Examples

    Notice the ambiguity in therequirement for solving the quadratic

    equation. The requirement does notspeak about the possibility when thevalue of a is zero

    x = (-b+sqrt(b24*a*c))/2*a

  • 7/31/2019 RE-lectur-1

    38/40

    38

    Comments on Examples

    Incomplete and ambiguousrequirements are open to multiple

    interpretations and assumptions

    This can lead to the development of

    poor quality, or faulty, softwareproducts

  • 7/31/2019 RE-lectur-1

    39/40

    39

    Summary

    Requirements form the basis of allsoftware engineering projects

    Functional requirements capture thebehavioral aspects/functions of theproposed automated system

    Functional requirements are thebackbone of all software products

  • 7/31/2019 RE-lectur-1

    40/40

    40

    References

    Requirements Engineering: Processes andTechniques by G. Kotonya and I.

    Sommerville, John Wiley & Sons, 1998 Software Requirements: Objects, Functions,

    and States by A. Davis, PH, 1993

    Software Engineering 6th Edition, by I.Sommerville, 2000

    Software Engineering 5th Edition, by R.Pressman