Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Software Sizing

  • Identifiez-vous pour voir les commentaires

Software Sizing

  1. 1. Presented by: Noman Aftab
  2. 2. Introduction to Software Project Forecasting: <ul><li>What does the customer want to know ? </li></ul><ul><ul><li>How big is it? </li></ul></ul><ul><ul><li>How long will it take? </li></ul></ul><ul><ul><li>How many people do we need? </li></ul></ul><ul><ul><li>How much will it cost? </li></ul></ul><ul><ul><li>How good is it? </li></ul></ul>
  3. 3. What to Forecast? <ul><li>Software size : </li></ul><ul><li>LOC </li></ul><ul><li>Function Points </li></ul><ul><li>Personnel resources : </li></ul><ul><li>PW </li></ul><ul><li>PM </li></ul><ul><li>PY </li></ul>
  4. 4. What to Forecast? <ul><li>Project schedule: </li></ul><ul><li>Days </li></ul><ul><li>Weeks </li></ul><ul><li>Months </li></ul><ul><li>Years </li></ul><ul><li>Project costs : </li></ul><ul><li>$$$$$$$$$$$ </li></ul>
  5. 5. Top Down Estimating: <ul><li>based on experiential data from top and middle managers. </li></ul><ul><li>estimates obtained from the management. </li></ul><ul><li>aggregate works well with individual errors. </li></ul>
  6. 6. Bottom-up estimating: <ul><li>Personnel performing tasks estimate the work . </li></ul><ul><li>more accurate in detail . </li></ul><ul><li>rare in organizational budgeting. </li></ul>
  7. 7. Software Sizing! <ul><ul><li>Accuracy of a software project estimate is Predicated on a number of things : </li></ul></ul><ul><li>The degree to which the planner has properly estimated the size </li></ul><ul><li>of the product to be built. </li></ul><ul><li>The ability to translate the size estimate into human effort, </li></ul><ul><li>calendar time, and dollar. </li></ul><ul><li>The degree to which the project plan reflects the abilities of the </li></ul><ul><li>software team. </li></ul><ul><li>The stability of product requirements and the enironmenment </li></ul><ul><li>that supports the engineering effort. </li></ul>
  8. 8. Software sizing methods: <ul><li>“ Fuzzy Logic” sizing </li></ul><ul><li>Standard component sizing </li></ul><ul><li>Wideband Delphi </li></ul><ul><li>Function points, Feature Points </li></ul><ul><li>PROBE </li></ul>
  9. 9. Fuzzy Logic Size Estimating – 1: <ul><li>Gather size data on previously developed programs </li></ul><ul><li>Subdivide these data into size categories: </li></ul><ul><ul><ul><li>very large, large, medium, small, very small </li></ul></ul></ul><ul><ul><ul><li>establish size ranges </li></ul></ul></ul><ul><ul><ul><li>include all existing and expected products </li></ul></ul></ul><ul><li>Subdivide each range into subcategories </li></ul><ul><li>Allocate the available data to the categories. </li></ul><ul><li>Establish subcategory size ranges. </li></ul><ul><li>When estimating a new program, judge which category and </li></ul>subcategory it most closely resembles.
  10. 10. A Fuzzy Logic Example – 1: <ul><ul><ul><li>You have historical data on 5 programs as follows: </li></ul></ul></ul><ul><li>a file utility of 1,844 LOC </li></ul><ul><li>a file management program of 5,834 LOC </li></ul><ul><li>a personnel record keeping program of 6,84 LOC </li></ul><ul><li>a report generating package of 18,386 LOC </li></ul><ul><li>an inventory management program of 25,94 LOC </li></ul>
  11. 11. A Fuzzy Logic Example - 2: <ul><li>You thus establish 5 size ranges, as follows: </li></ul><ul><li>log(1844) = 3.266 </li></ul><ul><li>log(25,943) = 4.414 </li></ul><ul><li>the difference is 1.148 </li></ul><ul><li>1/4th this difference is 0.287 </li></ul><ul><li>the logs of the five ranges are thus spaced 0.287 apart </li></ul><ul><li>the limits or these ranges are at 0.1435 above and below the </li></ul>midpoint of each range. midpoint of each range.
  12. 12. A Fuzzy Logic Example - 3: <ul><ul><li>The 5 size ranges are thus: </li></ul></ul><ul><ul><li>very small - 1,325 to 2,566: file utility. </li></ul></ul><ul><ul><li>small - 2,566 to 4,970: no members. </li></ul></ul><ul><ul><li>medium - 4,970 to 9,626: file management and personnel </li></ul></ul><ul><ul><li>record program. </li></ul></ul><ul><ul><li>large - 9,626 to 18,641: report generator. </li></ul></ul><ul><ul><li>very large - 18,641 to 36,104: inventory management. </li></ul></ul>
  13. 13. A Fuzzy Logic Example - 4: <ul><li>Your new program has the following </li></ul><ul><li>requirements: </li></ul><ul><li>analyze marketing performance by product line. </li></ul><ul><li>project the likely sales in each product category. </li></ul><ul><li>allocate these sales to marketing regions and time periods. </li></ul><ul><li>produce a monthly report of these projections and the actual </li></ul><ul><li>result. </li></ul>
  14. 14. A Fuzzy Logic Example - 5: <ul><li>In comparing the new program to the historical data you make </li></ul><ul><li>the judgments. </li></ul><ul><li>it is a substantially more complex application than either the </li></ul><ul><li>file management or personal programs it not as complex as the </li></ul><ul><li>inventory management program it appears to have significantly </li></ul><ul><li>more function than the. </li></ul><ul><li>You conclude that the new program is in the lower </li></ul><ul><li>end of “very large,” or from 18 to 25 KLOC. </li></ul>
  15. 15. Fuzzy Logic – Summary: <ul><ul><ul><li>To make a fuzzy logic estimate: </li></ul></ul></ul><ul><ul><li>Divide the historical product size data into size ranges. </li></ul></ul><ul><ul><li>Compare the planned product with these prior products. </li></ul></ul><ul><ul><li>Based on this comparison, select the size that seems most. </li></ul></ul>appropriate for the new product .
  16. 16. Fuzzy Logic Size Estimating – Advantages: <ul><li>Fuzzy logic estimating : </li></ul><ul><ul><li>is based on relevant historical data. </li></ul></ul><ul><ul><li>is easy to use. </li></ul></ul><ul><ul><li>requires no special tools or training. </li></ul></ul><ul><ul><li>provides reasonably good estimates where new work is like. </li></ul></ul>prior experience.
  17. 17. Fuzzy Logic Size Estimating – Disadvantages: <ul><li>The disadvantages of fuzzy logic are: </li></ul><ul><ul><li>it requires a lot of data. </li></ul></ul><ul><ul><li>the estimators must be familiar with historically developed </li></ul></ul><ul><ul><li>programs. </li></ul></ul><ul><ul><li>it only provides a crude sizing. </li></ul></ul><ul><ul><li>it is not useful for new program types. </li></ul></ul><ul><ul><li>it is not useful for programs much larger or smaller than the </li></ul></ul><ul><ul><li>historical data. </li></ul></ul>
  18. 18. Standard Component Sizing – 1: <ul><li>Establish the principal product size levels </li></ul><ul><li>components, modules, screens, etc. </li></ul><ul><li>determine typical sizes of each level </li></ul><ul><li>For a new product: </li></ul><ul><li>determine the component level at which estimation is practical. </li></ul><ul><li>estimate how many of those components will likely be in the </li></ul><ul><li>product. </li></ul><ul><li>determine the maximum and minimum numbers possible. </li></ul>
  19. 19. Standard Component Sizing – 2: <ul><li>Calculate the size as the. </li></ul><ul><li>number of components of each type. </li></ul><ul><li>times typical sizes of each type. </li></ul><ul><li>total to give size. </li></ul><ul><li>Calculate for the maximum, minimum, and likely numbers of </li></ul><ul><li>components. </li></ul><ul><li>Calculate size as: </li></ul><ul><li>{maximum+4*(likely)+minimum}/6 </li></ul>
  20. 20. Standard Component Sizing Example – 1: <ul><li>Your new program has the following </li></ul><ul><li>requirements. </li></ul><ul><li>analyze marketing performance by product line. </li></ul><ul><li>project the likely sales in each product category. </li></ul><ul><li>allocate these sales to marketing regions and time periods. </li></ul><ul><li>produce a monthly report of these projections and the actual </li></ul><ul><li>results. </li></ul>
  21. 21. Standard Component Sizing - Example – 2: <ul><li>You have the following historical data on a </li></ul><ul><li>number of standard components. </li></ul><ul><li>data input component: 1,108 LOC </li></ul><ul><li>output component: 675 LOC </li></ul><ul><li>file component: 1,585 LOC </li></ul><ul><li>control component: 2,550 LOC </li></ul><ul><li>computation component: 475 LOC </li></ul>
  22. 22. Standard Component Sizing - Example –3: <ul><li>First, estimate the minimum, likely, and maximum num- </li></ul><ul><li>ber of components like these in the new product. </li></ul><ul><li>data input component: 1, 4, 7 </li></ul><ul><li>output component: 1, 3, 5 </li></ul><ul><li>file component: 2, 4, 8 </li></ul><ul><li>control component: 1, 2, 3 </li></ul><ul><li>computation component: 1, 3, 7 </li></ul>
  23. 23. Standard Component Sizing - Example –4: <ul><li>Second, calculate the minimum, likely, and maximum </li></ul><ul><li>maximum size of the product components. </li></ul><ul><li>data input component: 1108, 4432, 7756 </li></ul><ul><li>output component: 675, 2025, 3375 </li></ul><ul><li>file component: 3170, 6340, 12680 </li></ul><ul><li>control component: 2550, 5100, 7650 </li></ul><ul><li>computation component: 475, 1425, 3325 </li></ul>
  24. 24. Standard Component Sizing - Example – 5: <ul><li>Third, calculate the minimum, likely, and maximum </li></ul><ul><li>LOC of the new product. </li></ul><ul><li>minimum: 7,978 </li></ul><ul><li>likely: 13,616 </li></ul><ul><li>maximum: 34,786 </li></ul><ul><li>The size estimate is then </li></ul><ul><li>LOC = (7978+4*13616+34786)/6 = 16,205 LOC </li></ul><ul><li>the standard deviation is (34786-7978)/6=4468 </li></ul><ul><li>the estimate range is: 11,737 to 20,673 LOC </li></ul>
  25. 25. Standard Component Sizing - Advantages and Disadvantages: <ul><li>Advantages: </li></ul><ul><li>based on relevant historical data. </li></ul><ul><li>easy to use. </li></ul><ul><li>requires no special tools or training. </li></ul><ul><li>provides a rough estimate range. </li></ul><ul><li>Disadvantages: </li></ul><ul><li>must use large components early in a project. </li></ul><ul><li>limited data on large components. </li></ul>
  26. 26. Delphi Size Estimating : <ul><li>Uses several estimators: </li></ul><ul><li>each makes an independent estimate. </li></ul><ul><li>each submits estimate to a coordinator. </li></ul><ul><li>Coordinator: </li></ul><ul><li>calculates average estimate. </li></ul><ul><li>enters on form: average, other estimates. </li></ul><ul><li>(anonymous), and previous estimate. </li></ul><ul><li>When re-estimates stabilize: </li></ul><ul><li>average is the estimate. </li></ul><ul><li>range is range of original estimates. </li></ul>
  27. 27. Delphi Example – 1: <ul><li>3 estimators are asked to estimate the product. </li></ul><ul><li>Their initial estimates are. </li></ul><ul><li>A - 13,800 LOC. </li></ul><ul><li>B - 15,700 LOC. </li></ul><ul><li>C - 21,000 LOC </li></ul><ul><li>The coordinator t.hen. </li></ul><ul><li>calculates average estimate as 16,833 LOC. </li></ul><ul><li>returns this with their original estimates to the estimators. </li></ul>
  28. 28. Delphi Example - 2 <ul><li>The estimators then meet and discuss the estimates: </li></ul><ul><li>Their second estimates are: </li></ul><ul><li>A - 18,500 LOC. </li></ul><ul><li>B - 19,500 LOC. </li></ul><ul><li>C - 20,000 LOC. </li></ul><ul><li>The coordinator then. </li></ul><ul><li>calculates average estimate as 19,333 LOC. </li></ul><ul><li>asks the estimators if they agree with this as the estimate. </li></ul>
  29. 29. Delphi Size Estimating - 2 <ul><li>Advantages: </li></ul><ul><li>can produce very accurate results. </li></ul><ul><li>utilizes organization’s skills. </li></ul><ul><li>can work for any sized product. </li></ul><ul><li>Disadvantages: </li></ul><ul><li>relies on a few experts. </li></ul><ul><li>is time consuming. </li></ul><ul><li>is subject to common biases. </li></ul>
  30. 30. Wideband Delphi estimation: <ul><li>group effort with moderator. </li></ul><ul><li>anonymous individual estimates submitted. </li></ul><ul><li>estimate ranges tracked by moderator. </li></ul><ul><li>re-estimating until estimates are within an acceptable range. </li></ul>
  31. 31. Function Points: <ul><li>Measure of the functionality delivered by the applications. </li></ul><ul><li>Functionality cant be measured directly, it must be derived. </li></ul><ul><li>indirectly using other direct measures. </li></ul><ul><li>Function points are derived using an empirical </li></ul><ul><li>relationship based on countable (direct) measures. </li></ul><ul><li>of software’s information domain and assessments. </li></ul><ul><li>of software complexity. </li></ul>
  32. 32. Computing Function Points: Analyze information domain of the application and develop counts Weight each count by assessing complexity Assess influence of global factors that affect the application Compute function points Establish count for input domain and system interfaces Assign level of complexity or weight to each count Grade significance of external factors, F i such as reuse, concurrency, OS, ... function points = (count x weight) x C where: complexity multiplier: C = (0.65 + 0.01 x N) degree of influence: N = F i
  33. 33. Analyzing the information domain: <ul><ul><li>Determine the number of components: </li></ul></ul><ul><ul><ul><li>EI - The number of external inputs: These are elementary process in which derived data passes across the boundary from outside to inside. </li></ul></ul></ul><ul><ul><ul><li>In an example library database system, enter an existing patron’s library card number. </li></ul></ul></ul><ul><ul><ul><li>EO - The number of external outputs: These are elementary processes in which derived data passes across the boundary from inside to outside. </li></ul></ul></ul><ul><ul><ul><li>In an example library database system, display a list of books checked out patron. </li></ul></ul></ul>
  34. 34. Analyzing the information domain: <ul><li>EQ - The number of external queries: These are </li></ul><ul><li>. </li></ul><ul><ul><ul><ul><li>In an example library database system, determine what books are currently checked out patron. </li></ul></ul></ul></ul><ul><li>ILF- The number of internal log files: These are user </li></ul><ul><li>identifiable groups of logically related data that resides entirely within </li></ul><ul><li>the applications boundary that are maintained through external </li></ul><ul><li>inputs </li></ul><ul><ul><ul><ul><li>In an example library database system, the file of books in the library. </li></ul></ul></ul></ul>elementary processes with both input and output components that resolution data retrieval from one or more one or more internal logical files and external interface files.
  35. 35. Analyzing the information domain: <ul><ul><li>ELF - The number of external log files: There are </li></ul></ul><ul><ul><li>user identifiable groups of logically related data that are used for </li></ul></ul><ul><ul><li>reference purposes only, and which reside entirely outside the system. </li></ul></ul><ul><ul><ul><ul><li>In an example library database system, the file that </li></ul></ul></ul></ul><ul><li>contains transactions in the library’ </li></ul>.
  36. 36. Compute the Unadjusted Function Point Count: <ul><li>Rate each component as low , average , or high . </li></ul><ul><li>For transactions ( EI , EO , and EQ ), the rating is based on </li></ul><ul><li>the FTR and DTE. </li></ul><ul><li>FTR - The number of files updated or referenced. </li></ul><ul><li>DET - The number of user-recognizable fields. </li></ul>Based on the table, an EI that references 2 files and 10 data elements would be ranked as average .
  37. 37. Compute the Unadjusted Function Point Count: <ul><ul><ul><li>For files (ILF and ELF), the rating is based on the RET and DET. </li></ul></ul></ul><ul><ul><ul><li>RET - The number of user-recognizable data elements in an ILF or ELF </li></ul></ul></ul><ul><ul><ul><li>DET - The number of user-recognizable fields. </li></ul></ul></ul>Based on the table, an ILF that contains 10 data elements and 5 fields would be ranked as high .
  38. 38. Compute the Unadjusted Function Point Count <ul><li>Convert ratings into UFC's. </li></ul>
  39. 39. Taking Complexity into Account <ul><li>Degree of influence. </li></ul><ul><li>General System Characteristics. </li></ul>Factors are rated on a scale of 0 (not important) to 5 (very important) <ul><li>Data Communications </li></ul><ul><li>Distributed Functions </li></ul><ul><li>Performance </li></ul><ul><li>Heavily Used Configuration </li></ul><ul><li>Transaction Rate </li></ul><ul><li>Online Data Entry </li></ul><ul><li>End User Efficiency </li></ul><ul><li>Online Update </li></ul><ul><li>Complex Processing </li></ul><ul><li>Reusability </li></ul><ul><li>Installation Ease </li></ul><ul><li>Operational Ease </li></ul><ul><li>Multiple Sites </li></ul><ul><li>Facilitate Change </li></ul>
  40. 40. General System Characteristics: <ul><li>Data communications: How many communication facilities are </li></ul><ul><li>there are to aid in the transfer or exchange of information with the app </li></ul><ul><li>-lication or system? </li></ul><ul><li>Distributed data processing: How are distributed data and proce </li></ul><ul><li>-ssing functions handled? </li></ul><ul><li>Performance: Was response time or throughput required by the </li></ul><ul><li>users? </li></ul><ul><li>Heavily used configuration: How heavily used is the current </li></ul><ul><li>hardware platform where the application will be executed? </li></ul>
  41. 41. General System Characteristics: <ul><li>Transaction rate: How frequently are transactions executed daily, wee- </li></ul><ul><li>ly, monthly, etc,? </li></ul><ul><li>On-Line data entry: What percentage of the information is entered On- </li></ul><ul><li>line? </li></ul><ul><li>End-user efficiency: Was the application designed for end-user efficien- </li></ul><ul><li>cy? </li></ul><ul><li>On-Line update: How many ILF’s are updated by On-Line transaction? </li></ul><ul><li>Complex processing: Does the application have extensive logical or </li></ul><ul><li>mathematical processing? </li></ul>
  42. 42. General System Characteristics: <ul><li>Reusability: Was the application developed to meet one or many user’s </li></ul><ul><li>needs? </li></ul><ul><li>Installation ease: How difficult is conversion and installation? </li></ul><ul><li>Operational ease: How effective and/or automated are start-up, back- </li></ul><ul><li>up, and recovery procedure? </li></ul><ul><li>Multiple sites: Was the application specifically designed, developed, </li></ul><ul><li>and supported to be installed and recovery procedures? The application </li></ul><ul><li>specifically designed, developed, and supported to facilitate change? </li></ul>
  43. 43. Compute the Final Function Point Count: complexity multiplier function points number of user inputs number of user outputs number of user inquiries number of internal files number of external files measurement parameter 3 4 3 7 5 count weighting factor simple avg. complex 4 5 4 10 7 6 6 5 15 10 = = = = = Unadjusted count-total X X X X X
  44. 44. Function Point Advantages: <ul><li>The advantages of function points are: </li></ul><ul><li>they are usable in the earliest requirements phases. </li></ul><ul><li>they are independent of programming language,product design , </li></ul><ul><li>or development style, </li></ul><ul><li>there exists a large body of historical data. </li></ul><ul><li>it is a well documented method. </li></ul><ul><li>there is an active users group. </li></ul>
  45. 45. Function Point Disadvantages: <ul><li>The disadvantages of function points are: </li></ul><ul><li>you cannot directly count an existing product’s function point </li></ul><ul><li>content. </li></ul><ul><li>without historical data, it is difficult to improve estimating skill. </li></ul><ul><li>function points do not reflect language, design, or style differe- </li></ul><ul><li>nce. </li></ul><ul><li>function points are designed for estimating commercial data </li></ul><ul><li>processing application. </li></ul>
  46. 46. Function Point example: <ul><ul><li>Stock Control System Scenario. </li></ul></ul><ul><ul><li>Refer to the MS Word file or handout provided to you. </li></ul></ul>
  47. 47. Typical Function-Oriented Metrics: <ul><li>errors per FP. </li></ul><ul><li>defects per FP. </li></ul><ul><li>$ per FP. </li></ul><ul><li>pages of documentation per FP. </li></ul><ul><li>FP per person-month. </li></ul>
  48. 48. Extended Function Point Metrics: <ul><li>Function point was inadequate for many engineering and </li></ul><ul><li>embedded system. </li></ul><ul><li>A function point extension called feature points , is a superset of </li></ul><ul><li>the function point measure that can be applied to systems and </li></ul><ul><li>engineering software applications. </li></ul><ul><li>Accommodate applications in which algorithmic complexity is high. </li></ul>
  49. 49. Extended Function Point Metrics: <ul><li>The feature point metric counts a new software characteristic – </li></ul><ul><li>algorithms. </li></ul><ul><li>Another function point extension – developed by Boeing. </li></ul><ul><li>Integrate data dimension of software with functional and </li></ul><ul><li>control dimensions. “3D function point”. </li></ul><ul><li>“ Counted, quantified, and transformed” </li></ul>
  50. 50. Extended Function Point Metrics: <ul><li>To compute 3D function points, use this relationship: </li></ul><ul><li>Index = I + O + Q + F + E + T + R (inputs, outputs,) </li></ul><ul><li>inquiries, internal data structures, external files, transformation, tran- </li></ul><ul><li>sition. </li></ul><ul><li>Where each complexity weighted value is computed using: </li></ul><ul><ul><li>Complexity weighted value = </li></ul></ul><ul><ul><li>N il W il +N ia W ia +N ih W ih </li></ul></ul><ul><ul><li>Where N il , N ia , N ih represent the number of occurrences of element I </li></ul></ul><ul><ul><li>for each complexity; and W il , W ia , and W ih are the corresponding </li></ul></ul><ul><ul><li>weights. </li></ul></ul>
  51. 51. Extended Function Point Metrics: <ul><li>Function points, feature points, and 3D point represent the same </li></ul><ul><li>thing- “functionality” or “utility” delivered by software. </li></ul>
  52. 52. PROBE: <ul><li>historical data. </li></ul><ul><li>conceptual design. </li></ul><ul><li>subdividing design tasks. </li></ul><ul><li>estimating subdivisions. </li></ul><ul><li>obtaining total product size. </li></ul>
  53. 53. Achieving reliable estimates: <ul><li>Delay estimation as long as possible. </li></ul><ul><li>Use historical data. </li></ul><ul><li>Decompose tasks. </li></ul><ul><li>Use an empirical cost model. </li></ul>
  54. 54. Cost models: <ul><li>predict effort as a function of software size. </li></ul><ul><li>no model is appropriate for all cases. </li></ul>
  55. 55. The COCOMO Model: <ul><li>Constructive Cost Model : software cost estimation model. </li></ul><ul><li>COCOMO II is a hierarchy of estimation models that addre- </li></ul><ul><li>ss the following areas. </li></ul><ul><li>Application composition model: prototyping of user interfaces, </li></ul><ul><li>consideration of S/W and system interaction, assessment of performance, </li></ul><ul><li>and evaluation of technology. </li></ul><ul><li>Early design stage model: used once requirement have been stabi- </li></ul><ul><li>lized and basic software architecture has been established. </li></ul><ul><li>Post-architecture-stage model: used during the construction of the </li></ul><ul><li>software. Stabilized and basic software architecture has been established. </li></ul>
  56. 56. The COCOMO II Model: <ul><li>The COCOMO II models require sizing information: object points, </li></ul><ul><li>function points, and lines of source code. </li></ul>
  57. 57. COCOMO II: <ul><li>project type: </li></ul><ul><li>organic. </li></ul><ul><li>semi-detached. </li></ul><ul><li>embedded. </li></ul><ul><li>cost driver attributes. </li></ul><ul><li>For more information : </li></ul>http://sunset.usc.edu/COCOMOII/Cocomo.html
  58. 58. COCOMO II Effort Calculation: <ul><li>Calculate KDSI ( thousands of delivered source instructions) </li></ul><ul><li>Development Mode Basic Effort Equation </li></ul><ul><li>Organic: Effort = 2.4 * (KDSI)**1.05 </li></ul><ul><li>Semidetached: Effort = 3.0 * (KDSI)**1.12 </li></ul><ul><li>Embedded: Effort = 3.6 * (KDSI)**1.20 </li></ul><ul><li>Effort is measured in Staff Man-Months </li></ul>
  59. 59. COCOMO Development Time: <ul><ul><li>Development Mode Basic Schedule Equation. </li></ul></ul><ul><li>Organic: TDEV = 2.5 * (Effort)**0.38 </li></ul><ul><li>Semidetached: TDEV = 2.5 * (Effort)**0.35 </li></ul><ul><li>Embedded: TDEV = 2.5 * (Effort)**0.32 </li></ul><ul><li>Time to develop (TDEV) is the time to complete the project. </li></ul>
  60. 60. COCOMO Example : <ul><li>Organic mode project consisting of 3,000 lines of delivered code is </li></ul><ul><li>estimated to require 7.6 staff-Months of effort, and 5.4 months to </li></ul><ul><li>complete it: </li></ul><ul><li>Effort = 2.4 * 31.05 = 7.6 Staff-Months. </li></ul><ul><li>TDEV = 2.5 * 7.60.38 = 5.4 Months. </li></ul><ul><li>Average staffing: 7.6 / 5.4 = 1.4 people. </li></ul>
  61. 61. PRICE: <ul><li>Estimates based on : </li></ul><ul><li>Software size. </li></ul><ul><li>Application. </li></ul><ul><li>Complexity. </li></ul><ul><li>Degree of reuse. </li></ul><ul><li>Beta curves. </li></ul>
  62. 62. SLIM: <ul><li>Software Life Cycle Management. </li></ul><ul><li>Estimates based on. </li></ul><ul><li>Program size. </li></ul><ul><li>Productivity index. </li></ul><ul><li>Calibrateable manpower build-up index. </li></ul>
  63. 63. Other Factors Affecting Cost: <ul><li>learning curve. </li></ul><ul><li>productivity. </li></ul><ul><li>manpower cycle. </li></ul>
  64. 64. The Software Equation: <ul><li>A dynamic multivariable model that assumes a specific distribution </li></ul><ul><li>of effort over the life of a software development project. </li></ul><ul><li>The model has been derived from productivity data collected over </li></ul><ul><li>4000 contemporary software projects. </li></ul>
  65. 65. The Software Equation: <ul><li>Based on these data, an estimation model of the form: </li></ul><ul><li>E = [LOC x B 0.333 / P ] 3 x (1/t 4 ) </li></ul><ul><ul><li>Where E = effort in person-months or person-years </li></ul></ul><ul><ul><li>t = project duration in months or years </li></ul></ul><ul><ul><li>B = special skills factor (i.e., B=0.16 when KLOC=5 to 15) </li></ul></ul><ul><ul><li>P = productivity parameter (i.e., P=2000 for development of </li></ul></ul><ul><ul><li>real- time embedded software). </li></ul></ul>
  66. 66. The Software Equation: <ul><li>Minimum development time is defined as: </li></ul><ul><li>t min = 8.14(LOC/ P ) 0.43 in months </li></ul><ul><li>for t min > 6 months </li></ul><ul><li>E = 180 B t 3 in person-months </li></ul><ul><li>for E >= 20 person-months </li></ul><ul><li>and t is represented in years </li></ul>
  67. 67. The Make/Buy Decision: <ul><li>Make/Buy decision concerns cost-effective options such as: </li></ul><ul><li>Software may be purchased (or licensed) off-the-shelf </li></ul><ul><li>“ full-experience” or “partial-experience” software components may be acquired </li></ul><ul><li>Software may be custom built by an outside contractor </li></ul>
  68. 68. The Make-Buy Decision:
  69. 69. Creating a Decision Tree: <ul><li>The expected cost, computed along any branch of the decis- </li></ul><ul><li>sicion tree, is. </li></ul><ul><li>expected cost = </li></ul><ul><li> (path prob) i x (estimated path cost) i </li></ul>
  70. 70. Cost Estimation: <ul><li>Project scope must be explicitly define. </li></ul><ul><li>Task and/or functional decomposition is necessary. </li></ul><ul><li>Historical measures (metrics) are very helpful. </li></ul><ul><li>At least two different techniques should be used. </li></ul><ul><li>Remember that uncertainty in inherent. </li></ul>
  71. 71. Questions?

×