PLANNING AND ESTIMATING

Similar documents
Estimating Duration and Cost. CS 390 Lecture 26 Chapter 9: Planning and Estimating. Planning and the Software Process

Development Methodologies

CHAPTER 2. Slide 2.1 THE SOFTWARE PROCESS

Contents. Today Project Management. What is Project Management? Project Management Activities. Project Resources

SOFTWARE ENGINEERING

You document these in a spreadsheet, estimate them individually and compute the total effort required.

Professor Hausi A. Müller PhD PEng FCAE Department of Computer Science Faculty of Engineering University of Victoria

Darshan Institute of Engineering & Technology for Diploma Studies

Software cost estimation

COCOMO Models 26/12/2016 1

Fundamental estimation questions. Software cost estimation. Costing and pricing. Software cost components. Software pricing factors

Object-Oriented and Classical Software Engineering

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

Figure 1 Function Point items and project category weightings

DRAFT. Effort = A * Size B * EM. (1) Effort in person-months A - calibrated constant B - scale factor EM - effort multiplier from cost factors

Goals of course. Themes: What can you do to evaluate a new technique? How do you measure what you are doing?

SENG380:Software Process and Management. Software Size and Effort Estimation Part2

CHAPTER 6 AN ANALYSIS OF EXISTING SOFTWARE ESTIMATION TECHNIQUES

Assessing Accuracy of Formal Estimation Models and Development of an Effort Estimation Model for Industry Use

Project Planning. COSC345 Software Engineering 2016 Slides by Andrew Trotman given by O K

Software Estimation. Estimating Software Size

Introduction to Software Metrics

Software cost estimation

mywbut.com Software Project Planning

MTAT Software Economics. Session 6: Software Cost Estimation

A system is a group of elements organized and arranged so that the. elements can act as a whole toward achieving a common goal; is a collection of

2. What is a phase? A phase is a collection of related activities or tasks that produce a deliverable or work product.

Software Efforts & Cost Estimation Matrices and Models. By: Sharaf Hussain

T Software Testing and Quality Assurance Test Planning

Chapter 4 Software Process and Project Metrics

A Review of Agile Software Effort Estimation Methods

Sources of Error in Software Cost Estimation

Why Measure Software?

CSSE 372 Software Project Management: Software Estimation Fundamentals

When it Comes to Estimating

Software Project Management. Software effort

SE Notes Mr. D. K. Bhawnani, Lect (CSE) BIT

Personal Software Process SM for Engineers: Part I


Estimation Based on Function Points

Chapter 5: Software effort estimation- part 2

Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling, tracking, and monitoring a comple

Resource Model Studies

CS Homework 5. Deadline. How to submit. Purpose. Important notes. Problem 1. CS Homework 5 p. 1

7. What is planning? It is an act of formulating a program for a definite course of action. Planning is to decide what is to be done.

Using Monte Carlo and COCOMO-2 to Model a Large IT System Development. COCOMO/SCM 17 October 24, 2002 John Bailey Institute for Defense Analyses

Project Management. Agenda - What will you learn today? Theory Lecture Plan. A Software Life-cycle Model Which part will we talk about today?

Today s Lecture. Fall 2004 SE 101 Introduction to Software Engineering 2

Project Plan. For KDD- Service based Numerical Entity Searcher (KSNES) Version 1.1

Chapter 5 Estimate Influences

Cost Estimation. I've got Bad News and Bad News!

Manual Techniques, Rules of Thumb

Management of Software Engineering. Ch. 8 1

Cost Estimation for Projects

Estimating Size and Effort

Software Engineering II - Exercise

Software Engineering Measurement and Fundamental Estimation Techniques.

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 11: Managing the Software Process

Research Paper on Software Cost Estimation Using Fuzzy Logic

Tassc:Estimator technical briefing

Software Cost Estimation Models and Techniques: A Survey

Headquarters U.S. Air Force

Estimating Size and Effort

SCIENCE & TECHNOLOGY

Introduction to Software Metrics

