Unit 2 SWE
Unit 2 SWE
Unit 2 SWE
Guide
This document provides a comprehensive guide to software project planning, covering essential aspects like objective
setting, decomposition techniques, software sizing, estimation methods, and cost estimation models. It delves into
various techniques for breaking down complex projects into manageable tasks, exploring different approaches for
estimating project scope and effort, and dissecting the COCOMO model for cost estimation.
by Manan Khaldwa
Project Planning Objectives
Project planning is a fundamental process in software development that aims to define the project scope, establish
clear goals, and outline a structured approach for achieving those goals. Effective project planning is crucial for
successful software development, ensuring that projects are completed within budget, on schedule, and meet the
specified requirements.
Work Breakdown Structure (WBS): This hierarchical approach involves breaking down the project into
progressively smaller components, creating a tree-like structure. Each level represents a specific task, and the
lowest level typically consists of individual work packages. The WBS helps in identifying all project activities,
allocating resources, and tracking progress.
Functional Decomposition: This technique focuses on breaking down the project based on its functions or
functionalities. It involves identifying the different parts of the system and their interactions, enabling the
development team to focus on specific functionalities and ensure that all aspects are covered.
Object-Oriented Decomposition: In object-oriented development, the project is decomposed into objects,
which are self-contained units that encapsulate data and behavior. This technique allows for modularity,
reusability, and easier maintenance.
Software Sizing
Software sizing refers to the process of quantifying the size of a software project. It involves measuring the amount of
work required to develop the software, which can be expressed in terms of lines of code, function points, or user
stories. Software sizing is a crucial step in project planning, as it provides a basis for estimating effort, cost, and
schedule.
Lines of Code (LOC): One of the simplest methods, LOC counts the number of lines of code in the software.
However, LOC can be influenced by coding style and language, making it less reliable for cross-project
comparisons.
Function Points (FP): FP is a more sophisticated method that focuses on the functionality delivered by the
software. It considers factors like data elements, external interfaces, and user interactions, providing a more
consistent measure of software size.
User Stories: In agile development, user stories are used to define the functionalities from the user's perspective.
The number of user stories can be used as a proxy for software size, particularly in projects that employ agile
methodologies.
Problem-Based Estimation
Problem-based estimation focuses on understanding the complexity of the software project and the challenges that
need to be overcome. It involves analyzing the project's requirements, identifying potential risks and obstacles, and
estimating effort based on the perceived difficulty of the tasks.
This approach relies heavily on expert judgment and experience, often involving brainstorming sessions with
developers and stakeholders to identify potential problems and estimate their impact on the project schedule and
budget.
Complexity of requirements: The more complex the requirements, the more time and effort will be required to
develop the software.
Technical challenges: Complex technical issues, such as integrating with legacy systems or implementing
cutting-edge technologies, can significantly increase development effort.
Risk factors: Uncertainty and potential risks, such as changing requirements or unforeseen technical issues, can
impact project timelines and budgets.
Process-Based Estimation
Process-based estimation focuses on the development process itself, utilizing historical data and statistical analysis
to estimate effort and schedule. This approach is particularly effective for projects with similar characteristics or
those that follow a defined development methodology.
Parametric estimation: This technique uses historical data and statistical models to estimate effort based on
project size, complexity, and other factors. Parametric models are often used in conjunction with software sizing
methods, such as LOC or FP.
Analogous estimation: This method compares the current project to similar past projects, using the historical
data from those projects as a basis for estimation. Analogous estimation is most effective when the projects being
compared are very similar in scope, complexity, and technology.
Expert judgment: While not purely process-based, expert judgment plays a significant role in process-based
estimation. Experienced developers and project managers can provide valuable insights based on their knowledge
and experience with similar projects.
Cost Estimation Model: COCOMO Model
The Constructive Cost Model (COCOMO) is a widely used cost estimation model that provides a framework for
estimating software development effort, cost, and schedule. It is a parametric model that uses historical data and
statistical analysis to predict development effort based on project size, complexity, and other factors.
Basic COCOMO: This model provides a simplified approach to cost estimation, using a single formula to calculate
effort based on software size. The formula takes into account project factors like experience, personnel
capabilities, and the use of tools and technologies.
Intermediate COCOMO: This model considers a wider range of factors, including product attributes, platform
attributes, and project attributes. It uses a more complex formula to calculate effort based on these factors,
providing a more accurate estimate.
Detailed COCOMO: This model incorporates the most detailed considerations, including all the factors from
Intermediate COCOMO and adding environmental factors such as project structure, personnel experience, and the
use of software tools. It provides the most accurate cost estimation, but it requires significant data collection and
analysis.
COCOMO Model: Factors and Calculations
The COCOMO model uses a set of factors to adjust the estimated effort and cost. These factors are classified into
three categories:
Product attributes: These factors relate to the characteristics of the software product itself, such as its size,
complexity, and required reliability.
Platform attributes: These factors relate to the hardware and software platforms on which the software will be
developed and deployed, such as the type of operating system, the use of middleware, and the availability of
development tools.
Project attributes: These factors relate to the characteristics of the project itself, such as the experience level of
the development team, the availability of personnel, the use of development methodologies, and the overall risk
associated with the project.
The COCOMO model uses a set of equations to calculate estimated effort, cost, and schedule. These equations are
based on historical data and statistical analysis, and they incorporate the factors mentioned above. The model
provides a structured approach to cost estimation, enabling project managers to develop more accurate and realistic
estimates.
Advantages and Disadvantages of COCOMO
The COCOMO model offers several advantages, including:
Well-established and widely used: COCOMO is a well-established model that has been used by many
organizations for decades, making it a reliable and proven approach.
Comprehensive and flexible: COCOMO considers a wide range of factors, allowing for customization and
adaptation to different projects.
Quantitative and objective: The model uses quantitative data and statistical analysis to estimate effort, cost, and
schedule, reducing subjectivity and providing more objective estimates.
Data-intensive: The model requires significant historical data for accurate estimation, which may not be readily
available for new projects.
Oversimplification: COCOMO can oversimplify complex projects, neglecting factors such as team dynamics,
organizational culture, and the influence of external factors.
Not suitable for all projects: COCOMO may not be suitable for highly innovative projects or those with unique
technical challenges, where historical data is not available or relevant.
Conclusion and Recommendations
Effective project planning is crucial for software development success. By defining clear objectives, employing
appropriate decomposition techniques, and accurately estimating effort and cost, project managers can set the
stage for successful software development. The COCOMO model, while not without its limitations, provides a valuable
framework for cost estimation, offering a structured approach to developing more realistic and reliable estimates.
Adopt a comprehensive approach: Combine different estimation techniques to account for diverse project
characteristics.
Utilize historical data: Leverage past project data to refine estimations and improve accuracy.
Involve experienced stakeholders: Incorporate expert judgment and experience from developers, project
managers, and stakeholders.
Continuously monitor and adjust: Regularly assess progress and adjust plans as needed to adapt to changing
project circumstances.