3. Introduction
Software Project Planning encompasses 5 major activities. Estimation is one if it.
Estimation is a process to predict the time and the cost that a project requires to be
finished appropriately. But in terms of software development, it also means of
consideration of the experience of the software development company; the technique
they employ; the process they may go through to finish the task. This whole process
requires the use of complex tools and good mathematical background knowledge. It is
in some cases is the accomplishment of the hard work of a whole team.
3
5. Software Project Planning
+ Encompasses of 5 major activities: Estimation, scheduling,
risk analysis, Quality Management Planning & Change
Management Planning.
+ Estimation determine how much money, effort, resources
and time it will take to build a specific system or software
Sample footer text 3/1/20XX 5
6. 1st Estimation Steps
The software team first estimates:
+ The work to be done
+ The resources required
+ The time that will elapse (the time it will take) from start to
finish
Sample footer text 3/1/20XX 6
7. 2nd Estimation Steps
They will establish a project
schedule that
+ Defines tasks and milestones
+ Identifies who is responsible
for conducting tasks
+ Specifies intertask
dependencies
Sample footer text 3/1/20XX 7
8. 8
Task Set For Project Planning
1. Establish project scope
2. Determine feasibility
3. Analyze risks
1. Risk analysis already discussed in
Project Management chapter.
4. Define required resources
1. Determine require human resources
2. Define reusable software resources
3. Identify environmental resources
5. Estimate cost and effort
+ Decompose the problem
+ Develop two or more estimates using size, function
points, process tasks or use-cases
+ Reconcile the estimates
6. Develop a project schedule
+ Establish a meaningful task set
+ Define a task network
+ Use scheduling tools to develop a
timeline chart
+ Define schedule tracking mechanisms
9. 9
Observation on Estimation
+ Estimation of resources, cost, and schedule for a software
engineering effort requires:
• experience
• access to good historical information (metrics)
• the courage to commit to quantitative predictions when qualitative
information is all that exists
+ Estimation carries inherent risk and this risk leads to
uncertainty
11. 11
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!
12. 12
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.
14. 14
Project
Estimation
Considerations
+ Project scope must be understood
+ Elaboration (decomposition) is
necessary
+ Historical metrics are very helpful
+ At least two different techniques
should be used
+ Uncertainty is inherent in the
process
16. 16
Estimation Techniques
+ Past (similar) project experience
+ Conventional estimation techniques
task breakdown and effort estimates
size (e.g., FP) estimates
+ Empirical models
+ Automated tools
There are plenty of estimation strategies that estimators could employ. But, firstly, they could
take into consideration the complexity of the project, the amount of information acquired, and
time constraints. An appropriate combination of those things could result in the estimating
approaches as follows:
17. 17
Estimation Accuracy
+ Predicated on …
the degree to which the planner has properly estimated the size of the product to be built
the ability to translate the size estimate into human effort, calendar time, and dollars (a
function of the availability of reliable software metrics from past projects)
the degree to which the project plan reflects the abilities of the software team
the stability of product requirements and the environment that supports the software
engineering effort.
The whole process of estimation would cost the company rather considerable cost and time at the very
first stage of building an app. But this will make the final result more credible, realistic, and customer-
satisfying. Projects especially big ones are advised to employ this crucial step to avoid unpredictable
failure.
18. 18
Conventional Techniques:
1. LOC/FP Approach
+ compute LOC/FP using estimates of information domain
values
+ use historical data to build estimates for the project
+ LOC- Line of Codes
+ FP – Function points
19. 19
Example: LOC Approach
Average productivity for systems of this type = 620 LOC/pm.
Burdened labor rate =$8000 per month, the cost per line of code is approximately $13.
Based on the LOC estimate and the historical productivity data, the total estimated project
cost is $431,000 and the estimated effort is 54 person-months.
20. 2. FP Approach
+ A Function Point (FP) is a unit of measurement to express the
amount of business functionality, an information system (as a
product) provides to a user.
+ FPs measure software size. They are widely accepted as an
industry standard for functional sizing.
20
21. 21
Example: FP Approach
average productivity = 6.5 FP/pm.
burdened labor rate = $8000 per month,
approximately $1230/FP.
Based on the FP estimate and the historical productivity data,
total estimated project cost is $461,000 and
estimated effort is 58 person-months.
22. 22
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-
Hill 2009). Slides copyright 2009 by Roger Pressman.
Tool-Based Estimation
project characteristics
calibration factors
LOC/FP data
23. 23
Estimation with Use-Cases
Using 620 LOC/pm as the average productivity for systems of this type and a burdened
labor rate of $8000 per month, the cost per line of code is approximately $13. Based on
the use-case estimate and the historical productivity data, the total estimated project cost
is $552,000 and the estimated effort is 68 person-months.