Notes
Notes
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
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 manageable
project schedule that provides a meaningful indication of progress.
3. Objectives identify the overall goals for the product (from the stakeholders’ points of view)
without considering how these goals will be achieved.
4. Scope identifies the primary data, functions, and behaviors that characterize the product
5. The alternatives enable managers and practitioners to select a “best” approach, given the
constraints imposed by delivery deadlines, budgetary restrictions, personnel availability,
technical interfaces, and other factors.
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.
2. The success rate for present-day software projects may have improved but our project failure
rate remains much higher than it should be.
3. 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.
The project size is a measure of the problem complexity in terms of the effort and time
required to develop the product.
Currently two metrics are popularly being used widely to estimate size:
Q1. With an example, explain Line of Code (LOC) based estimation.(4 marks)
Q2. State importance of “Function point “and “lines of code” in concerned with project
estimation
LOC is the simplest among all metrics available to estimate project size.
LOC measure the size of a project by counting the number of source instructions in the
development program ignoring the commenting code and header lines.
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 submodules and so on, until the
sizes of the different leaf-level modules can be approximately predicted.
Example - let us consider a software package to be developed for a computer-aided
design application for mechanical components. A review of the System Specification
indicates that the software is to execute on an engineering workstation and must interface
with various computer graphics peripherals including a mouse, digitizer, high resolution
color display and laser printer.
Using the System Specification as a guide, a preliminary statement of software scope can
be developed. Further divide the project into modules, estimates the lines of code for each
module and ultimately combine all modules LOC to get final LOC count as given below.
Function Point Analysis was initially developed by Allan J. Albercht in 1979 at IBM
It has been further modified by the International Function Point Users Group (IFPUG).
It can be used to easily estimate the size of a software product directly from the problem
specification.
It assesses the functionality delivered to its users, based on the user’s external view of the
functional requirements.
It measures the logical view of an application not the physically implemented view or
the internal technical view
FP characterizes the complexity of the software system and hence can be used to depict
the project time and the manpower requirement.
The effort required to develop the project depends on what the software does.
In this method, the number and type of functions supported by the software are utilized to find
FPC (function point count). The steps in function point analysis are:
Count the number of functions of each proposed type: Find the number of functions
belonging to the following types:
o External Inputs: Functions related to data entering the system.
o External outputs: Functions related to data exiting the system.
o External Inquiries: They leads to data retrieval from system but don’t change the
system.
o Internal Files: Logical files maintained within the system. Log files are not
included here.
o External interface Files: These are logical files for other applications which are
used by our system.
Compute the Unadjusted Function Points (UFP): Categories each of the five function
types as simple, average or complex based on their complexity. Multiply count of each
function type with its weighting factor and find the weighted sum. The weighting factors
for each type based on their complexity are as follows:
Advantages:
The important project parameters that are estimated include: Project size, effort required
to develop the software, project duration, and cost.
These estimates not only help in quoting the project cost to the customer, but are also
useful in resource planning and scheduling.
While using this technique, prior experience with development of similar products is
helpful.
Although empirical estimation techniques are based on common sense, different activities
involved in estimation have been formalized over the years.
Delphi cost estimation approach tries to overcome some of the shortcomings of the expert
judgment approach.
Delphi estimation is carried out by a team comprising of a group of experts and a
coordinator.
In this approach, the coordinator provides each estimator with a copy of the software
requirements specification (SRS) document and a form for recording his cost estimate.
Estimators complete their individual estimates anonymously and submit to the
coordinator. In their estimates, the estimators mention any unusual characteristic of the
product which has influenced his estimation.
The coordinator prepares and distributes the summary of the responses of all the
estimators, and includes any unusual rationale noted by any of the estimators. Based on
this summary, the estimators re-estimate.
This process is iterated for several rounds. However, no discussion among the estimators
is allowed during the entire estimation process.
The idea behind this is that if any discussion is allowed among the estimators, then many
estimators may easily get influenced by the rationale of an estimator who may be more
experienced or senior.
After the completion of several iterations of estimations, the coordinator takes the
responsibility of compiling the results and preparing the final estimate.
Heuristic techniques assume that the relationships among the different project parameters
can be modeled using suitable mathematical expressions.
Once the basic (independent) parameters are known, the other (dependent) parameters
can be easily determined by substituting the value of the basic parameters in the
mathematical expression.
Different heuristic estimation models can be divided into the following two classes:
single variable model and the multi variable model.
Single variable estimation models- provide a means to estimate the desired
characteristics of a problem, using some previously estimated basic (independent)
characteristic of the software product such as its size.
A single variable estimation model takes the following form:
Estimated Parameter = c 1 * e d 1
In the above expression, e is the characteristic of the software which has already been
estimated (independent variable).
The values of the constants c 1 and d 1 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:
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 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:
Halstead’s definition of the length of the program as the total number of operators and
operands roughly agrees with the intuitive notation of the program length as the total
number of tokens used in the program.
The program vocabulary is the number of unique operators and operands used in the
program. Thus, program vocabulary η = η 1 + η 2.
main( )
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 η= η1 + η2
Q1. Describe COCOMO II model for evaluating size of software project with any
three parameters in detail.
i) Effort ii) Project duration iii) Average staff size if estimated size of project is
200 KLOC using organic mode
Using this model one can calculate Effort(E) & schedule (project duration)
Schedule: Simply means the amount of time required for the completion of
the job, which is, of course, proportional to the effort put. It is measured in
the units of time such as weeks, months.
Semi-detached –
A software project is said to be a Semi-detached type if the vital
characteristics such as team-size, experience, knowledge of the various
programming environment lie in between that of organic and Embedded.
The semidetached mode is the most appropriate mode, keeping in view the
size, schedule and experience of development time.
Hence
E=3.0(200)1.12=1133.12PM
D=2.5(1133.12)0.35=29.3PM
COCOMO-II
The COCOMO-II is the revised version of the original COCOMO (Constructive Cost
Model) and is developed at the University of Southern California.
This model calculates the development time and effort taken as the total of the estimates
of all the individual subsystems.
Past-Architecture Model
Reuse Model
Risk Management
i. Project risks are those that have an impact on the project's schedule or
resources.
ii. Product risks affect the quality or performance of the product being
developed.
iii. Business risks are risks to the corporation developing or licensing the
software.
Several types of risks can impact a software product; a few of them are
defined below:
Tools Risks: Risks arising from the software tools and other support
software used to build the system.
Risk Analysis
During the risk analysis process, you must analyze each identified risk and
form opinions about its likelihood and severity.
Risk Planning
The risk planning technique considers all of the significant risks that have
been identified and develop strategies to mitigate them.
Risk Monitoring
Risk monitoring ensures that your assumptions about the product, process,
and business risks remain unchanged.
This can be broken down into three sections: risk mitigation, monitoring,
and management (RMMM).
The project manager typically uses this RMMM plan as part of the overall
project plan.
Risk Mitigation
Risk Monitoring
It assumes that the mitigation activity failed and the risk is a reality.
This task is done by Project manager when risk becomes reality and causes
severe problems.
This shows that the response that will be taken for each risk by a manager.
The main objective of the risk management plan is the risk register.
This risk register describes and focuses on the predicted threats to a software
project.