GEARING FACTORS. The A FLEXIBLE SIZING APPROACH

Chapter 3 Prescriptive Process Models

Estimating Software Maintenance

Analysis Of the Techniques for Software Cost Estimation

Project Plan Community Forum Version 1.0 Submitted by Nayan Ancha

LIFE-CYCLE MODELS AND PROCESS. Software Engineering 1/9/2008. CHAPTER 1, 2, and 3. Stephen R. Schach

Resource Decisions in Software Development Using Risk Assessment Model

Experiment No 12. Practical Significance. Relevant Program Outcomes. Relevant Course Outcomes. Practical Learning Outcomes.

Software Engineering. Lab Manual. Software Engineering BE(comp) VII semester

Estimating SW Size and Effort Estimating Size and Effort

Project Management Phases. Initiating Planning Executing Controlling Closing

Management and MDD. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems March 6, 2007

Estimation for Software Projects. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

Concepts of Project Management. All projects have followings.

Chapter 3 Software Process Model

Characteristics of a project

Cycle Time Forecasting. Fast #NoEstimate Forecasting

Proposing New Model for Effort Estimation of Mobile Application Development

CS Homework 6 p. 1. CS Homework 6

SENG Software Reliability and Software Quality Project Assignments

BAE Systems Insyte Software Estimation

Software Process and Project Metrics

Software Project Management

A Web-based Framework of Project Performance and Control System

Risk as zero th order change in software project estimation. T Woodings COCOMO Forum 1 1

QUESTIONS AND ANSWERS ON SOFTWARE PROCESS AND PRODUCT METRICS

Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

MODELING RESOURCES 7.1

Macro-parametrics and the applications of multicolinearity and Bayesian to enhance early cost modelling

Introduction to Software Engineering

Information Technology Project Management. Copyright 2012 John Wiley & Sons, Inc.

3. December seminar cost estimation W 2002/2003. Constructive cost model Department of Information Technology University of Zurich

Evaluation of SE research

Software Cost Models

This paper appeared in the proceedings of OTC 95 The First Conference on Object Technology Centers Stone Mountain, Georgia, pp

Transcription:

Slide 9.1 Overview Slide 9.2 PLANNING AND ESTIMATING Planning and the software process Estimating duration and cost Components of a software project management plan Software project management plan framework IEEE software project management plan Planning testing Planning object-oriented projects Training requirements Documentation standards Planning and Estimating Slide 9.3 Planning and the Software Process (contd) Slide 9.4 Before starting to build software, it is essential to plan the entire development effort in detail Planning continues during development and then postdelivery maintenance Initial planning is not enough Planning must proceed throughout the project The earliest possible time that detailed planning can take place is after the specifications are complete Example Cost estimate of $1 million during the requirements workflow» Likely actual cost is in the range ($0.25M, $4M) Cost estimate of $1 million at the end of the requirements workflow» Likely actual cost is in the range ($0.5M, $2M) Cost estimate of $1 million at the end of the analysis workflow (earliest appropriate time)» Likely actual cost is in the range ($0.67M, $1.5M)

Planning and the Software Process (contd) Slide 9.5 Planning and the Software Process (contd) Slide 9.6 These four points are shown in the cone of uncertainty This model is old (1976) Estimating techniques have improved But the shape of the curve is likely to be similar 9.2 Estimating Duration and Cost Figure 9.2 Slide 9.7 9.2.1 Metrics for the Size of a Product Slide 9.8 Accurate duration estimation is critical Accurate cost estimation is critical Internal, external costs Lines of code (LOC, KDSI, KLOC) FFP Function Points COCOMO There are too many variables for accurate estimate of cost or duration

