Driving Behavioral Change for Information Management through Data-Driven Gree...
Softwareproject planning
1.
2. Objectives:
To provide a framework that enables the
manager to make reasonable estimates of
resources, cost and schedule.
Activities associated with project planning :
4. Determination of software scope :
Describes the function, performance
constraints, interfaces of the software.
3. How to determine the scope ?
Conduct a preliminary meeting /interview
between the customer and developer(analyst)
Set of questions asked :
1. Context free questions :
Questions that determine the overall goal of
the system and identifies the people who want
a solution.
4. Eg:
Who is behind the request for the work?
Who will use the soln ?
What will be the economic benefit of a
successful soln. ?
6. Next set of questions :
What problems will the soln. address ?
What should be the most important goal of the
proposed system?
What are the functionalities expected of the
software ?
5. 3. Meta questions : Focuses on the
effectiveness of the meeting .
2. Are my questions relevant to the problem
that you have ?
3. Am I asking too many questions ?
4. Should I be asking anything else ?
5. Can anyone else provide additional
information .
6. 2. Determine feasibility.
Ask
Is the software feasible ?
4 types of feasibility :
5. Technical feasibility :
Is the project technically feasible ?
Does the organization have the necessary
h/w , s/w and operating system environment
required to deploy the software ?
7. 2. Cost
The project financially feasible ?
Can the development be completed at the cost
of the client / can the market afford it.
3. Time :
Will the project be completed within the time
frame dictated by the customer.
9. 4. Estimate the resources required to
accomplish the software development effort.
Three major categories of software engineering resources
◦ People
◦ Development environment
◦ Reusable software components
Each resource is specified with
◦ A description of the resource
◦ A statement of availability
◦ The time when the resource will be required Time window
◦ The duration of time that the resource will be applied Of the
resource
10. 1. Human Resource
Factors considered are --
c) Skills :
* Organizational Position : Manager, senior
s/w engineer.
* Specialty : Telecomm, database ,
client/server.
f) Location :
For large projects software team has to be geographically
dispersed across a no. of different locations.
Hence location of each human resource is specified.
i) No. of people required for a software project.
Estimate the development effort (person –month)
11. 2) Reusable software resource :
4 resource categories are considered :
Off-the-shelf components
Acquired from 3rd party or developed internally for a
past project
Ready for use on the current project and have been
fully validated
Full-experience components
Existing specifications, designs, code or test data
(developed for past projects) that are similar to the
software to be built for the current project
Members of the current software team have had full
experience in the application area represented by
these components; therefore low-risk modifications
12. Partial-experience components (high risk)
Existing specifications, designs, code or test data
(developed for past projects) that are related to the
software to be built for the current project
Require substantial modification
Members of the team have only limited experience;
therefore modifications required for partial-
experience components have a fair degree of risk
New components
Software components that must be built by the
software team specifically for the needs of the
current project
13. 3) Environmental resources
* Software tools, hardware, network resources.
* Prescribe the time window required for these
resources and verify that these will be available.
14. number software
tools
skills hardware
people
environment network
location resources
project
reusable
software
OTS new
components components
full-experience part.-experience
components components
15. 5) Estimate cost and effort
Decomposition techniques
◦ These take a "divide and conquer" approach
◦ Cost and effort estimation are performed in a stepwise fashion
by breaking down a project into major functions and related
software engineering activities
Empirical estimation models
◦ Offer a potentially valuable estimation approach if the
historical data used to seed the estimate is good
16. Decomposition Technique
Before an estimate can be made and decomposition
techniques applied, the planner must
◦ Understand the scope of the software to be built
◦ Generate an estimate of the software’s size
Then one of two approaches are used
◦ Problem-based estimation
Based on either source lines of code or function point
estimates
◦ Process-based estimation
Based on the effort required to accomplish each task
17. Problem based decomposition
2) LoC based estimation
Eg: Consider a software package to be developed for a CAD
application for mechanical components.
The CAD s/w will accept 2-D and 3-D geometric data from an
engineer. The engineer will interact and control the CAD
system through a UI. All geometric data and other supporting
info. Will be maintained in a DB.
Design analysis modules will be developed to produce the
required o/p which will be displayed on a variety of graphics
devices. The s/w will be designed to control and interact with
peripheral devices that include a mouse, digitizer, laser
printer and plotter.
18. Major s/w functions :
2. UI and Control facilities.
3. 2-D geometric analysis.
4. 3-D geometric analysis.
5. DBMS
6. Computer graphics and display facility.
7. Peripheral control function.
8. Design analysis modules
19. Step1 : A range of LOC estimates is developed
for each function.
Eg : LOC estimate for 3-D geometric analysis:
optimistic -- 4600
Most likely – 6900
Pessimistic -- 8600
Step2 :Expected value ‘S’ can be computed
S = (Sopt + 4Sm + Spess)/6
20. Estimation table ---
UI and Control facilities. 2300
2-D geometric analysis. 5300
3-D geometric analysis. 6800
DBMS 3350
Computer graphics and display facility. 4950
Peripheral control function. 2100
Design analysis modules 8400
Step 3 : Estimated LOC 33200
21. Step 4 : Review the historical data to find average productivity
Step 5 : Based on historical productivity data and LOC
estimate--
Estimate the project cost and effort
Eg : Avg. productivity (from historical data) =620 LOC/pm
Let the labor rate be $8000 per month
Therefore Cost /LOC= $8000/620= $13
Total LOC is 33200
Therefore Project Cost = 33200 x 13 = #431000
Effort in person month = 33200/620=54 person month
22. Drawbacks :
Focuses only on the coding activity.
Total effort estimation should include effort put in
analysis, design , testing and maintenance also.
LOC is language dependent.
Style of Programming varies from one person to
another. Different programmers get different LOC.
Difficult to estimate LOC from problem
specification.
23. Measures size not in terms of LOC of each function but from
user’s point of view i.e on the basis of what the user requests
and receives in return from the system.
Based on the countable measures of software’s information
domain and assessment of software complexity.
5 information domain characteristics are determined and are
counted :
1. No. of user inputs : Individual data items input by the
user are not counted in the calculation of the no. of inputs,
but a group of related inputs are considered as a single input.
Eg. While entering the data concerning an employee, to
employee pay roll software , the data items age, sex, name,
address etc.
24. are considered as a single input.
2. No. of user outputs : Refers to reports, screen
outputs, error messages produced. Individual
items within a report/screen are not considered.
3. No. of inquiries : No. of interactive queries which
are made by the users. Requests for instant access
to information.
Eg. Retrieve account balance.
4. No. of files : Each logical file is counted.
5. Number of interfaces : Information exchanges with
other systems are counted.
25.
26. FP = count-total X [0.65 + 0.01 X
Sum (F i )]
Sum (Fi)]------------
Answer the following questions(14) using a scale of [0-5]: 0
not important; 5 absolutely essential. We call them influence
factors (Fi).
1. Does the system require reliable backup and recovery?
2. Are data communications required?
3. Are there distributed processing functions?
4. Is performance critical?
5. Does the system require on-line data entry?
27. 2) Process Based Estimation
The process is decomposed into a relatively small set
of tasks and the effort required to accomplish each
task is estimated.
Steps in process-based estimation --
1. Delineation of software functions obtained from
the project scope.
2. A series of software process activities must be
performed for each function.
3. Once problem functions and process activities are
combined, the planner estimates the effort (e.g., person-
months) that will be required to accomplish each software
process activity for each software function.
28. The following table depicts the process based estimation for developing
a CAD software System :
29. Based on an average burdened labor rate of
$8,000 per month,
the total estimated project cost is
8000*46=
$368,000
and the estimated effort is 46 person-months.
30. A formula is used to estimate effort using size
(LOC) as an input.
The formula is derived from data collected from
past software projects
COCOMO (Constructive Cost Model ) is an
empirical estimation model developed by Barry
Boehm.
COCOMO I has 3 levels:
5. Basic COCOMO
6. Intermediate COCOMO
7. Advanced COCOMO
31. 1. Basic COCOMO :
Applies to 3 classes of software projects
c) Organic projects :
• Relatively small, simple software projects.
• Small teams with good application experience
work to a set of less than rigid requirements.
• Similar to the previously developed projects.
• relatively small and requires little innovation.
Eg: Leave management project with intranet facilities
32. b) Semi-Detached Projects
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.
Eg : S/w project for a large bank, including daily
customer operations and ATM service.
33. c) Embedded Projects :
Software projects that must be developed
within a set of tight hardware, software, and
operational constraints.
Eg. S/w for a nuclear power plant
34. E=a (KLOC) b
D=c (E) d
P=E/D
Where E is the effort applied in person-months,
D is the development time in chronological months,
P is the number of people required.
35. Software project a b c d
Organic 2.4 1.05 2.5 0.38
Semi-detached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
36. 2. The Intermediate COCOMO
Is an extension of the Basic COCOMO.
Considers a set of "cost driver attributes" that can be
grouped into four major categories, each with a
number of subcategories:
5. Product attributes
6. Hardware attribute
7. Personnel attributes
8. Project attributes
37. Product attributes
Required software reliability
Size of application database
Complexity of the product
Hardware attributes
Run-time performance constraints
Memory constraints
Volatility of the virtual machine environment
Required turnabout time
Personnel attributes
Analyst capability
Software engineer capability
Applications experience
Virtual machine experience
Programming language experience
Project attributes
Use of software tools
Application of software engineering methods
Required development schedule
38. Each of the 15 attributes is rated on a 6-point scale that ranges from
"very low" to "extra high" (in importance or value).
Based on the rating, an effort multiplier is determined from the table
below. The product of all effort multipliers results in an 'effort
adjustment factor (EAF). Typical values for EAF range from 0.9 to
1.4.
39.
40. The Intermediate Cocomo formula now takes the form...
E=EAF * a * (KLOC) b
where E is the effort applied in person-months,
KLOC is the estimated number of delivered lines of code
for the project and
EAF is the factor calculated above. The coefficient a and
the exponent b are given in the next table.
Software project ai bi
Organic 3.2 1.05
Semi-detached 3.0 1.12
Embedded 2.8 1.20
Note : D and P are calculated in the same way as Basic
COCOMO
41. Calculate COCOMO effort, TDEV, average staffing, and
productivity for an organic project that is estimated to be
39,800 lines of code.
An organic project uses the application formulas.
1. E=2.4 * (KLOC)1.05
=2.4 * (39.8) 1.05
= 2.4 * 47.85 = 114.8 Person-months.
2. TDEV = 2.5 * (114.8) 0.38
=
2.5 * 6.06 =15.15 months
3. Average staffing = E/TDEV = 114.8/15.15= 7.6 persons
4. Productivity = 39,800/(114.8)
= 346.6 LOC /PM
42. We have determined our project fits the characteristics of Semi-
Detached mode
We estimate our project will have 32,000 Delivered Source
Instructions. Using the formulas, we can estimate:
Effort = 3.0*(32) ^1.12 = 146 man-months
Schedule = 2.5*(146)^ 0.35 = 14 months
Productivity = 32,000 DSI / 146 MM
= 219 DSI/MM
Average Staffing = 146 MM /14 months
= 10 people