Sen Lecture08

download Sen Lecture08

of 26

Transcript of Sen Lecture08

  • 8/7/2019 Sen Lecture08

    1/26

    IT314 - Software Engineering

    Asim Banerjee

    27th January 2011

    [email protected]

  • 8/7/2019 Sen Lecture08

    2/26

    IT314 - Software Engineering 2

    Software Size Metrics (1/2)

    Lines Of Code (LOC) Metric

    Measures the number of source code instructions

    required to solve the problem

    NOTE: Headers and comment lines are

    ignored Simplest and easy to use

    LOC approach in estimation:

    It is difficult to use at the beginning of the project

    It is easy to use at the end of the project

  • 8/7/2019 Sen Lecture08

    3/26

    IT314 - Software Engineering 3

    Software Size Metrics (2/2)

    Function Point Metric

    FP approach involves computing the size of

    software product using the unit of FP

    Conceptual idea behind FP metric: size of

    software product is directly proportional to: Types of functions that it performs

    Number of functions that it performs

    FP of a software product is computed as:

    Weighted sum of different type of functions performedby the product.

  • 8/7/2019 Sen Lecture08

    4/26

    IT314 - Software Engineering 4

    Phase Effort Estimation (1/2)

    The final effort estimate

    E = (EAF) * Ei

    gives the overall cost of the project (in person

    months)

    For planning and monitoring purposes,estimates of the effort required for the differentphases is also desirable.

    In COCOMO, effort for a phase is consideredas a defined percentage of the overall effort.

  • 8/7/2019 Sen Lecture08

    5/26

    IT314 - Software Engineering 5

    Phase Effort Estimation (2/2)

    NOTE: The percentage of the total effort spent

    in a phase varies with the type (organic,

    semidetached and embedded) and size

    (small (=128KDLOC)) of the project.

    An estimate of percentages for project sizes

    different from the one specified can be

    obtained by linear interpolation.

  • 8/7/2019 Sen Lecture08

    6/26

    IT314 - Software Engineering 6

    Project Complexity COCOMO provides three levels of models of

    increasing complexity viz. Basic

    Intermediate

    Detailed

    NOTE: The detailed model is the mostcomplex. It has different multiplying factors forthe different phases for a given cost driver.

    The set of cost drivers applicable to a systemor module is also not the same as the driversfor the system level.

  • 8/7/2019 Sen Lecture08

    7/26

    IT314 - Software Engineering 7

    Any Questions?

  • 8/7/2019 Sen Lecture08

    8/26

    IT314 - Software Engineering 8

    Project Scheduling (1/2)

    Schedule estimate and staff requirement

    estimation may be the most important

    activities after cost estimation.

    NOTE: Both are related, if phase wise cost is

    available.

    The goal of schedule estimation is to

    determine the total duration of the project and

    the duration of the different phases.

  • 8/7/2019 Sen Lecture08

    9/26

    IT314 - Software Engineering 9

    Project Scheduling (2/2)

    NOTE: Though there is a relationship between

    the person-month cost and the project

    duration, it is not obtained by dividing the total

    effort by the average staff size.

  • 8/7/2019 Sen Lecture08

    10/26

    IT314 - Software Engineering 10

    Average Duration Estimation Single variable models can be used to determine the

    overall duration of the project.

    Generally, schedule is modeled as depending on the

    total effort (which in turn depends on size).

    IBM Federal Systems Division uses total duration D

    (in calendar months) as

    D = 4.1 E0.36(months)

    COCOMO model, for organic type

    D = 2.5 E0.38(months)NOTE: For other projects the constants vary slightly.

  • 8/7/2019 Sen Lecture08

    11/26

    IT314 - Software Engineering 11

    Phase Duration Estimation

    The duration or schedule of the different

    phases is obtained in the same manner as in

    effort distribution i.e. by using the percentages

    for the different phases.

    NOTE: In COCOMO, sometimes, the detaileddesign, coding and unit testing phases are

    combined into one programming phase.

  • 8/7/2019 Sen Lecture08

    12/26

    IT314 - Software Engineering 12

    Project Scheduling & Milestones

    Once we have the estimates of the effort and

    time requirement for the different phases, a

    schedule for the project can be prepared.

    This schedule will be used to monitor the

    progress of the project. A conceptually simple and effective

    scheduling technique is the Gantt chart, which

    uses a calendar-oriented chart to representthe project schedule.

  • 8/7/2019 Sen Lecture08

    13/26

    IT314 - Software Engineering 13

    Any Questions?

  • 8/7/2019 Sen Lecture08

    14/26

    IT314 - Software Engineering 14

    Software Development Life Cycle (1/2) Software life cycle:

    Series of identifiable phases that a software undergoes during its

    lifetime Life cycle phases:

    Feasibility

    Requirements specifications

    Design

    Coding & Unit testing

    Integration

    Testing

    Maintenance

  • 8/7/2019 Sen Lecture08

    15/26

    IT314 - Software Engineering 15

    Software Development Life Cycle (2/2) Life cycle activities:

    Each life cycle phase consists of several activitiese.g. project management activities, developmental

    activities, etc.

    Entry criteria for each phase:

    Preconditions for initiating a phase

    Exit criteria for each phase

    Preconditions for concluding a phase

  • 8/7/2019 Sen Lecture08

    16/26

    IT314 - Software Engineering 16

    Software Life Cycle Models: Comments(1/2)

    Large development teams cannot function without forma

    definitions of work e.g. work breakdown structure Defining life cycle model encourages development of software in

    systematicand disciplinedmanner

    Entry and exit criteria associated with the phases help in:

    Better monitoring and controlling of projects Better reporting of project progress e.g. no 90% complete syndrome

  • 8/7/2019 Sen Lecture08

    17/26

    IT314 - Software Engineering 17

    Software Life Cycle Models: Comments(2/2)

    Some well known life cycle models are:

    Classical waterfall model

    Iterative waterfall model

    Prototyping model

    Evolutionary model Spiral model

  • 8/7/2019 Sen Lecture08

    18/26

    IT314 - Software Engineering 18

    Waterfall Model (1/3)

    Diagrammatically thephases resemble agroup of cascadingwaterfalls

    Feasibility

    Requirements

    Design

    Coding

    Testing

    Maintenance

    Feasibility Report

    Requirements document,

    Project Plan, Test Plan, etc.

    System & Detailed

    design

    document

    Programs

    Finished Product

    Test Report

    time

  • 8/7/2019 Sen Lecture08

    19/26

    IT314 - Software Engineering 19

    Waterfall Model (2/3)

    Each phaserequiresrelativelydifferentamount of

    effortNote:Maintenanceand Testingphases

    consumesizable effort F

    ea

    sibilit

    y

    Require

    men

    ts

    Design

    Co

    din

    g

    Test

    ing

    Main

    ten

    ance

    6050

    40

    30

    20

    10

    0

    % Effort

  • 8/7/2019 Sen Lecture08

    20/26

    IT314 - Software Engineering 20

    Waterfall Model (3/3) Waterfall model:

    Most easy to understand model

    Too simplistic Well suited for only well-understood problems

    Not very good for improving productvisualization

    Note: Without adequate product visualization, itis very difficult to manage software

    development projects i.e. if it is difficult tovisualize, it will be difficult to manage

  • 8/7/2019 Sen Lecture08

    21/26

    IT314 - Software Engineering 21

    Waterfall Model - Work Products (1/2)Some of the work products of the waterfall model are:

    Systems Requirements Specification Document Project Plan

    System Design Document

    Detailed Design Document

    Test Plan (with test cases) Test Report

    Final Code

    Software manuals (e.g. User manual, Installationmanual, etc.)

    Review Reports

  • 8/7/2019 Sen Lecture08

    22/26

    IT314 - Software Engineering 22

    Waterfall Model - Work Products (2/2)NOTE: Any other document that enables the

    project team to achieve its project objectives,should be maintained as one of the work

    products of the project.

  • 8/7/2019 Sen Lecture08

    23/26

    IT314 - Software Engineering 23

    Waterfall model Limitations(1/2)

    Real projects rarely follow the sequential flow

    that the model proposes. The model requires that all the requirements

    are stated explicitly.

    Changes can cause confusion as the projectproceeds.

    The model has difficulty in accommodating thenatural uncertainty that exists in many

    projects.

  • 8/7/2019 Sen Lecture08

    24/26

    IT314 - Software Engineering 24

    Waterfall model Limitations(2/2)

    The working versions of the programs areavailable only late in the project time span,

    hence the customer must have patience.

    A major blunder, if undetected until working

    program is reviewed, can be disastrous.

  • 8/7/2019 Sen Lecture08

    25/26

    IT314 - Software Engineering 25

    Any Questions?

  • 8/7/2019 Sen Lecture08

    26/26

    IT314 - Software Engineering 26

    Thats all for now

    Well continue in the next class.