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

Software Estimation Techniques

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