Lines of Code (LOC) Slide 9.9 Lines of Code (contd) Slide 9.10 Alternate metric Thousand delivered source instructions (KDSI) Source code is only a small part of the total software effort It is not clear how to count lines of code Executable lines of code? Data definitions? Comments? JCL statements? Changed/deleted lines? Different languages lead to different lengths of code LOC is not defined for nonprocedural languages (like LISP) Not everything written is delivered to the client A report, screen, or GUI generator can generate thousands of lines of code in minutes Lines of Code (contd) Slide 9.11 Metrics for the Size of a Product (contd) Slide 9.12 LOC is accurately known only when the product finished Estimation based on LOC is therefore doubly dangerous To start the estimation process, LOC in the finished product must be estimated The LOC estimate is then used to estimate the cost of the product an uncertain input to an uncertain cost estimator Metrics based on measurable quantities that can be determined early in the software life cycle FFP Function points

FFP Metric Slide 9.13 FFP Metric (contd) Slide 9.14 For cost estimation of medium-scale data processing products The three basic structural elements of data processing products Files Flows Processes The validity and reliability of the FFP metric were demonstrated using a purposive sample However, the metric was never extended to include databases 9.2.2 Techniques of Cost Estimation Slide 9.15 Expert Judgment by Analogy Slide 9.16 Expert judgment by analogy Bottom-up approach Algorithmic cost estimation models Experts compare the target product to completed products Guesses can lead to hopelessly incorrect cost estimates Experts may recollect completed products inaccurately Human experts have biases However, the results of estimation by a broad group of experts may be accurate The Delphi technique is sometimes needed to achieve consensus

Bottom-up Approach Slide 9.17 Algorithmic Cost Estimation Models Slide 9.18 Break the product into smaller components The smaller components may be no easier to estimate However, there are process-level costs When using the object-oriented paradigm The independence of the classes assists here However, the interactions among the classes complicate the estimation process A metric is used as an input to a model to compute cost and duration An algorithmic model is unbiased, and therefore superior to expert opinion However, estimates are only as good as the underlying assumptions Examples SLIM Model Price S Model COnstructive COst MOdel (COCOMO) 9.2.3 Intermediate COCOMO Slide 9.19 Slide 9.20 COCOMO consists of three models A macro-estimation model for the product as a whole Intermediate COCOMO A micro-estimation model that treats the product in detail Step 1. Estimate the length of the product in KDSI We examine intermediate COCOMO

Slide 9.21 Slide 9.22 Step 2. Estimate the product development mode (organic, semidetached, embedded) Example: Straightforward product ( organic mode ) Nominal effort = 3.2 (KDSI) 1.05 person-months Step 3. Compute the nominal effort Example: Organic product 12,000 delivered source statements (12 KDSI) (estimated) Nominal effort = 3.2 (12) 1.05 = 43 person-months Slide 9.23 Slide 9.24 Step 4. Multiply the nominal value by 15 software development cost multipliers Example: Microprocessor-based communications processing software for electronic funds transfer network with high reliability, performance, development schedule, and interface requirements Step 1. Estimate the length of the product 10,000 delivered source instructions (10 KDSI) Step 2. Estimate the product development mode Complex ( embedded ) mode Figure 9.6

Slide 9.25 Slide 9.26 Step 3. Compute the nominal effort Nominal effort = 2.8 (10) 1.20 = 44 person-months Software development effort multipliers Step 4. Multiply the nominal value by 15 software development cost multipliers Product of effort multipliers = 1.35 (see table on next slide) Estimated effort for project is therefore 1.35 44 = 59 person-months Figure 9.7 Slide 9.27 Slide 9.28 Estimated effort for project (59 person-months) is used as input for additional formulas for Dollar costs Development schedules Phase and activity distributions Computer costs Annual maintenance costs Related items Intermediate COCOMO has been validated with respect to a broad sample Actual values are within 20% of predicted values about 68% of the time Intermediate COCOMO was the most accurate estimation method of its time Major problem If the estimate of the number of lines of codes of the target product is incorrect, then everything is incorrect

