# Presentation: 237179

## CS 594 Software Engineering

- Lecture 3
- Dr. Thomas E. Potok
- potokte@ornl.gov
- 865-574-0834

## Agenda

- Review
- COCOMO
- PERT

## AMI Update

- 200 jobs per day
- AMI has received a quote from Acme Consulting of $40K to do the work in 2 months
- Ballpark price range for AMI is $20-$30K.

## Linear Regression

- Where        is an estimate of the mean of Y,
-         and      are numerical estimated of the parameters

## Many early studies applied regression 

- Data gathered from multiple software project
- Log-linear relationship found between project size and effort
- Where PM are person-months, KLOC is thousands of lines of code

## Derivation

## Typical Effort Vs Project Size Curve

## Constructive Cost Model (COCOMO)

- Developed by Barry Boehm
- Statistical model of software development effort and time.
- Base on results from 63 projects completed at TRW.
- Basic model is a log-linear regression model that fits the 63 projects
- Productivity ranges:
- 20 - 1250 LOC/PM

## Basic COCOMO

- Organic - small to medium size, familiar projects
- Person-months=2.4(KLOC)1.05
- Development-time = 2.5(PM).38
- Semidetached - intermediate
- Person-months=3.0(KLOC)1.12
- Development-time = 2.5(PM).35
- Embedded - ambitious, tightly constrained
- Person-months=3.6(KLOC)1.20
- Development-time = 2.5(PM).32

## COCOMO Models

## Cost Drivers

- Product Attributes
- Required Reliability
- Database Size
- Product Complexity
- Computer Attributes
- Execution Time Constraints
- Main storage constraints
- Virtual Machine Volatility
- Computer turnaround time

## More Cost Drivers

- Personnel Attributes
- Analyst Capability
- Application Experience
- Programmer Capability
- Virtual Machine Experience
- Programming Language Experience
- Project Attributes
- Modern Programming Practices
- Use of Software Tools
- Required Development Schedule

## Example

- Need to produce 10,000 LOC, 10 KLOC.
- Small project, familiar development
- Use organic model:
- Person-months=2.4(10)1.05 =26.9 Person-months
- Development-time = 2.5(26.9).38 =8.7 Months
- Average People = 26.9 PM/8.7 Months = 3 People
*Linear model 3 people would take 16.5 months, at 50 person-months*

## Example

- We also know that the design experience is low
- Analyst, - 1.19
- application, - 1.13
- programmer experience is low. - 1.17
- Yet the programming experience is high - .95
- Adjustment factor 1.19*1.13*1.17*.95 = 1.49
- PM = 26.9*1.49 = 40 Person-months
- Development time = 10.2 Months
- People = 3.9 People

## Drawbacks

- COCOMO has to be calibrated to your environment.
- Very sensitive to change.
- Over a person-year difference in a 10 KLOC project with minor adjustments
- Broad brush model that can generate significant errors

## COCOMO 2.0

- Includes
- COTS and reusable software
- Degree of understanding of requirements and architectures
- Schedule constraints
- Project size
- Required reliability
- Three Types of models
- Application Composition - Prototyping or RAD
- Early Design - Alternative evaluation
- Post-architecture - Detailed estimates

## COCOMO Summary

- Quick and easy to use
- Provides a reasonable estimate
- Needs to be calibrated
- Results must be treated as ball park values unless substantial validation has been performed.

## PERT

- Project Evaluation and Review Technique
- Developed for the Navy Polaris Missile Program
- Directed Acyclic Graphs of project activities
- Used for estimation and control of a project

## Example

- Start project
- Gather requirements
- Document requirements
- Create design
- Document design
- Review design
- Create code
- Document code

- Define test cases
- Test code
- Demonstrate
- Finish project

- To create our 10K program we need the following activities

## PERT Example

**Start**

**Req**

**Design**

**Review**

**Code**

**Test**

**Demo**

**Finish**

**Doc**
**Req**

**Doc**
**Design**

**Doc**
**Code**

**Test**
**Case**

## Duration Estimates

## Critical Path Estimate

## Completion Probability

## Cumulative Completion Probability

-  80% Probability of
- Completion in 46 days