Uploaded by shahad d2021

Chapter 6 - Software Project Management

advertisement
Introduction to Software Engineering
CSSE2101/ITSE202
Chapter 6
Software Project
Management
Learning
Outcome
s Covered
LOC 10: Examine cost estimation
techniques, software project
scheduling, scope,
communication, configuration
monitoring, and risk
management for software
projects.
LOC 13: Use project management and case tools.
At the end of this module, the students
will be able to:
Objectives
●Understand the concept of project
management
●Apply various estimation techniques
●Identify the risk categories and able to
apply risk management stages
● Complete procedure of software development from
requirement gathering to testing and maintenance.
Softwar
e Project
● Specified period of time to achieve intended software
product.
● Every project may has a unique and distinct goal.
● Project comes with a start time and end time.
● Project ends when its goal is achieved hence it is a
temporary phase in the lifetime of an organization.
● Project needs adequate resources in terms of time,
manpower, finance, material and knowledge-bank.
Need of software project management
●Software project management is essential
to incorporate user requirements along with
budget and time constraints.
⮚ It is an essential part of software
organization to deliver quality
product
Triple constraint triangle
⮚ keeping the cost within client’s
budget constrain and deliver the
project as per scheduled
⮚ Any of three factor can severely
impact the other two.
Software
Project Manager
●Person who undertakes the
responsibility of executing the
software project.
●Aware of all the phases of SDLC that
the software would go through.
●Controls and manages the activities
involved in production
Responsibilities
of Software
Project Manager
Managing People
Managing Project
● Act as project leader
⚫ Defining and setting up
● Liaison with
stakeholders
● Managing human
resources
● Setting up reporting
hierarchy etc.
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
1.
1. Project Planning
The task is performed before the production
of software actually starts.
It is a set of multiple processes, which
facilitates software production.
2.
2. Scope Management
Scope management is essential because it
creates boundaries for the project by clearly
defining what would be done in the project
and what would not be done.
This makes the project contain limited and
quantifiable tasks, which can easily be
documented and avoids cost and time
overrun.
Software
Managemen
Activities
3. Project
Estimation
●For an effective management
accurate estimation of various
measures is a must.
●With correct estimation managers
can manage and control the project
more efficiently and effectively.
1. Software Size Estimation
●Software size may be estimated
either in terms of KLOC (Kilo Line of
Code) or by calculating number of
function points in the software.
●Lines of code depend upon coding
practices and Function points vary
according to the user or software
requirement.
2. Effort Estimation
3. Project
Estimation
●The managers estimate efforts in terms
of personnel requirement and man-hour
required to produce the software.
●For effort estimation software size
should be known.
●This can either be derived by managers
experience, organization historical data
or software size can be converted into
efforts by using some standard formulae.
3. Time Estimation
● Once size and efforts are estimated, the time required to
produce the software can be estimated.
3. Project
Estimation
● Efforts required are segregated into sub categories as per
the requirement specifications and interdependency of
various components of software. Software tasks are divided
into smaller tasks, activities or events by Work Breakthrough
Structure (WBS).
● The tasks are scheduled on day-to-day basis or in calendar
months.
● The sum of time required to complete all tasks in hours or
days is the total time invested to complete the project
4. Cost Estimation
This might be considered as the most difficult of all because it
depends on more elements than any of the previous ones. For
estimating project cost, it is required to consider –
3. Project
Estimation
o Size of software
o Software quality
o Hardware
o Additional software or tools, licenses etc.
o Skilled personnel with task-specific skills
o Travel involved
o Communication
o Training and support
Estimation
techniques
●Productivity in a manufacturing system
can be measures by counting the
number of units which are produced
and dividing this by number of personhours required to produce them.
Productivity = no. of units produced /
no. of person hrs. required
There are two types of measure
1.
2.
Size-related measures
Function-related measures
SizeRelated
Measures
●These are related to the size of some
output from an activity.
●The most related size measure is lines of
delivered source code.
●Lines of source code per programmermonth are a widely-used metric in
productivity measurement.
●This is computed by using the formula
Total Number of Lines / Total Time in programmer in
months
Size-Related
Measures
●These are related to overall
functionality of the delivered software.
SizeRelated
Measures
●Function points(FP) are basic data from
which productivity metrics could be
computed.
●Function Points (FP) can be computed
by adding all the Component value from
the below table based on Level of
Complexity
Function-Related
Measures
●To compute FP for Average
Complexity
●FP = (4*Inp) + (5*Out) + (4* Inq) +
(10*Maf) + (7*Inf)
Inp= input items
Out=output items
Inq=inquiries
Maf=Master files
Inf=Interface
Example 1
Suppose that Ada program needs 70 LOC per FP. A system with, 10
inputs, 10 outputs, 5 Inquiries, 4 Files and 2 Interfaces and level of
complexity is considered as average. Calculate the total FP?
FP= ( 10 * 4 ) + ( 10 * 5 ) + ( 5 * 4 ) + ( 4 * 10 ) + ( 2 * 7 ) = 164
And the estimated Size would be equal to:
Size = FP * 70
= 164 * 70 = 11480 LOC
Example 2
Assume that you are going to work on a simple project for the
Ministry of Higher Education which will have 8 inputs, 11 outputs,
6 inquiries, 7 master files and 9 interfaces. Consider the values on
the table below and calculate the function points for this project.
FP=( ip*3)+(op*4)+(inq*3)+(maf*7)+(intf*5)
=(8*3) + (11*4) + (6*3) + (7*7)+ (9*5)
=24 + 44 + 18 + 49 + 45
=180
For Given lines of code/FP, we can calculate
the total number of LOC for the Project.
Project Size = FP*LOC
• Mathematical formula is used to
predict costs based on estimates of
project size, number of programmers
and other process and product
Algorithmic features.
Cost
Estimation
• The task of software cost estimation is
to determine how many resources are
needed to complete the project.
• COCOMO Model (Constructive Cost
Model) is one of the most widely used
software cost estimation models in the
industry
1. Basic COCOMO
2. Intermediate COCOMO
3. Detailed COCOMO
Types of
COCOMO
⮚Basic COCOMO
Basic COCOMO is a static, singlevalued model that computes software
development effort (and cost) as a
function of program size expressed in
estimated lines of code.
COCOMO
applies to 3
classes of
software
projects:
●Organic projects - are relatively small,
simple software projects in which small
teams with good application experience
work to a set of less than severe
requirements.
●Semi-detached projects - are intermediate
(in size and complexity) software projects in
which teams with mixed experience levels
must meet a mix of rigid and less-than-rigid
requirements.
●Embedded projects - are software projects
that must be developed within a set of tight
hardware, software, and operational
constraints.
BASIC COCOMO
The Basic Model makes its estimates of required effort (
measured in Person-Months PM ) based primarily on
your estimate of the software project's size ( as
measured in thousands of Delivered Source Instructions
KDSI ):
Effort(E) = ab * ( KDSI )bb
The Basic model also presents an equation for
estimating the development schedule (Time of Develop
TDEV ) of the project in months:
TDEV= cb * ( E )db
Where: E - effort applied in person-months
TDEV - Development time in months
BASIC COCOMO
The coefficients ab, bb, cb and db are given in the
following table.
Exercise 1
●A large chemical products company, is
planning to develop a new computer
program to keep track of raw materials. An
initial study has determined that the size of
the program will be roughly 32,000
delivered source instructions. This project is
a good example of an organic-mode
software project. Using the Basic COCOMO
equations for this development mode we
have:
Exercise 1
Effort:
Effort(E) = 2.4*(32)1.05 = 91 Person-Months(PM)
Productivity: Productivity is calculated as
DSI/Effort.
32000 DSI / 91 PM = 352 DSI / PM
Schedule:
TDEV = 2.5 * ( 91 )0.38 = 14 Months
After estimating the duration of the project the
manager can easily determine how many persons in
the average must be put on the project:
Average Staffing:
Average staffing = (E/TDEV)
= 91 Person-Months / 14 Months = 6.5 FSP( Full Time
equivalent Software Personnel )
Exercise 2
Assume that you are developing an embedded project for “Home-Based Learning
System” of Muscat University that contains seven (7) modules. The sizes of the modules
are as follow:
Module 1: 2200 LOC
Module 2: 1250 LOC
Module 3: 2.5 KLOC
Module 4: 1.25 KLOC
Module 7: 3.25 KLOC
Module 5: 2650 LOC
Module 6: 1240 LOC
Using Basic COCOMO, calculate for the following values. Show your solution.
a. TOTAL LOC
b. Effort Applied(E):
c. Productivity:
d. Time Duration(TDEV):
e. Average Staffing:
Exercise 2
a.Total LOC:
d. Time Duration(TDEV):
2200 + 1250 + 2500 + 1250 + 2650 +
TDEV = cb * ( E ) db
1240 + 3250 = 14,340 LOC or 14.34 KLOC
= 2.5 * 88 ^.32
b. Effort Applied(E):
= 10.47 or 10 Months
E = ab * (KDSI) bb
e. Average Staffing:
= 3.6 * (14.34) 1.20
Avg_Staff = E/TDEV
= 87.93 or 88 PM
c. Productivity:
P = DSI/Effort
= 14,340 DSI/88PM
= 162.95 or 163DSI/PM
= 88/10
= 8.8 or 9 FSP
BASIC
COCOMO
Advantages of COCOMO
●COCOMO is transparent we can see
how it works.
●Drivers are particularly helpful to the
estimator to understand the impact of
different factors that affect project
costs.
Drawbacks of COCOMO
●It is hard to accurately estimate, when
most effort estimates are required.
●It does not account for differences in
hardware constraints
Project
Scheduling
●Project Scheduling in a project refers to
roadmap of all activities to be done with
specified order and within time slot allotted
to each activity.
● Project managers tend to define various
tasks, and project milestones and they
arrange them keeping various factors in
mind.
●They look for tasks lie in critical path in the
schedule, which are necessary to complete
in specific manner (because of task
interdependency) and strictly within the
time allocated.
●Arrangement of tasks which lies out of
critical path are less likely to impact overall
schedule of the project.
Project Management Tools
Microsoft Project
●Microsoft Project is a project management software
program developed and sold by Microsoft
●Designed to assist a project manager in developing a
schedule, assigning resources to tasks, tracking progress,
managing the budget and analyzing workloads.
●Visualize your project plan in standard defined formats.
●Schedule tasks and resources consistently and effectively.
●Track information about the work, duration, and resource
requirements for your project.
●Generate reports to share in progress meetings.
Project Communication
Effective communication plays a vital role in the success of a project. It bridges
gaps between the client and the organization, among the team members as well
as other stakeholders in the project such as hardware suppliers.
● Planning - This step includes the identification of all the stakeholders in
the project and the mode of communication among them. It also considers
if any additional communication facilities are required.
● Sharing - After determining various aspects of planning, the manager
focuses on sharing the correct information with the correct person at the
correct time. This keeps everyone involved in the project up to date with
the project’s progress and its status.
● Feedback - Project managers use various measures and feedback
mechanisms and create status and performance reports. This mechanism
ensures that input from various stakeholders is coming to the project
manager as their feedback.
● Closure - At the end of each major event, end of a phase of SDLC, or end
of the project itself, administrative closure is formally announced to
update every stakeholder by sending an email, distributing a hardcopy of
document, or by another means of effective communication.
Project Resource Management
● All
elements used to develop a software product may be
assumed as resource for that project.
●This may include human resource, productive tools and software
libraries.
●The resources are available in limited quantity and stay in the
organization as a pool of assets.
●The shortage of resources hampers the development of project
and it can lag behind the schedule. Allocating extra resources
increases development cost in the end.
●It is therefore necessary to estimate and allocate adequate
resources for the project.
Configuration Management
●Configuration management is a process of tracking and
controlling the changes in software in terms of the requirements,
design, functions and development of the product.
●The process of identifying and defining the items in the system,
controlling the change of these items throughout their life cycle,
recording and reporting the status of items and change requests,
and verifying the completeness and correctness of items”.
●Generally, once the SRS is finalized there is less chance of
requirement of changes from user. If they occur, the changes are
addressed only with prior approval of higher management, as
there is a possibility of cost and time overrun.
● Series of steps that help a software team to
understand and manage uncertainty
Project Risk
Management
● Everyone involved in the software process – managers,
engineers and customers participate in risk analysis
and management
1. Project risks- Risks that affect the project schedule
or resources.
● Example: Loss of experienced designer
● Finding a replacement designer with appropriate
skills and experience may take a long time.
Categories
of risks:
2. Product risks
● Risks that affect the quality or performance of
the software being developed
● Example: Failure of a purchased component to
perform as expected
● May affect overall performance of the system
3. Business risks
● Risks that affect organization developing or
procuring the software
● Example: A competitor introducing a new
product is a business risk
Risk
Management
– Project,
Product and
Business
Risks
Risk Management Stages
●Risk identification: Should identify possible project,
product and business risks
●Risk analysis: Should assess the likelihood and
consequences of these risks
●Risk planning: Should make plans to address the risk
either by avoiding it or minimizing its effects on the
project
●Risk monitoring: Should regularly assess the risk and
plans for risk avoidance, revise when you learn about
risk
Download