Experiment 03 Aim Perform Cost and effort Estimation for the Vehicle Management Information System. Theory Whenever we develop a software project, the main questions that arise in our mind is how much it will cost to develop and how much time it will take for development. These estimates are necessary and needed before initiating development. But the main critical problem that arises during software cost estimation is lack of case studies of projects usually created in a well-documented manner. The software industry has inconsistently defined and explained metrics or atomic units of measure, data from real and actual projects are largely and highly suspect in terms of consistency and comparability. There are many questions as debates among developers and vendors of software cost estimation models and tools. The main topics of these debates are given below : ● Which model of cost estimation should be used? ● Whether or not to measure software size in source lines of code or function points. ● What constitutes a good estimate? Nowadays, there are several models available for cost estimation like the COCOMO model, Checkpoint, ESTIMACS, SLIM, Knowledge Plan, etc.). Among all of them, the COCOMO model is one of most open and well-documented cost estimation models. At present, most real-world use of cost models is bottom-up rather than top-down. Below, a diagram is given that illustrates and represents predominant practice. The manager of a software project defines and describes the target cost of software, and after then until target cost can be justified, it manipulates parameters and size. The process described in the diagram is very necessary to analyze and predict cost risks and understand sensitivities and trade-offs objectively. It simply forces managers of software projects to examine and find out risks associated with achieving target costs and to discuss and explain this gained information with other stakeholders. Following are the attributes that Good Software Cost Estimate Contains : 1. It is simply conceived i.e. planned and supported by project manager, architecture team, development team, and test team responsible for performing work and task. 2. All the stakeholders generally accept it as ambitious but realizable. 3. It is based on a well-defined and efficient cost model of software on a credible basis. 4. It is also based on a similar project experience database that includes and contains similar processes, relevant technologies, relevant environments, relevant quality requirements, and all similar people. 5. It is also defined and explained in much detail so that all of its key risks are simply understood and probability of success is objectively assessed. 6. It contains any extra details, supporting documentation or any information that could be relevant to the estimate. 7. It stresses how important it is to keep the cost estimates updated and revised on a frequent basis as the project moves forward and new information becomes available. 8. Any assumptions that were made throughout the estimation process are documented. 9. It generates a project schedule and calculates the amount of time needed for each task or activity. Extrapolating from a good estimate, an ideal estimate would be derived from a mature cost model with an experience base that generally reflects more similar projects that are done by same team with similar mature processes and tools. Use of Cost Estimation 1. One needs to choose and determine how many engineers are required for a project to develop and establish a schedule during the planning stage. 2. While monitoring the project's progress, one needs to assess whether the project is progressing towards achieving the goal according to procedure and whether it takes corrective action or not. 3. It makes it possible to allocate resources such as labor, tools and supplies in a way that maximizes effectiveness and reduces waste. 4. Cost estimates are used as a starting point for talks and agreements between parties when negotiating contracts or project requirements. 5. It offers a shared understanding of the financial concerns and facilitates open and honest communication among project stakeholders. 6. It affects resource allocation and project duration, that is why the amount of time needed for various project activities is a crucial component in cost assessment. Effort Estimation Effort estimation in software development involves predicting the amount of human resources, in terms of person-months or person-hours, required to complete a project. It encompasses analyzing project requirements, complexity, team expertise, development tools, and historical data to forecast the time and effort needed for development, testing, and deployment phases. Effort estimation aids in setting realistic timelines, allocating resources efficiently, and managing project schedules effectively. It serves as a foundation for project planning, budgeting, and risk management, allowing stakeholders to make informed decisions and optimize project outcomes. Continuous monitoring and adjustment of effort estimates throughout the project lifecycle are crucial to adapt to evolving project dynamics and ensure successful delivery. These approaches leverage project-specific attributes, such as size, scope, and domain complexity, to derive effort estimates. Additionally, parametric models like COCOMO integrate historical data and organizational experience to enhance estimation accuracy. COCOMO model The COCOMO (Constructive Cost Model) is a widely used software engineering model for estimating effort, cost, and duration of software projects. Developed by Barry Boehm in the late 1970s, COCOMO categorizes projects into three modes: Basic, Intermediate, and Detailed. Basic COCOMO: Suitable for small to medium-sized projects, it estimates effort based on the size of the software in lines of code (LOC) using the formula Effort = a × (LOC)^b × EAF Intermediate COCOMO: An extension of Basic COCOMO, it considers additional factors such as development flexibility and team cohesion to provide more detailed effort estimation. Detailed COCOMO: Suitable for large-scale projects with well-defined requirements, it incorporates a wide range of factors including software complexity and personnel capability to provide a refined effort estimation. Key concepts Effort Estimation: COCOMO estimates effort in person-months (PM), representing the total effort required by the project team. Cost Estimation: Effort estimation is used to calculate the total cost of the project based on the hourly rate of the project team. Size Estimation: COCOMO uses lines of code (LOC) as a measure of the software size, though other metrics like function points can also be used. Risk Management: COCOMO allows for the incorporation of risk factors into the estimation process, enabling project managers to account for uncertainties and mitigate risks.
COST AND EFFORT ESTIMATION FOR THE VEHICLE MANAGEMENT SYSTEM
USING COCOMO MODEL COCOMO is a widely used model for estimating software development effort, cost, and duration. It categorizes projects into three modes: Organic, Semi-Detached, and Embedded, based on the size and complexity of the project. The project has 11000 lines of code and is a group project with 5 people. Let's estimate the effort and cost using COCOMO. We'll assume an average team productivity rate and adjust the parameters accordingly. Size Estimation: Lines of Code (LOC): 11000 Effort Estimation: COCOMO estimates effort in Person-Months (PM). We'll use the basic COCOMO formula: Effort = a × (LOC)^b × EAF Where: ● a and b are constants determined by the project type. ● EAF (Effort Adjustment Factor) accounts for various project and team attributes. Team Size Adjustment: Since it's a group project with 5 people, we'll adjust the effort based on the team size. Cost Estimation: We'll estimate the cost based on the effort and the hourly rate of the team. Let's calculate: For an organic project: a=2.4 b=1.05 Effort Adjustment Factor (EAF): To calculate the Effort Adjustment Factor (EAF): Identify Cost Drivers: These cost drivers include factors such as personnel capability, software complexity, development tools, etc. Assign Rating for Each Cost Driver: Based on your project's characteristics, assign a rating to each cost driver. Ratings typically range from "Very Low" to "Extra High" or are represented numerically (e.g., 1 to 5). Lookup Table or Formula: Use the COCOMO lookup table to find the adjustment factor corresponding to each rating assigned to the cost drivers. The lookup table may be specific to the version of COCOMO being used (e.g., Basic, Intermediate, Detailed). Calculate EAF: Multiply the adjustment factors obtained for each cost driver to calculate the overall Effort Adjustment Factor (EAF). This will provide the adjustment factor to be applied to the basic effort estimation. Now, let's assume ratings for some cost drivers and calculate the EAF: 1. Required Software Reliability (RELY): High 2. Database Size (DATA): high 3. Product Complexity (CPLX): High 4. Programming Language Experience: nominal 5. Application of software engineering methods: nominal Using the lookup table, we find the adjustment factors corresponding to each rating: 1. Required Software Reliability (RELY): High (1.15) 2. Database Size (DATA): high (1.08) 3. Product Complexity (CPLX): High (1.15) 4. Programming Language Experience: nominal (1) 5. Application of software engineering methods: nominal (1) Now, let's calculate the overall EAF: EAF = 1.15 × 1.08 × 1.15 × 1 × 1 EAF≈1.43 So, the calculated Effort Adjustment Factor (EAF) for the project is approximately 1.96. Basic Effort Estimation: Effort = 2.4 × (11000)^1.05 × 1.43 Calculate Effort: Substituting the values: Effort = 2.4 × (11000)^1.05 × 1.43 Calculating: Effort = 2.4 × (11000)^1.05 × 1.43 Effort ≈ 2.4 × 11550 × 1.43 Effort ≈ 2.4 × 16516.5 Effort ≈ 39369 PM
Team Size Adjustment:
Team size: 5 people Effort per Person (PM) = Total Effort / Team Size Effort per Person (PM) = 39369 / 5 Effort per Person (PM) ≈ 7874 PM/Person Cost Estimation: Let’s assume hourly rate per team member: ₹50 Number of Working Hours per Month: 160 Team Size: 5 people Total Cost=Effort per Person (PM)×Hourly Rate×Number of Working Hours per Month×Team Size Total Cost= 7874 × 50 × 160 × 5 Total Cost≈ 314,960,000 INR So, the total cost of the project, considering a team size of 5 people, and an hourly rate of ₹50, is approximately ₹314,960,000. Conclusion In summary, we've calculated the costs and effort needed for our Vehicle Management System project. This study highlights how crucial it is to accurately estimate these factors for project success. It also sets a strong foundation for future research and improvements in managing software projects more effectively.