51155102-SE-RESORCE-MNGT

Embed Size (px)

Citation preview

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    1/77

    Sofware Process 1

    Software Process

    Integrated Approach to SE

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    2/77

    Sofware Process 2

    Software Process Process is distinct from product products are

    outcomes of executing a process on a project

    Software Engineering focuses on process

    Premise: Proper processes will help achieve projectobjectives of high QP

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    3/77

    Sofware Process 3

    Software Process Process: A particular method, generally involving a

    number of steps

    Software Process: A set of steps, along withordering constraints on execution, to producesoftware with desired outcome

    Many types of activities performed by different

    people in a software project Better to view software process as comprising of

    many component processes

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    4/77

    Sofware Process 4

    Software ProcessesSoftware Process

    ProductEngineering

    Process

    ProcessManagement

    Process

    DevelopmentProcess

    ProjectManagement

    Process

    ConfigurationManagement

    Process

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    5/77

    Sofware Process 5

    Component Software Processes Two major processes

    Development focuses on development and quality steps

    needed to engineer the software Project management focuses on planning and

    controlling the development process

    Development process is the heart of softwareprocess; other processes revolve around it

    These are executed by different people Programmers, testers execute development process

    Project manager executes the management process

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    6/77

    Sofware Process 6

    Component Processes Other processes

    Configuration management process: manages the

    evolution of artifacts Requirements management process: how changes in

    requirements are incorporated

    Review process: How inspections are conducted on

    artifacts Process management process: management of processes

    themselves

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    7/77

    Sofware Process 7

    Process Specification Process is generally a set of phases

    Each phase performs a well defined task and

    generally produces an output

    Intermediate outputs work products / artifacts

    At top level, typically few phases in a process

    How to perform a particular phase methodologieshave been proposed

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    8/77

    Sofware Process 8

    ETVX Specification ETVX approach to specify a step

    Entry criteria: what conditions must be satisfied before

    initiating this phase Task: what is to be done in this phase

    Verification: the checks done on the outputs of this phase

    eXit criteria: when can this phase be considered done

    successfully

    A phase also produces info for management

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    9/77

    Sofware Process 9

    ETVX approach

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    10/77

    Sofware Process 10

    Desired Process Properties Provide high Q&P

    Support testability as testing is the most expensive task;

    testing can consume 30 to 50% of total developmenteffort

    Support maintainability as maintenance can be moreexpensive than development; over life up to 80% of total

    cost Remove defects early, as cost of removing defects

    increases with latency

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    11/77

    Sofware Process 11

    High Q&P: Early Defect

    Removal Cost of a defect increases with latency

    Hence, for high Q&P, the process must support

    early defect removal

    That is why there is a V in ETVX, and quality controltasks in the software process

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    12/77

    Sofware Process 12

    Early Defect Removal

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    13/77

    Sofware Process 13

    Desired Properties Predictability and repeatability

    Process should repeat its performance when used on

    different projects i.e. outcome of using a process should be predictable

    Without predictability, one cannot estimate, or sayanything about quality or productivity

    With predictability, past performance can be used topredict future performance

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    14/77

    Sofware Process 14

    Predictability Predictable process is said to be under statistical

    control

    Repeatedly using the process produces similar results

    Results properties of interest like quality, productivity,

    To consistently develop software with high Q&P,process must be in control

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    15/77

    Sofware Process 15

    Predictability

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    16/77

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    17/77

    Sofware Process 17

    Summary Process method for doing something

    Process typically has stages, each stage focusing on

    an identifiable task Stages have methodologies

    Software process can be viewed as comprising ofmultiple processes

    Goal is to produce software with high quality andproductivity

    Process is the means

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    18/77

    Sofware Process 18

    Development Process andProcess Models

    Integrated Approach to SE

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    19/77

    Sofware Process 19

    Software Project Project Temporary endeavor undertaken to

    accomplish a unique purpose

    Software Project to build a software system withincost and schedule with high quality which satisfiesthe customer

    Project goals high Q and high P

    Suitable process needed to reach goals For a project, the process to be followed is specified

    during planning

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    20/77

    Sofware Process 20

    Development Process A set of phases and each phase being a sequence of

    steps

    Sequence of steps for a phase - methodologies forthat phase.

    Why have phases

    To employ divide and conquer (manage complexity)

    Each phase handles a different part of the problem

    Helps in continuous verification

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    21/77

    Sofware Process 21

    Development Process Commonly has these activities: Requirements

    analysis, architecture, design, coding, testing,

    delivery Different models perform them in different manner

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    22/77

    Sofware Process 22

    Requirement Analysis To understand and state the problem precisely

    Forms the basis of agreement between user and

    developer Specifies what , not how

    Not an easy task, as needs are often misunderstood

    Requirement specifications of even medium systems

    can be many hundreds of pages Output is the software requirement specifications

    (SRS) document

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    23/77

    Sofware Process 23

    Design A major step in moving from problem domain to

    solution domain; three main tasks

    Architecture design components and connectors thatshould be there in the system

    High level design modules and data structures neededto implement the architecture

    Detailed design logic of modules

    Most methodologies focus on architecture or highlevel design

    Outputs are architectural/high/logic design docs

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    24/77

    Sofware Process 24

    Coding Converts design into code in specific language

    Goal: Implement the design with simple and easy to

    understand code. Code should be simple and readable.

    The coding phase affects both testing andmaintenance. Well written code can reduce thetesting and maintenance effort.

    Output is code

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    25/77

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    26/77

    Sofware Process 26

    Effort Distribution Distribution of effort :

    Req. - 10-20%

    Design - 10-20% Coding - 20-30%

    Testing - 30-50%

    Coding is not the most expensive.

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    27/77

    Sofware Process 27

    Distribution of effort How programmers spend their time

    Writing programs - 13%

    Reading programs and manuals - 16% Job communication - 32%

    Others - 39%

    Programmers spend more time in reading programsthan in writing them

    Writing programs is a small part of their lives

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    28/77

    Sofware Process 28

    Defects Distribution of error occurrences by phase is

    Req. - 20%

    Design - 30% Coding - 50%

    Defects can be injected at any of the major phases

    Cheapest way to detect and remove defects close towhere it is injected.

    Hence must check for defects after every phase

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    29/77

    Sofware Process 29

    Process Models A process model specifies a general process, usually

    as a set of stages

    This model will be suitable for a class of projects

    i.e. a model provides generic structure of theprocess that can be followed by some projects toachieve their goals

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    30/77

    Sofware Process 30

    Projects Process If a project chooses a model, it will generally tailor it

    to suit the project

    This produces the spec for the projects process This process can then be followed in the project

    i.e. process is what is actually executed; processspec is plan about what should be executed;

    process model is a generic process spec Many models have been proposed for the

    development process

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    31/77

    Sofware Process 31

    SDLC Models Waterfall Model

    Prototyping / RAD

    Iterative / Incremental Model

    Spiral Model / Evolutionary Model

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    32/77

    Sofware Process 32

    Classical Waterfall model

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    33/77

    Sofware Process 33

    Waterfall model with iterationRequirements

    definition

    System andsoftware design

    Implementationand unit testing

    Integration andsystem testing

    Operation andmaintenance

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    34/77

    Sofware Process 34

    Waterfall Model Linear sequence of stages/phases

    Requirements HLD DD Code Test Deploy

    A phase starts only when the previous hascompleted

    The phases partition the project, each addressing a

    separate concern

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    35/77

    Sofware Process 35

    Waterfall Linear ordering implies each phase should have

    some output

    The output must be validated/certified Outputs of earlier phases: work products

    Common outputs of a waterfall: SRS, project plan,

    design docs, test plan and reports, final code,supporting docs

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    36/77

    Sofware Process 36

    Waterfall Advantages Conceptually simple, cleanly divides the problem

    into distinct phases that can be performed

    independently Natural approach for problem solving

    Easy to administer in a contractual setup eachphase is a milestone

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    37/77

    Sofware Process 37

    Waterfall disadvantages Assumes that requirements can be specified and

    frozen early

    May fix hardware and other technologies too early Follows the big bang approach all or nothing

    delivery; too risky

    Very document oriented, requiring docs at the endof each phase

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    38/77

    Sofware Process 38

    Waterfall Usage Has been used widely

    Well suited for projects where requirements can be

    understood easily and technology decisions are easy i.e. for familiar type of projects it still may be the

    most optimum

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    39/77

    Sofware Process 39

    V-Model It is a variation of Waterfall model with strong

    emphasis on Testability

    Model encourages test activities beginning inparallel with corresponding development activities

    Early verification & validation helps in mitigating risk

    Excellent for system requiring high reliability Works well when requirements are well understood

    Suffers from problems similar to waterfall model

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    40/77

    Sofware Process 40

    V-Model

    User requirementsand acceptance

    test planning

    Functionalrequirements and

    system test planning

    Architectureand integration

    test planning

    Detailed design

    and unittest planning

    Unit

    testing

    Integrationtesting

    Systemtesting

    Acceptancetesting

    Coding

    Time

    Verification Validation

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    41/77

    Sofware Process 41

    Prototyping Prototyping addresses the requirement specification

    limitation of waterfall

    Instead of freezing requirements only bydiscussions, a prototype is built to understand therequirements

    Helps alleviate the requirements risk

    A small waterfall model replaces the requirementsstage

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    42/77

    Sofware Process 42

    Throwaway - Prototype Development of prototype

    Starts with initial requirements

    Only key features which need better understanding areincluded in prototype

    No point in including those features that are wellunderstood

    Feedback from users taken to improve the understanding

    of the requirements Once the requirements are understood, throwaway the

    prototype and start all over again

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    43/77

    Sofware Process 43

    Prototyping Cost can be kept low

    Build only features needing clarification

    quick and dirty quality not important, scripting etc canbe used

    Things like exception handling, recovery, standards areomitted

    Cost can be a few % of the total Learning in prototype building will help in building,

    besides improved requirements

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    44/77

    Sofware Process 44

    Prototyping- pros & cons Pros

    generally, reduces cost of development

    reduces risks associated with projects

    Cons

    customer wants the prototype as final system

    implementation level compromises are made

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    45/77

    Sofware Process 45

    Prototyping Problems

    Lack of process visibility

    Systems are often poorly structured Special skills (e.g. in languages for rapid prototyping) may

    be required

    Applicability

    For small or medium-size interactive systems

    For parts of large systems (e.g. the user interface)

    For short-lifetime systems

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    46/77

    Sofware Process 46

    Iterative Development Counters the all or nothing drawback of the

    waterfall model

    Combines benefit of prototyping and waterfall Develop and deliver software in increments

    Each increment is complete in itself

    Can be viewed as a sequence of mini waterfalls Feedback from one iteration is used in the future

    iterations

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    47/77

    Sofware Process 47

    Iterative Enhancement

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    48/77

    Sofware Process 48

    Iterative Development Products almost always follow it

    Used commonly in customized development also

    Businesses want quick response for sw

    Cannot afford the risk of all-or-nothing

    Newer approaches like XP, Agile, all rely oniterative development

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    49/77

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    50/77

    Sofware Process 50

    Timeboxing Iterative is linear sequence of iterations

    Each iteration is a mini waterfall decide the specs,

    then plan the iteration Time boxing fix an iteration duration, then

    determine the specs

    Divide iteration in a few equal stages Use pipelining concepts to execute iterations in

    parallel

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    51/77

    Sofware Process 51

    Time Boxed Iterations General iterative development fix the functionality

    for each iteration, then plan and execute it

    In time boxed iterations fix the duration ofiteration and adjust the functionality to fit it

    Completion time is fixed, the functionality to bedelivered is flexible

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    52/77

    Sofware Process 52

    UP-Time Boxed IterationsIteration

    1

    De-

    signCode+Design+Test+Integrate

    Ana-

    lyze

    ...Iteration

    2

    De-

    signCode+Design+Test+Integrate

    Ana-

    lyze

    2 or 4 weeks 2 or 4 weeks

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    53/77

    Sofware Process 53

    Time boxed Iteration This itself very useful in many situations

    Has predictable delivery times

    Overall product release and marketing can be betterplanned

    Makes time a non-negotiable parameter and helps

    focus attention on schedule Prevents requirements bloating

    Overall development time is still unchanged

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    54/77

    Sofware Process 54

    Timeboxing Taking Time Boxed

    Iterations Further What if we have multiple iterations executing in

    parallel

    Can reduce the average completion time byexploiting parallelism

    For parallel execution, can borrow pipeliningconcepts from hardware

    This leads to Timeboxing Process Model

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    55/77

    Sofware Process 55

    Timeboxing Model Basics Development is done iteratively in fixed duration

    time boxes

    Each time box divided in fixed stages Each stage performs a clearly defined task that can

    be done independently

    Each stage approximately equal in duration

    There is a dedicated team for each stage When one stage team finishes, it hands over the

    project to the next team

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    56/77

    Sofware Process 56

    Timeboxing With this type of time boxes, can use pipelining to

    reduce cycle time

    Like hardware pipelining view each iteration as aninstruction

    As stages have dedicated teams, simultaneousexecution of different iterations is possible

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    57/77

    Sofware Process 57

    Timeboxing Execution Software

    Requirements Build

    eploy B1

    B2Requirements Build

    eploy B2

    Requirements Build

    eploy B3

    Requirements Build

    eploy B4

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    58/77

    Sofware Process 58

    Timeboxing execution First iteration finishes at time T

    Second finishes at T+T/3; third at T+2 T/3, and so

    on In steady state, delivery every T/3 time

    If T is 3 weeks, first delivery after 3 wks, 2nd after 4wks, 3rd after 5 wks,

    In linear execution, delivery times will be 3 wks, 6wks, 9 wks,

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    59/77

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    60/77

    Sofware Process 60

    Team Size In linear execution of iterations, the same team

    performs all stages

    If each stage has a team of S, in linear executionthe team size is S

    In pipelined execution, the team size is three times(one for each stage)

    i.e. the total team size in timeboxing is larger; andthis reduces cycle time

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    61/77

    Sofware Process 61

    Team Size Merely by increasing the team size we cannot

    reduce cycle time - Brooks law

    Timeboxing allows structured way to add manpowerto reduce cycle time

    Note that we cannot change the time of an iteration Brooks law still holds

    Work allocation different to allow larger team tofunction properly

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    62/77

    Sofware Process 62

    Timeboxing Pros and Cons Pros: Shortened delivery times, iterative, distributed

    execution

    Cons: Larger teams, project management is harder,high synchronization needed, CM is harder

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    63/77

    Sofware Process 63

    Spiral model of the software processRisk

    analys is

    Riskanalys is

    Riskanalys is

    Riskanalysis Proto-

    ty pe 1

    Prototype 2

    Prototype 3Opera-tional

    protoyp e

    Concept o fOperation

    S imul ations, models, b en chmarks

    S/Wrequi rements

    Requi rementvalid ation

    De si gnV& V

    Prod uct

    design Detail eddesign

    Code

    Un i t tes t

    Integr ationtest

    AcceptancetestServ ice Develop, ve rify

    next-leve l prod uct

    Evaluate alterna tivesidentify, resolve risk s

    Determine objectiv esalternatives and

    constraint s

    Plan next p hase

    Integra tionand test plan

    Developmentplan

    Requi rements planLi fe-c ycle pl an

    REVIEW

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    64/77

    Sofware Process 64

    Spiral Model by Boehm Activities are organized in a spiral with many cycles

    Radial dimension represents cumulative cost in

    accomplishing the tasks done so far Angular dimension represents the progress made in

    completing each cycle.

    Development step depends on risk and allows anymixture of approaches

    Each cycle completed by review for planning thenext cycle.

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    65/77

    Sofware Process 65

    Phases of the spiral model Objective setting, alternatives and constraints

    Specific objectives for the project phase are identified

    Risk assessment and reduction Key risks are identified, analyzed and information is

    sought to reduce these risks

    Development and validation

    An appropriate model is chosen for the next phase ofdevelopment.

    Planning

    The project is reviewed and plans drawn up for the nextround of the s iral

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    66/77

    Sofware Process 66

    Spiral model flexibility Well-understood systems (low technical risk) -

    Waterfall model. Risk analysis phase is

    relatively cheap Stable requirements and formal specification.

    Safety criticality - Formal transformation model

    High UI risk, incomplete specification -

    prototyping model

    Hybrid models accommodated for different partsof the project

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    67/77

    Sofware Process 67

    Spiral model Pros and Cons Pros

    Focuses attention on early error elimination

    Puts quality objectives up front Integrates development and maintenance

    Cons

    Contractual development often specifies process model

    and deliverables in advance Requires risk assessment expertise

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    68/77

    Sofware Process 68

    Component Based Development OO technologies provides framework for CBSE

    Reusability across applications

    Encourages use of third party components

    Framework exists for building / sharing components

    Incorporates spiral model characteristics

    Evolutionary, Iterative Ex. Unified software development process

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    69/77

    Sofware Process 69

    The Formal Methods Model Formal mathematical specification of computer

    system

    Specify, develop, verify computer system byrigorous, mathematical notations

    Eliminate many of the problems of conventionalsoftware engineering

    ambiguity, incompleteness, inconsistency

    Leads to defect free software ex. Cleanroomsoftware engineering

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    70/77

    Sofware Process 70

    Formal Methods concerns Time consuming and expensive

    Extensive training is required

    Difficult to use for communicating with the customer

    Useful for safety critical software

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    71/77

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    72/77

    Sofware Process 72

    Agile Methodologies Extreme Programming (XP)

    Scrum Development

    Crystal Methodologies

    Feature Driven Development (FDD)

    Dynamic Systems Development Method (DSDM)

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    73/77

    Sofware Process 73

    Agile Manifesto Individuals and interactions over

    processes and tools

    Working software over comprehensivedocumentation

    Customer collaboration over contract

    negotiation

    Responding to change over following a plan

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    74/77

    Sofware Process 74

    Agile Method Best Practices Backlog Management Team Planning Test Driven Development Continuous Integration SCRUM meetings Agile Modeling Caves & Common Refactoring Pair Programming

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    75/77

    Sofware Process 75

    Summary Process models define generic process, which can

    form basis of project process

    Process typically has phases, each phase focusingon an identifiable task

    Many models for development process have beenproposed

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    76/77

    Project management plan IT IS A DOCUMENT THAT IS PREPARED BEFORE

    THE PROJECT STARTS AND NECESSARY APPROVAL

    IS TAKEN IT CONTAINS

    PROJECT INITIATION

    SCOPE OF THE PROJECT

    USER REQUIREMENTS BASELINED

    PHASES OF THE PROJECT/ MODEL USED/DELIVERABLES

    HARDWARE / SOFTWARE TO BE USED

  • 8/6/2019 51155102-SE-RESORCE-MNGT

    77/77

    PMP TEM AND RESPONSIBILTIES / MEETINGS

    GUIDELINES/ STANDARDS TO BE USED

    METRICATION PLAN CONFIGUARATION PLAN

    RISK MANAGEMENT

    GOALS

    AUDITS TRAINING PALN

    PROJECT CLOSURE