ProcessModels

download ProcessModels

of 47

Transcript of ProcessModels

  • 8/10/2019 ProcessModels

    1/47

    B. Computer Sci. (SE) (Hons.)

    CSEB233: Fundamentals

    of Software Engineering

    ProcessModels

  • 8/10/2019 ProcessModels

    2/47

    Lesson Objectives

    Describe the types of process flows

    Determine task set for software process activities

    Explain software process patterns

    Discuss several process assessment and improve-ment frameworks

    Analyze prescriptive and specialized software

    process models Select a process model for software development

    project

  • 8/10/2019 ProcessModels

    3/47

    A Generic Process Model

    A software process:

    o a collection of work activities, actions, tasks, which

    are performed when software is to be created.

    A process (model or framework )

    o is where these activities, actions, and tasks reside,

    and that defines their relationship with the process

    and with one another.oAlso known as an abstract representation of a

    software process.

  • 8/10/2019 ProcessModels

    4/47

    A Generic Process Model

    Shows the technical work hierarchy

    o activities encompassing (including)

    actions, populated by tasks.

    Each action is defined by a set of

    tasks that defines:

    o the actual workto complete

    o

    the work productsto produceo the quality assurance filters to apply, and

    o the milestonesthat are used to indicate the

    project and product progress

  • 8/10/2019 ProcessModels

    5/47

    Process Activities

    Framework & Umbrella

    Framework activities :o generic activities that are applicable to all software projects, regardless

    of their size or complexity

    o Include communication; planning; modeling, construction; anddeployment

    A process framework involves heavy communication with the customer togather requirements;

    this activity establishes a plan for the software engineering work that follows.

    It involves creation of models that will assist the developer and the customerto understand the requirements and design them;

    it thereby involves construction (code generation and error testing).

    It finally provides feedback based on the evaluation.

  • 8/10/2019 ProcessModels

    6/47

    Process Activities

    Framework & Umbrella

    Umbrella activities:o complementary activities applied throughout a software project and help manage

    and control progress, quality, change, and risk.

    o Include:

    Software Project Tracking and Control (Assess progress and take action to maintain commitment)

    Risk Management (Assess risks that will affect outcome and quality)

    Software Quality Assurance (Define and conduct activities to ensure software quality)

    Formal Technical Reviews (Assess Work products to uncover and rectify defects)

    Measurement (Define and collect process, project and product metrics)

    Software Configuration Management (Manage effect of change)

    Reusability Management (Define criteria and establish mechanisms for reuse)

    Work Product (Activities required to create the work products)

  • 8/10/2019 ProcessModels

    7/47

    Process Models

    ProcessFlows

  • 8/10/2019 ProcessModels

    8/47

    Process Flow

    Describes how the framework activities and the actions and tasks that

    occur within each activity are organized with respect to sequence

    and time.

    The flows:

    o Linear: execute the framework activities in sequence.

    o Iterative: repeats one or more of the activities before proceeding to the next.

    o Evolutionary: execute the activities in a circularmanner.

    o Parallel: executes one or more activities with other activities in the same time.

  • 8/10/2019 ProcessModels

    9/47

    Process Flow

  • 8/10/2019 ProcessModels

    10/47

    Process Models

    TaskSet

  • 8/10/2019 ProcessModels

    11/47

    Identifying a Task Set

    A task set defines the actual work to be done to

    accomplish the objectives of a software

    engineering action

    oA list of the tasks to be accomplished

    oA list of the work products to be produced

    oA list of the quality assurance filters to be applied

  • 8/10/2019 ProcessModels

    12/47

    Identifying a Task Set

    Key Questions in Determining Task Set

    Q: What actions are appropriate for aFramework activity, given:

    o the nature of the problem to be solved;

    o the characteristics of the people doing the work;

    and

    o the stakeholders of the project?

    Q: What work tasks (task set) that these

    actionsshould encompass?

    Different projects require different task sets

    o The tasks should be selected based on problems

    and project characteristics.

  • 8/10/2019 ProcessModels

    13/47

    Identifying a Task Set

    Example

    Nature of the problems and project :o A small software project requested by one person (at a

    remote location) with simple, straightforward requirements.

    Actions (x):o Communication action: develop requirements

    Task set:

    o Make contact with stakeholder via telephone.o Discuss requirements and take notes.

    o Organize notes into a brief written statement of requirements.

    o E-mail to stakeholder for review and approval.

  • 8/10/2019 ProcessModels

    14/47

    Example

    1. Customer communication (a processactivity).

    2. Analysis (an action).

    3. Requirements gathering (a process task).

    4. Reviewing a work product (a process task).

    5. Design model (a work product).

  • 8/10/2019 ProcessModels

    15/47

    Process Models

    ProcessPatterns

  • 8/10/2019 ProcessModels

    16/47

    Process Patterns

    A process patterno describes a related process to problem that is

    encountered or happened during software engineeringwork,

    o identifies the environmentin which the problem has beenencountered, and

    o suggests one or more proven solutions to the problem

    In more general terms, a process pattern provides atemplateo a consistent method for describing problem solutions

    within the context of the software process

  • 8/10/2019 ProcessModels

    17/47

    Process Pattern Types

    Task patternso defines a problem with a software engineering

    action or work task and relevant to successful softwareengineering practice.

    Stage patternso defines a problem with a framework activity for

    the process

    Phase patternso define the sequence of framework activities that occur

    with the process, even when the overall flow of activities isiterative in nature

  • 8/10/2019 ProcessModels

    18/47

    Process Models

    ProcessAssessment&

    Improvement

  • 8/10/2019 ProcessModels

    19/47

    Process Assessment and

    Improvement: Approaches

    Standard CMMI Assessment Method forProcess Improvement (SCAMPI):o A standard Used to identify strengths,

    weaknesses, and ratings relative to SEICMMI appraisal reference model, which isapplicable to internal process improvement

    and external capability determination CMM-Based Appraisal for Internal Process

    Improvement (CBA IPI):o A standard provides a diagnostic technique

    for assessing the relative maturity of asoftware organization; uses the SEI CMM asthe basis for the assessment [Dun01].

    o However, CMM has been retired by SEI sincethe introduction of CMMI group of standards

    Capability Maturity Model Integration (CMMI)

    Software Engineering Institutes (SEI)

  • 8/10/2019 ProcessModels

    20/47

    Process Assessment and

    Improvement: Approaches

    SPICE (ISO/IEC15504):

    o Standardthat defines a set of requirements for software process assessment.

    o The intent of the standard is to assist organizations in developing an objective

    evaluation of the efficacy of any defined software process [ISO08]

    ISO 9001:2000 for Software:

    o A generic standard that applies to any organization that wants to improve the

    overall quality of the products, systems, or services that it provides.

    o Therefore, the standard is directly applicable to software organizations and

    companies [Ant06]

    Software Process Improvement and Capability Determination (SPICE)

    International Organization for Standardization (ISO)International Electrotechnical Commission (IEC)

  • 8/10/2019 ProcessModels

    21/47

    Tut

    In Group of 5 persons; Explain the difference

    between Activity, Action, and Task. Provide

    example for each of them.

  • 8/10/2019 ProcessModels

    22/47

    Process Models

    Prescriptive&Specialized

    ProcessModels

  • 8/10/2019 ProcessModels

    23/47

    Prescriptive Process Models

    Defines a distinct set of activities, actions, tasks,milestones, and work products that are requiredto engineer high-quality software.

    The activities may be linear, incremental, or

    evolutionary.

  • 8/10/2019 ProcessModels

    24/47

    Prescriptive Process Models

    Waterfall Modelo represents elements of a linear process flow

    V

    Incremental Model

    o combines elements of linear and parallel process flows Evolutionary Model

    o follows the evolutionary process flow that combines elementsof linear and iterative process flows

    Prototyping

    Spiral

    Concurrent Modelo combines elements of iterative and parallel process flows

  • 8/10/2019 ProcessModels

    25/47

    Prescriptive Process Models

    The Waterfall Model

    Represents a linear process flow from communica-tion through deploymentoAlso known as the classic SDLC

    The original Waterfall model proposed by WinstonRoyce in 1970 made provision for feedback loopso but many organizations apply this model as if it were

    strictly linear

    Communication

    Planning

    Modeling

    ConstructionDeployment

    analysis

    designcode

    test

    project initiation

    requirement gathering estimating

    scheduling

    tracking

    delivery

    support

    feedback

  • 8/10/2019 ProcessModels

    26/47

    Prescriptive Process Models

    An Analysis of Waterfall Model

    Characteristics Strengths Weaknesses Applicability

    It suggests a

    systematic, sequential

    approach to SE,

    starting from

    requirements

    specification throughplanning, modeling,

    construction, testing,

    deployment and

    support of the

    completed system.

    Each major activity is

    marked by milestonesand deliverables (i.e.

    documents).

    Simple and easy to

    use/explain to

    customers.

    The staged

    development cycleenforces discipline:

    every phase has a

    defined start and end

    point, and progress

    can be conclusively

    identified (through

    the use of

    milestones)

    Real projects rarely follow the

    linear flow that the model

    proposes. Although iteration is

    indirectly allowed, changes are

    costly, involve significant rework

    and can cause confusiontoproject team.

    The model requires the customer

    to state all requirements

    explicitly, which is often very

    difficult to achieve.

    The working softwarewill not be

    available until late in the project,

    which can be disastrous for late

    discovery of major defects.

    Leads to blocking states in

    which some project team members

    must wait for others to complete

    dependent tasks.

    When requirements are

    well understood and

    unlikely to change

    radically during system

    development (e.g., in a

    well-defined enhancementto an existing system).

    When software

    development

    technologies and tools

    are well known.

    The work tasks in the

    project are to proceed to

    completion in a linear

    manner.

  • 8/10/2019 ProcessModels

    27/47

    Prescriptive Process Models

    The V-Model

    Variation in representing

    the Waterfall model

    Illustrates how V&V

    actions are associatedwith earlier SE action

    There is no fundamental

    difference between the

    Waterfall model and the

    V-model

  • 8/10/2019 ProcessModels

    28/47

    Prescriptive Process Models

    The Incremental Model

    Rather than deliver the software product as a singledelivery, the development and delivery is broken downinto incrementswith each increment delivering part of therequired functionality.

    User requirements are prioritised and the highest priorityrequirements are included in early increments.

    Once the development of an increment is started, therequirements are frozen but requirements for laterincrementscan continue to evolve

  • 8/10/2019 ProcessModels

    29/47

    Prescriptive Process Models

    The Incremental Modelalittlemoreisaddedeachtime

    C o m m u n i c a t i o n

    P l a n n i n g

    M o d e l i n g

    C o n s t r u c t i o n

    D e p l o y m e n t

    d e l i v e r y

    f e e d b a c k

    analys is

    design code

    t e s t

    increment # 1

    increment # 2

    delivery of

    1st increment

    delivery of

    2nd increment

    delivery of

    nt h increment

    increment # n

    project calendar time

    C o m m u n i c a t i o n

    P l a n n i n g

    M o d e l i n g

    C o n s t r u c t i o n

    D e p l o y m e n t

    d e l i v e r y

    f e e d b a c k

    analys is

    design code

    t e s t

    C o m m u n i c a t i o n

    P l a n n i n g

    M o d e l i n g

    C o n s t r u c t i o n

    D e p l o y m e n t

    d e l i v e r y

    f e e d b a c k

    analys is

    designcode

    t e s t

  • 8/10/2019 ProcessModels

    30/47

    After the first increment, a core product is

    delivered, which can already be used by the

    customer.

    Based on customer feedback, a plan is

    developed for the next increments, andmodifications are made accordingly.

    This process continues, with increments being

    delivered until the complete product is

    delivered.

    Word-processing software developed using the incremental paradigm might deliver

    Basic file management,

    Editing and document production capabilities in the second increment; Spelling and grammar checking in the third increment; and

    Advanced page layout capability in the fourth increment.

    It should be noted that the process flow for any increment can incorporate the

    prototyping paradigm.

    For example?

  • 8/10/2019 ProcessModels

    31/47

    Prescriptive Process Models

    The Evolutionary Model: Prototyping

    Software prototyping: incomplete versions of the softwareprogram being developed.

    Using this process model, a prototype - an early approximation of a finalsoftware product - is built, tested, and then reworked as necessaryo until an acceptable prototype is finally achieved from which the complete

    software product is developed

    Although it can be implemented as a stand-alone process model, it ismore commonly used as part of other process models

    The main purpose of the model is to help better understand what it is tobuilt when requirements are fuzzy and get valuable feedback from theusers early in the project

  • 8/10/2019 ProcessModels

    32/47

    Prescriptive Process Models

    The Evolutionary Model: Prototyping

    Communication

    Quick plan

    Construction

    of

    prototype

    Model ing

    Quick design

    Delivery

    & Feedback

    Deployment

    communication

    Quickplan

    ModelingQuick design

    Constructionof prototype

    Deploymentdelivery &feedback

    If the prototype was working properly;

    ???

  • 8/10/2019 ProcessModels

    33/47

    Prescriptive Process Models

    The Evolutionary Model: Spiral

    A process model that combines the iterative nature of

    prototypingwith the systematic aspects of waterfall model.

    The spiral model can be thought of as a repeating waterfall model

    that emphasizes risk assessment and that is executed in an

    incremental fashion.

    Each loop/pass through the spiral model consists of risk

    assessment and other framework activities from communication

    through deployment

  • 8/10/2019 ProcessModels

    34/47

    Prescriptive Process Models

    The Evolutionary Model: Spiral

    communication

    planning

    modeling

    constructiondeployment

    delivery

    feedback

    start

    analysis

    design

    code

    test

    estimation

    scheduling

    risk analysis

    Used when requirements are not well understood and risks are high

  • 8/10/2019 ProcessModels

    35/47

    Prescriptive Process Models

    The Evolutionary Model: Spiral

    Used when requirements are not well understood and risks are high

  • 8/10/2019 ProcessModels

    36/47

    Prescriptive Process Models

    The Concurrent Model

    A process model that combines the iterative and

    parallel elements of any of the prescriptive

    process models.

    In this model, all SE activities (framework or

    umbrella) exist concurrently but assess in

    different states

  • 8/10/2019 ProcessModels

    37/47

    Prescriptive Process Models

    The Concurrent Model

    Under review

    Baselined

    Done

    Under

    revision

    A wait ing

    changes

    Under

    development

    none

    Modeling act ivity

    represents the state

    of a software engineering

    activity or task

    For exampleearly in a project the customer

    communication activity has completed its

    first iteration and exists in the awaiting

    changes state. The analysis activity

    (which existed in the none state while

    initial customer communication wascompleted) now makes a transition into

    the under development state. If, however,

    the customer indicates that changes in

    requirements must be made, the analysis

    activity moves from the under

    development state into the awaitingchanges state.

    The concurrent process model defines a

    series of events that will trigger

    transitions from state to state for each of

    the software engineering activities.

  • 8/10/2019 ProcessModels

    38/47

    Specialized Process Models

    Specialized Process Models is a combination of both component

    based development model (CBD) and formal method model.

    Special process models take on many of the characteristics of

    one or more of the conventional models.

    Specialized models tend to be applied when a narrowly defined

    software engineering approach is chosen.

  • 8/10/2019 ProcessModels

    39/47

    Specialized Process Models

    Component based software development (CBSD)o the process to apply when reuse is a development objective

    Formal methodso emphasizes the mathematical specification of requirements,

    which can demonstrate software correctness but are notwidely used.

    Aspect-oriented software development (AOSD)o provides a process and methodological approach for defining,

    specifying, designing, and constructing aspects

    Unified Processo a use-case driven, architecture-centric, iterative and

    incrementalsoftware process closely aligned with the UnifiedModeling Language (UML)

  • 8/10/2019 ProcessModels

    40/47

    Specialized Process Models

    Agile Processo An iterative approach to requirements specification, construction

    and deployment, which support rapid changes to requirements

    Personal Process Modelo Emphasizes the need to record and analyze errors made by each

    individual, so that he/she can develop a strategy to eliminate them

    Team Process Modelo Build self-directed teams that plan and track their work, establish

    goals, and own their processes and plans. These can be puresoftware teams or integrated product teams (IPT) of three to about

    20 engineerso Show managers how to coach and motivate their teams and how to

    help them sustain peak performance

  • 8/10/2019 ProcessModels

    41/47

    Process Models

    SelectingaProcessModel

  • 8/10/2019 ProcessModels

    42/47

    Selecting a Process Model

    Factors to Consider

    The characteristics of the problems to be solvedo Such as complexity of the problem, etc.

    o e.g. simple with clear, stable requirements, or complex withchanging, unstable requirements, etc.

    The characteristics of the projecto Such as the customers who have requested the product and the

    people who will do the work, etc.

    o e.g. Uncertain requirements, breakthrough technology

    The characteristics of the producto

    Such as quality attributes or metric of the product, product domain,etc.

    The project environment in which the software team workso Such as political, cultural, language, etc.

  • 8/10/2019 ProcessModels

    43/47

  • 8/10/2019 ProcessModels

    44/47

    Summary

    There are four types of process flows linear, iterative,evolutionary, and parallel.

    Software process patterns may suggest one or moreproven solutions to the problem from other projects, which

    can be reused in another project There are several process assessment and improvements

    frameworks that can be exercised by practitioners

    The analyses of prescriptive and specialized softwareprocess models would help select the most appropriateprocess model for a software development project, whichcan be proceeded with the identification of task set for theproject

  • 8/10/2019 ProcessModels

    45/47

    Selecting a Process Model

    An Exercise

    The Project:o Assume that you are in charge of a project to create a portal

    for Selangor.

    o This portal would include a homepage with links to a widerange of discounted travel packages to major destinations inSelangor, links to certain featured places like golf courses,shopping complexes and places to eat, links to the detailedmap of Selangor, and links to news and events listing

    o It also includes a bulletin board and chat room feature wheretourists (international and local tourists) can exchange

    information.o The portal should also provide Automated Teller Machine

    (ATM) locator, time zone converter, and currency converter.

  • 8/10/2019 ProcessModels

    46/47

    Selecting a Process Model

    An Exercise

    Select a software process model that you would

    recommend to be implemented in the above

    mentioned project

    Why is the software process model selected?

  • 8/10/2019 ProcessModels

    47/47

    THE ENDDr.AbdallahAbualkishik

    CollegeofInformationTechnology