Se Module 3 Notes
Se Module 3 Notes
1. Introduction
Project scheduling and tracking are essential activities in software engineering that help manage time,
resources, and progress to ensure successful project completion.
2. Project Scheduling
Project scheduling involves planning and defining the timeline of tasks and activities to complete a software
project efficiently.
2. Work Breakdown Structure (WBS): Divide the project into smaller tasks and subtasks.
3. Estimate Time and Resources: Determine effort, duration, and required resources for each
task.
o CPM (Critical Path Method): Identifies the longest sequence of dependent tasks to
determine the shortest completion time.
5. Allocate Resources: Assign team members to tasks based on expertise and availability.
6. Set Milestones and Deadlines: Define important checkpoints for progress tracking.
7. Use Scheduling Tools: Utilize software like Microsoft Project, Jira, or Trello.
3. Project Tracking
Project tracking ensures the project remains on schedule and meets objectives by continuously monitoring
progress.
1. Monitor Task Progress: Regularly review task status and compare with planned timelines.
4. Conduct Regular Meetings: Use daily stand-ups (Scrum), weekly reviews, or milestone
meetings.
5. Identify Risks and Issues: Track potential risks and apply mitigation strategies.
7. Use Project Management Tools: Tools like Jira, Asana, or Monday.com facilitate tracking and
collaboration.
Project scheduling provides a structured approach for planning software development tasks, while tracking
ensures projects stay on course. Utilizing proper methodologies, tools, and regular monitoring, teams can
efficiently deliver software projects within scope, time, and budget.
Software project estimation is the process of predicting the effort, time, cost, and resources required to develop
a software system. It plays a crucial role in project planning, budgeting, and scheduling to ensure successful
project completion.
1.1 Importance of Software Project Estimation
• Works well for projects using similar technology and programming languages.
• Difficult for early estimation: LOC is unknown in the early stages of development.
Function Point (FP) estimation focuses on measuring the functionality delivered to the user rather than the size
of the code. It is independent of programming languages.
Definition: A function point represents a unit of business functionality, considering user inputs, outputs, and
data management.
• Formula:
4. The Value Adjustment Factor (VAF) adjusts for complexity and environment.
5. Calculate Unadjusted Function Points (UFP):
6. Determine the Value Adjustment Factor (VAF) based on system characteristics (ranging
from 0.65 to 1.35).
o FP = UFP × VAF
2.2.2 Advantages of FP Estimation
• A group-based expert judgment technique where multiple rounds of estimation are conducted
until a consensus is reached.
Software project estimation is a vital process for planning and executing software projects successfully.
Choosing the right estimation technique—LOC, FP, or other models—depends on the project’s scope,
complexity, and available historical data.
1. Introduction
Empirical estimation models are mathematical models used to estimate the effort, cost, and schedule of
software projects based on historical data and statistical analysis. These models rely on empirical evidence
from past projects and provide realistic and data-driven estimates.
Several empirical models exist, with the most commonly used ones being:
The basic formula for estimating effort (E), time (T), and cost is:
Where:
This means the project will require 25.12 person-months of effort and approximately 7.5 months to
complete.
If a project has an estimated size of 100 KLOC and the productivity factor is 500,
Instead of measuring software in lines of code, FPA estimates software functionality based on user
requirements.
• FP = UFP × VAF
Where:
• UFP (Unadjusted Function Points) = sum of all function types (inputs, outputs, files, etc.).
If a project has:
UFP = 15 + 16 + 9 + 14 + 5 = 59
If VAF = 1.1, then:
Where:
• N₁ = Number of operators
• N₂ = Number of operands
• n₁ = Unique operators
• n₂ = Unique operands
If a program has:
• N₁ = 20, N₂ = 30
• n₁ = 5, n₂ = 10
Then:
• N = 20 + 30 = 50
COCOMO II Model
1. Introduction to COCOMO II
COCOMO II (Constructive Cost Model II) is an updated version of the original COCOMO (Constructive
Cost Model) developed by Barry Boehm in 1981. COCOMO II was introduced in the 1990s to address
modern software development challenges, such as object-oriented programming, rapid application
development, and reusable components.
• Provides accurate effort and cost estimation for modern software projects.
• Supports different development methodologies, including agile and iterative models.
COCOMO II has three stages of estimation based on the software development lifecycle:
Used in the early prototyping stage, based on object points instead of LOC.
Example: If a project has 500 Object Points and the team productivity is 20 points/month,
Used during the initial planning phase when requirements are known, but architecture is not finalized.
Formula for Early Design Model:
Example Calculation:
If a project has 10 KLOC, a scale factor (e) of 1.15, and an EAF of 1.2,
Used when the project architecture is defined, allowing for more accurate estimation.
Formula for Post-Architecture Model:
o Similar to the Early Design Model but with more refined cost drivers.
Example Calculation:
If a project has 50 KLOC, a scale factor (e) of 1.20, and an EAF of 1.15,
COCOMO II refines project estimation using cost drivers that affect project effort and schedule. These are
categorized into four groups:
6.1 Advantages
✔ More Accurate Than Traditional COCOMO – Accounts for modern development practices.
✔ Supports Agile & Object-Oriented Development – Works well with iterative models.
✔ Considers Cost Drivers & Scale Factors – Improves estimation accuracy.
✔ Useful for Large & Complex Projects – Scalable across different industries.
6.2 Disadvantages
Agile estimation focuses on relative sizing, collaboration, and flexibility rather than strict time-based
calculations. Unlike traditional estimation methods, Agile estimation helps teams quickly estimate effort and
complexity while adapting to changes.
2. Planning Poker
Planning Poker is a consensus-based Agile estimation technique that helps teams estimate the effort required
for user stories. It is widely used in Scrum and Kanban frameworks.
4. Each Team Member Selects a Card from a Fibonacci sequence (1, 2, 3, 5, 8, 13, 21, etc.).
• The majority votes for 5, and after discussion, the team agrees on 5 story points.
A User Story is a small, self-contained piece of functionality that describes a software feature from an end-
user’s perspective. It follows this format:
3. Assign Story Points using techniques like Fibonacci series or T-Shirt Sizing (S, M, L, XL).
4. Validate with Team to ensure a shared understanding.
• Estimation:
Agile estimation techniques like Planning Poker and User Story Planning make estimation collaborative,
flexible, and effective. They help teams estimate effort and complexity rather than focusing on fixed
deadlines. By using these methods, Agile teams can improve accuracy, enhance team collaboration, and adapt
to changing requirements.
Project scheduling is the process of defining, planning, and organizing project tasks within a specified
timeframe. It helps in allocating resources, setting deadlines, and tracking progress. Various techniques are
used for effective scheduling, including Timeline Charts, Critical Path Method (CPM), and Fishbone
Diagrams.
2. Timeline Charts
2.1 What is a Timeline Chart?
A Timeline Chart is a graphical representation of project tasks arranged sequentially over a specified period. It
helps in visualizing task dependencies, deadlines, and milestones.
2.2 Features of Timeline Charts:
The Critical Path Method (CPM) is a project scheduling technique used to identify the longest sequence of
dependent tasks and determine the shortest project completion time.
A Fishbone Diagram, also known as the Ishikawa Diagram, is a visual tool used to identify potential causes of
problems in project scheduling. It helps in root cause analysis by categorizing issues into different factors.
• Bones (Causes): Represent major factors contributing to the problem, such as:
5. Comparison of Techniques
Effective project scheduling requires visual tools and analytical methods to plan, track, and troubleshoot
project timelines. Timeline Charts offer a simple way to track progress, CPM helps in identifying critical
tasks, and the Fishbone Diagram assists in problem analysis. Using these techniques together ensures
successful project completion.
PERT (Program Evaluation and Review Technique) and CPM (Critical Path Method) are two popular
project scheduling techniques used in project management.
Imagine you are developing a new mobile app and do not have exact time estimates.
For a task like UI design, you estimate:
For a road construction project, we know that tasks like laying the foundation take exactly 10 days.
• There is no uncertainty; we simply use a deterministic schedule to find the critical path.
Point to be noted
✔ Use PERT when project timing is uncertain (e.g., software development, R&D).
✔ Use CPM when project timing is well-defined (e.g., construction, manufacturing).