Copyright © 1995-2004, Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 1 1/11/2004 Day 2, Part 1 Estimating Software Size Section 2 Calculating.

Slides:



Advertisements
Similar presentations
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

MIS 2000 Class 20 System Development Process Updated 2014.
Overview of Programming and Problem Solving ROBERT REAVES.
1 Estimating Software Development Using Project Metrics.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 7.
The Comparison of the Software Cost Estimating Methods
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
This set of slides is provided by the author of the textbook1 Introductory Topics l Computer Programming l Programming Life-Cycle Phases l Creating an.
(c) 2007 Mauro Pezzè & Michal Young Ch 24, slide 1 Documenting Analysis and Test.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
Risk Management. What is risk? You have some expected outcome –Of some event in the future Risk is the deviation of the actual future outcome from the.
Configuration Management
HIT241 - COST MANAGEMENT Introduction
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Chapter 6 : Software Metrics
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 26 Slide 1 Software cost estimation 1.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
Software cost estimation Predicting the resources required for a software development process 1.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M14 - Version 9.01 SMU CSE 7315 Planning and Managing a Software Project.
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M11 - Version 9.01 SMU CSE 7315 Planning and Managing a Software Project.
University of Southern California Center for Software Engineering C S E USC Using COCOMO for Software Decisions - from COCOMO II Book, Section 2.6 Barry.
10/27/20151Ian Sommerville.  Fundamentals of software measurement, costing and pricing  Software productivity assessment  The principles of the COCOMO.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Cost Estimation. Problem Our ability to realistically plan and schedule projects depends on our ability to estimate project costs and development efforts.
Cost Estimation What is estimated? –resources (humans, components, tools) –cost (person-months) –schedule (months) Why? –Personnel allocation –Contract.
Quality Software Project Management Software Size and Reuse Estimating.
Formal Methods in Software Engineering
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #2 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #2 Software Engineering.
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 26Slide 1 Software cost estimation l Predicting the resources required for a software development.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented.
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M16 - Version 8.01 SMU CSE 7315 Planning and Managing a Software Project.
February 15, 2004 Software Risk Management Copyright © , Dennis J. Frailey, All Rights Reserved Simple Steps for Effective Software Risk Management.
CS 350: Introduction to Software Engineering Slide Set 2 Process Measurement C. M. Overstreet Old Dominion University Fall 2005.
Copyright © Dennis J. FraileyDay 1 1/11/2004 CSE 7315 Software Project Planning and Management Dr. Dennis J. Frailey Principal Fellow Raytheon.
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M18 - Version 9.01 SMU CSE 7315 Planning and Managing a Software Project.
Software cost estimation. Fundamental estimation questions How much effort is required to complete an activity? How much calendar time is needed to complete.
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
CSE SW Project Management / Module 15 - Introduction to Effort Estimation Copyright © , Dennis J. Frailey, All Rights Reserved CSE7315M15.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CSE SW Metrics and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M37 8/20/2001Slide 1 SMU CSE 8314 /
Copyright © Dennis J. FraileyDay 5 8/8/2004 CSE 7315 Software Project Planning and Management Dr. Dennis J. Frailey Principal Fellow Raytheon.
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M15 - Version 9.01 SMU CSE 7315 Planning and Managing a Software Project.
CSE SW Project Management / Module 14 - Size Estimating Notes and Reuse Copyright © , Dennis J. Frailey, All Rights Reserved CSE7315M14.
Project Planning Goal 1 - Estimates are documented for use in tracking and planning project. Goal 2 - Project Activities and commitments planned and documented.
CSE SW Project Management / Module 12 - Size Estimating Methods Part 1 Copyright © , Dennis J. Frailey, All Rights Reserved CSE7315 v3.0.
CSE SW Project Management / Module 11 - Overview of Size Estimating Copyright © , Dennis J. Frailey, All Rights Reserved CSE7315M11 Slide.
CSE SW Project Management / Module 19 - Some Popular Effort Estimation Models Copyright © , Dennis J. Frailey, All Rights Reserved CSE7315M19.
CSE SW Project Management / Module 18 - Introduction to Effort Estimating Models Copyright © , Dennis J. Frailey, All Rights Reserved CSE7315M18.
By Manish Shrotriya CSE MS Software Estimation Effort Estimation: how much effort is required to complete an activity. (How to define efforts: Line.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
1 Using COCOMO for Software Decisions - from COCOMO II Book, Section 2.6, 6.5 LiGuo Huang Computer Science and Engineering Southern Methodist University.
SE-280 Dr. Mark L. Hornick 1 Measuring Software Size.
Project Cost Management
SLOC and Size Reporting
Using COCOMO for Software Decisions - from COCOMO II Book, Section 2
Using COCOMO for Software Decisions - from COCOMO II Book, Section 2
COCOMO Models.
Lecture 06:Software Maintenance
Using COCOMO for Software Decisions - from COCOMO II Book, Section 2.6
Using COCOMO for Software Decisions - from COCOMO II Book, Section 2
Presentation transcript:

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 1 1/11/2004 Day 2, Part 1 Estimating Software Size Section 2 Calculating the Benefits of Software Reuse

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 2 1/11/2004 The Overall Planning Cycle Analyze Job Manage Risks Execute Generate Detailed Plans Generate Initial Plans Measure, Manage Productivity and Quality

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 3 1/11/2004 Detailed Planning - Processes Estimate Effort and Cost Estimate Schedule Evaluate Source Information Statement of Work Requirements Constraints Standards Processes History etc. WBS Size Effort & Cost ScheduleOK Complete Detailed Planning Revise & Negotiate Not OK Estimate Size

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 4 1/11/2004 Architecture of Spreadsheet Cocomo Based Estimate Other Effort Estimates... Analogy based Size Estimate Software Reuse Analysis Final Effort Estimate Productivity Based Effort Estimate Other Size Estimates... Final Size Estimate Expert Based Size Estimate Size / Reuse EffortSchedules Generic Schedule Effort Schedule

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 5 1/11/2004 Calculating the Benefits of Reuse

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 6 1/11/2004 Dealing with Reuse Many software programs are derived from previous programs This MAY result in savings of cost and/or time It MAY also result in increased quality BUT !...Reuse can also cost more and take longer and yield lower quality

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 7 1/11/2004 Quality = x Reused: Quality = x Developed: Quality = y Old SoftwareNew Software Quality of new software depends on x and y. If old software has poor quality it brings down the quality of the new software. But if it has high quality, it brings quality up. Reuse Quality Diagram

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 8 1/11/2004 What Can be Reused? Just about Anything Code Test code Test cases and procedures Documentation Design specifications Designs Requirements specifications Etc., etc.

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 9 1/11/2004 Reuse is Almost Never “Free” Because you seldom have everything you need –You typically need to create tests or documents or other things And you need to design the software to incorporate the “reused” components And you need to integrate the “reused” components with everything else

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 10 1/11/2004 Reuse Terminology Legacy Software Software developed for a previous application & BELIEVED TO BE OF USE for new application Modified Software Software developed for a previous application that is suitable for a new application after a MODEST AMOUNT OF MODIFICATION Reused Software Software developed for previous application suitable WITHOUT CHANGE OF ANY KIND

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 11 1/11/2004 Legacy Software vs. Reusable Software Legacy Software Designed for a Specific Application Lax Standards for –Documentation –Test Procedures –Test Cases Like looking in a junkyard to find something of use Reusable Software Designed for Several Applications Good Standards for – Documentation – Test Procedures – Test Cases Like looking in a library to find something of use

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 12 1/11/2004 Documenting Reuse Estimates The Total column is total delivered units of Software This could be applied equally to lines of code, function points or other measures ItemNewModifiedReusedTotal Component Component Component Component Component Total

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 13 1/11/2004 How Do You Count How Much of a Component is Modified or Reused? Consider Component #4 and Component #5 on the previous slide A Rule of Thumb: –Go to the smallest level known Unit or module (typically about 100 LOC) –If the unit is not changed, it is “reused” –If the unit is changed, it is “modified” –If more than 50% of the unit is changed, it is “new”

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 14 1/11/2004 Incorporating Several Distinct Kinds of Modified Software ItemNewModified Type 1 Modified Type 2 ReusedTotal Component Component Component Component Component Total

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 15 1/11/2004 Total Delivered Size Conversion Process Equivalent Size Reuse Information Calculating the Benefit of Reuse After estimating size, and before estimating effort, you must convert reused software to “equivalent” new software

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 16 1/11/2004 How Do You Convert? The conversion factor is based on how much less effort you will expend for reused or modified software than for new software Assuming you have historical justification of the conversion factors, you can do a simple calculation

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 17 1/11/2004 Example This can be estimated directly via “reuse factors,” e.g.: –Reused software takes about 30% as much effort as new software –Modified software takes 60% as much effort as new software

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 18 1/11/2004 Example Concluded This says that the total effort to develop these 5121 units of software will be comparable to that of producing 3567 units of new software. The same approach can be used for any size units: lines of code, function points or any other measures of software size.

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 19 1/11/2004 Where Did Those “Reuse Factors” Come From? Experience! –Over many hundreds of projects –But these are averages, and they vary a lot Your experience may vary from mine –You must keep track in order to know Different kinds of modified software may have different factors

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 20 1/11/2004 Typical Reuse Factors (*) See later slides for information on concurrent reuse

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 21 1/11/2004 We Can Get More Accurate If we are willing to look more closely at the –Process & –Reuse characteristics, Then we can gain a deeper understanding of the reuse impact We can also use this information to calculate the reuse factors used in the previous example

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 22 1/11/2004 First Examine the Process List the steps of the process Then determine the % of the total effort expended in each step, when developing new software Note that this is effort, not time Example:

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 23 1/11/2004 Next Develop a Factor to Represent the Reuse Benefit in Each Process Step Require- ments DesignCode and Unit Test Integrat ion Relative Effort 18%25% 32% Reuse Factor 10%15%5%75% Modified Factor 40%35%55%80%

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 24 1/11/2004 For Example … Let RM be the % of the requirements effort for this reused software –We must analyze requirements to see if reused software can be used Let DM be the % of the design effort for this reused software –We may have to plan to test the software and maybe design the rest of the software in a special way Continued...

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 25 1/11/2004 Example (continued) Let CM be the % of the coding and unit testing effort required for this reused software –Normally 0 for “pure reused” software, but what about new test code? –Typically the % modified for modified software Let IM be the % of the integration effort required for this software –often % even for pure reused

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 26 1/11/2004 Applying the More Accurate Method For each phase of the process –Determine % effort for each process phase –Determine the effect of reuse

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 27 1/11/2004 Why is it “Modified” if You Change it Only a Little Bit Totally reused software has: –Identical documentation –Identical test procedures, code, etc. –One master copy to maintain in the configuration management library –One part number for record keeping, inventory, etc. Continued...

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 28 1/11/2004 Even if you Change only 1 Comment Line You need to maintain two copies in the CM library (of code, test software, etc.) And if you change 1 line of executable code –You need to change tests and documentation

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 29 1/11/2004 What Is Concurrent Reuse? “Concurrent” reuse is reusing something multiple times within the same software product –For example, if the same subroutine is used in each of several system components It has very low cost, but it is not “free” –You have to integrate and test each component –And if you find a problem, you must fix it multiple times

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 30 1/11/2004 Reuse Factor To Use for Concurrent Reuse Typically, a concurrent reuse situation calls for a factor no larger than 5% –If the initial code is new or heavily modified, the second and subsequent uses (concurrent reuse) tend to need factors of about 3-5% –If the initial code is reused or lightly modified, the proper factor tends to run from 0.5% to 2%

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 31 1/11/2004 Concurrent Reuse Example ItemNewModifiedReusedConcurrent Reuse Total 2,1381,7821,2012,0007,121 Factor100%60%30%1% Net2,1381, ,588

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 32 1/11/2004 Maintenance vs Reuse? If you have a large amount of code and are modifying only a part of it, as in a maintenance situation, is this a form of reuse? If so, what reuse factor is appropriate? –Typically the factor would be very small –Often, people estimate maintenance with a bottom-up technique rather than as a form of “reuse”

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 33 1/11/2004 More Notes on Reuse The earlier in the process you reuse, the more leverage you get –Reusing an architecture or a design will support multiple target machines, languages, etc. Continued... Requirements Design Code Test

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 34 1/11/2004 A Final Note on Reuse The most important factor in planning for reuse is the application domain –A series of products in the same domain will get more reuse than a series of unrelated products –And it will be easier to find what you need when you need it –And the staff are more likely to be familiar with the old software and how it can be used again

Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 35 1/11/2004 Architecture of Spreadsheet Cocomo Based Estimate Other Effort Estimates... Analogy based Size Estimate Software Reuse Analysis Final Effort Estimate Productivity Based Effort Estimate Other Size Estimates... Final Size Estimate Expert Based Size Estimate Size / Reuse EffortSchedules Generic Schedule Effort Schedule