02 soft eng intro

Upload: rajeswari-mahalingam

Post on 07-Apr-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/4/2019 02 Soft Eng Intro

    1/15

    Why software engineering?

    Demand for software is growing dramatically Software costs are growing per system

    Many projects have cost overrunsMany projects fail altogether

    Software engineering seeks to find waysto build systems that are on time and within budget

  • 8/4/2019 02 Soft Eng Intro

    2/15

    Demand for larger software systems

    What growth pattern do you see in the following? F4 fighter had no digital computer and software (Early 70s).

    F16A had 50 digital processors and 135 KLOC (Late 70s).

    F16D had 300 digital processors and 236 KLOC (Late 80s).

    B-2 has over 200 digital processors and 5000 KLOC.

    Software components are growing exponentially

  • 8/4/2019 02 Soft Eng Intro

    3/15

    Software development costs

    Software costs are increasing ashardware costs continue to decline.

    Hardware technology has made

    great advancesSimple and well understood tasksare encoded in hardware

    Least understood tasks are encodedin software

    Demands of software are growingSize of the software applications isalso increasing

    Hence the software crisis

    Software

    costs

    Hardwarecosts

    Time

    Hardware costs vs. Software costsWhat can you infer from the graph?

  • 8/4/2019 02 Soft Eng Intro

    4/15

    State of the practice

    Estimate Early On Time Delayed Canceled

    13,000 6.06% 74.77% 11.83% 7.33%

    130,000 1.24% 60.76% 17.67% 20.33%

    1,300,000 0.14% 28.03% 23.83% 48.00%13,000,000 0.00% 13.67% 21.33% 65.00%

    Source: Patterns of software failures and successes, Capers Jones, 1996

    Delays common with mid- to large projects.Majority of the large projects are canceled.

    What can you infer from this chart?

  • 8/4/2019 02 Soft Eng Intro

    5/15

    What can you infer from this chart?

    0

    10

    20

    30

    40

    50

    60

    Cost overrun Successful CancelledSource: The Standish Group, 1994

    Successful projects (16.2%)- Delivered fully functional on time and on budget.

    Challenged (52.7%)- Deliver less than full functionality, over-budget and late.

    Impaired (31.1%)- Cancelled during development.

  • 8/4/2019 02 Soft Eng Intro

    6/15

    Software development costs and consequences

    Failures resulting from software errors have varied consequencesranging from minor inconveniencesto catastrophic loss of life & property:

    Air Traffic Control (FAA modernization):- $5.6 billion cost overrun.

    - 8 year delay.- 2 systems are canceled- Requirements for the third have been decreased by 48%.

    US Navy Finance System:- 4 times cost overrun.- Canceled after 9 years.

    Flaw in Therac-25 control system caused radiation overdoses- Consequences were injury and deaths

  • 8/4/2019 02 Soft Eng Intro

    7/15

    Software development process has stages

    Requirements analysis and definition: Establish the applications goals and constraints

    in consultation with users

    Design: Establish the systems architecture

    Implementation and unit testing: Realize the design as a set of programs or program units

    Unit testing verifies that each unit meets its specification

    Integration and system testing: Integrate the program units and test as a complete system

    Maintenance: Correct errors, improve implementation, and enhance

    the systems services as new requirements are discovered

  • 8/4/2019 02 Soft Eng Intro

    8/15

    Relative costs to fix errors:What can you infer from this graph?

    0

    10

    20

    30

    40

    50

    60

    70

    80

    Require

    ments

    Design

    Implementation

    T

    esting

    Maintenance

    Cost

    Cost to fix an error increases as it is found later and laterin the software lifecycle

  • 8/4/2019 02 Soft Eng Intro

    9/15

    What is the primary driver of software costs?

    What can you infer from the following graphic?

    3%8%

    7%

    15%

    67%

    Requirements -- 3%Design -- 8%Implementation -- 7%Testing -- 15%Maintenance -- 67%

    Most money and effort spentin testing and maintenance

    But: 85% of errors are introduced duringrequirements analysis and design

  • 8/4/2019 02 Soft Eng Intro

    10/15

    Why are software projects late?

    Estimating techniques are poorly developedEstimates are based on optimism:

    - Programmers are optimistic.- Assume All will go well with the project.- Dont plan for slippage.- This is the last bug.

    - Its going to work this time!

    Optimism could be because of the nature of creativity:- Conception of an idea and its implementation.- Medium of creation constrains our ideas.- In case of software the medium is infinitely malleable.

    - Expect a few problems in implementation.Our techniques of estimating are poorly developed.More seriously they reflect an unvoiced assumption which is quite untrue,that is, that all will go well.

    -- Fred Brooks, The Mythical Man-Month

  • 8/4/2019 02 Soft Eng Intro

    11/15

    Why are software projects late? (contd..)

    Does effort necessarily == progress? Is one man working six months equal to six men working one month?

    Unit of man-month implies

    that men and month are interchangeable.- True only when a task can be partitioned among many workerswith no communication between them.

    - For sequential tasks, more effort has no effect on the schedule.- Many tasks in software engineering have sequential constraints.

    Our estimating techniques fallaciously confuse effort with progress,hiding the assumption that men and months are interchangeable.- Fred Brooks, The Mythical Man-Month

  • 8/4/2019 02 Soft Eng Intro

    12/15

    Why software projects are late? (contd..)

    Managers do not monitor progress effectively

    Schedule slips day-by-day.Day-by-day slips are harder to recognize,

    harder to prevent and harder to make up.

    How does a software project get to be a year late?One day at a time!

    Fred Brooks, The Mythical Man-Month

  • 8/4/2019 02 Soft Eng Intro

    13/15

    Why are software projects late ? (contd..)

    When we recognize slippage, should we add more people?

    Most tasks require communication among workers.Communication consists of:

    - Training.

    - Sharing information (intercommunication).Training affects effort at worst linearly, with the number of people.For n workers, intercommunication adds n(n-1)/2 to effort.

    - If each worker must communicate with every other worker.Adding more people to an already late project is usually like

    Adding gasoline to fire!

    Brooks' Law:Adding manpower to a late software project makes it later.

    Fred Brooks, The Mythical Man-Month

  • 8/4/2019 02 Soft Eng Intro

    14/15

    What software engineering is and is not..

    Software engineering is concerned withengineering software systems, that is,building and modifying software systems: on time,

    within budget,

    meeting quality and performance standards, delivering the features desired/expected by the customer.

    Software engineering is not Just building small or new systems.

    Hacking or debugging until it works.

    Easy, simple, boring or even pointless!

  • 8/4/2019 02 Soft Eng Intro

    15/15

    Summary

    Critical aspects of our day to day lives depend on software,yet software development lacks the rigor and discipline ofmature engineering disciplines: Too many projects get delayed, costs and schedules slip

    Software engineering seeks to bring discipline and rigor

    to the building and maintenance of software systems Study of software engineering focuses on three key elements:

    process, methods and tools

    Why is important to consider alternative models of thesoftware development process?