Sen 4
Sen 4
Sen 4
Effective software project management focuses on the four P’s: people, product,
process, and project. The order is not arbitrary. The manager who forgets that
software engineering work is an intensely human endeavor will never have
success in project management. A manager who fails to encourage
comprehensive customer communication early in the evolution of a project risks
building an elegant solution for the wrong problem. The manager who pays
little attention to the process runs the risk of inserting competent technical
methods and tools into a vacuum. The manager who embarks without a solid
project plan jeopardizes the success of the product.
The People
The cultivation of motivated, highly skilled software people has been discussed
since the 1960s. In fact, 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 Product
The software developer and customer must meet to define product objectives
and scope. In many cases, this activity begins as part of the system engineering
or business process engineering and continues as the first step in software
requirements analysis . Objectives identify the overall goals for the product
(from the customer’s point of view) without considering how these goals will be
chieved. Scope identifies the primary data, functions and behaviors that
characterize the product, and more important, attempts to bound these
characteristics in a quantitative manner.
Once the product objectives and scope are understood, alternative solutions are
considered. Although very little detail is discussed, 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 myriad other factors.
The Process
The Project
We conduct planned and controlled software projects for one primary reason—
it is the only known way to manage complexity. And yet, we still struggle. In
1998, industry data indicated that 26 percent of software projects failed outright
and 46 percent experienced cost and schedule overruns . Although the success
rate for software projects has improved somewhat, our project failure rate
remains higher than it should be.
In order 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 commonsense approach for planning, monitoring and controlling
the project.
Lines of Code
Number of entities in ER diagram
Total number of processes in detailed data flow diagram
Function points
1. Lines of Code (LOC): As the name suggest, LOC count the total number of
lines of source code in a project. The units of LOC are:
The size is estimated by comparing it with the existing systems of same kind.
The experts use it to predict the required size of various components of software
and then add them to get the total size.
Advantages:
Disadvantages:
Advantages:
Disadvantages:
No fixed standards exist. Some entities contribute more project size than
others.
Just like FPA, it is less used in cost estimation model. Hence, it must be
converted to LOC.
Advantages:
Disadvantages:
4. Function Point Analysis: 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:
External Inputs 3 4 6
External Output 4 5 7
External Inquiries 3 4 6
Internal Logical Files 7 10 15
External Interface Files 5 7 10
Advantages:
Disadvantages:
Cost estimation simply means a technique that is used to find out the cost
estimates. The cost estimate is the financial spend that is done on the efforts to
develop and test software in Software Engineering. Cost estimation models are
some mathematical algorithms or parametric equations that are used to estimate
the cost of a product or a project.
Various techniques or models are available for cost estimation, also known as
Cost Estimation Models as shown below :
2. Heuristic Technique –
Heuristic word is derived from a Greek word that means “to discover”.
The heuristic technique is a technique or model that is used for solving
problems, learning, or discovery in the practical methods which are used
for achieving immediate goals. These techniques are flexible and simple
for taking quick decisions through shortcuts and good enough
calculations, most probably when working with complex data. But the
decisions that are made using this technique are necessary to be optimal.
Third, if there is no such time available, then the work is estimated based
on the experience of the work. In this technique, results are derived by
making certain basic assumptions about the project. Hence, the analytical
estimation technique has some scientific basis.
COCOMO (Constructive Cost Model) is a regression model based on
LOC, i.e number of Lines of Code. It is a procedural cost estimate model for
software projects and often used as a process of reliably predicting the various
parameters associated with making a project such as size, effort, cost, time and
quality. It was proposed by Barry Boehm in 1970 and is based on the study of
63 projects, which make it one of the best-documented models.
The key parameters which define the quality of any software products, which
are also an outcome of the Cocomo are primarily Effort & Schedule:
Different models of Cocomo have been proposed to predict the cost estimation
at different levels, based on the amount of accuracy and correctness required.
All of these models can be applied to a variety of projects, whose characteristics
determine the value of constant to be used in subsequent calculations. These
characteristics pertaining to different system types are mentioned below.
All the above system types utilize different values of the constants used in
Effort Calculations.
The first level, Basic COCOMO can be used for quick and slightly rough
calculations of Software Costs. Its accuracy is somewhat restricted due to the
absence of sufficient factor considerations.
Intermediate COCOMO takes these Cost Drivers into account and Detailed
COCOMO additionally accounts for the influence of individual project phases,
i.e in case of Detailed it accounts for both these cost drivers and also
calculations are performed phase wise henceforth producing a more accurate
result. These two models are further discussed below.
1. Basic Model –
The above formula is used for the cost estimation of for the basic COCOMO
model, and also is used in the subsequent models. The constant values a,b,c
and d for the Basic Model for the different categories of system:
These formulas are used as such in the Basic Model calculations, as not
much consideration of different factors such as reliability, expertise is
taken into account, henceforth the estimate is rough.
Intermediate Model –
The basic Cocomo model assumes that the effort is only a function of the
number of lines of code and some constants evaluated according to the different
software system. However, in reality, no system’s effort and schedule can be
solely calculated on the basis of Lines of Code. For that, various other factors
such as reliability, experience, Capability. These factors are known as Cost
Drivers and the Intermediate Model utilizes 15 such drivers for cost estimation.
Analyst capability
Software engineering capability
Applications experience
Virtual machine experience
Programming language experience
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.