Software Estimation Techniques

87,642 views
86,930 views

Published on

A presentation about Software Estimation Techniques

Published in: Technology, Business
10 Comments
61 Likes
Statistics
Notes
No Downloads
Views
Total views
87,642
On SlideShare
0
From Embeds
0
Number of Embeds
1,205
Actions
Shares
0
Downloads
0
Comments
10
Likes
61
Embeds 0
No embeds

No notes for slide

Software Estimation Techniques

  1. 1. Software Estimation Techniques By: Kamalmeet Singh
  2. 2. What is Software Estimation? <ul><li>How much resources? </li></ul><ul><li>How much time? </li></ul><ul><li>How much effort? </li></ul><ul><li>How much Cost? </li></ul>
  3. 3. Why do we need it? <ul><li>Would you like to start creating something without knowing the cost? </li></ul><ul><li>Will it be better to buy/outsource than create? </li></ul>
  4. 4. Difficulties <ul><li>Premature estimations, if you don’t have the complete details </li></ul><ul><li>Lack of Historical data </li></ul><ul><li>Failure to follow the estimates: conditions prescribed in the estimate must not be violated </li></ul><ul><li>Failure to update the estimates </li></ul>
  5. 5. How to do it?
  6. 6. Factors to be considered <ul><li>Product Objectives </li></ul><ul><li>Corporate Assets </li></ul><ul><li>Project Constraints </li></ul>
  7. 7. Product Objectives <ul><li>Scope: </li></ul><ul><ul><li>Capabilities to be provided by the software </li></ul></ul><ul><li>Quality: </li></ul><ul><ul><li>Performance </li></ul></ul><ul><ul><li>Resource usage </li></ul></ul><ul><ul><li>Compatibility with h/w and s/w </li></ul></ul><ul><ul><li>Factors like – usability, security, safety, reliabilty and transportability </li></ul></ul>
  8. 8. Corporate Assets <ul><li>People </li></ul><ul><li>Process models </li></ul><ul><li>Development tools </li></ul><ul><li>Reusable software components </li></ul><ul><li>Policies and procedures </li></ul><ul><li>Workplace environment </li></ul>
  9. 9. Project Constraints <ul><li>Design constraints </li></ul><ul><ul><li>Compatibility with h/w and s/w </li></ul></ul><ul><ul><li>Memory and timing </li></ul></ul><ul><ul><li>Implementation language </li></ul></ul><ul><li>Process constraints </li></ul><ul><ul><li>Number and type of people </li></ul></ul><ul><ul><li>Development environment </li></ul></ul><ul><ul><li>Scheduled delivery date </li></ul></ul>
  10. 10. What do we need to calculate? <ul><li>LOC </li></ul><ul><li>(Lines Of Code) </li></ul><ul><li>Or </li></ul><ul><li>FP </li></ul><ul><li>(Function Points) </li></ul>
  11. 11. Function Point Analysis <ul><li>Function point count= UFP * VAM </li></ul><ul><li>UFP: Unadjusted Function Point </li></ul><ul><li>VAM: Value Adjustment Multiplier </li></ul>
  12. 12. Unadjusted FP (UFPs) <ul><li>1. External Inputs - data or control inputs (input files, tables, forms, screens, messages, etc.) to the system </li></ul><ul><li>2. External Outputs - data or control outputs from the system </li></ul><ul><li>3. External Inquiries - I/O queries which require a response (prompts, interrupts, calls, etc.) </li></ul><ul><li>4. External Interfaces - libraries or programs which are passed into and out of the system (I/O routines, sorting procedures, math libraries, run-time libraries, etc.) </li></ul><ul><li>5. Internal Data Files - groupings of data stored internally in the system (entities, internal control files, directories) </li></ul>
  13. 13. UFP metrics
  14. 14. Value Adjustment Factors <ul><li>1. data communications </li></ul><ul><li>2. distributed functions </li></ul><ul><li>3. performance </li></ul><ul><li>4. heavily used operational configuration </li></ul><ul><li>5. transaction rate </li></ul><ul><li>6. on-line data entry </li></ul><ul><li>7. design for end user efficiency </li></ul><ul><li>8. on-line update of logical internal files </li></ul><ul><li>9. complex processing </li></ul><ul><li>10. reusability of system code </li></ul><ul><li>11. installation ease </li></ul><ul><li>12. operational ease </li></ul><ul><li>13. multiple sites </li></ul><ul><li>14. ease of change </li></ul>
  15. 15. Value Adjustment Multiplier <ul><li>0 - factor not present or has no influence </li></ul><ul><li>1 - insignificant influence </li></ul><ul><li>2 - moderate influence </li></ul><ul><li>3 - average influence </li></ul><ul><li>4 - significant influence </li></ul><ul><li>5 - strong influence </li></ul>
  16. 16. Calculating Effort <ul><li>Effort in Person Month </li></ul><ul><li>For LOC </li></ul><ul><li>E=5.2 * (KLOC)^0.91 [waltson-Felix model] </li></ul><ul><li>E=5.5 + 0.73 * (KLOC)^1.16 [Bailey Basili model] </li></ul><ul><li>E=3.2 * (KLOC)^1.05 [Boehm simple model] </li></ul><ul><li>E=5.288 * (KLOC)^1.047 [Doty model for KLOC>9] </li></ul><ul><li>For FP </li></ul><ul><li>E=-13.39 + 0.0545 FP [Albert and Gaffney model] </li></ul><ul><li>E=60.62 * 7.728 * 10^-8 FP^3 [Kermer model] </li></ul><ul><li>E=585.7 +15.12 FP [Matso, Barnett and Mellichamp model] </li></ul>
  17. 17. Models for Cost Estimation <ul><li>SDM- Software Development Model </li></ul><ul><li>SLIM- Software Lifecycle Management </li></ul><ul><li>COCOMO- Constructive Cost Model </li></ul><ul><li>COCOMO II- COCOMO next version </li></ul><ul><li>COPMO- Cooperative Programming Model </li></ul>
  18. 18. Basic COCOMO Model <ul><li>Organic projects - are relatively small, simple software projects in which small teams with good application experience work to a set of less than rigid requirements. </li></ul><ul><li>Semi-detached projects - are intermediate (in size and complexity) software projects in which teams with mixed experience levels must meet a mix of rigid and less than rigid requirements. </li></ul><ul><li>Embedded projects - are software projects that must be developed within a set of tight hardware, software, and operational constraints. </li></ul>
  19. 19. Basic COCOMO <ul><ul><li>E=a(KLOC)^b </li></ul></ul><ul><ul><li>D=c(E)^d </li></ul></ul><ul><ul><li>P=E/D </li></ul></ul><ul><ul><li>E- effort </li></ul></ul><ul><ul><li>D- development time </li></ul></ul><ul><ul><li>P- number of people </li></ul></ul><ul><ul><li>Software project a b c d </li></ul></ul><ul><ul><li>Organic 2.4 1.05 2.5 0.38 </li></ul></ul><ul><ul><li>Semi-detached 3.0 1.12 2.5 0.35 </li></ul></ul><ul><ul><li>Embedded 3.6 1.20 2.5 0.32 </li></ul></ul>
  20. 20. Intermediate COCOMO <ul><li>E= a( KLOC)^ (b) * EAF </li></ul><ul><ul><li>Software project a b </li></ul></ul><ul><ul><li>Organic 3.2 1.05 </li></ul></ul><ul><ul><li>Semi-detached 3.0 1.12 </li></ul></ul><ul><ul><li>Embedded 2.8 1.20 </li></ul></ul><ul><li>EAF: Effort Adjustment Factor </li></ul>
  21. 21. EAF
  22. 22. Conclusion
  23. 23. Questions?
  24. 24. Thank You

×