3CS4 Se Unit 2
3CS4 Se Unit 2
Engineering
3rd Sem,
-*.0
2nd Year
Computer
Science
Presented By:
Priyanka Natani
Table of Content:
Introduction
What is Project?
What are characteristics of Project?
Software Project
Need of Software Project Management
Software Project Manager
Responsibilities of a Project Manager
Presented By:
Priyanka Natani
Software Management Activities
Project Planning
Scope Management
Project Estimation
Project Estimation
Project Estimation Technique
Decomposition Technique
*Lines of Code
*Function Point
#Function Point Analysis
Presented By:
Priyanka Natani
Difference Between Function Point and Lines of Code
Emperical Estimation Technique
*PUTNAM Model
*COCOMO Model
Constructive Cost Model(COCOMO)
Characterization of COCOMO Model
*Organic
*Semidetached
*Embedded
Types of COCOMO Model
Presented By:
Priyanka Natani
*Basic
*Intermediate
*Detailed
PUTNAM Model
Software Project Scheduling
Process
Problem arise during software development stage
Resources required for development of project
Advantages of project scheduling
Presented By:
Priyanka Natani
Introduction
The job pattern of an IT company engaged in software
development can be seen split in two parts:
Software Creation
Software Project Management
Presented By:
Priyanka Natani
What is Project
A project is well-defined task, which is a collection of several
operations done in order to achieve a goal (for example,
software development and delivery).
Presented By:
Priyanka Natani
A Project can be characterized as:
Every project may has a unique and distinct goal.
Presented By:
Priyanka Natani
Project is not routine activity or day-to-day operations.
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.
Presented By:
Priyanka Natani
Software Project
Presented By:
Priyanka Natani
Need of software project
management
Presented By:
Priyanka Natani
requirements. The most important is that the underlying
technology changes and advances so frequently and rapidly that
experience of one product may not be applied to the other one.
All such business and environmental constraints bring risk in
software development hence it is essential to manage software
projects efficiently.
Presented By:
Priyanka Natani
The image above shows triple constraints for software
projects. It is an essential part of software organization to
Presented By:
Priyanka Natani
deliver quality product, keeping the cost within client’s budget
constrain and deliver the project as per scheduled.
There are several factors, both internal and external, which
may impact this triple constrain triangle. Any of three factor
can severely impact the other two.
Presented By:
Priyanka Natani
Therefore, software project management is essential to
incorporate user requirements along with budget and time
constraints.
Software Project Manager
Presented By:
Priyanka Natani
shoulders
Managing
People
Managing
PresentedProject
By:
Priyanka Natani
Managing People
•Act as project leader
•Liaison with stakeholders
•Managing human resources
•Setting up reporting hierarchy etc.
Presented By:
Priyanka Natani
Managing Project
Presented By:
Priyanka Natani
Project Planning
Scope Management
Project Estimation
Presented By:
Priyanka Natani
Scope
Management
Project
Planning
Project
Estimation
Presented By:
Priyanka Natani
Software Management
Activities
Project Planning
Presented By:
Priyanka Natani
a set of multiple processes, which facilitates software
production.
Scope Management
Presented By:
Priyanka Natani
Divide the project into various smaller parts for ease of
management.
Verify the scope
Control the scope by incorporating changes to the scope
Project Estimation
Presented By:
Priyanka Natani
Software size estimation
Presented By:
Priyanka Natani
Effort estimation
Presented By:
Priyanka Natani
Time estimation
Presented By:
Priyanka Natani
Hardware
Additional software or tools, licenses etc.
Skilled personnel with task-specific skills
Travel involved
Communication
Training and support
Presented By:
Priyanka Natani
Project Estimation Techniques
Presented By:
Priyanka Natani
Decomposition Technique
Empirical Estimation Technique
Presented By:
Priyanka Natani
Project
Estimation
Techniques
Empirical
Decomposition Estimation
Technique Technique
Presented By:
Priyanka Natani
Decomposition Technique
This technique assumes the software as a product of various
compositions.
Presented By:
Priyanka Natani
LOC is often used in these kinds of arguments, where
developers and other related personnel talk about whether
“bigger is better” or whether a software codebase should “go on
a diet.”
The units of LOC are:
KLOC- Thousand lines of code
NLOC- Non comment lines of code
Presented By:
Priyanka Natani
KDSI- Thousands of delivered source instruction
NLOC
KLOC
KDSI
Presented By:
Priyanka Natani
Advantages:
Universally accepted and is used in many models like
COCOMO.
Estimation is closer to developer’s perspective.
Simple to use.
Disadvantages:
Different programming languages contains different number
of lines.
Presented By:
Priyanka Natani
No proper industry standard exist for this technique.
It is difficult to estimate the size using this technique in
early stages of project.
Function Point Analysis :
Presented By:
Priyanka Natani
Count the number of functions of each proposed type:
Find the number of functions belonging to the following types:
▪External Inputs : Functions related to data entering the
system.
▪External outputs : Functions related to data exiting the
system.
▪External Inquiries: They leads to data retrieval from
system but don’t change the system.
Presented By:
Priyanka Natani
▪Internal Files: Logical files maintained within the system.
Log files are not included here.
▪External interface Files: These are logical files for other
applications which are used by our system.
Compute the Unadjusted Function Points(UFP):
Categorize 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:
Presented By:
Priyanka Natani
FUNCTION TYPE SIMPLE AVERAGE COMPLEX
External Inputs 3 4 6
External Output 4 5 7
External Inquiries 3 4 6
Presented By:
Priyanka Natani
Find Total Degree of Influence:
Presented By:
Priyanka Natani
Advantages:
Presented By:
Priyanka Natani
Disadvantages:
It is not good for real time systems and embedded systems.
Many cost estimation models like COCOMO uses LOC and
hence FPC must be converted to LOC.
Example: Compute the function point, productivity,
documentation, cost per function for the following data:
Number of user inputs = 24
Number of user outputs = 46
Presented By:
Priyanka Natani
Number of inquiries = 8
Number of files = 4
Number of external interfaces = 2
Weighting factor of internal files= 10
Weighting factor of external files= 06
Effort = 36.9 p-m
Technical documents = 265 pages
User documents = 122 pages
Cost = $7744/ month
Presented By:
Priyanka Natani
Various processing complexity factors are: 4, 1, 0, 3, 3, 5, 4, 4,
3 , 3, 2, 2, 4, 5.
Presented By:
Priyanka Natani
Solution:
Measurement Parameter Count Weighing factor
1. Number of external 24 * 4 = 96
inputs (EI)
3. Number of external 8 * 6 = 48
inquiries (EQ)
5. Number of external
Presented By: 2
interfaces (EIF) Count-total
* 5 = 10
378
→
Priyanka Natani
So sum of all fi (i ← 1 to 14) = 4 +1 + 0 + 3 + 3 + 5 + 4 + 4 +
3 + 3 + 2 + 2 + 4 + 5. = 43
FP = Count-total * [0.65 + 0.01 *∑(fi)]
= 378 * [0.65 + 0.01 * 43]
= 378 * [0.65 + 0.43]
= 378 * 1.08 = 408
Total pages of documentation = technical document + user
document
= 265 + 122 = 387pages
Presented By:
Priyanka Natani
Documentation = Pages of documentation/FP =
387/408 = 0.94
Presented By:
Priyanka Natani
Differentiate between FP and LOC
Presented By:
Priyanka Natani
FP LOC
Presented By:
Priyanka Natani
Empirical Estimation Technique
This technique uses empirically derived formulae to make
estimation. These formulae are based on LOC or FPs.
Presented By:
Priyanka Natani
COCOMO is one of the most generally used software
estimation models in the world.
Presented By:
Priyanka Natani
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.
Presented By:
Priyanka Natani
The key parameters which define the quality of any software
products, which are also an outcome of the Cocomo are
primarily Effort & Schedule:
Presented By:
Priyanka Natani
effort put. It is measured in the units of time such as weeks,
months.
The necessary steps in this model are:
Presented By:
Priyanka Natani
2. Determine a set of 15 multiplying factors from various
attributes of the project.
Presented By:
Priyanka Natani
the initial effort Ei in person-months the equation used is of the
type is shown below
Ei= a*(KDLOC)b
The value of the constant a and b are depends on the project
type.
Presented By:
Priyanka Natani
In COCOMO, projects are categorized into three types:
Presented By:
Priyanka Natani
ORGANIC SEMIDETACHED EMBEDDED
Presented By:
Priyanka Natani
1.Organic:
Presented By:
Priyanka Natani
Examples of this type of projects are simple business
systems, simple inventory management systems, and data
processing systems.
2 . Semidetached :
Presented By:
Priyanka Natani
Types of Models:
Presented By:
Priyanka Natani
COCOMO consists of a hierarchy of three increasingly
detailed and accurate forms. Any of the three forms can be
COCOMO
Model
• Basic • Detailed
• Intermediate
Presented By:
COCOMO COCOMO
Model
Priyanka Natani Model
1. Basic COCOMO Model:
Basic COCOMO is good for quick estimate of software costs.
However it does not account for differences in hardware
constraints, personnel quality and experience, use of modern
tools and techniques, and so on. The basic COCOMO model
provide an accurate size of the project parameters. The
following expressions give the basic COCOMO estimation
model:
Presented By:
Priyanka Natani
Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months
Where
Presented By:
Priyanka Natani
Tdev is the estimated time to develop the software, expressed
in months,
Presented By:
Priyanka Natani
Organic: Effort = 2.4(KLOC) 1.05 PM
Presented By:
Priyanka Natani
Estimation of development time
Presented By:
Priyanka Natani
Semi-detached: Tdev = 2.5(Effort) 0.35 Months
Presented By:
Priyanka Natani
By Plotting the Graph we will able to see the two condition of
graph i.e.:
Presented By:
Priyanka Natani
Presented By:
Priyanka Natani
From fig, we can observe that the effort is somewhat
superliner in the size of the software product.
Presented By:
Priyanka Natani
Presented By:
Priyanka Natani
From fig it can be observed that the development time is a sub
linear function of the size of the product, i.e.
when the size of the product increases by two times, the time
to develop the product does not double but rises moderately.
Presented By:
Priyanka Natani
Presented By:
Priyanka Natani
Example1: Suppose a project was estimated to be 400 KLOC.
Calculate the effort and development time for each of the three
model i.e., organic, semi-detached & embedded.
Presented By:
Priyanka Natani
(i) Organic Mode
E = 2.4 * (400)1.05 = 1295.31 PM
D = 2.5 * (1295.31)0.38=38.07 PM
( ii)Semidetached Mode
E = 3.0 * (400)1.12=2462.79 PM
D = 2.5 * (2462.79)0.35=38.45 PM
Presented By:
Priyanka Natani
( iii) Embedded Mode
E = 3.6 * (400)1.20 = 4772.81 PM
D = 2.5 * (4772.8)0.32 = 38 PM
Example2: A project size of 200
KLOC is to be developed. Software
development team has average
experience on similar type of
projects. The project schedule is not
very tight.
Presented By:
Priyanka Natani
Calculate the Effort, development time, average staff size, and
productivity of the project.
\
Solution: 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
Presented By:
Priyanka Natani
Presented By:
Priyanka Natani
P = 176 LOC/PM
Intermediate Model:
The basic Cocomo model considers that the effort is only a
function of the number of lines of code and some constants
calculated according to the various software systems. The
intermediate COCOMO model recognizes these facts and
refines the initial estimates obtained through the basic
Presented By:
Priyanka Natani
COCOMO model by using a set of 15 cost drivers based on
various attributes of software engineering.
Classification of Cost Drivers and their attributes:
Presented By:
Priyanka Natani
Hardware attributes –
Analyst capability
Presented By:
Priyanka Natani
Software engineering capability
Applications experience
Virtual machine experience
Programming language experience
Project attributes –
Presented By:
Priyanka Natani
Required development schedule
The cost drivers are divided into four categories:
Presented By:
Priyanka Natani
Presented By:
Priyanka Natani
Presented By:
Priyanka Natani
Intermediate COCOMO equation:
E=ai (KLOC) bi*EAF
D=ci (E)di
Presented By:
Priyanka Natani
Coefficients for intermediate COCOMO
Project ai bi ci di
Presented By:
Priyanka Natani
3 . Detailed COCOMO Model :
Detailed COCOMO incorporates all qualities of the standard
version with an assessment of the cost driver?s effect on each
method of the software engineering process. The detailed
model uses various effort multipliers for each cost driver
property. In detailed cocomo, the whole software is
differentiated into multiple modules, and then we apply
Presented By:
Priyanka Natani
COCOMO in various modules to estimate effort and then sum
the effort.
.
The Six phases of detailed COCOMO are:
Presented By:
Priyanka Natani
PUTNAM Model
The Lawrence Putnam model describes the time and effort
requires finishing a software project of a specified size.
Putnam makes a use of a so-called The Norden/Rayleigh
Curve to estimate project effort, schedule & defect rate as
shown in fig:
Presented By:
Priyanka Natani
Presented By:
Priyanka Natani
Putnam noticed that software staffing profiles followed the
well known Rayleigh distribution. Putnam used his
observation about productivity levels to derive the software
equation:
Presented By:
Priyanka Natani
The various terms of this expression are as follows:
K is the total effort expended (in PM) in product development,
and L is the product estimate in KLOC .
Presented By:
Priyanka Natani
Ck Is the state of technology constant and reflects requirements
that impede the development of the program.
Typical values of Ck = 2 for poor development environment
Presented By:
Priyanka Natani
The exact value of Ck for a specific task can be computed from
the historical data of the organization developing it.
Putnam proposed that optimal staff develop on a project
should follow the Rayleigh curve.
Presented By:
Priyanka Natani
As the project progresses and more detailed work are
necessary, the number of engineers reaches a peak. After
implementation and unit testing, the number of project staff
falls.
Presented By:
Priyanka Natani
Software Project Scheduling
A schedule in your project’s time table actually consists of
sequenced activities and milestones that are needed to be
delivered under a given period of time.
Presented By:
Priyanka Natani
It contains more notes than your average weekly planner
notes.
Presented By:
Priyanka Natani
Presented By:
Priyanka Natani
Process :
Presented By:
Priyanka Natani
Initial estimates of project can be made optimistically which
means estimates can be made when all favorable things will
happen and no threats or problems take place.
The total work is separated or divided into various small
activities or tasks during project schedule.
Presented By:
Priyanka Natani
Even some activities are conducted and performed in parallel
for efficient performance.
Presented By:
Priyanka Natani
Hardware may get failed while performing.
Software resource that is required may not be available at
present, etc.
The project schedule is represented as set of chart in which
work-breakdown structure and dependencies within various
activities are represented. To accomplish and complete project
within a given schedule, required resources must be available
when they are needed. Therefore, resource estimation should be
done before starting development.
Presented By:
Priyanka Natani
Advantages of Project Scheduling :
Presented By:
Priyanka Natani
It also helps to identify relationships and to monitor process.
It provides effective budget management and risk
mitigation.
Presented By:
Priyanka Natani
Presented By:
Priyanka Natani
Any Queries
Presented By:
Priyanka Natani
Presented By:
Priyanka Natani