My Estimation

download My Estimation

of 29

Transcript of My Estimation

  • 7/28/2019 My Estimation

    1/29

    Project Management

    Estimation

  • 7/28/2019 My Estimation

    2/29

    LOC and FP Estimation

    Lines of code and function points weredescribed as basic data from which productivity

    metrics can be computed.LOC and FP data are used in two ways during

    software project estimation: as estimation variablesthat are used to "size" each

    element of the software, and

    as baseline metricscollected from past projects andused in conjunction with estimation variables todevelop cost and effort projections.

  • 7/28/2019 My Estimation

    3/29

    The LOC and FP techniques differ in the level

    of detail required for decomposition.

    With LOC, decomposition must be taken toextremes; with FP less detail is required

    because the data required to estimate function

    points are more macroscopic.

    Note that LOC is estimated directly, FP

    indirectly.

  • 7/28/2019 My Estimation

    4/29

    Expected value?

    Regardless of whether LOC or FP is used, the

    planner provides a range of values for each

    decomposed function. Using historical data (orintuition) the planner estimates an optimistic,

    most likely, and pessimistic LOC or FP for

    each function.

    The expected value for LOC or FP is then

    computed as a weighted average of the three.

  • 7/28/2019 My Estimation

    5/29

    For example,

    E = (a + 4m + b) / 6

    gives greatest credence to the most likely estimate

    and follows a beta probability distribution.

    Once the expected value has been determined,productivity data are applied.

  • 7/28/2019 My Estimation

    6/29

    COCOMO

    Boehm, in his 1981 book "Software EngineeringEconomics", introduced a hierarchy of software

    estimation models called COCOMO,COnstructive COst MOdel. (Version 2 in 1995)

    Basic COCOMO,

    Intermediate COCOMO,

    Advanced COCOMO, COCOMO is a well developed model which takes project, product,

    hardware and personnel attributes into account. It also includes meansof estimating development schedules. A disadvantage is that itdepends on historical data which may not always be available.

  • 7/28/2019 My Estimation

    7/29

    Basic COCOMO

    a static single-valued model that computes

    software development effort (and cost) as a

    function of program size expressed in lines ofcode.

  • 7/28/2019 My Estimation

    8/29

    Intermediate COCOMO

    computes software development effort as a

    function of program size and a set of "cost

    drivers" that include subjective assessments ofproduct, hardware, personnel, and project

    attributes.

  • 7/28/2019 My Estimation

    9/29

    Advanced COCOMO

    incorporates all characteristics of the

    intermediate version with an assessment of the

    cost driver's impact on each step (analysis,design, ...) of the software engineering process.

  • 7/28/2019 My Estimation

    10/29

    COCOMO & 3 classes of project

    organic mode

    relatively small, simple software projects in

    which small teams with good applicationexperience work to a set of less than rigid

    requirements

    (e.g., a thermal analysis program developed fora heat transfer group);

  • 7/28/2019 My Estimation

    11/29

    COCOMO & 3 classes of project

    semi-detached modean intermediate (in size and complexity)

    software project in which teams with mixedexperience levels must meet a mix of rigid and

    less than rigid requirements

    (e.g., a transaction processing system with fixedrequirements for terminal hardware and

    database software);

  • 7/28/2019 My Estimation

    12/29

    COCOMO & 3 classes of project

    embedded mode

    a software project that must be developed

    within a set of tight hardware, software, andoperational constraints (e.g., flight control

    software for aircraft).

  • 7/28/2019 My Estimation

    13/29

    The basic COCOMO equations take the form

    E = ab(KLOC) exp(b

    b) E = aK

    b

    D = cb(E) exp(d

    b) D = cE

    d

    where E is the effort applied in person-months,

    D is the development time in chronological months, and

    KLOC is the estimated number of delivered lines of code for the project

    (expressed in thousands).

  • 7/28/2019 My Estimation

    14/29

    The coefficients aband c

    band the exponents b

    band d

    bare given below.

    Software project ab

    bb

    cb

    db

    Organic 2.4 1.05 2.5 0.38

    Semi-detached 3.0 1.12 2.5 0.35Embedded 3.6 1.20 2.5 0.32

  • 7/28/2019 My Estimation

    15/29

    Extensions

    The basic model is extended to consider a

    set of "cost driver attributes" that can be

    grouped into four major categories:Product attributes

    Hardware attributes

    Personnel attributes

    Project attributes

  • 7/28/2019 My Estimation

    16/29

    Product attributes

    Required software reliability

    Size of application database

    Complexity of the product

  • 7/28/2019 My Estimation

    17/29

    Hardware attributes

    Runtime performance constraints

    Memory constraints

    Volatility of the virtual machine

    environment

    Required turnaround time

  • 7/28/2019 My Estimation

    18/29

    Personnel attributes

    Analyst capability

    Software engineer capability

    Applications experience

    Virtual machine experience

    Programming language experience

  • 7/28/2019 My Estimation

    19/29

    Project attributes

    Use of software tools

    Application of software engineering

    methods

    Required development schedule

  • 7/28/2019 My Estimation

    20/29

    Effort Adjustment Factors

    Each of the 15 attributes is rated on a 6-point

    scale that ranges from "very low" to "extra

    high" (in importance or value). Based on therating, an effort multiplier is determined from

    tables published by Boehm, and the product of

    all effort multipliers results is an effort

    adjustment factor(EAF.)Typical values for EAF range from 0.9 to 1.4.

  • 7/28/2019 My Estimation

    21/29

    The intermediate COCOMO equation takes the form:

    E = ai(KLOC) exp(bi) x EAF E = aKb

    * EAF

    where

    E is the effort applied in personmonths and

    KLOC is the estimated number of delivered lines of code for the project.

    The coefficient ai and the exponent biare given below

    Software project ai bi

    Organic 3.2 1.05Semi-detached 3.0 1.12

    Embedded 2.8 1.20

  • 7/28/2019 My Estimation

    22/29

    But ...

    Boehm's own comments about COCOM0 (and

    by extension all models) should be heeded:

    "Today, a software cost estimation model is doing well if it can

    estimate software development costs within 20%of actual costs,

    70% of the time, and on its own turf (that is, within the class of

    projects to which it has been calibrated) .... This is not as precise as

    we might like, but it is accurate enough to provide a good deal ofhelp in software engineering economic analysis and decision

    making."

  • 7/28/2019 My Estimation

    23/29

    Example ...

    estimated LOC 33360

    estimated project cost $656,680

    estimated effort (PM) 144.5

    and the table of coefficients earlier, and using the semi-

    detached model, we get

    E = 3.0 (KLOC) exp(1.12)

    = 3.0(33.3)1.12

    = 152 person-months

  • 7/28/2019 My Estimation

    24/29

    Example contd ...

    To compute project duration,

    D = 2.5(E) exp(0.35)

    = 2.5(152)0.35= 14.5 months

    The recommended number of people for the project is

    therefore,

    N = E/D

    = 152/14.5

    = 11 people

  • 7/28/2019 My Estimation

    25/29

    Automated Estimation Tools

    These tools allow the planner to estimate cost and effort

    and to perform what if analyses for important project

    variables such as delivery date or staffing.

    Those based on COCOMO all require the user to

    provide a preliminary LOC estimate.

    They all conduct a dialog with the planner, obtaining

    appropriate project and supporting information and

    producing both tabular and graphical output.

  • 7/28/2019 My Estimation

    26/29

    Automated Estimation Tools

    When a number of tools were applied to the

    same project, a relatively large variation in

    estimated results was found, and predictedvalues were sometimes very different from

    actual values.

    Output from estimation tools should be used as

    one data point from which estimates are

    derived - not as the only source for an estimate.

  • 7/28/2019 My Estimation

    27/29

    Joness First-Order Estimation

    Take the function-point total and raise it tothe power chosen from the following table

    best average worstSystems 0.43 0.45 0.48

    Business 0.41 0.43 0.46

    Shrink-wrap 0.39 0.42 0.45 The exponents are based on analysis of a

    database of several thousand projects

  • 7/28/2019 My Estimation

    28/29

    Joness kinds of projects

    Systems = operating systems, device drivers,

    compilers, embedded software, firmware, real-

    time systems, Business = in-house systems for an

    organisation, payroll, stock control, accounting

    systems, IS, IT, MIS software,

    Shrink-wrap = packaged and sold commercially

  • 7/28/2019 My Estimation

    29/29

    e.g.

    If FP=350 and project is shrink-wrap in

    an average organisation then 350 0.42 =

    11.7087, giving a rough schedule of 12calendar months.

    In a best-in-class organisation 350 0.39

    giving a schedule of 10 months.