Slide 1

Slide 1 text

CSE360 Introduction to Software Engineering Lecture 27: Software Cost Estimation Javier Gonzalez-Sanchez [email protected] javiergs.engineering.asu.edu Office Hours: By appointment

Slide 2

Slide 2 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 2 Software Cost Estimation Methods • Cost estimation: prediction of both the person-effort and elapsed time of a project • Methods: Algorithmic, Expert judgement, Estimation by analogy, Parkinsonian (Parkinson’s Law). “work expands so as to fill the time available for its completion” • Best approach is a combination of methods: compare and iterate estimates, reconcile differences

Slide 3

Slide 3 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 3 COCOMO Model • The Constructive Cost Model (COCOMO) is a procedural software cost estimation model developed by Barry W. Boehm. • The model parameters are derived from fitting a regression formula using data from historical projects (61 projects for COCOMO 81 and 163 projects for COCOMO II). • COCOMO is the most widely used, thoroughly documented and calibrated cost model

Slide 4

Slide 4 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 4 COCOMO II COCOMO II product size estimate product, process, platform, and personnel attributes reuse, maintenance, and increment parameters organizational project data development, maintenance cost and schedule estimates cost, schedule distribution by phase, activity, increment recalibration to organizational data

Slide 5

Slide 5 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 5 COCOMO II There is an online implementation here: http://csse.usc.edu/tools/COCOMOII.php

Slide 6

Slide 6 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 6 COCOMO II - User Interface

Slide 7

Slide 7 text

COCOMO Outputs

Slide 8

Slide 8 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 8 COCOMO II - Output Result A

Slide 9

Slide 9 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 9 COCOMO II - Output Result B

Slide 10

Slide 10 text

COCOMO Size and Scale Drivers

Slide 11

Slide 11 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 11 COCOMO II - Inputs

Slide 12

Slide 12 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 12 Size • The size of a software system can only be known accurately when it is finished. • As the development process progresses then the size estimate becomes more accurate. • Several factors influence the final size o Use of reused systems and components; o Programming language; o Distribution of system. • Effort for adapted software (reused or modified) is not the same as for new software. • Approach: convert adapted software into equivalent size of new software.

Slide 13

Slide 13 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 13 Nonlinear Reuse Effects • The reuse cost function does not go through the origin due to a cost of about 5% for assessing, selecting, and assimilating the reusable component. • Small modifications generate disproportionately large costs primarily due the cost of understanding the software to be modified, and the relative cost of interface checking. Relative cost Amount Modified 1.0 0.75 0.5 0.25 0.25 0.5 0.75 1.0 0.55 0.70 1.0 0.046 Usual Linear Assumption Data on 2954 NASA modules [Selby,1988]

Slide 14

Slide 14 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 14 COCOMO II - Inputs

Slide 15

Slide 15 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 15 Scale Drivers 1. Precedentedness (PREC). Degree to which system is new and past experience applies 2. Development Flexibility (FLEX). Need to conform with specified requirements 3. Architecture/Risk Resolution (RESL). Degree of design thoroughness and risk elimination 4. Team Cohesion (TEAM). Need to synchronize stakeholders and minimize conflict 5. Process Maturity (PMAT). SEI CMM process maturity rating ©USC-CSSE 15

Slide 16

Slide 16 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 16 Scale Drivers Rating Scale Factors (Wi ) Very Low Low Nominal High Very High Extra High Precedentedness (PREC) thoroughly unprecedented largely unprecedented somewhat unprecedented generally familiar largely familiar throughly familiar Development Flexibility (FLEX) rigorous occasional relaxation some relaxation general conformity some conformity general goals Architecture/Risk Resolution (RESL)* little (20%) some (40%) often (60%) generally (75%) mostly (90%) full (100%) Team Cohesion (TEAM) very difficult interactions some difficult interactions basically cooperative interactions largely cooperative highly cooperative seamless interactions Process Maturity (PMAT) Weighted average of “Yes” answers to CMM Maturity Questionnaire * % significant module interfaces specified, % significant risks eliminated

Slide 17

Slide 17 text

Cost Factors

Slide 18

Slide 18 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 18 COCOMO II - Inputs

Slide 19

Slide 19 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 19 Scale Drivers Rating Scale Factors (Wi ) Very Low Low Nominal High Very High Extra High Precedentedness (PREC) thoroughly unprecedented largely unprecedented somewhat unprecedented generally familiar largely familiar throughly familiar Development Flexibility (FLEX) rigorous occasional relaxation some relaxation general conformity some conformity general goals Architecture/Risk Resolution (RESL)* little (20%) some (40%) often (60%) generally (75%) mostly (90%) full (100%) Team Cohesion (TEAM) very difficult interactions some difficult interactions basically cooperative interactions largely cooperative highly cooperative seamless interactions Process Maturity (PMAT) Weighted average of “Yes” answers to CMM Maturity Questionnaire * % significant module interfaces specified, % significant risks eliminated

Slide 20

Slide 20 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 20 COCOMO II - Inputs

Slide 21

Slide 21 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 21 1. Product Factors 1.1. Required Reliability (RELY) 1. 2. Data Base Size (DATA) 1. 3. Complexity (CPLX) 1. 4. Developed for Reusability (RUSE) 1. 5. Documentation (DOCU)

Slide 22

Slide 22 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 22 2. Personnel factors 2.1 Analyst capability (ACAP) 2.2 Programmer (Software Engineer) capability (PCAP) 2.3. Applications experience (APEX) 2.4. Platform (or VM) experience (PLEX) 2.5. Language and tool experience (LTEX) 2.6. Personnel continuity (PCON)

Slide 23

Slide 23 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 23 3. Platform Factors 3.1. Time constraint (TIME) 3.2. Storage constraint (STOR) 3.3. Platform volatility (PVOL)

Slide 24

Slide 24 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 24 4. Project Factors Project Factors 4.1. Use of Software tools (TOOL) 4.2. Multisite development (SITE) 4.3. Required schedule - stretch-out or acceleration (SCED) Multisite development

Slide 25

Slide 25 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 25 Reference • http://sunset.usc.edu/research/COCOMOII/ expert_cocomo/drivers.html • Chapter 23

Slide 26

Slide 26 text

CSE360 – Introduction to Software Engineering Javier G onzalez-Sanchez javiergs@ asu.edu Sum m er 2017 Disclaim er. These slides can only be used as study m aterial for the class C SE360 at ASU. They cannot be distributed or used for another purpose.