meljun cortes jedi slides-3.1 requirements engineering concepts

Upload: meljun-cortes-mbampa

Post on 03-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    1/27

    Software Engineering 1

    Requirements Engineering

    Requirements

    EngineeringConcepts and

    DynamicsTOPIC ONE

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    2/27

    Software Engineering 2

    Requirements Engineering

    It is a software engineering activity or phase that allowsdevelopers to understand the problem domain.

    It encompasses a set of tasks that lead to the understanding

    to what the business impact of the software will be, what thecustomer wants, and how end-user will interact with thesoftware.

    It consists of seven distinct tasks, namely, inception,elicitation, elaboration, negotiation, specification, validation

    and management.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    3/27

    Software Engineering 3

    Inception

    It is at this task that a problem or an oppurtunity is identified.

    It is at this task that the problem scope and its nature isdefined.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    4/27

    Software Engineering 4

    Initiating Requirements

    Engineering Steps1) Identify stakeholders.2) Recognize multiple viewpoints.

    3) Work toward collaboration.

    4) Ask the first questions.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    5/27

    Software Engineering 5

    Inception Work Product

    The product request is a one or two pages summary of theproblem and its nature.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    6/27

    Software Engineering 6

    Elicitation

    It is the task that helps the customer define what is required.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    7/27

    Software Engineering 7

    Problem with Elicitation

    Problems of Scope

    Problems of Understanding

    Problems of Volatility

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    8/27

    Software Engineering 8

    Elicitation Approach

    Collaborative Requirements Gathering

    It requires the cooperation of a group of end-users and developersto elicit requirements. They work together to:

    Identity the problem

    Propose elements of the solution

    Negotiate different approaches

    Specify a preliminary set of solution requirements

    Joint Application Development is one technique that is popularlyused to elicit requirements.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    9/27

    Software Engineering 9

    Pre-Joint Meeting Tasks

    If there is not product request, one stakeholder should writeone.

    Set the place, time and date of the meeting.

    Select the facilitator. Invite the members of the team (end-users, developers and

    other stakeholders)

    Distribute the product request to all members before themeeting.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    10/27

    Software Engineering 10

    Pre-Joint Meeting Tasks

    Each attendee is asked to make the following:

    A list of objects that are part of the environment that surrounds thesystem

    A list of other objects that are produced by the system

    A list of objects that are used by the system to perform its functions

    A list of services (processes or functions) that manipulate or interactwith the objects

    A list of constraints such as cost, size and business rules

    A list of performance criteria such as speed, accuracy etc

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    11/27

    Software Engineering 11

    Joint Meeting Tasks

    Justify the need for the software product.

    Each participant should present his list to the group.

    Combine the list.

    Create a consensus list in each topic (objects, services,constraints, performance).

    The team is divided into sub-teams. Each sub-teams areasked to develop the mini-specifications for one or moreentries of the consensus list. Mini-specification is simply anelaboration of the item in the list using words and phrases.

    Present the mini-specifications.

    If issues arise, make an issue list.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    12/27

    Software Engineering 12

    Joint Meeting Tasks

    Validation criteria is created.

    A consensus list of validation criteria is created.

    Draft specifications using all inputs of the meeting are

    created by one or more team members.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    13/27

    Software Engineering 13

    Post-Joint Meeting Tasks

    Compile the complete draft specifications of the itemsdiscussed in the meeting.

    Prioritize requirements.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    14/27

    Software Engineering 14

    Quality Function Deployment

    It is a technique that emphasizes an understanding of whatis valuable to the customer to help the team prioritizerequirements.

    It identifes requirements as:

    Normal Requirements

    Expected Requirements

    Exciting Requirements

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    15/27

    Software Engineering 15

    Quality Function Deployment

    Value Analysis is employed to determine the type ofdeployment.

    Function Deployment

    Information Deployment

    Task Deployment

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    16/27

    Software Engineering 16

    MoSCoW Technique

    It is a requirements prioritization technique that evaluatesrequirements against a classes of priority.

    Must Have

    Should Have

    Could Have

    Won't Have

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    17/27

    Software Engineering 17

    Elicitation Work Product

    A statement of need and feasibility

    A bounded statement of scope for the system or product

    A list of customer, users, and other stakeholders who

    participated in requirements elicitation. A brief description of the system's technical documents

    A priority list of requirements, preferably, in terms offunctions, objects and domain constraints that apply to each

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    18/27

    Software Engineering 18

    Elaboration

    It is the requirement engineering task that focuses indefining, redefining, and refining the requirementsengineering models.

    The Requirements Model

    The Analysis Model

    It tries to model the WHAT rather than the HOW.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    19/27

    Software Engineering 19

    Elaboration Work Product

    The Requirements Model

    The Use Case Model

    Supplementary Documents

    Glossary or Definition of Terms The Analysis Model

    Analysis Classes (Class Diagrams)

    Sequence Diagrams

    Collaboration Diagrams

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    20/27

    Software Engineering 20

    Negotiation

    It is a task that encourages collaboration.

    It is a task where conflicts are resolved.

    It is a task where a project plan is developed that meets the

    requirements of the user while reflecting real-worldconstraints such as time, people and budget.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    21/27

    Software Engineering 21

    The Art of Negotiation

    Remember that negotiation is NOT a competition.

    Have a strategy.

    Listen effectively.

    Focus on the other's party needs. Don't make it personal.

    Be creative.

    Be ready to commit.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    22/27

    Software Engineering 22

    Specification

    It is the final work product produced by the requirementsengineering phase.

    It serves as a foundation for subsequent softwareengineering activities, particularly, the design andconstruction of the software.

    It shows the functional, informational and behavioral aspectsof the system.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    23/27

    Software Engineering 23

    Validation

    It is the task that examines the specification to ensure thatall software requirements have been stated clearly and thatinconsistencies, omissions, and errors have been detectedand corrected.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    24/27

    Software Engineering 24

    Requirements Validation

    Checklist1) Is each requirement consistent with the overall objective forthe system or product?

    2) Have all requirements been specified at the proper level ofabstraction? That is, do some requirements provide a levelof technical detail that is not appropriate at the stage?

    3) Is the requirement really necessary or does it represent anadd-on feature that may not be essential to the objective ofthe system?

    4) Is each requirement bounded and clear?5) Does each requirement have attribution? That is, is a

    source (generally, a specific individual) noted for eachrequirement?

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    25/27

    Software Engineering 25

    Requirements Validation

    Checklist6) Do any of the requirements conflict with other requirements?7) Is each requirement achievable in the technical environment

    that will house the system or product?

    8) Is each requirement testable, once implemented?9) Does the requirement model properly reflect the information,

    function, and behavior of the system to be built?

    10)Has the requirements model been partitioned in a waythat exposes progressively more detailed information about

    the system?

    11)Have the requirements pattern been used to simplify therequirements model? Have all patterns been properlyvalidated? Are all patterns consistent with customerrequirements.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    26/27

    Software Engineering 26

    Management

    It is a set of activities that help the project team identify,control and track requirements and their changes at anytime as the project progresses.

    A Requirements Traceability Matrix is used to track and

    control requirements over the progression of the softwaredevelopment project.

  • 7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts

    27/27

    Software Engineering 27

    Summary

    Requirement Engineering

    Seven Tasks

    Inception

    Elicitation Elaboration

    Specification

    Validation

    Negotiation Management