Upload
saurabhshertukde
View
1.411
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
Objectives: To provide a framework that enables the
manager to make reasonable estimates of resources, cost and schedule.
Activities associated with project planning :1.Determination of software scope :
Describes the function, performance constraints, interfaces of the software.
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.
Eg:Who is behind the request for the work?Who will use the soln ?What will be the economic benefit of a successful soln. ?1. 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 ?
3. Meta questions : Focuses on the effectiveness of the meeting .
1.Are my questions relevant to the problem that you have ?
2.Am I asking too many questions ?3.Should I be asking anything else ?4.Can anyone else provide additional
information .
2. Determine feasibility.Ask Is the software feasible ?4 types of feasibility :1.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 ?
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.
3. Analyze the risk for the project .
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◦ The duration of time that the resource will be applied
Time windowOf the resource
1. Human ResourceFactors considered are --a) Skills : * Organizational Position : Manager, senior
s/w engineer.* Specialty : Telecomm, database ,
client/server.b) 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.c) No. of people required for a software project. Estimate the development effort (person –month)
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
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
3) Environmental resources * Software tools, hardware, network resources. * Prescribe the time window required for these
resources and verify that these will be available.
project
people
skills
number
location
reusable software
OTS components
full-experience components
new components
part.-experience components
environment
hardware
software tools
network resources
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
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
Problem based decomposition1)LoC based estimationEg: 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.
Major s/w functions :1.UI and Control facilities.2.2-D geometric analysis.3.3-D geometric analysis.4.DBMS5.Computer graphics and display facility.6.Peripheral control function.7.Design analysis modules
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 -- 8600Step2 :Expected value ‘S’ can be computed
S = (Sopt + 4Sm + Spess)/6
Estimation table ---1. UI and Control facilities. 23002. 2-D geometric analysis. 53003. 3-D geometric analysis. 68004. DBMS 33505. Computer graphics and display facility. 49506. Peripheral control function. 2100
7. Design analysis modules 8400
Step 3 : Estimated LOC 33200
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 effortEg : Avg. productivity (from historical data) =620 LOC/pmLet the labor rate be $8000 per monthTherefore Cost /LOC= $8000/620= $13Total LOC is 33200Therefore Project Cost = 33200 x 13 = #431000Effort in person month = 33200/620=54 person month
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.
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.
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.
FP = count-total X [0.65 + 0.01 X Sum (Fi)]
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?
2) Process Based EstimationThe 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.
The following table depicts the process based estimation for developing a CAD software System :
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.
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: 1. Basic COCOMO2. Intermediate COCOMO3. Advanced COCOMO
1. Basic COCOMO : Applies to 3 classes of software projectsa) 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
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.
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
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.
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
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:
1. Product attributes 2. Hardware attribute 3. Personnel attributes 4. Project attributes
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
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.
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
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 months3. Average staffing = E/TDEV = 114.8/15.15= 7.6 persons4. Productivity = 39,800/(114.8)
= 346.6 LOC /PM
We have determined our project fits the characteristics of Semi-Detached modeWe estimate our project will have 32,000 Delivered Source Instructions. Using the formulas, we can estimate:Effort = 3.0*(32) ^1.12 = 146 man-monthsSchedule = 2.5*(146)^ 0.35 = 14 monthsProductivity = 32,000 DSI / 146 MM = 219 DSI/MMAverage Staffing = 146 MM /14 months
= 10 people
6) Develop a schedule