Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Unit 3: Estimation and Scheduling

Estimation for Software Projects: The Project Planning Process, Defining Software Scope and
Checking Feasibility, Resources management, Reusable Software Resources, Environmental
Resources, Software Project Estimation, Decomposition Techniques, Software Sizing,
Problem-Based Estimation, LOC-Based Estimation, FP-Based Estimation, Object Point (OP)-based
estimation, Process Based Estimation, Process-Based Estimation, Estimation with Use Cases,
Use-Case–Based Estimation, Reconciling Estimates, Empirical Estimation Models,
The Structure of Estimation Models, The COCOMO II Mode, Preparing Requirement Traceability Matrix
Project Scheduling: Project Scheduling, Defining a Task for the Software Project, Scheduling.
The Project Planning Process

There are total 10 steps:


-> Define stakeholders
-> Define Roles
-> Introduce stakeholders
-> Set goals
-> Prioritise Tasks
-> Create a schedule
-> Assess risks
-> Communicate
-> Reassess
-> Final evaluation
Defining Scope and checking feasibility

Software scope:
-> functions and features
-> data
-> content of the software presented to the user.
-> Performance
-> Scalibility
-> Reliability
-> Constraints

After developing the scope of the project its feasibility must be ensured.

* Software Feasibility
-> It refers to the process of evaluating how practical and achievable a software
project is.
-> There are multiple types of software feasibility.
1. Technical Feasibility: Assess whether the tech required for software
is available. It can vary from tech skills to frameworks.

2. Operational Feasibility: Evaluates whether the project can be integrated


into the current operations and whether it will be acceptedby
users and stakeholders.

3. Finance Feasiblity: Evaluates if the project can be built under the defined
budget

4. Schedule Feasiblity: Assesses whether the project can be compeleted


within the desired timeframe.
Resource Management

* There are three major categories of SE resources:


-> Human resources
# They include all the techincal and non techincal individuals.
# Usually there is a heirarchy in human resources.
# For smaller projects, human resource may be very limited but
this might get complicated with larger projects.

-> Reusable Software Resources


# Components or assets that can be used across multiple software
project to save time, reduce costs and improve quality.

# There are four reusable categories:


= OTS Components [ 3rd party components]
= Full Experience Components
= Partial Components
= New Components

-> Environment Resources


# It includes hardware and software.
# Hardware is the physical component.
# Software is like the interface.
Software Project Estimation

* Software project estimation is the process of predicting the most realistic amount
of effort, time, and resources required to complete a software project.

* Accurate estimation is crucial for project planning, budgeting, resource allocation


and risk management.

* Importance
It helps in deciding various aspects of any project.
-> Budget
-> Resource Requirement
-> Expected time for building
-> Expected time for testing
-> Decision Making
Decomposition Techniques

* Software Sizing
-> Size is a quantifiable entity.
-> You can use two approaches
# Direct approach: Counting the lines of code.
# Indirect approach: computation of function point is done.
* Problem based Estimation
-> It can be done using two techniques
# LOC Based estimation
> software project estimation technique that predicts time needed
to complete a project by estimating the lines of code.
> This is one of the simplest and easiest methods for software
project estimation.

> What all is included in LOC?


- Declarations
- conditional statements
- looping statements
- Braces, etc.
> What is not included in LOC?
- Comments
- Blank lines
> Advantages
- Easy to implement
- Good option for smaller projects.
> Disadvantages
- Different standards for different organisations may create
discrepancies.
- Quantity matters a lot instead of quality.
Example of LOC

Module LOC

User authentication 2000


Lander Page 5000
Payment Gateway 3000
Backend 4000

Total LOC: 2000+5000+3000+4000 = 14000


Productivity Rate: 70 LOC/day
Effort : 14000/ 70 = 200 days

No. of developers : 5
Total time required : 40 days
Additional Overhead: 40 + 20 = 60 Days
FP Based Estimation

* It measures the functionality provided by a software application based on the


user's perspective.
* It focuses on what functionality is being delivered.
* There are two functional points:
# Transactional Function Type
> External Input : It is responsible for input.
> External Output: It is responsible for output.
> External Inquries: It is combination of input/output.
# Data Function Type
> Internal Logical File: It is the actual built system.
> External Logical File: It is the pre built system which is being outsourced.

