SEN Unit 4
SEN Unit 4
Unit No IV
Software Project Estimation [16 Marks]
Q1. Define management spectrum and enlist characteristics of software. OR Explain 4 P‘s
software project management spectrum OR Define management spectrum & explain people,
product, process & project in detail.
Ans:
Management Spectrum: The management spectrum describes the management/hierarchy of
people associated with a software project or how to make a software project successful. It
focuses on the four P‘s; People, Product, Process and Project.
The People
The people factor is so important that the Software Engineering Institute has
developed a people management capability maturity model (PM-CMM), to
enhance the readiness of software organizations to undertake increasingly complex
applications by helping to attract, grow, motivate, deploy, and retain the talent
needed to improve their software development capability.
The people management maturity model defines the following key practice
areas for software people: recruiting, selection, performance management,
training, compensation, career development, organization and work design, and
team/culture development. Organizations that achieve high levels of maturity in
the people management area have a higher likelihood of implementing
effective software engineering practices. The PM-CMM is a companion to the
software capability maturity model that guides organizations in the creation of a
mature software process.
Following are the various categories of people associated with the project.
The Stakeholders: - This include Senior managers, Project (technical) managers,
Practitioners, Customers, End user
Team Leaders: - Leaders of various teams associated with the project
The Software Team:- Entire software team
Agile Teams: - Temporary teams associated with software
Coordination and Communication Issues
The Product
Before a project can be planned, product objectives and scope should be established,
alternative solutions should be considered and technical and management constraints
should be identified.
Without this information, it is impossible to define reasonable estimates of the cost, an
effective assessment of risk, a realistic breakdown of project tasks, or a manageable
project schedule.
Objectives identify the overall goals for the product without considering how these goals
will be achieved. Scope identifies the primary data, functions and behaviors that
characterize the product.
Once the product objectives and scope are understood, alternative solutions are
considered. From the available various alternatives, managers and practitioners select a
"best" approach.
The Process
A software process provides the framework from which a comprehensive plan for
software development can be established.
A small number of frame-work activities are applicable to all software projects,
regardless of their size or complexity.
A number of different tasks, milestones, work products and quality assurance points
enable the framework activities to be adapted to the characteristics of the software
project and the requirements of the project team.
Finally, umbrella activities such as software quality assurance, software configuration
management, and measurement overlay the process model.
The Project
We conduct planned and controlled software projects for one primary reason it is the
only known way to manage complexity.
A software project manager and the software engineers who build the product must avoid
asset of common warning signs, understand the critical success factors that lead to good
project management, and develop a common sense approach for planning, monitoring and
controlling the project.
OR
The management Spectrum: 4p’s
Effective software project management focuses on the four P‘s: people, product,
process, and project.
The People:
1. The ―people factor‖ is so important that the Software Engineering Institute has developed a
People Capability Maturity Model (People- CMM) to continually improve its ability to
attract, develop, motivate, organize, and retain the workforce needed to accomplish its
strategic business objectives.
2. The people capability maturity model defines the following key practice areas for
software people:
a. Staffing
b. communication and coordination
c. work environment
d. performance management
e. Training, compensation, competency analysis and development, career development,
workgroup development, team/culture development and others.
3. Organizations that achieve high levels of People-CMM maturity have higher likelihood of
implementing effective software project management practices.
The Product:
1. Before a project can be planned, product objectives and scope should be established,
alternative solutions should be considered and technical and management constraints
should be identified.
2. Without this information, it is impossible to define reasonable (and accurate) estimates of
the cost, an effective assessment of risk, a realistic breakdown of project tasks, or a
The Process:
1. A software process provides the framework from which a comprehensive plan for
software development can be established.
2. A small number of framework activities are applicable to all software projects, regardless
of their size or complexity.
3. A number of different task sets—tasks, milestones, work products, and quality
assurance points enable the framework activities to be adapted to the characteristics of
the software project and the requirements of the project team.
4. Finally, umbrella activities—such as software quality assurance, software
configuration management, and measurement occur throughout the process.
The Project:
1. To manage complexity, we conduct planned and controlled software projects.
2. The success rate for present-day software projects may have improved but our project
failure rate remains much higher than it should be.
To avoid project failure, a software project manager and the software engineers who build the
product must avoid a set of common warning signs, understand the critical success factors that
lead to good project management, and develop a common-sense approach for planning,
monitoring, and controlling the project.
Q2: What are the metrics for size estimation types? Explain. OR Explain types of metrics used
for size estimation of the project with advantages &disadvantages
Ans: There are two types of the metrics used for size estimation of the project:-
LOC based size estimation
Function Point based size estimation
LOC based size estimation:
LOC is the simplest among all metrics available to estimate project size. This metric is very
popular because it is the simplest to use.
Using this metric, the project size is estimated by counting the number of source instructions in
the developed program. i. e. LOC consists of declarations, actual code including logic &
computations. Obviously, while counting the number of source instructions, lines used for
commenting the code and the header lines and blank lines should be ignored.
This is because blank lines are included in the code to improve readability of code & comments
are included to help in code understanding as well as maintenance. Actually blank lines &
comments do not contribute to any kind of functionality & it may be misused by developers to
give false notion about productivity.
Determining the LOC count at the end of a project is a very simple job. However, accurate
estimation of the LOC count at the beginning of the project is very difficult.
In order to estimate the LOC count at the beginning of a project, project managers usually 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.
To be able to do this, past experience in developing similar products is helpful. By using the
estimation of the lowest level modules, project managers arrive at the total size estimation.
Advantage of LOC:
It is very easy to count & calculate from the developed code.
Disadvantage of LOC:
It is Language & technology dependent
Constitute (representation) an LOC varies from organization to organization
The Fi (i=1 to 14) are Value Adjustment Factors (VAF) or Unadjusted Function Points (UFP)
based on responses to the following questions:
1. Does the system require reliable backup and recovery?
2. Are specialized data communications required to transfer information to or from the
application?
3. Are there distributed processing functions?
4. Is performance critical?
5. Will the system run in an existing, heavily utilized operational environment?
6. Does the system require online data entry?
7. Does the online data entry require the input transaction to be built over multiple screens or
operations?
8. Are the ILFs updated online?
9. Are the inputs, outputs, files, or inquiries complex?
10. Is the internal processing complex?
11. Is the code designed to be reusable?
12. Are conversion and installation included in the design?
13. Is the system designed for multiple installations in different organizations?
14. Is the application designed to facilitate change and ease of use by the user?
Each of these questions is answered using a scale that ranges from 0 (not important or
applicable) to 5 (absolutely essential). The constant values in Equation 1 and the weighting
factors that are applied to information domain counts are determined empirically.
Advantages of FP:
Size of software delivered is measured independent of language or technology & tools.
FP‘s are directly estimated from requirement before design & coding.
Any change in requirements can be easily reflected in FP count.
Useful even for those users without technical expertise because FP is based on external
structure of the software to developed
Disadvantages of FP:
It is not good for real time systems and embedded systems.
Many cost estimation models like COCOMO uses LOC and hence FP must be converted
to LOC.
Q3: State importance of ―Function point ―and ―lines of code‖ in concerned with project
estimation.
Ans: Currently two metrics are popularly being used widely to estimate size: lines of code
(LOC) and function point (FP).
Lines of Code (LOC)
LOC is the simplest among all metrics available to estimate project size. This metric is very
popular because it is the simplest to use.
Using this metric, the project size is estimated by counting the number of source instructions in
the developed program. Obviously, while counting the number of source instructions, lines
used for commenting the code and the header lines should be ignored.
Find Total Degree of Influence (∑Fi): Use the ‘14 general characteristics‘ of a system to find
the degree of influence of each of them. The sum of all 14 degrees of influences will give the
TDI(∑Fi). The range of TDI is 0 to 70. The 14 general aspects or characteristics are:
1. Does the system require reliable backup and recovery?
2. Are specialized data communications required to transfer information to or from the
application?
3. Are there distributed processing functions?
4. Is performance critical?
5. Will the system run in an existing, heavily utilized operational environment?
6. Does the system require online data entry?
7. Does the online data entry require the input transaction to be built over multiple screens or
operations?
8. Are the ILFs updated online?
9. Are the inputs, outputs, files, or inquiries complex?
10. Is the internal processing complex?
11. Is the code designed to be reusable?
12. Are conversion and installation included in the design?
13. Is the system designed for multiple installations in different organizations?
14. Is the application designed to facilitate change and ease of use by the user?
Each of above aspects or characteristics is evaluated on a scale of 0-5.
0-No influences
1-Incidental
2-Moderate
3-Avarage
4-Significant
5-Essential
Compute Complexity Adjustment Factor (CAF): Use the following formula to calculate CAF
Find the Function Point Count: Use the following formula to calculate FP
Solution:
Step-1: As complexity adjustment factor is average (given in question),
hence, scale = 3.
Fi = 14 * 3 = 42
Step-2:
CAF = [ 0.65 + (0.01*( ∑Fi ) )
CAF = 0.65 + ( 0.01 * 42 ) = 1.07
Step-4:
Function Point (FP) = UFP * CAF
Function Point (FP) = 628 * 1.07 = 671.96
This is the required answer.
Q6. Explain any one project cost estimation approach. OR What are 3 commonly used cost
estimation approaches used in software project. Explain in details. OR Describe Heuristic
technique, Empirical technique & Analytical technique of cost estimation of the project.
Ans: Estimation of several project parameters is considered as initial project planning activity.
The significant project parameters which are mostly estimated include: size of the project, effort
necessary to build the software, project duration and costing. These estimates help to quote the
project cost to the customer and also beneficial in resource planning as well as scheduling.
Three broad categories are generally used in cost estimation techniques are:
Heuristic estimation technique
Analytical estimation technique
Empirical estimation technique
In the above expression, e is the characteristic of the software which has already been estimated
(independent variable).
Estimated Parameter is the dependent parameter to be estimated. The dependent parameter to
be estimated could be effort, project duration, staff size, etc. c1 and d1 are constants. The
values of the constants c1 and d1 are usually determined using data collected from past
projects (historical data). The basic COCOMO model is an example of single variable cost
estimation model.
A multivariable cost estimation model takes the following form:
Estimated Resource = c1 * e1d1+ c 2 * e2 d2+ ...
Where e1, e2, … are the basic (independent) characteristics of the software already estimated,
and c1, c2, d1, d2, … are constants.
Analytical estimation techniques determine the necessary results beginning from basic
assumptions related to the project. In this way, unlike to remaining empirical & heuristic
techniques, there is scientific basis in analytical techniques. In analytical technique, Halstead‘s
software science is a prominent example.
The empirical estimation techniques are usually founded on making an educated guess regarding
the project parameters. If similar products are developed previously, then that experience is
always helpful. Even though the base of empirical estimation techniques is common sense,
several activities involved in estimation have been formalized over the years.
There are two frequently used empirical estimation techniques namely: Expert judgment
technique & Delphi cost estimation technique.
In expert judgment technique, an expert analyses the problem in detail and makes an
educated guess regarding the problem size.
Usually, the expert makes an estimation of the cost regarding the different components
(such as modules or subsystems) of the respective system and then integrates them to find
the overall estimate.
Yet, this technique is exposed to human errors. Additionally, it is likely that the expert
may miss few factors accidentally.
Supplementary, an expert who is making the estimate may lack of experience as well as
knowledge of all aspects of a project.
For example, he or she may be familiar with the database and user interface components
but may not be aware regarding the computer communication part.
Estimation made by group of experts can be considered as a more refined form of expert
judgment.
It minimizes factors like individual oversight, lack of familiarity with a specific aspect
regarding the project, etc.
In this approach some of the shortcomings of the expert judgment approach are tried to
resolve.
In this approach a team which involves a group of experts and a coordinator takes part.
The coordinator gives a copy of the Software Requirements Specification (SRS)
document to all of the estimators and a particular form for the purpose of recording their
cost estimates.
Individual estimates are completed by all of the estimators and submitted to the
coordinator.
In individual estimates, the estimators point out any unusual characteristic regarding the
product which has great impact on the estimation.
The coordinator then makes and handouts the summary of the responses by considering
all the estimators and incorporates any unusual justification that may be noted by any of
the estimators.
By considering this summery, all of the estimators re-estimate. This method is repeated
for several rounds.
However, estimators cannot communicate with each other regarding the estimates. The
reason is that the estimate of more experienced or senior estimator may influence other
estimators.
After several iterations of estimations are done, the coordinator compiles the results and
prepares the final estimate.
Q7: Describe the Analytical method of project cost estimation with example. OR Write a short
note on Halstead‘s software science.
Ans:
Analytical estimation techniques derive the required results starting with basic assumptions
regarding the project. Thus, unlike empirical and heuristic techniques, analytical techniques do
have scientific basis.
Halstead’s software science is an example of an analytical technique. Halstead‘s software
science can be used to derive some interesting results starting with a few simple assumptions.
Halstead‘s software science is especially useful for estimating software maintenance efforts. In
fact, it outperforms both empirical and heuristic techniques when used for predicting software
maintenance efforts.
Halstead‘s Software Science – An Analytical Technique Halstead‘s software science is an
analytical technique to measure size, development effort, and development cost of software
products. Halstead used a few primitive program parameters to develop the expressions for
overall program length, potential minimum value, actual volume, effort, and development time.
For a given program, let:
η1 be the number of unique operators used in the program,
η2 be the number of unique operands used in the program,
N1 be the total number of operators used in the program,
N2 be the total number of operands used in the program. Example: Let us
consider the following C program:
main( )
{ int a, b, c, avg;
scanf(―%d %d %d‖, &a, &b, &c); avg = (a+b+c)/3;
printf(―avg = %d‖, avg);
} The unique operators are: main, (), {}, int, scanf, &, ―, ‖, =, +, /, printf
The unique operands are: a, b, c, &a, &b, &c, a+b+c, avg, 3, ―%d %d
%d‖, ―avg = %d‖ Therefore, η1 = 12, η2 = 11
Estimated Length = (12*log12 + 11*log11)
= (12*3.58 + 11*3.45)
= (43+38) = 81
Volume = Length*log(23)
= 81*4.52
= 366
Mrs. M. P. Patil (DYP POLY, KOP) Page 12
SEN-22413-Unit 4-Software Project Estimation
Hardware attributes –
Run-time performance constraints
Memory constraints
The volatility of the virtual machine environment
Required turn about time
Q9: Describe COCOMO model in detail. OR What are the different models of COCOMO
model? Explain. OR Describe basic model, intermediate model & detailed model of COCOMO
model.
The initial estimate (also called nominal estimate) is determined by an equation of the form used
in the static single variable models, using KLOC as the measure of the size. To determine the
initial effort Ei in person-months the equation used is of the type is shown below
Ei=a*(KLOC)b
The value of the constant a and b are depends on the project type.
1. Organic
2. Semidetached
3. Embedded
1. Organic: A development project can be treated of the organic type, if the project deals with
developing a well-understood application program, the size of the development team is
reasonably small, and the team members are experienced in developing similar methods of
projects. Examples of this type of projects are simple business systems, simple inventory
management systems, and data processing systems.
For three product categories, Boehm provides a different set of expression to predict effort (in a
unit of person month)and development time from the size of estimation in KLOC(Kilo Line of
code) efforts estimation takes into account the productivity loss due to holidays, weekly off,
coffee breaks, etc.
According to Boehm, software cost estimation should be done through three stages:
1. Basic Model
2. Intermediate Model
3. Detailed Model
1. Basic COCOMO Model: The basic COCOMO model provides an accurate size of the
project parameters. The following expressions give the basic COCOMO estimation
model:
E = ab*(KLOC)bb PM
D = cb *(E)db Months
P = E/D
Where
E is the total effort required to develop the software product, expressed in person months
(PMs)
D is the estimated time to develop the software, expressed in months,
KLOC is the estimated size of the software product indicated in Kilo Lines of Code,
P is total number of persons required to accomplish the project
ab, bb, cb, db are coefficients for three modes/types are given below:,
Software Projects ab bb cb db
Organic 2.4 1.05 2.5 0.38
Semi-detached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
The effort multiplier for each cost driver attribute is as given in the above table. The products of
effort multipliers result in ―Effort Adjustment Factor (EAF).
E = ai * (KLOC)bi * EAF
The values of ai and bi in case of the intermediate model are as follows:
Software Projects ai bi
D = cb *(E)db Months
P = E/D
Where the duration (D) and person (P) estimate is same as in basic COCOMO model. Use
values of cb and db coefficients from basic COCOMO model.
This model can be applied to almost entire software product for easy and rough cost
estimation during early stage.
It can also be applied at the software product component level for obtaining more
accurate cost estimation.
Limitations of Intermediate COCOMO Model:
The effort is calculated as a function of program size and a set of cost drivers are given according
to each phase of the software lifecycle.
Very Very
Phases Low Nominal High
Low High
Requirements Planning and
1.80 0.85 1.00 0.75 0.55
Product Design(RPD)
Detailed design (DD) 1.35 0.85 1.00 0.90 0.75
1.00
Code and Unit Test (CUT) 1.35 0.85 0.90 0.75
1.00
Integration and Test (IT) 1.50 1.20 0.85 0.70
Q10: Describe COCOMO II model for evaluating size of software project with any three
parameters in detail OR Describe COCOMO-II model in detail.
Ans: COCOMO-II is the revised version of the original Cocomo (Constructive Cost Model) and
is developed at University of Southern California. It is the model that allows one to estimate the
cost, effort and schedule when planning a new software development activity. COCOMO II
provides the following three-stage series of models for estimation of Application Generator,
System Integration, and Infrastructure software projects:
OR
a) Performance risk - the degree of uncertainty that the product will meet its
requirements and be fit for its intended use.
b) Cost risk - the degree of uncertainty that the project budget will be maintained.
c) Support risk - the degree of uncertainty that the resultant software will be easy to
correct, adapt, and enhance.
d) Schedule risk - the degree of uncertainty that the project schedule will be maintained
and that the product will be delivered on time.
OR
1. Generic risks are a potential threat to every software project.
2. Product-specific risks can be identified only by those with a clear understanding of the
technology, the people, and the environment.
3. Product size—risks associated with the overall size of the software to be built or modified
that is specific to the software that is to be built.
4. Business impact—risks associated with constraints imposed by management or the
marketplace.
5. Project risks threaten the project plan. That is, if project risks become real, it is likely that
the project schedule will slip and that costs will increase.
6. Technical risks threaten the quality and timeliness of the software to be produced.
7. Business risks threaten the viability of the software to be built and often jeopardize the
project or the product.
8. Known risks are those that can be uncovered after careful evaluation of the project plan,
the business and technical environment in which the project is being developed, and other
reliable information sources.
9. Predictable risks are extrapolated from past project experience of user.
10. Unpredictable risks are one that they can and do occur, but they are extremely difficult to
identify in advance.
Q15: Explain in detail RMMM strategy OR Describe RMMM strategy in detail OR Explain
RMMM plan with example.
Ans: Risk mitigation, monitoring, and management (RMMM) plan. A risk management
strategy can be included in the software project plan or the risk management steps can be
organized into a separate Risk Mitigation, Monitoring and Management Plan. The RMMM
plan documents all work performed as part of risk analysis and is used by the project
manager as part of the overall project plan. Once RMMM has been documented and the
project has begun, risk mitigation and monitoring steps commence. Risk mitigation is a
problem avoidance activity.
Risk monitoring is a project tracking activity with three primary objectives:
1) To assess whether predicted risks do, in fact, occur;
2) To ensure that risk aversion steps defined for the risk are being properly applied; and
3) To collect information that can be used for future risk analysis.
In many cases, the problems that occur during a project can be traced to more than one risk.
Another job of risk monitoring is to attempt to allocate origin (what risk(s) caused
which problems throughout the project).
An effective strategy must consider three issues:
• Risk avoidance
• Risk monitoring
• Risk management and contingency planning
If a software team adopts a proactive approach to risk, avoidance is always the best
strategy. This is achieved by developing a plan for risk mitigation. To mitigate this risk,
project management must develop a strategy for reducing turnover.
Among the possible steps to be taken are
Meet with current staff to determine causes for turnover (e.g., poor working
conditions, low pay, and competitive job market).
Mitigate those causes that are under our control before the project starts.
Once the project commences, assume turnover will occur and develop techniques to
ensure continuity when people leave.
Organize project teams so that information about each development activity is widely
dispersed.
OR
To assist the project team in developing a strategy for dealing with risk. An effective strategy
must consider three issues: risk avoidance, risk monitoring, and risk management and
contingency planning. If a software team adopts a proactive approach to risk, avoidance is always
the best strategy. This is achieved by developing a plan for risk mitigation.
Risk Mitigation: -
To mitigate this risk, you would develop a strategy for reducing turnover. Among the possible
steps to be taken are:
Meet with current staff to determine causes for turnover (e.g., poor working conditions,
low pay, and competitive job market).
Mitigate those causes that are under your control before the project starts.
Once the project commences, assume turnover will occur and develop techniques to
ensure continuity when people leave.
Organize project teams so that information about each development activity is widely
dispersed.
Define work product standards and establish mechanisms to be sure that all models and
documents are developed in a timely manner.
Conduct peer reviews of all work (so that more than one person is―up to speed‖).
Assign a backup staff member for every critical technologist.
Risk Monitoring: -
As the project proceeds, risk-monitoring activities commence. The project manager monitors
factors that may provide an indication of whether the risk is becoming more or less likely. In
the case of high staff turnover, the general attitude of team members based on project
pressures, the degree to which the team has jelled, interpersonal relationships among team
members, potential problems with compensation and benefits, and the availability of jobs
within the company and outside it are all monitored.
Risk Management: -
In addition to monitoring these factors, a project manager should monitor the effectiveness of
risk mitigation steps. Risk management and contingency planning assumes that mitigation
efforts have failed and that the risk has become a reality.
Risk management and contingency planning assumes that mitigation efforts have failed and
that the risk has become a reality.
It is important to note that risk mitigation, monitoring, and management (RMMM) steps incur
additional project cost. For example, spending the time to back-up every critical technologist
costs money. Part of risk management, therefore, is to evaluate when the benefits accrued by
the RMMM steps are outweighed by the costs associated with implementing them.
OR
A risk management plan or plan risk management is a document that a prepares to foresee
risks, estimate impacts, and define responses to risks. It also contains a risk matrix.
A risk is "an uncertain event or condition that, if it occurs, has a positive or negative effect on a
project's objectives." Risk is inherent with any and project manager should assess risks
continually and develop plans to address them. The risk management plan contains an analysis
of likely risks with both high and low impact, as well as mitigation strategies to help the project
avoid being derailed should common problems arise. Risk management plans should be
periodically reviewed by the project team to avoid having the analysis become stale and not
reflective of actual potential project risks. Most critically, risk management plans include a risk
strategy. There are two characteristics of risk i.e. uncertainty and loss.
Risk Mitigation, Monitoring and Management (RMMM)
Risk analysis support the project team in constructing a strategy to deal with risks.
There are three important issues considered in developing an effective strategy:
Risk avoidance or mitigation - It is the primary strategy which is fulfilled through a plan.
Risk monitoring - The project manager monitors the factors and gives an indication whether
the risk is becoming more or less.
Risk management and planning - It assumes that the mitigation effort failed and the risk is a
reality.
RMMM Plan- It is a part of the software development plan or a separate document.
The RMMM plan documents all work executed as a part of risk analysis and used by the
project manager as a part of the overall project plan.
The risk mitigation and monitoring starts after the project is started and the documentation of
RMMM is completed.
Risk: Computer Crash Mitigation :
The cost associated with a computer crash resulting in a loss of data is crucial. A computer
crash itself is not crucial, but rather the loss of data. A loss of data will result in not being able
to deliver the product to the customer. This will result in a not receiving a letter of acceptance
from the customer. Without the letter of acceptance, the group will receive a failing grade for
the course. As a result the organization is taking steps to make multiple backup copies of the
software in development and all documentation associated with it, in multiple locations. ·
Monitoring :
When working on the product or documentation, the staff member should always be aware
of the stability of the computing environment they‘re working in. Any changes in the
stability of the environment should be recognized and taken seriously. ·
Management :
The lack of a stable-computing environment is extremely hazardous to a software development
team. In the event that the computing environment is found unstable, the development team
should cease work on that system until the environment is made stable again, or should move
to a system that is stable and continue working there.
Voluntary Reporting:
Decomposition: As the product is being decomposed during the requirements and design
phases, another opportunity exists for risk identifications. Every TBD ("To Be
Done/Determined") is a potential risk. ―The most important thing about planning is writing
down what you don‘t know, because what you don‘t know is what you must find out.
Decomposition in the form of work breakdown structures during project planning can also
help identify areas of uncertainty that may need to be recorded as risks. Assumption Analysis:
Process and product assumptions must be analyzed. Risk Taxonomies: Risk taxonomies are
lists of problems that have occurred on other projects and can be used as checklists to help
ensure all potential risks have been considered.
Risk analysis: In risk analysis, the probability of occurrence of a risk has to be estimated, along
with the loss that will occur if the risk does materialize. This is often done through discussion,
using experience and understanding of the situation, though structured approaches also exist.
Once the probabilities of risks materializing and losses due to materialization of different risks
have been analyzed, they can be prioritized.
Risk prioritization: One approach for prioritization is through the concept of risk exposure,
which is sometimes called risk impact. RE is defined by the relationship
RE = Prob(UO) * Loss(UO),
Where Prob(UO) is the probability of the risk materializing (i.e., undesirable outcome) and
Loss(UO) is the total loss incurred due to the unsatisfactory outcome. The loss is not only the
direct financial loss that might be incurred but also any loss in terms of credibility, future
business, and loss of property or life. The RE is the expected value of the loss due to a particular
risk. For risk prioritization using RE is, the higher the RE, the higher the priority of the risk item.
Q20: Study of requirement specification for ABC project has produced following results: Need
for 7 inputs, 10 outputs, 6 inquires, 17 files & 4 external interfaces. Inputs & external interface
function point attributes are of average complexity & all other function points attributes are of
low complexity. Determine adjusted function points assuming complexity adjustment value is
32.
Ans:
Number of external inputs (EIs): 7
Number of external outputs (EOs): 10
Number of external inquiries (EQs): 6
Number of internal logical files (ILFs): 17
Number of external interface files (ELFs): 4
Complexity Adjustment Value (∑Fi)=32
Since Inputs & external interface function point attributes are of average complexity & all
other function points attributes are of low complexity.
Step-1:
∑Fi =32
Step-2:
CAF = [ 0.65 + (0.01*( ∑Fi ) )
CAF = 0.65 + ( 0.01 * 32 ) = 0.97
Step-4:
Function Point (FP) = UFP * CAF
Function Point (FP) =233 * 0.97 = 226.01
This is the required answer.
Q22: Using COCOMO, Calculate effort, duration & person estimation for the following:
Software Projects ab bb cb db
Organic 2.4 1.05 2.5 0.38
Semi-detached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
D = cb *(E)db
D=2.5(6.65)0.35
D=4.8 Months
P = E/D
P=6.65/4.8
P=1.3 ≈ 1 Person
Thus, this project can be completed within 4.8 months by 1 person approximately
E= 3.6(30)1.20
E=213 Person-Month
D = cb *(E)db
D=2.5(213)0.32
D=14 Months
P = E/D
P=213/14
P=15.2 ≈ 15 Persons
D = cb *(E)db
D=2.5(302)0.38
D=21 Months
P = E/D
P=302/21
P=14.3 ≈ 14 Persons
D = cb *(E)db
D=2.5(3390)0.38
D=55 Months
P = E/D
P=3390/55
P=61.6 ≈ 61 Persons
Review Questions
Software Project Estimation
1. Define management spectrum and enlist characteristics of software. OR Explain 4 P‘s
software project management spectrum OR Define management spectrum & explain
people, product, process & project in detail.
2. What are the metrics for size estimation types? Explain. OR Explain types of metrics
used for size estimation of the project with advantages & disadvantages
3. State importance of ―Function point ―and ―lines of code‖ in concerned with project
estimation.
4. With an example, explain Line of Code (LOC) based estimation.
5. How to calculate the function point?
6. Explain any one project cost estimation approach. OR What are 3 commonly used cost
estimation approaches used in software project. Explain in details. OR Describe
Heuristic technique, Empirical technique & Analytical technique of cost estimation of
the project.
7. Describe the Analytical method of project cost estimation with example. OR Write a
short note on Halstead‘s software science.
8. Specify following cost directives of cocomo:
Product attributes (any two)
Hardware attributes (any two).
9. Describe COCOMO model in detail. OR What are the different models of COCOMO
model? Explain. OR Describe basic model, intermediate model & detailed model of
COCOMO model.
10. Describe COCOMO II model for evaluating size of software project with any three
parameters in detail OR Describe COCOMO-II model in detail.
11. What is software risk? Explain types of software risks.
12. What are the characteristics involved in software risk?
13. Define proactive and reactive risk strategy.
14. Explain in detail RMMM strategy OR Describe RMMM strategy in detail OR Explain
RMMM plan with example.
15. Explain following terms w.r.t. risk management:
(i) Risk identification
(ii) Risk analysis
16. Describe the following with respect to Risk assessment:
(i) Risk identification
(ii) Risk analysis
(iii) Risk prioritization
17. Explain risk refinement
18. What is risk projection? Enlist steps of risk projection.
19. Study of requirement specification for ABC project has produced following results:
Need for 7 inputs, 10 outputs, 6 inquires, 17 files & 4 external interfaces. Inputs &
external interface function point attributes are of average complexity & all other
function points attributes are of low complexity. Determine adjusted function points
assuming complexity adjustment value is 32.