0% found this document useful (0 votes)
37 views31 pages

IT314 - Software Engineering: Asim Banerjee 25 January 2011 Soft - Engg@daiict - Ac.in

The document discusses project management processes and techniques for estimating software development costs and schedules. It covers key aspects of project planning including cost estimation, schedule determination, quality control, and creating a project plan. It also describes the Constructive Cost Model (COCOMO) which uses software size metrics and cost driver attributes to estimate development effort. The goal of project estimation is to determine costs and schedules within 20% of actual values.

Uploaded by

Abhijeet
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views31 pages

IT314 - Software Engineering: Asim Banerjee 25 January 2011 Soft - Engg@daiict - Ac.in

The document discusses project management processes and techniques for estimating software development costs and schedules. It covers key aspects of project planning including cost estimation, schedule determination, quality control, and creating a project plan. It also describes the Constructive Cost Model (COCOMO) which uses software size metrics and cost driver attributes to estimate development effort. The goal of project estimation is to determine costs and schedules within 20% of actual values.

Uploaded by

Abhijeet
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 31

IT314 - Software Engineering

Asim Banerjee

25th January 2011

[email protected]
Project Management Process
• Proper management of the project is an integral part
of software development and it involves the planning,
monitoring and control of the people, process and
events that occur as software evolves from a
preliminary concept to an operational implementation.
• To meet the cost, quality and schedule objectives
– resources have to be properly allocated to each activity
of the project
– progress of different activities has to be monitored
– corrective actions have to be taken, if needed.

IT314 - Software Engineering 2


Project Management Process
• The activities in project management can be
broadly grouped into three categories
– Planning
– Monitoring and control (aka project tracking and
control)
– Termination analysis

IT314 - Software Engineering 3


Who Does It?
• Everyone “manages” to some extent but the
scope of management activities varies with the
person doing it i.e.
– A software engineer manage their day-to-day
activities, planning, monitoring and controlling
technical tasks.
– Project managers plan, monitor and control the
work of a team of software engineers.
– Senior managers coordinate the interface
between the business and the software
professionals.
IT314 - Software Engineering 4
Project Planning (1/2)
• Project management begins with planning,
which is perhaps the single largest
responsibility of the project management.
• The goal of this phase is to develop is to
develop a plan for software development
following which the objectives of the project can
be met successfully and efficiently.
• The project plan provides the fundamental
basis for project management.

IT314 - Software Engineering 5


Project Planning (2/2)
• The activities of project planning are:
– Cost estimation
– Schedule and milestone determination
– Project staffing
– Quality control
– Monitoring and Control
• The work product produced as a result of
project planning is the Project Plan

IT314 - Software Engineering 6


The Project Plan
• The project plan is usually produced before the
development activity begins and is updated as
development proceeds and data about the
progress of the project becomes available.
• The plan
– Defines the process and tasks to be conducted
– The people who will do the work
– The mechanisms of assessing risks, controlling
change and evaluating quality.

IT314 - Software Engineering 7


Project Team Assignment
Prepare a project plan for your
respective projects. Identify the
milestones and the deliverables
associated with those milestones.

Submit by: 24th January 2011 12:00


hrs.
IT314 - Software Engineering 8
Any Questions?

IT314 - Software Engineering 9


Cost Estimation (1/2)
• For a given set of requirements it is desirable to
know or estimate
– How much it will cost to develop the software to satisfy
the given requirements?
– How much time the development will take?
• These estimates are needed
– For bidding for software projects
– To enable the client or developer to perform the cost
benefit analysis

IT314 - Software Engineering 10


Cost Estimation (2/2)
• These estimates are needed (Continued)
– For determining the staffing level for a project during
different phases
– For project monitoring and control
NOTE: For a software development project, detailed
and accurate cost and schedule estimates are
essential prerequisites for managing the project.

IT314 - Software Engineering 11


Cost of a Project (1/2)
• Cost in a project is due to the requirements for
– Software
• Tools
• Compilers etc.
– Hardware
• Computer time
• Terminal time
• Memory
• Dedicated hardware boards etc.
– Human Resources

IT314 - Software Engineering 12


Cost of a Project (2/2)
• Cost is often determined in terms of effort that is
expressed in person months.
NOTE:
1. Most cost estimation procedures focus on cost of the
human resources needed since it is the bulk of the cost.
2. By properly including “overheads” (cost of hardware,
software, office space, etc.) in the cost per person
month, most costs for a project can be incorporated by
using person month as the basic measure

IT314 - Software Engineering 13


Cost Estimation – Problems (1/2)
• The accuracy of the estimate depends on
– The amount of reliable information available about the
final product.
NOTE: The cost estimations done with uncertainty
about the actual specifications of the final product
can be off by a factor of four from the actual cost.
• The accuracy of the cost estimates to the actual
cost will depend on the effectiveness and accuracy
of the cost estimation procedure (models) and the
process (how predictable it is).

IT314 - Software Engineering 14


Cost Estimation – Problems (2/2)