9.2.4 COCOMO II Slide 9.29 COCOMO II (contd) Slide 9.30 1995 extension to 1981 COCOMO that incorporates Object orientation Modern life-cycle models Rapid prototyping Fourth-generation languages COTS software COCOMO II is far more complex than the first version There are three different models Application composition model for the early phases» Based on feature points (similar to function points) Early design model» Based on function points Post-architecture model» Based on function points or KDSI COCOMO II (contd) Slide 9.31 COCOMO II (contd) Slide 9.32 The underlying COCOMO effort model is effort = a (size) b Intermediate COCOMO» Three values for (a, b) COCOMO II» b varies depending on the values of certain parameters COCOMO II has 17 multiplicative cost drivers (was 15) Seven are new It is too soon for results regarding The accuracy of COCOMO II The extent of improvement (if any) over Intermediate COCOMO COCOMO II supports reuse

9.2.5 Tracking Duration and Cost Estimates Slide 9.33 9.3 Components of a Software Project Management Plan Slide 9.34 Whatever estimation method used, careful tracking is vital The work to be done The resources with which to do it The money to pay for it Resources Slide 9.35 Use of Resources Varies with Time Slide 9.36 Resources needed for software development: People Hardware Support software Rayleigh curves accurately depict resource consumption The entire software development plan must be a function of time Figure 9.8

Work Categories Slide 9.37 Work Categories Slide 9.38 Project function Activity Work carried on throughout the project Work that relates to a specific phase Examples:» Project management» Quality control A major unit of work, With precise beginning and ending dates, That consumes resources, and Results in work products like the budget, design, schedules, source code, or users manual Work Categories (contd) Slide 9.39 Completion of Work Products Slide 9.40 Task An activity comprises a set of tasks (the smallest unit of work subject to management accountability) Milestone: The date on which the work product is to be completed It must first pass reviews performed by Fellow team members Management The client Once the work product has been reviewed and agreed upon, it becomes a baseline

Work Package Slide 9.41 9.4 Software Project Management Plan Framework Slide 9.42 Work product, plus Staffing requirements Duration Resources The name of the responsible individual Acceptance criteria for the work product The detailed budget as a function of time, allocated to» Project functions» Activities There are many ways to construct an SPMP One of the best is IEEE Standard 1058.1 The standard is widely accepted It is designed for use with all types of software products It supports process improvement» Many sections reflect CMM key process areas It is ideal for the Unified Process» There are sections for requirements control and risk management Software Project Management Plan Framework (contd) Slide 9.43 9.5 IEEE Software Project Management Plan Slide 9.44 Some of the sections are inapplicable to smallscale software Example: Subcontractor management plan Figure 9.9

9.6 Planning Testing Slide 9.45 9.7 Planning Object-Oriented Projects Slide 9.46 The SPMP must explicitly state what testing is to be done An object-oriented product consists of largely independent pieces Traceability is essential Consequently, planning is somewhat easier All black box test cases must be drawn up as soon as possible after the specifications are complete The whole is more than the sum of its parts We can use COCOMO II (or modify Intermediate COCOMO estimators) Planning of Object-Oriented Projects (contd) Slide 9.47 9.8 Training Requirements Slide 9.48 However, reuse induces errors in cost and duration estimates Reuse of existing components during development Production of components for future reuse These work in opposite directions We don t need to worry about training until the product is finished, and then we can train the user Training is generally needed by the members of the development group, starting with training in software planning Newer data: The savings outweigh the costs A new software development method necessitates training for every member of the group

Training Requirements (contd) Slide 9.49 9.9 Documentation Standards Slide 9.50 Introduction of hardware or software tools of any sort necessitates training Programmers may need training in the operating system and/or implementation language Documentation preparation training may be needed Computer operators require training How much documentation is generated by a product? IBM internal commercial product (50 KDSI)» 28 pages of documentation per KDSI Commercial software product of the same size» 66 pages per KDSI IMS/360 Version 2.3 (about 166 KDSI)» 157 pages of documentation per KDSI [TRW] For every 100 hours spent on coding activities, 150 200 hours were spent on documentation-related activities Types of Documentation Slide 9.51 Documentation Standards Slide 9.52 Planning Control Financial Technical Source code Comments within source code Reduce misunderstandings between team members Aid SQA Only new employees have to learn the standards Standards assist maintenance programmers Standardization is important for user manuals