āđāļāļāļāļīāļāļāļēāļĢāļŠāļĢāđāļēāļāļŠāļ·āđāļāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāđāļāļĒāļļāļāļāļīāļāļīāļāļąāļĨ (Learning Media Technique in Digita...
āđāļāļāļāļīāļāļāļēāļĢāļŠāļĢāđāļēāļāļŠāļ·āđāļāđāļāļ·āđāļāļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļāđāļāļĒāļļāļāļāļīāļāļīāļāļąāļĨ (Creating Techniques Media f...
āđāļāļāļāļīāļāļāļēāļĢāļŠāļĢāđāļēāļāļŠāļ·āđāļāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāđāļāļĒāļļāļāļāļīāļāļīāļāļąāļĨ (Learning Media Technique in Digita...
āđāļāļāļāļīāļāļāļēāļĢāļŠāļĢāđāļēāļāļŠāļ·āđāļāđāļāļ·āđāļāļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļāđāļāļĒāļļāļāļāļīāļāļīāļāļąāļĨ (Creating Techniques Media f...
10. Systems Development Life Cycle (SDLC) āđāļ§āļĨāļēāđāļĢāļēāļāļ°āļāļąāļāļāļēāļĢāļ°āļāļ ( āđāļāļĢāđāļāļĢāļĄ ) āļāļ°āđāļĢāļŠāļąāļāļāļĒāđāļēāļāļŦāļāļķāđāļ āļāļ°āļāļĢāļ°āļāļāļāđāļāļāđāļ§āļĒ 5 āđāļāļŠ āđāļāđāļāļāļąāļ
19. Project Estimation āđāļĄāļĨāđāļāļāļąāļāļāļļāđāđāļŦāđāļāļāļ§āļēāļĄāļŦāļēāļĒāļāļ°āļŦāļĨāļąāļ āđ āļāļāļāļāļāļāļāđāđāļ§āļĢāđāļĄāļąāļāļāļ°āļāļđāļāļŦāļ§āđāļēāļāļĨāļāđāļāđāļāđāļāļāđāļ§āļāļŠāļēāļĄāđāļāļ·āļāļāđāļĢāļāļāļāļāļāļēāļĢāđāļĢāļīāđāļĄāļāđāļāđāļāļĢāļāļāļēāļĢāļāļēāļāļāđāļēāļāļāļāļāļāđāđāļ§āļĢāđ āļāļēāļĢāļēāļāđāļ§āļĨāļēāļāļĩāđāđāļĢāđāļāļĢāļĩāļ āļāļģāļŠāļąāļāļāļēāļāļĩāđāđāļĢāđāđāļŦāļāļļāļāļĨ āđāļāļāļāļīāļāļāļēāļĢāļāļĢāļ°āļĄāļēāļāļāļēāļĢāđāļĄāđāđāļāđāļāđāļāļāļĄāļ·āļāļāļēāļāļĩāļ āđāļĨāļ° āļāļĢāļēāļĻāļāļēāļāļāļēāļĢāđāļŠāđāđāļāļāļāļāļāļąāļāļāđāļāļąāļāđāļāļĩāđāļĒāļ§āļāļąāļāļāļēāļĢāļāļĢāļīāļŦāļēāļĢāđāļāļĢāļāļāļēāļĢ āļŠāļīāđāļāđāļŦāļĨāđāļēāļāļĩāđāļāļ·āļāđāļāļāđāļāļāļĢāđāļāļąāđāļāļŦāļĨāļēāļĒāļāļĩāđāļāđāļāđāļŦāđāđāļāļīāļāļāļąāļāļŦāļēāļāđāļēāļ āđ āļāļķāđāļāļĄāļē āđāļĄāļ·āđāļāđāļāļĢāļāļāļēāļĢāđāļāļīāļāļŦāļāđāļēāđāļāļāļĒāđāļēāļāđāļĢāđāļāļīāļĻāļāļēāļāđāļāļŠāļđāđāļ§āļąāļāļŠāđāļāļĄāļāļāļāļĩāđāđāļāđāļāđāļāđāļāđāļĒāļēāļ āļŦāļēāļĒāļāļ°āđāļāļŠāđāļ§āļāļāļĩāđāđāļŦāļĨāļ·āļāļĒāđāļāļĄāđāļāļīāļāļāļķāđāļāļāļĒāđāļēāļāļĒāļēāļāļāļĩāđāļāļ°āļŦāļĨāļāđāļĨāļĩāđāļĒāļ T. Capers Jones
20. Pricing and Estimating āļāļđāđāļāļĢāļīāļŦāļēāļĢāļŦāļĨāļēāļĒāļāļāļāļ·āļāļ§āđāļēāļŠāļīāđāļāđāļŦāļĨāđāļēāļāļĩāđāļāļ·āļāļĻāļīāļĨāļ ( art ) ! āļŠāļēāļĢāļŠāļāđāļāļĻāļāļĩāđāđāļŦāđāđāļāđāļāļđāđāļāļĢāļ°āļĄāļđāļĨāļĢāļēāļĒāļŦāļāļķāđāļāđāļāļĒāļāļąāđāļ§āđāļāđāļĨāđāļ§āļāļ°āļāļĒāļđāđāđāļāļĄāļ·āļāļāļāļāļĢāļēāļĒāļāļ·āđāļ āđ āļāđāļ§āļĒ āđāļĨāļ°āļāļĩāđāļāļ·āļāļŠāđāļ§āļāļŠāļģāļāļąāļāļāļāļāļāļĢāļ°āļāļ§āļāļāļēāļĢāļ§āļēāļāđāļāļ ( planning process ) āļŠāļĢāđāļēāļāļāļ·āđāļāļāļēāļāđāļāļāļēāļĢāļāļąāļāļāļģāļĄāļēāļāļĢāļāļēāļāđāļāđāļĢāļ·āđāļāļ budgets, man-hours, material costs, contingencies, etc. āļāļĨāļĒāļļāļāļāđāļāļēāļāļāđāļēāļāļĢāļēāļāļēāļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄāļāļ°āļāļđāļāļŠāļĢāđāļēāļāļāļķāđāļāļĄāļēāđāļāđāļāđāļĨāļ°āļŠāļāļēāļāļāļēāļĢāļāđ
21. Types of Estimates (1) Order of magnitude estimates - āļāļģāđāļāļĒāđāļĄāđāļĄāļĩāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļāļāļāđāļāļĄāļđāļĨāđāļāļīāļāļ§āļīāļĻāļ§āļāļĢāļĢāļĄ ( engineering data ) - āļāļēāļāđāļāđāļāļĢāļ°āļŠāļāļāļēāļĢāļāđāļāļēāļāļāļāļĩāļ - āļāļ§āļēāļĄāļāļđāļāļāđāļāļ +- 35% āļ āļēāļĒāđāļāļāļāļāđāļāļāļāļāļāđāļāļĢāļāļāļēāļĢāļāđ Approximate (rule of thumb) estimates - āļāļģāđāļāļĒāđāļĄāđāļĄāļĩāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļāļāļāđāļāļĄāļđāļĨāđāļāļīāļāļ§āļīāļĻāļ§āļāļĢāļĢāļĄ - āļāļēāļāđāļāđāđāļāļĢāļāļāļēāļĢāļāļĩāđāļāļĨāđāļēāļĒāļāļąāļāļāļĩāđāđāļāļĒāļāļģāļĄāļēāđāļĨāđāļ§ - āļāļ§āļēāļĄāļāļđāļāļāđāļāļ +- 15%
28. āļāļēāļĻāļąāļĒāđāļ§āļĨāļē ( Time Boxing ) āļāļģāļŦāļāļāđāļ§āļĨāļēāļāļāļāđāļāđāļĨāļ°āļāļēāļĢāļāļģāđāļāļīāļāļāļēāļĢāļŦāļĢāļ·āļāļāļēāļāļŦāļĢāļ·āļāļŠāļīāđāļāļāļĩāđāļāđāļāļāļŠāđāļāļĄāļāļ āļĄāļļāđāļāđāļāđāļāļāļĩāđ team āđāļāđāļāđāļē team āļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļāļģāđāļŦāđ team āđāļŠāļ·āđāļāļĄāļĨāļāđāļāđāļāđāļēāđāļāđāļāđāļāļĒ āļŦāļĢāļ·āļ āđāļāđāļāļąāļ team āļāļĩāđāđāļĄāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āđāļāļĢāļēāļ°āļāļēāļĢāļāļģāđāļāđāļāļāļĩāđāđāļāđāļāļāļēāļĢāđāļāļīāđāļĄ stress āļŦāļĢāļ·āļ pressure āđāļŦāđāļāļąāļ project team āđāļāļ·āđāļāđāļŦāđāļāļēāļāđāļŠāļĢāđāļ
31. Example WBS with Estimated Task Durations 6.2 Test Results Report 6.2.1 Review test plan with client 1 day 6.2.2 Carry out test plan 5 days 6.2.3 Analyze results 2 days 6.2.4 Prepare test results report and presentation 3 days 6.2.5 Present test results to client 1 day 6.2.6 Address any software issues or problems 5 days
39.  Complexity  Low Average High Total Internal Logical Files (ILF) _ 3 x 7 = 21 _ 2 x 10 = 20 _ 1 x 15 = 15 56 External Interface Files (EIF) __ x 5 = __ _ 2 x 7 = 14 __ x 10 = __ 14 External Input (EI) _ 3 x 3 = 9 _ 5 x 4 = 20 _ 4 x 6 = 24 53 External Output (EO) _ 4 x 4 = 16 _ 2 x 5 = 10 _ 1 x 7 = 7 33 External Inquiry (EQ) _ 2 x 3 = 6 _ 5 x 4 = 20 _ 3 x 6 = 18 44  Total Unadjusted Function Points (UAF) 200
40. āļāļąāđāļāļāļāļāļāđāļāđāļāļāļ·āļāļāļēāļĢāļāļģāļāļ§āļāļŦāļē VAF Value Adjustment Factor (VAF) based on Degrees of Influence (DI) āļĄāļąāļāđāļĢāļĩāļĒāļāļ§āđāļē Processing Complexity Adjustment (PCA) āļāļķāđāļāļŦāļēāļĄāļēāļāļēāļ General Systems Characteristics (GSC) āļāļąāļāđāļŠāļāļāđāļ§āđāđāļāļŦāļāđāļēāļāļąāļāđāļ āđāļāļĒāļāļģāļŦāļāļ scale āđāļāļēāđāļ§āđāļāļąāļāļāļĩāđ 0 = not present āļŦāļĢāļ·āļ not influence 1 = incidental influence 2 = moderate influence 3 = average influence 4 = significant influence 5 = strong influence āļāļ°āļāļģāļāļ§āļāļŦāļē Total adjusted function points
41. General System Characteristic Degree of Influence Data Communications 3 Distributed Data Processing 2 Performance 4 Heavily Used Configuration 3 Transaction Rate 3 On-line Data Entry 4 End User Efficiency 4 Online Update 3 Complex Processing 3 Reusability 2 Installation Ease 3 Operational Ease 3 Multiple Sites 1 Facilitate Change 2 Total Degrees of Influence 40 Value Adjustment Factor VAF = (TDI * 0.01) + .65 VAF = (40 * .01) + .65 = 1.05 Total Adjusted Function Points = FP = UAF * VAF FP = 200 * 1.05 = 210
42. āđāļĄāļ·āđāļāđāļāđ Total Adjusted Function Points (TAFP) āđāļĨāđāļ§ āļāļ° transformed into development estimates āļŦāļĢāļ·āļ converted in equivalent LOC āļāļąāļāļāļēāļĢāļēāļāđāļāļŦāļāđāļēāļāļąāļāđāļ T. Capers Jones āđāļāđāđāļāđāđāļāļāļāļīāļāđāļĢāļĩāļĒāļāļ§āđāļē Backfiring āđāļāļ·āđāļāļāļģ direct conversion āļāļēāļ applicationâs source code āđāļāđāļŦāđāļāļąāļāđāļāļĩāļĒāļĄāļāļąāļ function point count
43. Â Source: http://www.theadvisors.com/langcomparison.htm Language Average Source LOC per Function Pont Average Source LOC for a 210 FP Application Access 38 7,980 Basic 107 22,470 C 128 26,880 C++ 53 11,130 COBOL 107 22,470 Delphi 29 6,090 Java 53 11,130 Machine Language 640 134,440 Visual Basic 5 29 6,090
44. COCOMO â C O nstructive CO st MO del Parametric Model āļāļđāļāļāļąāļāļāļēāđāļāļĒ Barry Boehm in 1981 Project types Organic ( Person-Months = 2.4 x (KDSI) 1.05 ) Routine projects āđāļĄāļ·āđāļāļāļēāļāļāļĩāđāļāđāļāļāļāļģāļāļēāļāļ§āđāļēāļāļ°āļĢāļēāļāļĨāļ·āđāļāļāļēāļāļĄāļĩāļāļąāļāļŦāļēāđāļĨāđāļāļāđāļāļĒāđāļĄāđāļāļĩāđāļāļąāļāļŦāļē Embedded ( Person-Months = 3.0 x ( KDSI ) 1.12 ) Challenging projects āļāļĩāđāļāļēāļāļĄāļĩāļŦāļĨāļąāļāļāļēāļĢāđāļŦāļĄāđ ( new ground ) āđāļāļīāļāļāļąāļāļāļāļāđāļāļĢāļŦāļĢāļ·āļ project team Semi-detached ( Person Months 3.36 x ( KDSI ) 1.20 ) āļāļĒāļđāđāļĢāļ°āļŦāļ§āđāļēāļ organic āđāļĨāļ° embedded Projects āļāļēāļāđāļĄāđāļāđāļēāļĒāđāļĨāļ°āļāļĢāļāđāļāļāļĢāļāļĄāļēāđāļāđāļĄāļĩāļĢāļ°āļāļąāļāļāļ§āļēāļĄāđāļāļ·āđāļāļĄāļąāđāļāļŠāļđāļāļ§āđāļē project team āļāļ°āļāļāļāļąāļāļŠāļīāđāļāļāļĩāđāļāđāļēāļāļēāļĒ KDSI = thousands of delivered source instructions, i.e. LOC
45. COCOMO â Effort Example āļŠāļĄāļĄāļāļīāļ§āđāļē āļāļ°āļāļąāļāļāļē application āļāļĩāđāļĄāļĩāļāļĢāļ°āļĄāļēāļ 200 total adjusted function point āļāļēāļāļāļēāļĢāļēāļāļāļĩāđāļāđāļēāļāļĄāļē āļŠāļĄāļĄāļāļīāļ§āđāļē application āļāļąāļāļāļēāļāļ Java āļāļ°āđāļāđ Line of code āļāļāļāļĄāļē = 10,600 lines of code ( āļāļģāļāļ§āļāđāļāđāļāļēāļ 10,600 Java LOC = 200 FP * 53 āđāļāļĒāļāļēāļĻāļąāļĒāļāļēāļĢāļēāļāļāđāļēāļāļĄāļē āđāļŦāđāļāļđāđāļāļāļīāđāļāļāļāļ Java ) āđāļĨāļ°āđāļāļĢāļāļāļēāļĢāđāļāđāļāđāļāļ medium difficult āļāļ°āđāļāđ Semi-Detached equation āđāļāđāđāļāđāļ Person-Months = 3.0 * KDSI 1.12 = 3.0 * (10.6) 1.12 = 42.21 1 person-month āļāļ·āļ āļāļāļŦāļāļķāđāļāļāļāļāļģāļāļēāļ 152 āļāļąāđāļ§āđāļĄāļ āļāļąāļāļāļąāđāļ 42.21 person-months āļāļ°āđāļāđāļāļāļāļĩāđāļāļ ?
49. The Mythical Man-Month â Frederick Brooks āļāļĢāļ°āļāļēāļĢāļāļĩāđāļŦāđāļē āđāļĄāļ·āđāļāļāļēāļĢāļēāļāđāļ§āļĨāļēāļāļđāļāļĢāļąāļāļĢāļđāđāļ§āđāļēāđāļĨāļ·āđāļāļāļāļāļāđāļ āļāļēāļĢāļŠāļāļāļāļāļāļāļāļąāđāļ§ āđ āđāļāļāļ°āđāļāđāļāļāļēāļĢāđāļāļīāđāļĄ manpower āđāļŦāđāļĄāļēāļāļāļķāđāļ āđāļŦāļĄāļ·āļāļāļāļąāļāļāļģāļāļēāļĢāļāļąāļāđāļāļāđāļ§āļĒāļāđāļģāļĄāļąāļāļĄāļĩāđāļāđāļāļģāđāļŦāđāđāļĨāļ§āļĢāđāļēāļĒāļĨāļāđāļ āđāļāļāđāļāļ°āļĨāļļāļāļĄāļēāļāļāļķāđāļāļāđāļāļ°āđāļāđāļāđāļģāļĄāļąāļāļĄāļēāļāļāļķāđāļ āđāļāđāļāļāļāļ§āđāļēāļĄāļąāļāļāļāļāļāļĨāļāļāđāļ§āļĒāļāļ§āļēāļĄāļŦāļēāļĒāļāļ°āļāļĒāđāļēāļāđāļāđāļāļāļ
50. COCOMO â COnstructive COst MOdel COCOMO Model Types Basic ( āļāļąāļ§āļāļĒāđāļēāļāļāļĩāđāļāđāļēāļāļĄāļēāđāļāđāđāļĄāđāļāļĨāļāļĩāđ ) Intermediate Advanced COCOMO II SLIM vs. COCOMO
51. Software Engineering Metrics and Approaches Heuristics Rules of thumb approach to estimating Estimating Software Costs â Jones āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ When for scheduling a software task: 30% â Planning 20% â Coding 25% â Component test and early system test 25% â System test, all components in hand
53. Some Examples of Heuristics from Estimating Software Costs by Capers Jones (1988) Each formal design inspection will find and remove 65 percent of the bugs present. Each formal code inspection will find and remove 60 percent of the bugs present. Function points raised to the 0.4 power predict the approximate development schedule in calendar months. Function points divided by 150 predict the approximate number of personnel required for the application. āļāđāļēāļāđāļāļīāđāļĄāđāļāļīāļĄāđāļāļŦāļāđāļē 150
54. What Is the Best Way to Estimate IT Projects? āđāļāđāļĄāļēāļāļāļ§āđāļēāļŦāļāļķāđāļāđāļāļāļāļīāļāđāļāļāļēāļĢāļāļĢāļ°āļĄāļēāļāļāđāļāļāļļāļ āļāđāļēāļāļēāļĢāļāļĢāļ°āļĄāļēāļāđāļāđāļāļēāļāđāļāļāļāļīāļāļāļĩāđāđāļāļāļāđāļēāļāļāļąāļāđāļĨāļ°āđāļāļĨāđāļāļĩāļĒāļāļāļąāļāđāļŦāđāđāļāđāļāđāļēāđāļāļĨāļĩāđāļĒ āļāļēāļĢāļāļĢāļąāļāļāđāļēāļāļĢāļ°āļĄāļēāļāļāļēāļĢ āļāļ°āļāļķāđāļāļāļąāļāļāļĢāļ°āļŠāļāļāļēāļĢāļāđāđāļāđāļāļŦāļĨāļąāļ āļāļēāļĢāđāļāļĢāļāļēāļāļāļĨāļāļāļąāļāļāļēāļāļāļģāđāļāļŠāļđāđāļāļēāļĢāļāļĢāļ°āļĄāļēāļāļāļēāļĢāļāļĩāđāđāļĄāđāļŠāļāļāļāļĨāđāļāļāļāļąāļāļāļ§āļēāļĄāđāļāđāļāļāļĢāļīāļ ( unrealistic estimations )