NOTE: Achieving a cost estimate after the


requirements have been specified within 20% of
the actual cost incurred is termed as a good cost
estimate.

IT314 - Software Engineering 15


Problem Size and Program Size (1/2)
• In context of software development, words “problem
size” and “program size” are often used
interchangeably
• What is meant by program size?
– It is an indicator of the amount of effort and time required
to develop the program
– It indicates the “development complexity”
NOTE: It is not:
• Number of bytes of source code
• Number of bytes of executable code

IT314 - Software Engineering 16


Problem Size and Program Size (2/2)
• Estimating problem size is fundamental to
estimating effort, cost and duration for a
planned project
• Several metrics are available for measuring
problem size:
– LOC (Lines Of Code)
– FP (Function Point)

IT314 - Software Engineering 17


Parameters Affecting Cost
• The cost of a project is a function of many parameters
– Size of the project – primary factor controlling the cost
– Programmer ability
– Experience of the developers in the area
– Complexity of the project
– Reliability requirements
NOTE: The goal of a cost model is to determine which of
these many parameters have a “significant” effect on the cost
and then establish the relationships between the cost and
these parameters.

IT314 - Software Engineering 18


Project Estimation Techniques (1/2)
• During project planning, one needs to estimate these
parameters:
– Project size
– Effort required to develop software
– Project cost
– Project duration
Project estimation techniques:
• Empirical estimation techniques
– Use educated guess based on past experience e.g. Expert
judgement; Delphi

IT314 - Software Engineering 19


Project Estimation Techniques (2/2)
Project estimation techniques (Continued):
• Heuristic estimation techniques
– Assume that project parameters can be modeled
using mathematical expressions e.g. Constructive
Cost Model (COCOMO), Function Point (FP)
• Analytical estimation techniques
– Are based on certain basic assumptions regarding
the project e.g. Halstead’s metric

IT314 - Software Engineering 20


Reading Assignment
Find out the details about the Delphi
estimation technique and the
Halstead’s metric for project
estimation.
Complete by: 26th January 2011
17:00 hrs.

IT314 - Software Engineering 21


Any Questions?

IT314 - Software Engineering 22


Constructive Cost Model (COCOMO) (1/2)

• Resource estimates can depend on many different


factors (multivariable models).
• The COCOMO model starts with an initial estimate
determined by using the static single variable model
equations (depends on size) and then adjusting the
estimates based on other variables.
• The model implies that size is the primary factor for
cost and other factors have lesser effect.

IT314 - Software Engineering 23


Constructive Cost Model (COCOMO) (2/2)

• The model estimates the total effort in terms of


person months of the technical staff.
NOTE: The effort estimate includes
development, management and support tasks
but does not include the cost of the secretarial
and other staff that might be needed in an
organization.

IT314 - Software Engineering 24


Basic Steps in COCOMO Model (1/2)
• Obtain an initial estimate of the development effort
from the estimate of thousands of delivered lines of
source code (KDLOC)
Ei = a * (KDLOC)b
• Determine a set of 15 multiplying factors from
different attributes of the project called the cost driver
attributes
• Adjust the effort estimate by multiplying the initial
estimate with all the multiplying factors together
called the effort adjustment factor (EAF).
Ea = (EAF) * Ei
IT314 - Software Engineering 25
Basic Steps in COCOMO Model (2/2)
NOTE: The 15 attributes are called the cost
driver attributes that determine the 15
multiplying factors. They depend on product,
computer, personnel and technology
attributes.

IT314 - Software Engineering 26


Classification of Projects in COCOMO
• Projects are classified into:
– Organic – projects in an area in which the organization
has considerable expertise and requirements are less
stringent e.g. simple data processing system. a = 3.2 and
b = 1.05
– Embedded – projects are ambitious and novel and the
organization has little or no prior experience in those areas
and there are stringent requirements to be met e.g.
embedded avionics system. a = 2.8 and b = 1.20
– Semidetached – projects that fall between the above
two categories e.g. new operating system, database
management system (DBMS). a = 3.0 and b = 1.12
IT314 - Software Engineering 27
Cost Driver Attributes (1/3)
• Product Attributes
– Reliability
– Database size
– Complexity
• Computer Attributes
– Execution time
– Storage requirement
– Virtual memory volatility
– Turnaround time
IT314 - Software Engineering 28
Cost Driver Attributes (2/3)
• Project attributes
– Modern programming practices
– Use of SW tools
– Development schedule
• Personnel Attributes
– Analyst capability
– Application experience
– Programmer capability
– Virtual machine experience
– Programming language experience
IT314 - Software Engineering 29
Cost Driver Attributes (3/3)
• Each cost driver has a rating scale and for
each rating a multiplying factor is provided.
• Multiplying factors for all 15 cost drivers are
multiplied to get the effort adjustment factor
(EAF)
• The final effort is obtained by multiplying the
initial estimate by the EAF
E = (EAF) * Ei

IT314 - Software Engineering 30


Any Questions?

IT314 - Software Engineering 31

You might also like