Sad Lec22_Notes_cocomo,Cmmi and Case Tool

Embed Size (px)

Citation preview

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    1/35

    Capability Maturity Model

    Integration

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    2/35

    Capability Maturity Model Integration (CMMI) is

    a process improvement approach whose goal isto help organizations improve their performance.

    CMMI can be used to guide process improvement

    across a project, a division, or an entire

    organization.

    CMMI in software engineering and organizational

    development is a process improvement approach

    that provides organizations with the essential

    elements for effective process improvement.

    CMMI is registered in the U.S. Patent andTrademark Office by Carnegie Mellon University.

    According to the Software Engineering

    Institute (SEI, 2008), CMMI helps "integrate

    traditionally separate organizational functions, setrocess im rovement oals and riorities, rovide

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    3/35

    3

    CMM developed by the Software Engineering

    Institute to help

    organizations which develop software

    to improve their software processes organizations which acquire software

    to assess the quality of their contractors

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    4/35

    4

    Immature organization processes are improvised during the course of a

    project to resolve unanticipated crises

    products often delivered late and their qualityis questionable

    Mature organization organization-wide standard approach to

    software processes, known and accepted by all

    engineers focus on continuous improvement both in

    performance and product quality

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    5/35

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    6/35

    The organization

    Does not have an environment for developing and

    maintaining software.

    At the time of crises, projects usually stop using all

    planned procedures and revert to coding and testing.

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    7/35

    Effective management process having established

    which can be

    Practiced

    Documented Enforced

    Trained

    Measured

    Improvised

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    8/35

    Standard defined software engineering and management

    process for developing and maintaining software.

    These processes are put together to make a coherent

    whole.

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    9/35

    Quantitative goals set for both software products and

    processes.

    The organizational measurement plan involves

    determining the productivity and quality for all important

    software process activities across all projects.

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    10/35

    Emphasis laid on

    Process improvement

    Tools to identify weaknesses existing in their processes

    Make timely corrections

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    11/3511

    Organizational Innovation and DeploymentCausal Analysis and Resolution

    5 Optimizing

    4 QuantitativelyManaged

    3 Defined

    2 Managed

    Cont inuous

    Process

    Improvement

    Quanti tat ive

    Management

    Process

    Standardization

    Basic

    Project

    Management

    Organizational Process PerformanceQuantitative Project Management

    Requirements DevelopmentTechnical SolutionProduct IntegrationVerificationValidation

    Organizational Process FocusOrganizational Process DefinitionOrganizational TrainingIntegrated Project Management for IPPDRisk ManagementIntegrated TeamingIntegrated Supplier ManagementDecision Analysis and ResolutionOrganizational Environment for Integration

    Requirements ManagementProject PlanningProject Monitoring and ControlSupplier Agreement ManagementMeasurement and AnalysisProcess and Product Quality AssuranceConfiguration Management

    Quality

    Productivity

    Risk,

    Rework1 Initial

    Process AreasLevel Focus

    None

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    12/35

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    13/35

    COCOMO is one of the most widely used

    software estimation models in the world

    It was developed by Barry Boehm in 1981

    COCOMO predicts the effort and schedule for

    a software product development based on

    inputs relating to the size of the software and

    a number of cost drivers that affect

    productivity

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    14/35

    COCOMO has three different models that

    reflect the complexity:

    the Basic Model

    the Intermediate Model

    and the Detailed Model

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    15/35

    Organic Mode Relatively small, simple software

    projects Small teams with good application

    experience work to a set of less thanrigid requirements

    Similar to the previously developedprojects

    relatively small and requires littleinnovation

    Semidetached Mode

    Intermediate (in size and

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    16/35

    Embedded Mode

    Software projects that must bedeveloped within a set of tighthardware, software, and

    operational constraints.

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    17/35

    Primary cost driver is the number ofDelivered Source Instructions(DSI) / Delivered Line Of Codedeveloped by the project

    COCOMO estimates assume that theproject will enjoy good managementby both the developer and thecustomer

    Assumes the requirements

    specification is not substantially

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    18/35

    Basic COCOMO is good for quick,early, rough order of magnitudeestimates ofsoftware costs

    It does not account for differences inhardware constraints, personnel

    quality and experience, use ofmodern tools and techniques, andother project attributes known to havea significant influence on software

    costs, which limits its accuracy

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    19/35

    E=ab (KLOC or KDSI)bb

    D=cb (E)db

    P=E/D

    where E is the effort applied in person-

    months, D is the development time in

    chronological months, KLOC/ KDSI is the

    estimated number of delivered lines ofcode for the project (expressed in

    thousands), and P is the number of people

    required. The coefficients ab, bb, cband db

    are given in next slide.

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    20/35

    Software project ab bb

    cb

    db

    Organic 2.4 1.05

    2.5 0.38

    Semi-detached 3.0 1.122.5 0.35

    Embedded 3.6 1.20

    2.5 0.32

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    21/35

    M o d e E f f o r t S c h ed u l e

    Organic E=2.4*(KDSI)1.05

    TDEV=2.5*(E)0.38

    Semidetached E=3.0*(KDSI)1.12

    TDEV=2.5*(E)0.35

    Embedded E=3.6*(KDSI)1.20 TDEV=2.5*(E)0.32

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    22/35

    Its accuracy is necessarily limited because

    of its lack of factors which have a

    significant influence on software costs

    The Basic COCOMO estimates are within

    a factor of 1.3 only 29% of the time, andwithin a factor of2 only 60% of the time

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    23/35

    We have determined our project fits thecharacteristics ofSemi-Detached mode

    We estimate our project will have 32,000Delivered Source Instructions. Using the

    formulas, we can estimate:

    Effort = 3.0*(32) 1.12 = 146 man-months

    Schedule = 2.5*(146) 0.35 = 14 months Productivity = 32,000 DSI /

    146 MM= 219 DSI/MM

    Average Staffing = 146 MM /14months

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    24/35

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    25/35

    Software engineering tools consisted solely

    of translators, compilers, assemblers,

    linkers, loaders, etc.

    the software NEEDEDto build code.

    Computers werent powerful enough or

    advanced yet to support higher-levelfunctioning

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    26/35

    Software engineering often follows specific

    standardized methods

    There are lots of diagrams anddocumentation involved

    So now computers can be used to deal with

    the higher-level aspects of softwareengineering

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    27/35

    What is a CASE Environment?

    CASE is the use of computer-based

    support in the software development

    process.

    What is a CASE Tool?

    A CASE tool is a computer-basedproduct aimed at supporting one or more

    software engineering activities within a

    software development process.

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    28/35

    Supply basic functionality, do routine tasksautomatically

    Be able to support editing of code in the particularprogramming language, supply refactoring tools

    Enhance productivity

    Generate code pieces automatically

    Increase software quality

    Intuitive use

    Integration with other tools

    For example, code editor works with code repository

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    29/35

    Project management software

    System design tools

    Code storageCompilers

    Translation tools

    Test software

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    30/35

    Code generation tools (Visual

    Studio .NET)

    Code analysis (Borland Audits)Development of data models

    (UML editors)

    Cleaning up code (refactoringtools)

    Bug tracker

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    31/35

    CASE tools do more than just output

    code

    Can be used to generate SE documents

    Database schema

    Data flow diagrams

    Entity relationship diagrams

    Program specifications

    User documentation

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    32/35

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    33/35

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    34/35

  • 7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool

    35/35

    UpperCASE: Tools for the analysis and

    design phase of the software

    development lifecycle (diagramming

    tools, report and form generators,analysis tools)

    Lower CASE: Tools to supportimplementation, testing, configuration

    management