En.requirements-RE-Definitions and Issues [Compatibility Mode]

download En.requirements-RE-Definitions and Issues [Compatibility Mode]

of 37

Transcript of En.requirements-RE-Definitions and Issues [Compatibility Mode]

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    1/37

    Requirements

    Refs: John Vu (CMU)

    Definitions and Issues

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    2/37

    What is software engineering ?

    11/10/2010 Requirement Management 2

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    3/37

    Practical Software Engineering

    Software engineering is training focusing on creating

    cost-effective solutions to real world problems byapplying engineering knowledge to build qualitysoftware systems

    o tware eng neers earn ow to ma e ec s ons ndesigning and implementing solutions under

    constraints of limited time, knowledge, and resources.

    The most important practice in software engineering

    that provides the greatest benefit is requirementsengineering

    11/10/2010 Requirement Management 3

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    4/37

    How many phase in softwareprocess ?

    11/10/2010 Requirement Management 4

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    5/37

    What are requirement ?

    11/10/2010 Requirement Management 5

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    6/37

    What Are Requirements?

    A condition or capability needed by a user or

    customer to solve a problem or achieve anobjective.

    system or system component to satisfy acontract, standard, specification, or other

    formally imposed document.

    A document representation of a condition or

    capability

    11/10/2010 Requirement Management 6

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    7/37

    Requirements Are

    Requirements are descriptions of the necessaryand sufficient properties of a product orservice that will satisfy the customers

    .

    Software requirements are descriptions ofthe necessary and sufficient properties of

    the software that must be met to ensure theproduct achieves what it was designed toaccomplish for its customers or users

    11/10/2010 Requirement Management 7

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    8/37

    Software Requirement - 1

    Every software project has users who rely on the

    software to do something for them. The time spent understanding and writing down what

    users need is very important.

    If software people do not have well writtenrequirements that users agree to, how can theydevelop software that satisfy those users?

    If you do NOT write down requirements but assume

    you know requirements, you may develop somethingusers do not want

    11/10/2010 Requirement Management 8

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    9/37

    Software Requirement - 2

    The TO DO List of the Project Team.

    The List of WHAT Customers need.

    The List of WHAT the software must do to

    . The List of WHAT components must be built.

    The List of WHATeach component must

    DO and HOW they will INTERACT.

    11/10/2010 Requirement Management 9

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    10/37

    Software Requirement - 3

    Requirements describe the behavior of thesoftware as seen from the customersperspective.

    equ remen s serve as a commun ca onschannel between customers, users andproject managers who are concerned with

    the development of software products orservices

    11/10/2010 Requirement Management 10

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    11/37

    Requirements Engineering

    A method of obtaining a precise formalspecification from the informal and oftenvague requirements with customers.

    e sc ence an sc p ne concerne wanalyzing and documenting requirements.It comprises needs analysis, requirements

    analysis, and requirements specifications.

    11/10/2010 Requirement Management 11

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    12/37

    Belief

    Firm requirements ?

    If can get req build perfect products ?

    11/10/2010 Requirement Management 12

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    13/37

    Wrong Belief

    Many people believe that for every projectthere is a set of firm requirements.

    If they can get them, they can build them

    an pro uce a per ec pro uc or so u on. Students are often taught that customers

    will give them requirements just like a

    professor gives them assignments and allthey have to do is to build the softwareaccordingly.

    11/10/2010 Requirement Management 13

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    14/37

    Wrong Belief again

    Many people believe customers will clearly

    provide:

    Functional requirements

    w y w w

    How it will be used

    Performance & Scalability

    System boundary (Scope) Operating environment (Domain)

    Verification criteria

    11/10/2010 Requirement Management 14

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    15/37

    What are customers actually give us ?

    11/10/2010 Requirement Management 15

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    16/37

    Actually

    Customers will provide:

    A wish list of what they would like to have.

    A solution to their problems without knowledge.

    A vague description that limits implementation.

    A technology that they read from newspapers.

    Changes as they often change their minds.

    Strict budget & schedule

    11/10/2010 Requirement Management 16

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    17/37

    Why Is It So ?

    Many customer expectations are NOT based on

    needs but wants University training is still focusing on solving problems

    NOT identifying problems.

    Most software engineers do not receive adequatetraining on requirements engineering.

    Many software engineers want to work on solutionsrather than take time to understand the problem (code

    first, ask questions later).

    11/10/2010 Requirement Management 17

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    18/37

    The Academic View

    11/10/2010 Requirement Management 18

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    19/37

    The Academic View

    This simple view only works when there

    are:

    Unlimited resources

    Unchanging requirements

    Great working environment

    Perfect communication

    No constraints

    11/10/2010 Requirement Management 19

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    20/37

    The real world view

    Experienced engineers know that there are:

    Insufficient resources

    Insufficient time

    -

    Highly political working environment

    Imperfect communication

    Financial constraints

    Schedule constraints

    Other constraints

    11/10/2010 Requirement Management 20

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    21/37

    Why Requirements Engineering?

    Failure to develop good requirements is the

    major cause for software project failures

    Lack of knowledge of customers business

    process con r u es o e a ure orequirements engineering

    11/10/2010 Requirement Management 21

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    22/37

    Requirements Issues

    Failure to understand customers needs or

    their business problems is the major causefor software project failures.

    o ware peop e mus earn o s en o evoice of customers and understand theirbusiness process during requirements

    gathering.

    11/10/2010 Requirement Management 22

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    23/37

    Requirements Defects

    Requirements defects are poorly defined

    requirements, errors in requirement caused byincorrect, incomplete, missing, or conflictingrequirements.

    e ect ve requ rements may resu t n:

    Project failures

    Expensive rework

    Cost overruns

    Poor quality Late delivery

    Dissatisfied customers

    Demoralized developers11/10/2010 Requirement Management 23

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    24/37

    Customers Vs Stakeholders

    11/10/2010 Requirement Management 24

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    25/37

    Who is the Customer?

    A customer is an individual or organization

    who derives either direct or indirect benefitfrom a product.

    so ware cus omer s an n v ua ororganization who request, pay for, select,specify, use or receive output generated by

    a software product Sometimes the term customers is generalized to stakeholders.However, not all stakeholders are customers or users but they dohave influences over the software development.

    11/10/2010 Requirement Management 25

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    26/37

    Who Are Stakeholders?

    To build a useful software, we need to

    know its requirements.

    To know its requirements, we need to know

    e s a e o ers nee s Stakeholder is a person or group that has

    an interest in the software and can

    influence the software requirements or canbe impacted by the software product.

    11/10/2010 Requirement Management 26

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    27/37

    Who are Stakeholders?

    Customers

    Users

    Analysts

    Developers PMs

    Manufacturing people

    Sales, marketing, field support

    11/10/2010 Requirement Management 27

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    28/37

    Questions

    Do you know who your stakeholders are?

    Who else should be considered a stakeholder? How many stakeholders are there?

    How familiar are stakeholders with the business?

    What level of skills and knowledge do they have? What is a successful solution worth to these

    stakeholders?

    How much time do we have to solve this problem?

    11/10/2010 Requirement Management 28

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    29/37

    Issues With Stakeholders

    Different perspectives on the software project being

    developed. Different backgrounds can cause communication

    problems.

    Different objectives which influence views on therequirements.

    Different abilities to express requirements and documentthem.

    Different involvement, some can make decisions and

    others may not.Never assume that all stakeholders share a common notion of what requirements are.

    11/10/2010 Requirement Management 29

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    30/37

    Calling all stakeholders

    The first step in requirements engineeringis

    to identify everyone who should participatein defining the requirements

    ac person as eren perspec veson requirements: Customers

    Users

    Indirect users/Support personnel Managers

    System engineer/Sales & Marketing people

    Software developers

    11/10/2010 Requirement Management 30

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    31/37

    Prioritize Stakeholders

    Not all stakeholders are equally important,

    so it is essential to prioritize theidentifiedstakeholder roles into:

    Major

    Minor

    11/10/2010 Requirement Management 31

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    32/37

    Key Requirements Concept

    Software engineers must answer these

    questions:

    Who are stakeholders?

    What do they want? Where could it work?

    Why do they want it?

    How will we know? When should we build it?

    11/10/2010 Requirement Management 32

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    33/37

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    34/37

    Key Concepts

    Know who your stakeholders are.

    Understand stakeholders needs.

    Transform stakeholders needs into

    business requirements. Specify requirements based on priority

    11/10/2010 Requirement Management 34

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    35/37

    Summary

    Requirements Engineering is the first opportunity to

    mess up the project. Many software developers are not trained in

    Requirements Engineering.

    Requirements Engineering activities must start earlyin the project.

    Software developers must understand stakeholdersroles.

    Requirements are the primary reason for most project

    failures

    11/10/2010 Requirement Management 35

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    36/37

    Questions

    Knowing your Stakeholders Business:

    Whats their product or service?

    Who is theircustomer?

    ow o ey reac e r cus omer

    How do they make money (or get rewarded)?

    Do they have the right personnel to do theirjob?

    11/10/2010 Requirement Management 36

  • 7/30/2019 En.requirements-RE-Definitions and Issues [Compatibility Mode]

    37/37

    Questions

    Knowing your business:

    Whats your product or service?

    Who is yourcustomer?

    ow o you reac yourcus omer

    How do you achieve success?

    Why is your team able to accomplish this?

    11/10/2010 Requirement Management 37