Software Project Estimation: Key Steps and Considerations
This content provides insights into software project estimation, focusing on key steps such as project planning, scope determination, risk analysis, quality management planning, and change management planning. It also delves into software scope and feasibility aspects, including defining scope through narrative descriptions and use cases, and assessing feasibility based on technology, finance, time, and resource dimensions. Resource estimation for software projects is also discussed in detail.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
First step in project estimation is Project Planning 5 major activities performed in project planning
Project Estimation determine, scope of software product Project Scheduling determine, time required for each module & overall project Risk Analysis determine, problem complexity & risk Quality Management Planning determine, which quality metrics, are to be focused, while developing the software Change Management Planning if changes occur, how to handle them.
Software Scope & Feasibility Software scope describes four things 1. The function & features, that are to be delivered to end users 2. The data which can be input & output 3. The content of the software that is presented to the user 4. Performance, constraints, reliability & interfaces that bound the system
The scope can be defined by 1. Using narrative description of the software, - obtained - after Having communication with the stakeholders. 2. defining, a set of use cases.
After identifying scope of the project, its feasibility must be ensured. Following are the four dimensions of software feasibility Set of questions based on these dimensions has to be answered
1. Technology - is the project technically feasible? - are the defects to be reduced, to a level that satisfies the applications need? 2. Finance - is it financially feasible? - is the development cost affordable & according to standards? 3. Time - will project finish, within the given time? 4. Resource - does the organization have the resources needed to complete the project.
Resource Estimation After, identifying scope & feasibility of the project, Estimate the resources, needed to complete the project There are 3 major categories of software engineering resources
People - - - number skill location Reusable software components - OTS (off-the-shelf) component - full experience component - part experience component - new component Development environment i.e. hardware & software tools - software tools - hardware - network resources
4 characteristics of above mentioned resources Description of resource A statement of availability Time when resources will be required Duration of the time that resource will be applied
1. People (Human Resources) Number & The organizational position - manager, senior software engineer, & so on The skills - database, telecommunication, client/server, etc. Location Are specified
2. Reusable Software Components 4 categories of reusable software 1. OTS (off-the-shelf) components - existing software acquired from a third party - or has been developed internally for a past project 2. full experience component - the current software is same as the previous one - that was developed by the same working team 3. partial experience components 4. new components
3. Development Environment (Environmental Resources) Software Engineering Environment (SEE) incorporates hardware & software Hardware - - - provides a platform for using tools required to produce work products Software - - - Are the tools, required To produce implementation details Testing & debugging
Many times, in software engineering, - - - To solve the complex problem, it need to be Broken into smaller sub problems & solving each sub problem individually This is referred as - decomposition or partitioning
Software sizing - fuzzy logic sizing - function point sizing - standard component sizing - change sizing Problem based estimation Example of LOC based estimation Example of FP based estimation Process based estimation Example of process based estimation Estimation with use cases Reconciling estimates
1. Fuzzy logic sizing In this approach, planner must identify The type of application Establish its magnitude on qualitative scale & then refine the magnitude within the original range Planner should also have access to historical database of the project So that Estimates can be composed to actual experiences.
2. Function Point Sizing Planner develops estimates of the information domain
3. Standard Component Sizing There are various standard components used in the software These are - - - - subsystems, modules, screens, reports, interactive programs, files, LOC and Object-level instruction The project planner - - Estimates the number of time, these standard components are used. He then uses, historical project s data - to determine the delivered size per standard component
4. Change sizing This approach is used - When existing software has to be modified - As per the requirement of - the project or user The size of the software is then estimated by - The number & type of reuse - Addition of code - change made in the code - deletion of code
Problem Based Estimation Problem Based Estimation Is conducted using - LOC Based Estimation - Function Point Based Estimation - Process Based Estimation - Use Case Based Estimation
LOC & FP based data are used in two ways, during software estimation 1. These are useful to estimate the - size each element of software
With a bounded statement of software scope, - A project planning process begins & by using the statement of scope, - The software problem is decomposed into - The functions - That can be estimated individually. LOC or FPs then estimated for each function
Example Of LOC Based Estimation Consider an ABC project, with some important modules such as 1. user interface & control facilities 2. 2D graphics analysis 3. 3D graphics analysis 4. Database management 5. Computer graphics display facility 6. Peripheral control function 7. Design analysis models Estimate the project based on LOC
Consider each module as separate function The corresponding LOC can be estimated in the following table Function Estimated LOC User interface & control facilities 2500 2D graphics analysis 5600 3D graphics analysis 6450 Database management 3100 Computer graphics display facility 4740 Peripheral control function 2250 Design analysis models 7980 Total estimation in LOC 32620
Expected LOC for 3d Geometric Analysis function on three point estimation is Optimistic estimation - 4700 most likely estimation - 6000 Pessimistic estimation 10000 S = [Sopt + (4 * Sm) + Spess ] / 6
Expected value [4700 + (4 * 6000) + 10000] / 6 = 6450 A review of historical data indicates 1. Average productivity is = 500 LOC/month 2. Average labor cost is = $6000/month Then cost for LOC can be estimated as Cost/LOC = (6000/500) = $12/LOC By considering, total estimated LOC as = 32620 Total estimated project cost = (32620 * 12) = $391440 Total estimated project effort = (32620 / 500) = 65 Person-months