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, performanceconstraints, interfaces of the software.
How to determine the scope ?Conduct a preliminary meeting /interviewbetween the customer and developer(analyst)Set of questions asked :1. Context free questions :Questions that determine the overall goal ofthe system and identifies the people who wanta solution.
Eg:Who is behind the request for the work?Who will use the soln ?What will be the economic benefit of asuccessful 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 ?
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 .
2. Determine feasibility.AskIs 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 ?
2. CostThe 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.
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
1. Human ResourceFactors 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)
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.
number software tools skills hardware people environment networklocation resources project reusable software OTS new components components full-experience part.-experience components components
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 decomposition2) 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 :2. UI and Control facilities.3. 2-D geometric analysis.4. 3-D geometric analysis.5. DBMS6. Computer graphics and display facility.7. Peripheral control function.8. 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 --- 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 8400Step 3 : Estimated LOC 33200
Step 4 : Review the historical data to find average productivityStep 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 (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?
2) Process Based EstimationThe process is decomposed into a relatively small setof tasks and the effort required to accomplish eachtask 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 developinga CAD software System :
Based on an average burdened labor rate of $8,000 per month, the total estimated project cost is 8000*46= $368,000and 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:5. Basic COCOMO6. Intermediate COCOMO7. Advanced COCOMO
1. Basic COCOMO : Applies to 3 classes of software projectsc) 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/DWhere 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:5. Product attributes6. Hardware attribute7. Personnel attributes8. Project attributes
Product attributes Required software reliability Size of application database Complexity of the productHardware attributes Run-time performance constraints Memory constraints Volatility of the virtual machine environment Required turnabout timePersonnel attributes Analyst capability Software engineer capability Applications experience Virtual machine experience Programming language experienceProject 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.20Note : D and P are calculated in the same way as Basic COCOMO
Calculate COCOMO effort, TDEV, average staffing, andproductivity for an organic project that is estimated to be39,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 SourceInstructions. 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