Software Engineering
Mattu University
Engineering and Technology College
Department of Computer Science
Software
Engineering
Target Dept.:- Computer Science 3rd year Regular
Lecture Four
Software Project Management
Take off your engineering hat and put on your
management hat.
Engineering and Technology College Mattu University
Worku B. (Department of Computer Science)
Outline
4: Software Project management (6 hours)
4.1. Responsibility of Software Project Managers
4.2. Project Planning
4.3. The organization of SPMP document
4.4. Project Size Estimation Metrics
4.5. Project Estimation Techniques
4.6. Scheduling, Organization and Team Structures
4.7. Staffing
4.8. Risk Management
4.9. Quality Assurance
4.10. Project Monitoring Plans
Engineering and Technology College Mattu University
4.1. Software Project Management: Overview
Project management ensures the delivery of a quality system
on time and within budget.
The main components of this definition are quality, time, and
money.
Ensuring delivery within budget requires a manager to
estimate and assign the resources required by the project in terms
of participants, training, and tools.
Ensuring on-time delivery requires a manager to plan work
effort and to monitor the status of the project in terms of tasks and
work products.
Finally, ensuring quality requires a project manager to provide
problem reporting mechanisms and monitor the status the product
in terms of defects and risks.
Software Project Management …
The image above shows triple constraints for
software projects.
It is an essential part of software organization to
deliver quality product, keeping the cost within
client’s budget constrain and deliver the
project as per scheduled.
Software Project Management …
Software Project manager
is a person who undertakes the responsibility of executing the
software project.
Software project manager is thoroughly aware of all the phases of
SDLC that the software would go through.
A project manager:
closely monitors the development process,
prepares and executes various plans,
arranges necessary and adequate resources,
maintains communication among all team members in order to
address issues of cost, resources, time, quality and customer
satisfaction.
Software Project Management …
Few responsibilities of Software Project manager
Managing People:
Act as project leader
Liaison with stakeholders
Managing human resources
Setting up reporting hierarchy etc.
Managing Project:
Defining and setting up project scope
Managing project management activities
Monitoring progress and performance
Risk analysis at every phase
Take necessary step to avoid or come out of problems
Act as project spokesperson
4.2. Software Project Management Activities
Cont’d…
Project Planning
Types of Project Plan
Project planning process
The project plan
The project plan structure
Activity Organization
Milestone in requirement process
4.3. The organization of SPMP document
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
4.4. Project Size Estimation Metrics
Software size is the key input to most
software cost estimating methodologies.
We can measure size by counting number of
lines of code (LOC)
It’s somewhat like measuring the human size
by measuring height:
The height will tell whether the person will bumb
his head when entering a door-way.
It won’t tell whether the person is slim.
Cont’d…
Cont’d…
Cont’d…
Cont’d…
To Understand Scope ...
Understand the customers needs
understand the business context
understand the project boundaries
understand the customer’s motivation
understand the likely paths for change
understand that ...
Even when you understand, nothing is
guaranteed!
Cont’d…
What is Scope ?
Software scope describes
the functions and features that are to be delivered
to end-users
the data that are input and output
the “content” that is presented to users as a
consequence of using the software
the performance, constraints, interfaces, and
reliability that bound the system.
Scope is defined using one of two techniques:
• A narrative description of software scope is developed
after communication with all stakeholders.
• A set of use-cases is developed by end-users.
4.5. Project Estimation Techniques
“The single most important task
of a project: setting realistic
expectations.
Unrealistic expectations based
on inaccurate estimates are
the single largest cause of
software failure.”
Futrell, Shafer and Shafer, “Quality Software Project Management”
Cont’d…
Project manager can estimate the listed factors
using two broadly recognized techniques:
1. Decomposition Technique
This technique assumes the software as a product of
various compositions.
Uses “Divide and conquer” approach
There are two main models -
Line of Code (LOC) Estimation is done on behalf
of number of line of codes in the software product.
Function Points (FP) Estimation is done on
behalf of number of function points in the software
product.
cont’d…
2. Empirical Estimation Technique
This technique uses empirically derived formulae to
make estimation.
These formulae are based on LOC or FPs.
Putnam Model
This model is made by Lawrence H. Putnam, which is
based on Norden’s frequency distribution (Rayleigh
curve).
Putnam model maps time and efforts required with
software size.
COCOMO
COCOMO stands for COnstructive COst MOdel,
developed by Barry W. Boehm. It divides the software
product into three categories of
software:organic,semi-detached and embedded.
Is the most widely used software estimation model in the world.
Software Cost Estimation
Software cost estimation is the process of
predicting the amount of effort required to
build a software system.
Cost estimates are needed throughout the
software lifecycle.
Software project managers must estimate how
much a software development is going to
cost for the project budget.
Software Cost Estimation
For estimating project cost, it is required to consider -
Size of software
Hardware and software quality.
Travel, training and support costs.
Communication
Additional software or tools, licenses etc.
Effort costs (the dominant factor in most projects)
The salaries of engineers involved in the project;
Social and insurance costs.
Effort costs must take overheads into account
Costs of building, heating, lighting.
Costs of networking and communications.
4.6. Scheduling, organization and team structure
Project Scheduling
4.6.1. Project Scheduling…
For scheduling a project, it is necessary to -
Break down the project tasks into smaller,
manageable form
Find out various tasks and correlate them
Estimate time frame required for each task
Divide time into work-units
Assign adequate number of work-units for each task
Calculate total time required for the project from
start to finish
Project Scheduling…
The Project Scheduling Process
Project Scheduling…
Scheduling Problem
Cont’d…
Cont’d…
Cont’d…
Activity network
Activity timeline (grant chart)
Staff allocation
4.6.2. Team Structure
Cont’d…
1. The people (players)
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Cont’d…
Causes of project success and failure
Cont’d…
4.7. Staffing
Is the process of finding the right worker with
appropriate qualification or experience.
And recruiting them to fill a job position or
role.
Importance of Staffing
It helps in the finding out efficient and effective
work fence,
It improves organizations performance and
productivity by appointing the right person at the
right job.
It ensures continuous survival and growth of the
organization,
Cont’d…
Process of Staffing
4.8. Risk Management
Software risks
Risk management process
Cont’d…
Risk identification
Risk and Risk Types
Risk analysis
Cont’d…
Cont’d…
Risk planning
Risk management strategies
Cont’d…
Risk Monitoring
Risk indicators
4.9. Quality Assurance
Software Quality
Is defined as the quality that ensures
customer satisfaction by offering all the
customer deliverables on performance,
standards and ease of operations.
Quality Assurance
Is a system of activities designed to ensure
production that meets pre-established
requirements and standards.
Cont’d…
What is “Quality”?
IEEE: Degree to which a system, component,
or process meets (1) specific requirements,
and (2) customer need or expectation.
ISO: the totality of features and
characteristics of a product or service that
bear on its ability to satisfy specified or
implied needs.
Cont’d…
Quality Control
What is quality control?: the series of
inspections, reviews, and test used
throughout the develop cycle of a software
product.
objective: minimize the produced defects,
increase the product quality
Cont’d…
What is Software Quality Assurance
(SQA) ?
Set of systematic activities providing
evidence of the ability of the software
process to produce a software product
that is fit to use.
4.9. Project Management Tools
There are tools available, which aid for effective
project management. A few are described -
1. Gantt Chart
Gantt charts was devised by Henry Gantt (1917).
It represents project schedule with respect to time
periods.
It is a horizontal bar chart with bars representing
activities and time scheduled for the project
activities.
Project Management Tools…
2. PERT Chart
PERT (Program Evaluation & Review Technique) chart is
a tool that depicts project as network diagram.
It is capable of graphically representing main events of
project in both parallel and consecutive way.
Events, which occur one after another, show dependency
of the later event over the previous one.
Events are shown as numbered nodes. They are
connected by labelled arrows depicting sequence of tasks
in the project.
Project Management Tools…
3. Resource Histogram
This is a graphical tool that contains bar or chart
representing number of resources (usually skilled
staff) required over time for a project event (or
phase).
Resource Histogram is an effective tool for staff
planning and coordination.
The End
93
CHAPTER FOUR
QUESTIONS ????