* Advantages
# Better accurate project estimation
# Improved Interaction
# Technological Independence
* Disadvantages
# Low accuracy
# Time consuming
# Subjective Judgement
Process Based Estimation

* process-based estimation is a method used to estimate the effort, cost, and


duration of a software project by breaking down the project into a series
of tasks or processes.

* Example:
-> Consider you are building a new e-commerce website.
-> Step 1 - Define the project scope
-> Step 2 - Break down the project into the tasks
# task 1: requirement gathering
# task 2: design
# task 3 : development
# task 4 : testing
# task 5 : deployment
-> step 3 - Estimate the effort in each task
# task 1 : 20 hrs
# task 2: 10 hrs
# task 3: 50 hrs
#task 4 : 20 hrs
# task 5 : 5 hrs
-> Step 4 - Determine resource requirements
-> Step 5 - Calculate task duration
-> Step 6 - Schedule Tasks
-> Step 7 - Calculate total project effort and duration
-> Step 8 - Review and refine estimates
Use Case Based estimation

* A use case is a description of how a user interacts with a software system to


achieve a specific goal.

* Key components of use case:


-> Actor
-> Goal
-> Preconditions
-> Main flow
-> Alternate flow
-> Postconditions
-> Exceptional flow

* use case based estimation involves giving use case points to all the tasks.
* The steps are:
-> Identify use cases
-> Categorise use cases
-> Assign weights to use cases
-> Calculate total effort
-> Estimate effort
-> Calculate overall effort after adding overheads
Use Case Based estimation

* Example
-> identify test cases
# user login
# view account balance
# transfer funds
# pay bills
# generate account statement

-> Categorise test cases


# user login : simple
# view account balance: simple
# transfer funds: complex
# pay bills : avg
# generate account statement : avg

-> assign weights for each category


# simple : 5 points
# avg : 10 points
# complex : 15 points

-> calculate total efforts


# total points : 45 points

-> estimate effort per point


# avg effort per points = 8 hours

-> calculate overall effort


# 45 * 8 = 360 hours

-> total including overhead


# 360 + 50 = 410 hours
COCOMO II Model

* It is the model that allows one to estimate the cost, effort, and schedule when
planning a new software development activity.

* It is also known as constructive cost model II

* It consists of 3 stages
-> Application Composition Model: Used for applications using RAD.
-> Early Design Model: used when only rough estimates are available.
-> Post architecture model: used after the architecture has been defined
and provides most detailed estimation.

* Effort computation in application composition model


-> In this estimation is based on the number of application points.

-> PM : efforts in terms of person months


-> NAP: Number of application points required
-> %reuse : amount of reused components
-> prod : object point productivity. It is fetched from the table

* Effort computation in early design model


-> In this estimation is based on functional points

-> A = 2.94
-> size is number of Kilo LOC
-> B varies from 1.1 to 1.24
-> M is based on different aspects like schedule, support facilities, personnel
experience, etc.
Project Scheduling

* A project schedule provides your project's clear, up-to-date status, including tasks,
assignments, dependencies, and milestones.

* Why?
-> Clarity and direction
-> Proper plan
-> Time management
* Steps to create a project schedule
-> Define tasks and milestones
-> Sequence tasks.
-> Estimate task durations.
-> Assign tasks to team members
-> Finalise and schedule
-> Monitoring
Princples of Project Scheduling

* Compartmentalisation
-> divide into small activities and tasks
* Interdependency
-> interrelation between each compartments should be defined
* Time allocation
* Effort validation
* Defined responsibilities
* Defined outcomes
* Defined Milestones
Time Line Chart

* It is also known as gantt chart.


* It is generated on the basis of the start date inputs for each task.

* It is one of the great ways to track all the activities.


* It can vary depending on the abstraction level.
* The left side indicates all the task performed.
* On the right side we have the time/data/day and horizontal boxes which indicate
the time lapse of the activity.
Earned Value Analysis

* Earned value analysis compares a performance measurement baseline to the


actual schedule and cost performance.

* Earned Value Analysis is a technique using formulas to understand where you


are in the project.

* Methods
-> 0/100 - Task is assigned a value of zero until it's completed then it is
assigned value of 100

-> 50/50 technique


-> 75/25 technique

You might also like