Cs8484-Software Engineering Department of Cse
Cs8484-Software Engineering Department of Cse
Cs8484-Software Engineering Department of Cse
UNIT V
PROJECT MANAGEMENT
5.1.3The Process
A software process provides the framework from which a comprehensive plan for software
development can be established.
A small number of framework activities are applicable to all software projects, regardless of their
size or complexity.
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.
Finally, umbrella activities—such as software quality assurance, software configuration
management, and measurement—overlay the process model.
Umbrella activities are independent of any one framework activity and occur throughout the
process.
5.1.4 The Project:
In order to manage a successful software project, you have to understand what can go wrong so
that problems can be avoided.
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.
2
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
Where,
(size) S
optimistic(sopt),
most likely (sm), and
pessimistic (spess)
3
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
4
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
Solution:
For estimating the given application we consider each module as separate function and
corresponding lines of code can be estimated in the following table as
5
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
Each of the complexity weighting factors is estimated, and the value adjustmentfactor is computed.
6
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
The organizational average productivity for systems of this type is 6.5 FP/pm.
Based on a burdened labour rate of $8000 per month, the cost per FP is approximately
$1230.Based on the FP estimate and the historical productivity data, the total estimated project
cost is $461,000 and the estimated effort is 58 person-months.
7
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
Based on the probability and projected costs that in Figure , the lowest expected cost is the
“buy” option.
5.4.2 Outsourcing
Outsourcing is extremely simple. Software engineering activities are contracted to a third party
who does the work at lower cost and, hopefully, higher quality.
The decision to outsource can be either strategic or tactical.
At the strategic level, business managers consider whether a significant portion of all software
work can be contracted to others.
At the tactical level, a project manager determines whether part or all of a project can be best
accomplished by subcontracting the software work.
Benefits of outsourcing:
If the software is outsourced then people and resource utilization can be reduced.
Drawbacks of outsourcing:
The trend of outsourcing will be continued in software industry in order to survive in competitive
world.
to develop a software product. COCOMO predicts the efforts and schedule of a software product
based on size of the software. COCOMO stands for "ConstructiveCostMOdel".
COCOMO has three different models that reflect the complexity –
Basic model
Intermediate model
Detailed model.
Similarly there are three classes of software projects.
1) Organic mode: In this mode, relatively small, simple software projects with a small
team are handled. Such a team should have good application experience to less rigid requirements.
2) Semi-detached projects: In this class an intermediate projects in which teams with
mixed experience level are handled. Such projects may have mix of rigid and less than rigid
requirements.
3) Embedded projects: In this class, projects with tight hardware, software and
operational constraints are handled.
Let us understand each model in detail.
1) Basic model: The basic COCOMO model estimates the software development effort using only
Lines of Code. Various equations in this model are –
9
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
2. The estimates of COCOMO model are within a factor of 1.3 only 29 % of the time and within
the factor of 2 only 60 % of time.
Example
Consider a software project using semi-detached mode with 30,000 lines of code. We will obtain
estimation for this project as follows
i) Effort estimation
2) Intermediate model
This is an extension of Basic COCOMO model. This estimation model makes use set of "Cost
driver attributes" to compute the cost of software.
The effort multipliers for each cost driver attribute are as given in following table. The product of
all effort multipliers result in "Effort Adjustment Factor" (EAF).
The formula for effort calculation can be-
E=ai(KLOC) * EAF person months
The values for ai and bi for various class of software projects are-
11
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
P = E/ D
= 191/13
P = 15 persons approximately
3) Detailed COCOMO model
The detailed model uses the same equations for estimation as the Intermediate Model. But detailed
model can estimate the effort (E), duration (D) and persons (P) of each of development phases,
subsystems, modules.
The experimentation with different development strategies is allowed in this model.
Four phases used in detailed COCOMO model are
1. Requirements Planning and Product Design (RPD)
2. Detailed Design (DD)
3. Code and Unit Test (CUT)
4. Integrate and Test (IT)
The effort multipliers for detailed COCOMO are
12
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
The object point is an indirect software measure that is computed using counts of the number of
(1) screens (at the user interface), (2) reports, and (3) components likely to be required to build
the application.
The object point count is then determined by multiplying the original number of object instances
by the weighting factor in the figure and summing to obtain a total object point
count. When component-based development or general software reuse is to be applied, the percent
of reuse (%reuse) is estimated and the object point count is adjusted:
Figure 5.6 presents the productivity rate for different levels of developer experience and
development environment maturity.
In more advanced COCOMO II models, a variety of scale factors, cost drivers, and adjustment
procedures are required.
5.7 SOFTWARE PROJECT SCHEDULING
Software project scheduling is an action that distributes estimated effort across the planned project
duration by allocating the effort to specific software engineering tasks.
13
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
14
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
16
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
3. Next, the value for budgeted cost of work performed (BCWP) is computed. 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.
Difference between the BCWS and the BCWP:
BCWS - represents the budget of the activities that were planned to be completed
BCWP - represents the budget of the activities that actually were completed.
Given values for BCWS, BAC, and BCWP, important progress indicator scan be computed:
SPI is an indication of the efficiency with which the project is utilizing scheduled resources.
An SPI value close to 1.0 indicates efficient execution of the project schedule.
SV is simply an absolute indication of variance from the planned schedule.
Provides an indication of the percentage of work that should have been completed by time t.
Provides a quantitative indication of the percent of completeness of the project at a given point in
time t.
It is also possible to compute the actual cost of work performed (ACWP).
The value for ACWP is the sum of the effort actually expended on work tasks that have been
completed by a point in time on the project schedule.
It is then possible to compute
A CPI value close to 1.0 provides a strong indication that the project is within its defined budget.
CV is an absolute indication of cost savings (against planned costs) or shortfall at a particular stage
of a project.
Thus EVA ultimately helps the project manager to take the appropriate corrective actions.
17
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
• PP is the application of knowledge, skills, tools, and techniques to project activities to meet project
requirements.
• Software engineering is a managed process. The software development takes place within an
organization and is subject to a range of schedule, budget, and organizational constraints. Project
planning process:
Establish the project constraints
Make initial assessments of the project parameters
Define project milestones and deliverables
while project has not been completed or cancelled loop
Draw up project schedule
Initiate activities according to schedule
Wait ( for a while )
Review project progress
Revise estimates of project parameters
Update the project schedule
Re-negotiate project constraints and deliverables
if ( problems arise ) then
Initiate technical review and possible revision
end if
end loop
18
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
19
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
Proactive strategy:
A proactive strategy begins long before technical work is initiated.
Potential risks are identified, their probability and impact are assessed, and they are ranked by
importance. Then, the software team establishes a plan for managing risk.
The primary objective is to avoid risk, but because not all risks can be avoided, the team works to
develop a contingency plan that will enable it to respond in a controlled and effective manner.
Various activities that are carried out for risk management are-
1. Risk Identification
2. Risk Projection
3. Risk Refinement
4. Risk mitigation, monitoring and management
Performance risk—the degree of uncertainty that the product will meet its requirements and be
fit for its intended use.
Cost risk—the degree of uncertainty that the project budget will be maintained.
Support risk—the degree of uncertainty that the resultant software will be easy to correct, adapt,
and enhance.
Schedule risk—the degree of uncertainty that the project schedule will be maintained and that
the product will be delivered on time.
Assessing Overall Project Risk:
The following questions have been derived from risk data obtained by surveying experienced
software project managers in different parts of the world.
The questions are ordered by their relative importance to the success of a project.
1. Have top software and customer managers formally committed to support the project?
2. Are end users enthusiastically committed to the project and the system/product to be built?
3. Are requirements fully understood by the software engineering team and its customers?
4. Have customers been involved fully in the definition of requirements?
5. Do end users have realistic expectations?
6. Is the project scope stable?
7. Does the software engineering team have the right mix of skills?
8. Are project requirements stable?
9. Does the project team have experience with the technology to be implemented?
10. Is the number of people on the project team adequate to do the job?
11. Do all customer/user constituencies agree on the importance of the project and on the
requirements for the system/product to be built?
5.10.2 Risk Projection:
Risk projection, also called risk estimation, attempts to rate each risk in two ways—
(1) The likelihood or probability that the risk is real and
(2) The consequences of the problems associated with the risk, should it occur.
Managers and technical staff to perform four risk projection steps:
1. Establish a scale that reflects the perceived likelihood of a risk.
2. Delineate the consequences of the risk.
3. Estimate the impact of the risk on the project and the product.
4. Assess the overall accuracy of the risk projection so that there will be no misunderstandings.
5.10.2.1 Developing A Risk Table:
A risk table provides you with a simple technique for risk projection. A sample risk table is
illustrated in Figure 5.10
The probability of occurrence of each risk is entered in the next column of the table.
The probability value for each risk can be estimated by team members individually.
Next, the impact of each risk is assessed.
The categories for each of the four risk components—performance, support, cost, and schedule—
are averaged to determine an overall impact value.
Once the first four columns of the risk table have been completed, the table is sorted by probability
and by impact.
21
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
22
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
(1) determine the average probability of occurrence value for each risk component;
(2) Determine the impact for each component based on the criteria shown, and
(3) Complete the risk table and analyze the results
The overall risk exposure RE is determined using the following relationship
RE=PXC
where P is the probability of occurrence for a risk, and C is the cost to the project should the risk
occur.
5.10.3 Risk Refinement:
Risk refinement is a process of specifying the risk. The risk refinement can be represented using
CTC format.
The CTC stands for condition-transition-consequence.
The condition is first stated and then based on this condition sub conditions can be derived.
Then determine the effects of these sub conditions in order to refine the risk. This refinement helps
in exposing the underlying risks.
This approach makes it easier for the project manager to analyze the risk in greater detail.
5.10.4 Risk Mitigation, Monitoring, and Management(RMMM)
An effective strategy must consider three issues:
Risk avoidance,
Risk monitoring, and
Risk management
Risk Mitigation:
Risk mitigation means preventing the risks to occur (risk avoidance). Following are the steps to
be taken for mitigating the risks.
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.
Risk Monitoring:
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.
In addition to monitoring these factors, a project manager should monitor the effectiveness of risk
mitigation steps.
23
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
This is one mechanism for ensuring continuity, should a critical individual leave the project.
The project manager should monitor work products carefully to ensure that each can stand on its
own and that each imparts information that would be necessary if a newcomer were forced to join
the software team somewhere in the middle of the project.
Risk Management:
Risk management and contingency planning assumes that mitigation efforts have failed and that
the risk has become a reality.
Continuing the example, the project is well under way and a number of people announce that they
will be leaving.
If the mitigation strategy has been followed, backup is available, information is documented, and
knowledge has been dispersed across the team.
In addition, you can temporarily refocus resources (and readjust the project schedule) to those
functions that are fully staffed, enabling newcomers who must be added to the team to “get up to
speed.”
Those individuals who are leaving are asked to stop all work and spend their last weeks in
“knowledge transfer mode.”
This might include video-based knowledge capture, the development of “commentary documents
or Wikis,” and/or meeting with other team members who will remain on the project. THE 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
(RMMM).
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.
Each risk is documented individually using a risk information sheet (RIS). In most cases, the
RIS is maintained using a database system so that creation and information entry, priority ordering,
searches, and other analysis may be accomplished easily.
The format of the RIS is illustrated in Figure 5.12
24
2020-2021 Jeppiaar Institute of Technology
CS8484-SOFTWARE ENGINEERING Department of CSE
25
2020-2021 Jeppiaar Institute of Technology
CS8484-Software Engineering Department of CSE