|
CS615 – Software Engineering I |
|
Lecture 10 |








COCOMO II
·
COCOMO is a model designed by Barry Boehm
to give an estimate of the number of programmer-months it will take to develop
a software product.
·
This "COnstructive
COst MOdel" is based on a study of about sixty projects at TRW, a Californian
automotive and IT company, acquired by Northrop
Grumman in late 2002. The programmes examined ranged in size from 2000 to
100,000 lines of code, and programming languages used ranged from assembly to
PL/I.
·
Cocomo consists of a
hierarchy of three increasingly detailed and accurate forms.
Important
observation: personnel motivation
overwhelms all other parameters.
·
suggests that
leadership and teamsmanship are the most important skills of all, but this
point was largely ignored.
Interface type
|
Multiplier
|
No GUI
|
2.0
|
Text-based user interface
|
2.25
|
GUI
|
2.5
|
Complex GUI
|
3.0
|

expected cost = SUM[ (path probability)i x (estimated path cost)i ]
For example, the expected cost to build is:
expected costbuild = 0.30($380K)+0.70($450K) = $429 K
similarly,
expected costreuse = $382K
expected costbuy = $267K
expected costcontract = $410K
Causes of Software
Lateness:
·
Software project
scheduling - activity that distributes estimated effort across the
planned project duration by allocating the effort to specific software
engineering tasks.
·
Schedule evolves over
time.
o Early stages of planning - macroscopic schedule
- identifies all major software engineering activities and the product
functions to which they are applied.
o Project under way - detailed schedule
- each entry on the macroscopic schedule is refined. Here, s
§
specific software tasks
are identified and scheduled.
·
Two Points of
view for Scheduling
·
Principles guiding
software project scheduling:
o
Compartmentalization.
The project must be
compartmentalized into a number of manageable activities and tasks.
o
Interdependency.
The interdependency of each
compartmentalized activity or task must be determined. Some tasks must occur in
sequence while others can occur in parallel.
o
Time
allocation.
§
Each task to be
scheduled allocated some number of work units
§
Each task assigned a
start date and a completion date that are a function of the interdependencies
and whether work will be conducted on a full-time or part-time basis.
o
Effort
validation.
§
Every project has a
defined number of staff members.
§
As time allocation
occurs, the project manager ensures that no more than the allocated number of
people has been scheduled at any given time.
o
Defined
responsibilities. Every task that is
scheduled should be assigned to a specific team member.
o
Defined
outcomes. Every task that is
scheduled should have a defined outcome. For software projects, the outcome is
normally a work product or a part of a work product.
o
Defined
milestones. Every task or group of
tasks should be associated with a project milestone. A milestone is
accomplished when one or more work products has been reviewed for quality and
has been approved.

