0% found this document useful (0 votes)
33 views16 pages

Unit3 One Shot Annotated

The document discusses various techniques for estimating software projects including lines of code estimation, function point analysis, use case point estimation and COCOMO II model. It also covers topics like project planning process, defining scope, feasibility analysis, resource management and project scheduling.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views16 pages

Unit3 One Shot Annotated

The document discusses various techniques for estimating software projects including lines of code estimation, function point analysis, use case point estimation and COCOMO II model. It also covers topics like project planning process, defining scope, feasibility analysis, resource management and project scheduling.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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