ISE Slide 7

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Introduction to Software Engineering

Slide no 7 (week 7)
Process and Project Metrics
Project Planning
• Project planning consists of the following essential activities:
• Estimating the following attributes of the project:
– Project size: What will be problem complexity in terms of
the effort and time required to develop the product?
• Cost: How much is it going to cost to develop the
project?
• Duration: How long is it going to take to complete
development?
• Effort: How much effort would be required?
• The effectiveness of the subsequent planning activities is based
on the accuracy of these estimations.
• Scheduling manpower and other resources
• Staff organization and staffing plans
• Risk identification, analysis, and abatement planning
• Miscellaneous plans such as quality assurance plan,
configuration management plan, etc.
Responsibilities of a software project manager
• Project proposal writing
• Project cost estimation
• Scheduling
• Project staffing
• Software process tailoring
• Project monitoring and control
• Software configuration management
• Risk management
• Managerial report writing
• Interfacing with clients
• Presentations
Software Cost Estimation
• Software cost estimation is the cost of predicting the amount
of effort required to build a software system.

What is Metrics ?
• Metrics are a system of parameters or ways of quantitative
and periodic assessment of a process that is to be measured.
• The metric system is the modern approach to weights and
measures.
• Measures typically are quantitative in nature, conveyed in
numbers, dollars, percentages, etc
Contd!....
• Software metrics are the statistics describing the structure or
content of a program. A metric should be a real objective
measurement of something such as number of bugs per lines of
code
A Good Manager Measures

Process Measurement
• We measure the efficacy of a software process indirectly.
– That is, we derive a set of metrics based on the outcomes
that can be derived from the process.
– Outcomes include
• measures of errors uncovered before release of the
software
• defects delivered to and reported by end-users
• work products delivered (productivity)
• human effort expended
• calendar time expended
• schedule conformance
Process Metrics
• Quality-related
– focus on quality of work products and deliverables
• Productivity-related
– Production of work-products related to effort expended
• Statistical SQA data
– error categorization & analysis
• Defect removal efficiency
– propagation of errors from process activity to activity
• Reuse data
– The number of components produced and their degree of
reusability
Project Metrics
• Used to minimize the development schedule by making the
adjustments necessary to avoid delays and ease potential
problems and risks
• Used to assess product quality on an ongoing basis and, when
necessary, modify the technical approach to improve quality.
• Every project should measure:
– inputs—measures of the resources (e.g., people, tools)
required to do the work.
– outputs—measures of the deliverables or work products
created during the software engineering process.
– results—measures that indicate the effectiveness of the
deliverables.
Typical Project Metrics
• Effort/time per software engineering task
• Errors uncovered per review hour
• Scheduled vs. actual milestone dates
• Changes (number) and their characteristics
• Distribution of effort on software engineering tasks
Software Measurements
Measurements can be categorized in two ways
• Direct Measures – Cost and Effort Applied
e.g: LOC, execution speed, memory size etc
• Indirect Measures – Abilities
e.g: functionality, quality, complexity, efficiency etc
Indirect Measures are more difficult to collect
Metrics for Software Project Size Estimation
• Size is measured of problem complexity in terms of effort and
time required to develop the product
• Two metrics are used to estimate size
– LOC-Line of Code
– Function Point
LOC Estimation
• All lines of source code except for comments and blanks, are
counted
• Accurate estimation of the LOC count at the beginning of a
project is very difficult.
• Estimate the LOC count at the beginning of a project, divide
the problem into modules, and each module into sub-modules
and so on, until the sizes of the different leaf-level modules can
be approximately predicted.
Typical Size-Oriented
• errors per KLOC (thousand lines of code)
• defects per KLOC
• $ per LOC
• pages of documentation per KLOC
• errors per person-month
• Errors per review hour
• LOC per person-month
• $ per page of documentation
An Example of LOC-Based Estimation
Statement of Scope:
The mechanical CAD software will accept two- and three-
dimensional geometric data from an engineer. The engineer will
interact and control the CAD system through a user interface
that will exhibit characteristics of good human/machine interface
design. All geometric data and other supporting information will be
maintained in a CAD database. Design analysis modules will be
developed to produce the required output, which will be displayed on
a variety of graphics devices. The software will be designed to
control and interact with peripheral devices that include a mouse,
digitizer, laser printer, and plotter.
LOC- based Example
Example: The range of LOC estimates for 3D geometric analysis
function is :-
Optimistic= 4600 LOC
Most Likely=6900 LOC
Pessimistic= 8600 LOC
Compute:
S=(opt + 4*likely + pess) / 6
Estimated LOC For 3D = (4600 + 4(6900) + 8600) / 6
= 6800 LOC

If Average Productivity = 620 LOC/pm


And , Labor rate = $ 8000 per month
Find cost per LOC, Total Project Cost, and Estimated effort?
Then,
Cost / LOC = labor rate / prod.
= 8000/620
= $ 13
Total Project Cost = LOC est. * (cost / LOC)
= 33,200 * 13
= $ 431,600
Total Estimated Effort = LOC est. / prod.
= 33,200 / 620
= 54 person-months
LOC Estimation
Advantages
• Easy to count
• It is an artifact of all software development projects
Disadvantages
• LOC measures are programming language dependent
• Its use in estimation requires a level of detail that is difficult to
achieve early in the development process

You might also like