·
40–20–40 rule - Recommended distribution of effort across the
definition and development phases.
o Forty percent of all effort is allocated to front-end
analysis and design.
o Forty percent is applied to back-end testing.
o Twenty percent is applied to coding.
·
Task set - collection
of software engineering work tasks, milestones, and deliverables that must be
accomplished to complete a particular project.
·
Task sets are designed
to accommodate different types of projects and different degrees of rigor.
o determine
type of project
o
o
·
Most software
organizations encounter the following projects: ·
Degree of
rigor is a function of many project characteristics. Four
different degrees of rigor can be defined: ·
Project manager must
develop a systematic approach for selecting the degree of rigor that is
appropriate for a particular project. ·
To accomplish this, project
adaptation criteria are defined and a task set selector value is computed ·
Each adaptation
criterion is assigned a grade that ranges between 1 and 5 ·
To select the
appropriate task set for a project, the following steps should be conducted: o
Enter grade into table.
o
Value of a weighting
factor ranges from 0.8 to 1.2 and provides an indication of the relative
importance of a particular adaptation criterion to the types of software
developed within the local environment. o
Entry point multiplier
takes on a value of 0 or 1 and indicates the relevance of the adaptation
criterion to the project type. o
Result of the product grade x weighting factor x entry point multiplier o
Placed in the Product
column of table for each adaptation criteria individually. ·
This value will be used
to help select the task set that is most appropriate for the project. ·
Interpreting the TSS
Value and Selecting the Task Set ·
Overlap in TSS values
from one recommended task set to another is intended to illustrate that sharp
boundaries are impossible to define when making task set selections. ·
The task set selector
value, past experience, and common sense must all be factored into the choice
of the task set for a project. ·
Table illustrates how
TSS might be computed for a hypothetical project. o
Project manager selects
the grades shown in the Grade column. o
Project type is new
application development. o
Therefore, entry point
multipliers are selected from the NDev column. T o
he entry in the Product
column is computed using Grade
x Weight x
NewDev entry point multiplier ·
Value of TSS (computed
as the average of all entries in the product column) is 2.8. ·
The manager has the
option of using either the structured or the strict task set. ·
Development projects
are approached by applying the following major tasks: 1. Concept scoping determines the overall scope of the project. 2. Preliminary concept planning establishes the organization's ability to undertake
the work implied by the project scope. 3. Technology risk assessment evaluates the risk associated with the technology to
be implemented as part of project scope. 4. Proof of concept demonstrates the viability of a new technology in the software context. 5. Concept implementation implements the concept representation in a manner
that can be reviewed by a customer and is used for "marketing"
purposes when a concept must be sold to other customers or management. 6. Customer reaction to the concept solicits feedback on a new technology concept and
targets specific customer applications. ·
Development framework
activities are iterative in nature. ·
Actual development
project might approach these activities in a number of planned increments, each
designed to produce a deliverable that can be evaluated by the customer. ·
Model Selection: o
Linear process model o
Evolutionary model ·
Major tasks may be used
to define a macroscopic schedule for a project. ·
Macroscopic schedule
must be refined to create a detailed project schedule. ·
Refinement begins by
taking each major task and decomposing it into a set of subtasks (with related
work products and milestones). Example of task
decomposition - concept
scoping for a development project: ·
Individual tasks and
subtasks have interdependencies based on their sequence. ·
It is likely that
development activities and tasks will be performed in parallel. ·
Concurrent tasks must
be coordinated so that they will be complete when later tasks require their
work product(s). ·
Task network ( activity network ) is a
graphic representation of the task flow for a project. o The task network depicts major software engineering
tasks. ·
Parallel tasks occur
asynchronously o Planner must determine intertask dependencies to
ensure continuous progress toward completion. o
Project manager should
be aware of those tasks that must be completed on schedule if the project as a
whole is to be completed on schedule. ·
Generalized project
scheduling tools and techniques can be applied with little modification to
software projects. ·
Program evaluation
and review technique (PERT) and critical
path method (CPM) are two project scheduling methods that can be applied to
software development. ·
Both techniques are
driven by information already developed in earlier project planning activities:
o
Estimates of effort o
A decomposition of the
product function o
The selection of the
appropriate process model and task set o
Decomposition of tasks ·
Interdependencies among
tasks may be defined using a task network. ·
Tasks (work
breakdown structure (WBS)) are defined for the product as a whole or for
individual functions. ·
PERT and CPM provide
quantitative tools that allow the software planner to ·
Important boundary
times discerned from a PERT or CPM network: 1. the earliest time that a task can begin when all
preceding tasks are completed in the shortest possible time 2. the latest time for task initiation before the
minimum project completion time is delayed 3. the earliest finish—the sum of the earliest start and
the task duration 4. the latest finish—the latest start time added to task
duration 5. the total float—the amount of surplus time or
leeway allowed in scheduling tasks so that the network critical path is
maintained on schedule. ·
Boundary time
calculations lead to a determination of critical path and provide the manager
with a quantitative method for evaluating progress as tasks are completed. ·
PERT and CPM
implemented in a variety of automated tools that are available for the personal
computer ·
Such tools are easy to
use and make the scheduling methods described previously available to every
software project manager ·
Software project
schedule - planner begins with a set of tasks ·
Effort, duration, and
start date are input for each task. ·
Tasks may be assigned
to specific individuals. ·
Timeline chart, ( Gantt
chart) generated.: o
Conducting periodic
project status meetings in which each team member reports progress and
problems. o
Evaluating the results
of all reviews conducted throughout the software engineering process. o
Determining whether
formal project milestones have been accomplished by the scheduled date. o
Comparing actual
start-date to planned start-date for each project task listed in the resource
table o
Meeting informally with
practitioners to obtain their subjective assessment of progress to date and
problems on the horizon. ·
Time-boxing strategy recognizes that the complete product may not
be deliverable by the predefined deadline. o
An incremental software
paradigm is chosen and a schedule is derived for each incremental delivery. o
Tasks associated with
each increment are time-boxed. o
The schedule for each
task is adjusted by working backward from the delivery date for the increment. o
A "box" is
put around each task. o
When a task hits the
boundary of its time box (plus or minus 10 percent), work stops and the next
task begins. ·
Earned value
analysis (EVA) - qualitative approaches to project tracking o
Provides a common value
scale for every software project task, regardless of the type of work being
performed. o The total hours to do the whole project are
estimated, and every task is given an earned value based on its estimated
percentage of the total. ·
Earned value is a
measure of progress o
Able to assess the
"percent of completeness" of a project using quantitative analysis Following steps
performed: 1. The budgeted cost of work scheduled (BCWS) is
determined for each work task represented in the schedule. 1. The work (in person-hours or person-days) of each
software engineering task is planned. 2. BCWSi is
the effort planned for work task i. 3. To determine progress at a given point along the
project schedule, the value of BCWS is the sum of the BCWSi
values for all work tasks that should have been completed by that
point in time on the project schedule. 2. The BCWS values for all work tasks are summed to
derive the budget at completion, BAC. Hence, BAC
= S (BCWSk) for all tasks k
3. Next, the value for budgeted cost of work
performed (BCWP) is computed. 1. The value for BCWP is the sum of the BCWS values for
all work tasks that have actually been completed by a point in time on the
project schedule. ·
Actual cost of work
performed, ACWP - the sum of the
effort expended on work tasks that have been completed by a point in time on
the project schedule. o It is then possible to compute Cost
performance index, CPI = BCWP/ACWP Cost variance, CV = BCWP - ACWP o
CPI close to 1.0
provides a strong indication that the project is within its defined budget. o
CV is an absolute
indication of cost savings (against planned costs) or shortfall at a particular
stage of a project. ·
Throughout the software
process, a project team errors associated with each work product. ·
Error-related measures
and resultant metrics are collected over many software projects, can be used as
a baseline for comparison against error data collected in real time. ·
Error tracking can be
used as one means for assessing the status of a current project. ·
Software team performs
formal technical reviews (and, later, testing) to find and correct errors, E,
in work products produced during software engineering tasks. ·
Any errors that are not
uncovered (but found in later tasks) are defects, D. ·
Defect removal
efficiency is defined as DRE
= E/(E + D) ·
DRE is a process metric
that provides a strong indication of the effectiveness of quality assurance
activities ·
DRE can also be used to
assist a project manager in determining the progress that is being made as a
software project moves through its scheduled work tasks. o
e.g. a software
organization has collected error and defect data over the past 24 months and
has developed averages for the following metrics: §
Errors per requirements
specification page, Ereq §
Errors per
component—design level, Edesign §
Errors per
component—code level, Ecode §
DRE—requirements
analysis §
DRE—architectural
design §
DRE—component level
design §
DRE—coding ·
As the project
progresses through each software engineering step, the software team records
and reports the number of errors found during requirements, design, and code
reviews. ·
The project manager
calculates current values for Ereq, Edesign,
and Ecode. ·
Compared to averages
for past projects. ·
If current results vary
by more than 20% from the average, there may be cause for concern and there is
certainly cause for investigation. ·
For example, if Ereq
= 2.1 for project X, yet the organizational average is 3.6, one of two
scenarios is possible: ·
Each step in the
software engineering process should produce a deliverable that can be reviewed
and that can act as a foundation for the steps that follow. ·
The Software Project
Plan is produced at the culmination of the planning tasks. ·
It provides baseline
cost and scheduling information that will be used throughout the software
process. ·
The Software
Project Plan must 1. communicate scope and resources to software
management, technical staff, and the customer 2. define risks and suggest risk aversion techniques 3. define cost and schedule for management review 4. provide an overall approach to software development
for all people associated with the project 5. outline how quality will be ensured and change will
be managed.
Task Selector Table

Task set selector value
Degree of rigor
TSS < 1.2
casual
1.0 < TSS < 3.0
structured
TSS > 2.4
strict

Selecting
Software Engineering Tasks
Refinement
of Major Tasks

Defining
a Task Network

Scheduling
Timeline Charts


Tracking the Schedule
·
The project schedule
provides a road map for a software project manager.Earned
Value Analysis
Error
Tracking
Defect removal efficiency
The
Project Plan