0% found this document useful (0 votes)
4 views

Software Cost Estimation

Extreme Programming (XP) is an Agile software development framework aimed at enhancing software quality and responsiveness to customer needs through best practices. Key practices include Continuous Integration, Test-First methodologies, and Refactoring, while cost estimation techniques like empirical, heuristic, and analytical methods are crucial for project planning and resource allocation. The COCOMO model is highlighted as a significant tool for estimating effort, cost, and schedule in software projects.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Software Cost Estimation

Extreme Programming (XP) is an Agile software development framework aimed at enhancing software quality and responsiveness to customer needs through best practices. Key practices include Continuous Integration, Test-First methodologies, and Refactoring, while cost estimation techniques like empirical, heuristic, and analytical methods are crucial for project planning and resource allocation. The COCOMO model is highlighted as a significant tool for estimating effort, cost, and schedule in software projects.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19

Extreme Programming

• Extreme programming (XP) is one of the most important software


development frameworksof Agile models. It is used to
improve software quality and responsive to
customerrequirements. The extreme programming model
recommends taking the best practices thathave worked well in the
past in program development projects to extreme levels.
Extreme Programming (XP)
Extreme Programming (XP) is an agile project management framework
used in software development. It prescribes everything, from how to
organize projects and develop software, to how to increase developers'
productivity and what's the best way to collaborate on code.
Three practices of Extreme Programming:
• Continuous Integration.
• Test-First (including Test-Driven Development and Behavior-Driven
Development)
• Refactoring, pair work, and collective ownership.
Some teams use other XP practices, such as a pair
programming, and system metaphors
• Empirical estimation models(Estimation models for
computer software use empirically
• derived formulas to predict effort as a function of LOC
(line of code) or FP(function
• point).Resultant values computed for LOC or FP are
entered into an estimation model
Managing Interactive Processes

Managing People
 Act as project leader
 Liaison with stakeholders
 Managing human resources
 Setting up reporting hierarchy etc.

Managing Project
 Defining and setting up project scope
 Managing project management
activities
 Monitoring progress and performance
 Risk analysis at every phase
 Take necessary step to avoid or come
out of problems
 Act as project spokesperson
Activities involved in Software Estimation:
1. Projects planning (Estimation determines how much money, effort, resources, and
time it will take to build a specific system or product)
2. Scope and feasibility (The functions and features that are to be delivered to end
users. The data that are input to and output from the system. The "content" that is
presented to users as a consequence of using the software)
3. Project resources (Each resource is specified with: A description of the resource. A
statement of availability, time when the resource will be required. The duration of
time that the resource will be applied Time window)
4. Estimation of project cost and effort (The accuracy of a software project estimate is
predicated on: The degree to which the planner has properly estimated the size (e.g.,
KLOC) of the product to be built. The ability to translate the size estimate into human
effort, calendar time, and money)
5. Decomposition techniques (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)
6. Empirical estimation models (Estimation models for computer software use
empirically derived formulas to predict effort as a function of LOC (line of code) or
FP (function point). Resultant values computed for LOC or FP are entered into an
estimation model
Software Cost Estimation

• Whenever we develop a software project, 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 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.
Good Software Cost Estimate
• 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.
• All the stakeholders generally accept it as ambitious but realizable.
• It is based on a well-defined and efficient cost model of software on a credible basis.
• 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.
• It is also defined and explained in much amount of detail so that all of its key risks are simply
understood and probability of success is objectively assessed.
• It contains any extra details, supporting documentation or any information that could be relevant to
the estimate.
• 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.
• Any assumptions that were made throughout the estimation process are documented.
• It generates a project schedule and calculates the amount of time needed for each task or activity.
Use of Cost Estimation –

• One needs to choose and determine how many engineers are required for project to develop
and establish a schedule during planning stage.
• While monitoring project’s progress, one needs to access whether project is progressing
towards achieving goal according to procedure and whether it takes corrective action or not.
• It makes it possible to allocate resources such as labor, tools and supplies in a way that
maximizes effectiveness and reduces waste.
• Cost estimates are used as a starting point for talks and agreements between parties when
negotiating contracts or project requirements.
• It offers a shared understanding of the financial concerns and facilitates open and honest
communication among project stakeholders.
• 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 and Cost Estimation
Techniques
• Cost and effort estimation are performed in a stepwise fashion by breaking
down a project into major functions and related software engineering activities.
Basics of Software Estimation:
Estimation determines how much money, effort, resources, and
time it will take to build a
specific system or product. Estimation is based on −
Past Data/Past Experience
Available Documents/Knowledge
Assumptions
Identified Risks
Cost estimation simply means a technique that is used to find out the cost estimates. Various techniques or models are available for cost estimation, also
known as Cost Estimation Models.
1. Empirical Estimation Technique – Empirical estimation is a technique or model in which empirically derived
formulas are used for predicting the data that are a required and essential part of the software project planning step.
These techniques are usually based on the data that is collected previously from a project and also based on some
guesses, prior experience with the development of similar types of projects, and assumptions. It uses the size of the
software to estimate the effort. In this technique, an educated guess of project parameters is made. Hence, these
models are based on common sense. However, as there are many activities involved in empirical estimation
techniques, this technique is formalized. For example Delphi technique and Expert Judgement technique.
2. Heuristic Technique – Heuristic word is derived from a Greek word that means “to discover”. The heuristic
technique is a technique or model that is used for solving problems, learning, or discovery in the practical methods
which are used for achieving immediate goals. These techniques are flexible and simple for taking quick decisions
through shortcuts and good enough calculations, most probably when working with complex data. But the decisions
that are made using this technique are necessary to be optimal. In this technique, the relationship among different
project parameters is expressed using mathematical equations. The popular heuristic technique is given by
Constructive Cost Model (COCOMO). This technique is also used to increase or speed up the analysis and
investment decisions.
3. Analytical Estimation Technique – Analytical estimation is a type of technique that is used to measure work. In
this technique, firstly the task is divided or broken down into its basic component operations or elements for
analyzing. Second, if the standard time is available from some other source, then these sources are applied to each
element or component of work. Third, if there is no such time available, then the work is estimated based on the
experience of the work. In this technique, results are derived by making certain basic assumptions about the project.
Hence, the analytical estimation technique has some scientific basis. Halstead’s software science is based on an
analytical estimation model.
Other Cost Estimation Models

1.Function Point Analysis (FPA): This technique counts the number and complexity of
functions that a piece of software can perform to determine how functional and
sophisticated it is. The effort needed for development, testing and maintenance can be
estimated using this model.
2.Putnam Model: This model is a parametric estimation model that estimates effort,
time and faults by taking into account the size of the the programme, the expertise of
the development team and other project-specific characteristics.
3.Price-to-Win Estimation: Often utilized in competitive bidding, this model is concerned
with projecting the expenses associated with developing a particular software project in
order to secure a contract. It involves looking at market dynamics and competitors.
4.Models Based on Machine Learning: Custom cost estimating models can be built
using machine learning techniques including neural networks, regression analysis and
decision trees. These models are based on past project data. These models are flexible
enough to adjust to changing data and project-specific features.
5.Function Points Model (IFPUG): A standardized technique for gauging the
functionality of software using function points is offered by the International Function
Point Users Group (IFPUG). It is employed to calculate the effort required for software
development and maintenance.
COCOMO Model

• The Constructive Cost Model (COCOMO) is a software


cost estimation model that helps predict the effort, cost,
and schedule required for a software development
project. Developed by Barry Boehm in 1981, COCOMO
uses a mathematical formula based on the size of the
software project, typically measured in lines of code
(LOC).
The COCOMO Model is a procedural cost estimate model for software projects and is
often used as a process of reliably predicting the various parameters associated with
making a project such as size, effort, cost, time, and quality. It was proposed by Barry
Boehm in 1981 and is based on the study of 63 projects, which makes it one of the
best-documented models.
The key parameters that define the quality of any software product, which are also an
outcome of COCOMO, are primarily effort and schedule:
1.Effort: Amount of labor that will be required to complete a task. It is measured in
person-months units.

2.Schedule: This simply means the amount of time required for the completion of the
job, which is, of course, proportional to the effort put in. It is measured in the units of
time such as weeks, and months.
1. Planning and requirements: This initial phase involves defining the scope, objectives, and constraints of
the project. It includes developing a project plan that outlines the schedule, resources, and milestones
2. System design: : In this phase, the high-level architecture of the software system is created. This includes
defining the system’s overall structure, including major components, their interactions, and the data flow
between them.
3. Detailed design: This phase involves creating detailed specifications for each component of the system. It
breaks down the system design into detailed descriptions of each module, including data structures,
algorithms, and interfaces.
4. Module code and test: This involves writing the actual source code for each module or component as
defined in the detailed design. It includes coding the functionalities, implementing algorithms, and
developing interfaces.
5. Integration and test: This phase involves combining individual modules into a complete system and
ensuring that they work together as intended.
6. Cost Constructive model: The Constructive Cost Model (COCOMO) is a widely used method for
estimating the cost and effort required for software development projects.
Importance of the COCOMO
Model
1. Cost Estimation: To help with resource planning and project budgeting, COCOMO offers a
methodical approach to software development cost estimation.

2. Resource Management: By taking team experience, project size, and complexity into
account, the model helps with efficient resource allocation.

3. Project Planning: COCOMO assists in developing practical project plans that include
attainable objectives, due dates, and benchmarks.

4. Risk management: Early in the development process, COCOMO assists in identifying and
mitigating potential hazards by including risk elements.

5. Support for Decisions: During project planning, the model provides a quantitative foundation
for choices about scope, priorities, and resource allocation.

6. Benchmarking: To compare and assess various software development projects to industry


standards, COCOMO offers a benchmark.

7. Resource Optimization: The model helps to maximize the use of resources, which raises
productivity and lowers costs.

You might also like