Lecture 2 Software Process & Models

download Lecture 2 Software Process & Models

of 21

Transcript of Lecture 2 Software Process & Models

  • 8/11/2019 Lecture 2 Software Process & Models

    1/21

    Chapter : Software Process

  • 8/11/2019 Lecture 2 Software Process & Models

    2/21

    The Software Challenge

  • 8/11/2019 Lecture 2 Software Process & Models

    3/21

    Q : If you have to write a 10,000 line program in C to solve a problem, how long will it

    take?A: Generally range from 24 months

    Let us analyze the productivity

    Productivity = Output/Input resources

    In SW

    Output = LoC

    Input resources = effort

    = person months;

    [overhead cost modeled in rate for person month]The productivity is 2.55 KLOC/PM.

    Q: What is the productivity in a typical commercial SW organization?

    A:Between 100 to 1000 LOC/PM. So, need to raise the productivity.

    Introduction Jaypee Institute of Information Technology

    The Software Challenge

  • 8/11/2019 Lecture 2 Software Process & Models

    4/21

    Rough cost estimate

    Productivity = 500 LOC/PM Cost to the company = $10K/PM

    Cost per LOC = $20

    So each line of delivered code costs about $20.

    A simple application for a business may have 20KLOC to 50KLOC

    Cost = $100K to $1Million

    Can easily run on $10K$20K hardware

    So HW costs

  • 8/11/2019 Lecture 2 Software Process & Models

    5/21

    Introduction Jaypee Institute of Information Technology

    Software is Expensive

  • 8/11/2019 Lecture 2 Software Process & Models

    6/21

    Introduction Jaypee Institute of Information Technology

    Software is Expensive

    Moores law:processor speed/memory capacitydoubles every two years.

  • 8/11/2019 Lecture 2 Software Process & Models

    7/21

    As per the IBM report,

    31%of the project get cancelled before they are completed,

    53% overruntheir cost estimates by an average of 189% and

    for every 100 projects, there are 94 restarts.

    Introduction Jaypee Institute of Information Technology

    Software Crisis

  • 8/11/2019 Lecture 2 Software Process & Models

    8/21

    Introduction Jaypee Institute of Information Technology

    Software Failure Curve

  • 8/11/2019 Lecture 2 Software Process & Models

    9/21

    The problem of producing software to satisfy user-needs drives the approaches used in SE

    SE (IEEE): Systematic approach to development,., of software.

    Systematic approach: Methodologies and practices that can be used to solve a

    problem from problem domain

    Q:What other factors that drive the selection of a SE approach?

    1. scale,2. productivity,

    3. quality,

    4. consistency,

    5. rate of change,

    Introduction Jaypee Institute of Information Technology

    What is Software Engineering

    (1) The application of a systematic, disciplined, quantifiable approach to the development,

    operation, and maintenance of software; that is, the application of engineering to

    software.

    (2) The study of approaches as in (1). - IEEE Definition

  • 8/11/2019 Lecture 2 Software Process & Models

    10/21

    Introduction Jaypee Institute of Information Technology

    Iron Triangle

  • 8/11/2019 Lecture 2 Software Process & Models

    11/21

    Introduction Jaypee Institute of Information Technology

    Iron Triangle - Violation

    What happens when you break the triangle?

    1) The project gets canceled.

    2) The Project is deliver late, over budget, or both

    3) The Project delivers poor quality software.

    When development teams are forced to deliver more functionality than they have timeor resources for, they are often motivated to take short cuts which inevitably result in

    poor quality.

    4) The project under delivers.

    The team fails to deliver all of the required functionality.

    Recognize that the iron triangle must be respected.

  • 8/11/2019 Lecture 2 Software Process & Models

    12/21

    The Software Engineering Institute (SEI) has developed process meta-model to

    measure organizationslevel of process capability and maturity.

    CMMIdeveloped by SEI

    The CMMI defines each process area in terms of specific goals and the specific

    practicesrequired to achieve these goals.

    Specific goalsestablish the characteristics that must exist if the activities implied

    by a process area are to be effective.

    Specific practicesrefine a goal into a set of process-related activities.

    Capability Maturity Model Integration (CMMI)

    Introduction Jaypee Institute of Information Technology

  • 8/11/2019 Lecture 2 Software Process & Models

    13/21

    Level 1 (Initial)

    Characterized as ad hoc, and occasionally even chaotic Few processes are defined, and success depends on individual effort

    Level 2 (Repeatable / Managed)

    Basic project management processes are established to track cost, schedule, and

    functionality

    The necessary process discipline is in place to repeat earlier successes on projects

    with similar applications

    Level 3 (Defined)

    The software process for both management and engineering activities is

    documented, standardized, and integrated into a standard software processfor the

    organization

    All projects use an approved, tailored version of the organization's standard

    software process for developing and maintaining software

    Introduction Jaypee Institute of Information Technology

    Capability Maturity Model Integration (CMMI)

  • 8/11/2019 Lecture 2 Software Process & Models

    14/21

    Level 4 (Quantitatively Managed)-

    All level 3 criteria have been satisfied.

    Detailed measures of the software process and product quality are collected

    Both the software process and products are quantitatively understood and controlled

    Level 5 (Optimized)

    Continuous process improvement is enabled by quantitative feedback from the process and

    testing innovative ideas.

    http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration

    Introduction Jaypee Institute of Information Technology

    Capability Maturity Model Integration (CMMI)

    http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integrationhttp://en.wikipedia.org/wiki/Capability_Maturity_Model_Integrationhttp://en.wikipedia.org/wiki/Capability_Maturity_Model_Integrationhttp://en.wikipedia.org/wiki/Capability_Maturity_Model_Integrationhttp://en.wikipedia.org/wiki/Capability_Maturity_Model_Integrationhttp://en.wikipedia.org/wiki/Capability_Maturity_Model_Integrationhttp://en.wikipedia.org/wiki/Capability_Maturity_Model_Integrationhttp://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration
  • 8/11/2019 Lecture 2 Software Process & Models

    15/21

    Introduction Jaypee Institute of Information Technology

    Capability Maturity Model Integration (CMMI)

  • 8/11/2019 Lecture 2 Software Process & Models

    16/21

    Software Process

    (IEEE) A sequence of steps (activities, methods, practices, and transformations)performed

    for a given purpose(develop and maintain software)

    Steps:

    Specification

    Design and Implementation

    Validation

    Evolution

    A softwareprocess modelis an abstract representation of a process.

    It presents a description of a process from some particular perspective

  • 8/11/2019 Lecture 2 Software Process & Models

    17/21

    SOFTWARE PROCESS MODELS

  • 8/11/2019 Lecture 2 Software Process & Models

    18/21

    Self Study - Terminologies

  • 8/11/2019 Lecture 2 Software Process & Models

    19/21

    Self Study - Terminologies

  • 8/11/2019 Lecture 2 Software Process & Models

    20/21

    Self Study - Terminologies

  • 8/11/2019 Lecture 2 Software Process & Models

    21/21

    Self Study - Terminologies