0% found this document useful (0 votes)
7 views80 pages

Se Unit3

Unit 3 focuses on estimation and scheduling in software project management, detailing the project planning process, resource management, and various estimation techniques. It emphasizes the importance of defining project scope and feasibility, as well as the inherent risks and uncertainties in estimating project resources, costs, and timelines. The document also outlines steps for effective project estimation, including size, effort, schedule, and cost estimation, alongside decomposition techniques for accurate forecasting.

Uploaded by

kutesanika21
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)
7 views80 pages

Se Unit3

Unit 3 focuses on estimation and scheduling in software project management, detailing the project planning process, resource management, and various estimation techniques. It emphasizes the importance of defining project scope and feasibility, as well as the inherent risks and uncertainties in estimating project resources, costs, and timelines. The document also outlines steps for effective project estimation, including size, effort, schedule, and cost estimation, alongside decomposition techniques for accurate forecasting.

Uploaded by

kutesanika21
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/ 80

Unit 3: Estimation and

Scheduling
• Overview : Estimation and Scheduling : Estimation for Software Projects:
● The Project Planning Process
● Defining Software Scope and Checking Feasibility
● Resources management,
 Human Resources
 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,
 Estimation with Use Cases,
● Reconciling Estimates,
 Empirical Estimation Models,

 The S tructure of E stimation Models,

 The C O C OM O II Mode,

 Preparing Requirement
• Traceability Matrix **
● Project Scheduling,

● Defining a Task for the Project

● Defining Task Network

● Scheduling
• Suggested Free Open Source Tools:
• Gantt Project, Agantty, Project Libre.
• Case Studies:
• Write SRS in I EEE format for selected Project Statement/ case study,
• Study SRS of Online Voting system, Library management System

• 1-4
ESTIMATION FOR SOFTWARE PROJECTS
Introduction:
• Software project management begins with a set of activities that are collectively called project
planning.
• Project planning is a crucial phase in software project management and involves a set of
activities aimed at defining the project(goals and tasks), estimating resources(people,time,cost),
creating schedules(timeline), and establishing the overall approach to be taken.

• Before the project can begin, the software team should estimate the work to be done, the
resources that will be required, and the time that will elapse from start to finish.
• it's like making a plan to understand what needs to be done, what you need to do it, and how
much time it will take.
• Once these activities are accomplished, the software team should establish a project schedule
that defines software engineering tasks and milestones, identifies who is responsible for
conducting each task, and specifies the inter task dependencies(one task depends on another)
that may have a strong bearing on progress
PROJECT ESTIMATION : OBSERVATION
• Estimation of resources, cost, and schedule for a software engineering effort
requires experience, access to good historical information (metrics).

• Estimation carries inherent risk, and this risk leads to uncertainty.


• Estimation involves a certain level of risk because we can't predict the future
with absolute certainty.
• Project size is another important factor that can affect the accuracy and efficacy
of estimates. As size increases, the interdependency among various elements of
software grows rapidly. Problem decomposition becomes difficult, hence
uncertainty increases.
• the larger the project, the more difficult it is to predict and plan for all the
complexities and interactions involved.
PROJECT ESTIMATION : PROJECT PLANNING
PROCESS
Determine Identify
Project scope Analyze
resources
And risk
feasibility

Estimate
cost and
efforts

Develop
project
PROJECT ESTIMATION : PROJECT PLANNING
PROCESS
• The objective of software project planning is to provide a framework that enables
the manager to make reasonable estimates of resources, cost, and schedule.
• Estimates should attempt to define best-case and worst-case scenarios so that project
outcomes can be bounded.
• The best-case scenario represents an optimistic view, assuming everything goes
exceptionally well, while the worst-case scenario accounts for potential challenges and
difficulties.

• Although there is an inherent degree of uncertainty, the software team embarks on a


plan that has been established as a consequence of these tasks.
• even if things are a bit uncertain, the team still goes ahead with a plan that's been
made by considering what needs to be done.
• So, it's important to adjust and revise the plan as the project moves forward.
SOFTWARE SCOPE AND FEASIBILITY
• Software scope describes

1. Functions and features that are to be delivered to end users;


2. Data that are input and output;(software will receive as input and produce as output)
3. “Content” that is presented to users as a consequence of using the software;(describes how
data or content is display to users when they interact with software)
4. Performance(expected speed), Constraints(describes limitation), Interfaces(interact with other
system) and Reliability that bound the system.
• these elements collectively shape the specification of what the s/w is meant to achieve, providing
a view of the project scope.
• Techniques for defining Scope:
1. A narrative description of software scope is developed after communication
with all stakeholders.(detailed overview)
2. As a set of use cases is developed by end users.
• Performance considerations encompass processing and response
time requirements.

• Constraints identify limits placed on the software by external


hardware(storage capacity, processing power), available
memory(RAM), or other existing systems.
SOFTWARE SCOPE AND FEASIBILITY
• Once scope has been identified, it is reasonable to ask: “Can we build software to meet this
scope? Is the project feasible?”

• Software feasibility has four solid dimensions:


– Technology (tools,hardware, software)
– Finance(Estimate the costs associated with software development, including hardware,
software, personnel, training, and ongoing maintenance)
– Time(Establish a realistic timeline for the project, considering development phases, testing,
and deployment.)
-Resources(Human Resources: Assess the availability and capability of the required personnel,
including developers, testers, and other team members.
Physical Resources: Ensure access to necessary hardware, software, and infrastructure.)
• Technology
• Is a project technically feasible?
• Can issues be minimized to meet the application's requirements?

• Finance
• Is it financially feasible?
• Can the development be finished at a cost that the software organization, its client, or the
market can bear?

• Time
• Will the project be completed and launched to the market faster than the competition?
• Resources
• Does the organization possess the necessary resources for achieving success?

• Once scope is understood, you must work to determine if it can be


done within the dimensions
RESOURCES MANAGEMENT

Fig. Three major categories of software engineering resources


• The first job in project planning is to define scope and identify
feasibility of the project.
• Second job is to estimate the resources required to accomplish the
software development.
• There are three major software resources
- Human resources
- Reusable software components
- Environment resources
RESOURCES
Human Resource Management:
• Workforce Planning: Determining the right number and type of
employees needed to achieve organizational goals.
• Recruitment and Selection: Attracting and hiring qualified individuals.
• Training and Development: Enhancing the skills and knowledge of
employees to improve performance.
Reusable components
• Reusability components in software development is accelerating
development process.
• Reusable components, also known as reusable software components or
modules.
• software functionality that can be used in multiple applications or systems.
• Types of components:
1) off-the-shelf components(OTS)
2) Full experience components
3) Part experience Components
4) New components
Off-the-Shelf
• Off-the-Shelf (OTS) components refer to pre-built, commercially
available software components or products that can be purchased
and integrated into a larger system or application.
• These components are ready-made and typically developed by third-
party vendors for general use across different industries.
• OTS components offer various advantages, including time and cost
savings, as they eliminate the need for custom development of
certain functionalities.
• Here are some key characteristics and benefits of off-the-shelf
components: Ready-Made Solutions, Cost Savings, Time Efficiency,
Full experience components
• Full Experience: This implies a holistic and inclusive user experience that
covers all aspects of interacting with a product, service, or system.
• Components: These are individual parts or elements that make up a larger
system. In the context of software development, components could be
pieces of code, modules, or functionalities.
• The software we're making for this project looks a lot like the one we did
before.
• We're using the same plans, designs, code, and test information from a
past project.
• The team working on this knows a lot about the area, and they were part
of the group that made those earlier parts.
Part experience Components
• the team working on the software project has limited experience in
this specific area.
• Even though we have existing plans and designs from a previous
project (like full experience components), we need to make a lot of
changes to them.
• This means there's a fair amount of risk involved in using these
components for the new project
New components
• Software components can be developing by the software team as per
their need and requirement.
Environment resources
• The software system you're describing a Software Development and
Management System.
• Such a system typically encompasses tools and features that aid in the
development, maintenance, and improvement of software applications.
• Here are some key components and functionalities such a system might
include:
1) Integrated Development Environment (IDE):Provides a unified platform
for developers to write, test, and debug code.
2) Popular examples include Git for version control, JIRA for issue tracking,
and Jenkins for continuous integration and deployment.
Software project Estimation
• Effective software project estimation is important activity in software
development projects.
• Estimation in software engineering is a procedure that predicts the
time and budget that required for completing a project.
• Project estimation requires the use of complex tools and good
mathematical as well as knowledge about planning.
• One of the main reason software programs fail is our inability to
accurately estimate software size and cost.
Responsible Persons:
-Software Manager
-Cognizant Engineers
-Software Estimators
Factors affect on Project Estimation
1) Cost: The project will fail if you do not have sufficient funds to
complete it. So, at early estimate project cost and ensure you have
enough money to complete the work.
2) Time: estimate both overall project duration and timing of
individual tasks. It also enables you to manage client expectations
for key deliverables.
3) Size and scope: all the tasks that must be completed in order to
deliver product on time. You can ensure that you have right( project
manager provide)materials and expertise on the project by
estimating how much work is involve and exactly what tasks must
be completed.
4) Risk: Estimating predicting risk, what events will occur during the
projects life cycle and how serious they will be. Create risk
management plans.
5) Resource: Resource management ensures that you have all the
resources you require and make best use of them. Like, tools, people,
materials, hardware, software and other resources.
Steps of software
project Estimation

1) Estimate project size


2) Estimate efforts (person per month/hr)
3) Estimate Project schedule(Month/Year)
4) Estimate project cost(Currency /Dollars)
Steps of Software Project Estimation
1) Estimate Product Size(LOC line of code And FP functional point)
• It is the very first step to make an effective estimation of the project.
• A customers requirement, SRS document and system design
document used for estimating the size of a software.
• Estimate project size can be through similar project developed in past
. This is called estimation by Analogy.
• The system is divided into several subsystem depending on
functionality and size of each subsystem is calculated.
Product Size
2) Estimate Project Efforts:
• How many human resources require for completing project.
• The estimation of efforts can be made from the organizational
specifies of SDLC.
• Software development project involves design, coding, testing,
writing, reviewing documents, implementing prototypes and
deliverable it decide overall project efforts.
• The project effort estimate requires you to identify and estimate and
then sum up all the activities you must perform to build a product of
the estimated size.
• There are two main ways:
1) The best way to estimate effort is based on the organizations own
historical data of development process, suppose you have similar
SDLC, project size, Development methodology, Tools, team with
similar skills and experience for the new project.
2) If the project is in different nature which requires the organization
to adopt different strategy or different models based on algorithmic
approach. Ex COCOMO model.
3) Estimate Project Schedule:
1) It involves estimating number of people who will work on the
project and what they will work on(the work breakdown structure).
2) Also when they will start working on project and when they will
finish.
3) Once you have this information, you need to lay it out into a
calendar schedule.
4) Efforts in man-month are translated to calendar months thumb rule
is used.
schedule in calendar months=3.0*(man-months)1/3
How many human resources are require per month in project
according to this
5) The parameters 3.0 is variable ,used depending on the situation
which works best for the organization.
4) Estimate Project Cost:
1) The cost of a project is derived not only from the estimates of person
efforts and size.
2) Other parameters such as purchase hardware, software, travel for
meeting, telecommunication costs(long distance phone calls, video-
conference), training, office space etc
3) Exactly how you estimate total project cost will depend on how your
organization allocates costs.
4) The simplest labor cost can be obtained by multiplying the projects efforts
estimate(in hours) by a general labor rate($ per hour).
Per human in hour how many cost is required.
5) (salary division each and every person)A more accurate labor cost would
result from using a specific labor rate for each staff position (eg. Technical,
QA, project management, documentation, support , etc)
Decomposition Techniques
• Software Project Estimation is a form of problem solving (To estimate
cost, time, and efforts in software project.)
• Decomposition Techniques is divide and conquer approach of
software estimation.
• By decomposition a project into major functions like software
engineering related activities, cost, schedule and efforts estimation
can be performed in stepwise manner.
Decomposition techniques
1) Software Sizing
2) Problem based Estimation
3) Process based Estimation
Software Sizing
• Sizing represents the project planners first major challenge.
• The accuracy of software project estimate is predicated on a number
of things:
- The degree to which the planner has properly estimated the size of
the product to be built.
- The ability to translate the size estimate into human efforts ,calendar
time and cost.
- The degree to which the project plan reflects the abilities of the
software team.
- The stability of product requirements and environment that supports
software engineering effort.
• Approaches of Software Sizing:
- “Fussy logic”Sizing
- Function point Sizing
- Standard Component Sizing
- Change Sizing
Approaches of Software Sizing
• Putnam and Myers suggest four different approaches of software
sizing problem:
1) “Fuzzy logic”sizing:
- To apply this approach ,the planner must identify the type of
application.
- Although personal experience can be used, the planner should also
have access to historical database of projects so that estimates can be
compared to actual experience.(Size)
2) Function point Sizing:
- The planner develops estimates of the information domain
characteristics.(feature ,module required)

3) Standard component sizing:


- Standard components for an information system are subsystem
modules, screens, reports, interactive program, batch programs, files,
LOC and object-level instructions.
- Uses historical project data to determine the delivered size per
standard component.
4) Change sizing:
- This approach is used when a project encompasses the use of exiting
software that must be modified in some way as part of a project.
- The planner estimates reuse, adding code, changing code, deleting
code of modifications that must be accomplished.
- Using an “effort ratio”(human resources required) for each type of
change, the size of the change may be estimated.
2.Problem based Estimation
• Lines of code and function points were describes as measures from
which productivity metrics can be computed. (LOC/pm and FP/pm)
• LOC and FP data are used in two ways during software project
estimation:
- As an estimation variable to “size” each element of the software.
- As baseline metrics collected from past projects and used in
conjunction with estimation variables to develop cost and efforts
projections.
Functional point
Example of LOC
Example of FP
3.Process based Estimation
• Most common techniques for estimating project is to estimate on the
process that will be used.
• The process is decomposed into a relatively small set of tasks and the
efforts required to accompli each task is estimated.
• Once problem functions and process activities are decided, the planner
estimates the effort(eg. person month) that will be required to accomplish
each software process activity for each software function.
• Average labor rates(cost/unit effort) are then applied to the effort
estimated for each process activity.
• It is very likely the labor rate will vary for each task.
• Senior staff heavily involved in early activities are generally more expensive
than junior.
COCOMO Model
• It was developed by a scientist Barry Boehm in 1981.
• The COCOMO (constructive cost model) is one of the most popularly
used software cost estimation models.
• This model depends on the size means number of lines of code for
software product development.
• It estimates Effort required for project. Total project cost and
scheduled time of project.
In COCOMO model ,projects are categorized into three types:
1) Organic Type:
- Project is small and simple (2-50 KLOC)
- Few requirements of projects.
- Project team is small with prior experience.
- The problem is well understood and has been solved in the past.
- Example: simple inventory management system and data processing
systems.
2) Semidetached type:
-medium size and has mixed rigid requirements(50-300 KLOC)
- Project has complexity not too high and low.
- Both experienced and in experienced member in project team.
- Project are few known and few unknown modules.
- Examples: database management system, difficult inventory
management system.
3) Embedded type:
- Large project with fixed requirements of resources.(more than 300
KLOC)
- Larger team size with little previous experience.
- Highest level of complexity, creativity and experience requirement.
- Examples: ATM ,banking software
Types of COCOMO model
Type 1: Basic COCOMO model
• It is type of static model to estimates software development effort
quickly and roughly.
• It mainly deals with the number of lines of codes in project.
• Formula
Effort(E)= a*(KLOC)b MM(man per month)
Scheduled time(D) =c*(E)d Months(M)
Where,
• E= total effort required for the project in Man-Months(MM).
• D= total time required for project development in Months(M).
• KLOC = the size of the code for the project in kilo lines of code.
• a, b, c, d= the constant parameters for a software project.
• Problem statement:
Consider a software project using semi-detached mode with 300kloc.
Find out effort estimation, development time and person estimation.

Solution:
Effort(E)= a*(KLOC)b =3.0*(300)1.12 =1784.42 PM(per month)
Development Time(D)= c(E)d=2.5(1784.42)0.35= 34.35 Months(M)
Person required (P)=E/D= 1784.42/34.35 =51.9481 Persons~52 Persons
Type 2: Intermediate COCOMO Model
• Extension of Basic COCOMO model which enhance more accurately to
cost estimation model result.
• It include cost drivers(product, hardware, resource and project
parameter) of project.
• Formula:
Effort(E)=a*(KLOC)b*EAF MM
Schedule Time(D)= c*(E)d Months(M)
Where,
E= total effort required for the project in Man-Months(MM).
D= total time required for project development in Months(M).
KLOC= the size of the code for the project in Kilo line of code.
a, b, c, d=the constant parameters for the software project.
EAF: effort adjustment factor, which is calculated by multiplying the parameter
values of different cost driver parameters. For ideal , the values is 1.
1. Problem statement:
For a given semidetached project was estimated with size of 300 k loc .
Calculate the Effort, scheduled time for development by considering
developer having high application experience and very low experience
in programming.

Solution:
EFA= 0.82*1.14=0.9348
Effort(E)= a*( KLOC)b*EAF= 3.0*(300)1.12*0.9348=1668.07 MM
Scheduled time(D)=c*(E)d=2.5*(1668.07)0.35=33.55 months(M)
Typed 3:Detailed/ Complete COCOMO Model
• The model in corporates all qualities of both basic COCOMO and
intermediate COCOMO strategies on each software engineering process.
• The whole software is divided into different modules and then apply
COCOMO in different modules to estimate effort and then sum the effort.
• The six phases of detailed COCOMO model are:
- planning and requirements
- System design
- Detailed design
- Module code and test
- Integration and test
- Cost constructive model
• Problem statement:
A distributed management information system(MIS) product for an
organization having offices at several places across the country can
have the following sub-components: database part, graphical user
interface(GUI)part, Communication Part

Solution:
Detailed model First identified type of project.
The communication part can be considered as Embedded software.
The database part could be semi-detached software.
The GUI part Organic software.
The costs for these three components can be estimated separately and
summed up to give the overall cost of the system.
Advantages of COCOMO Model
• Provides a systematic way to estimate the cost and effort of a
software project.
• Estimate cost and effort of software project at different stages of the
development process.
• Helps in identifying the factors that have the greatest impact on the
cost and effort of a software project.
• Provide ideas about historical projects.
• Easy to implement with various factors.
Advantages of COCOMO Model
• It ignores requirements ,customer skills and hardware issues.
• It limits the accuracy of the software costs.
• It is based on assumptions and averages.
• It mostly depends on time factors.
• Assumes that the size of the software is the main factor that
determines the cost and effort of a software projects, which may not
always be the case.
Software Measurements
• Software measurements is indicator of size , quality amount or
dimension of particular attributes of a product or process.
• It helps the project manager and entire software team to take
decisions that lead to successful completion of the project by
generating quantity result.
• Software measurements are two categories:
1) Direct measures: it include software processes like cost and effort
applied. Lines of code produced , execution speed and total no of
errors that have been reported.
2) Indirect measures: it include products like functionality, quality,
complexity, reliability, maintainability and many more.
Software Metrics
• Software metrics provide measures ,functions or formula for various
aspects of software process and product.
• It including measuring software performance , planning work items,
measuring productivity other uses.
• Software metrics are of three categories:
1) Product Metrics: it estimates size, Complexity, quality and reliability
of software.
2) Process Metrics: it estimate faults rate during development, pattern
of testing defect arrival, time it takes for a fixed operation.
3) Project Metrics: It estimate number of software development ,cost,
scheduling and productivity of software
Software Measurement Principles
1) Formulation: The derivation of software measures and metrics
appropriate for the representation of the software that is being
considered.
2) Collection: the mechanism used to accumulate data required to
derive the formulated metrics.
3) Analysis: The computation of metrics and the application of
mathematical tools.
4) Interpretation: The evaluation of metrics resulting in insight into
the quality of the representation.
5) Feedback: Recommendation derived from the interpretation of
product metrics transmitted to the software team.
Project Scheduling
• Issues in project management:
- Project is not completed on scheduled.
- Technical difficulties are generate.
- Changing customer requirements affect on schedule.
- Miscommunication among project management.
- Essential software and hardware may be delivered late.
- In large project , software engineer perform multiple tasks parallel.
- Task interdependencies are in project.(complex project)
- Risks is not considered at beginning of project.
Project scheduling
• Project scheduling is responsible activity of project manager.(planning
phase)
• Project schedule is a mechanism that is used to communicate and
know about tasks are needed and has to be performed in project.
• Project manager separate total work task in project into different
activities.
• Project manager estimate the time and resources required to
complete activities and organize them into coherent sequence.
• Effective project scheduling leads to success of project , reduced cost
and increased customer satisfaction .
Project scheduling process
• Identify all the functions/ modules required to complete the project.
• Break down large functions into small activities.
• Determine the dependency among various activities.(eg SRS)
• Allocate resources to activities.
• Assign people to conduct different activities.
• Plan the beginning and ending dates for different activities.
• Create Activity Network and Bar or Gantt chart.
Basic principles of Project Scheduling
1) Compartmentalization: project divide into number of manageable
activities and tasks.
2) Interdependency: certain tasks occur in sequence whereas other
tasks occur in parallel.
3) Time allocation: each task has to be assigned specific time period ie
a start date and a completion date.
4) Effort validation: Project Manager measures that allocated number
of people work on given number.
5) Defined responsibilities: each task is assigned to specific member
of the software team.
6) Defined outcomes: each task has a defined outcome ie work
product.(requirement gathering having a outcome SRS)
7) Defined milestones: every task should be associated with a project
milestone. A milestone is accomplished when one or more work
products has been reviewed for quality. (feedback)
Project scheduling Techniques
1) Critical path method:
- It help you determine both longest and shortest possible time take to
complete a project.
- There are three essential elements. The tasks required to complete
the project, which tasks depend on the completion of others, a time
estimates for each activity.
Example:
• There are four tasks in the project- A, B, C, and D.
• Task B and D can only begin after task A completes, whereas tasc C
has no such restriction.
• Task A will be time- sensitive as any delay in its completion cab delay
in task B and D.
• It is called as critical task.
• This helps in identifying and separating the independent task.
• Finally, it adds milestones to the project.
2. Program Evaluation and Review Techniques
(PERT):
• It is a way to scheduled flow of tasks in project and estimate total
time taken to complete it.
• PERT charts offer a visual representation of the major activities(and
dependencies) in a project.
• It calculate
- Optimistic Time(O): quickest time you can complete a project
- Pessimistic time(P): longest time it will take to complete your project
- Most likely time(M):how long it will take to finish your project if
there are no problems.
• (O+4M+P)/6
PERT chart:
3. Gantt Chart
• A gantt chart is a type of bar graph that project managers use for
planning and scheduling in complex project.
• It represents each task horizontally on a bar chart, which shows the
start and end dates and they frequently include deadlines and
dependencies of tasks.
• It easier to visualize the progress of a project and see how different
tasks interact with one another.
4. Task List
• One of the simplest project scheduling techniques is the creation of a
task list.
• Create task list using a word processor or spreadsheet software.
• It create a list of tasks and include important information like the task
manager , start date, deadline and completion status.
5. Fast Tracking
• In fast tracking , project is being implemented by either
simultaneously executing many tasks or by overlapping many tasks to
each other.
6. Crashing
• Crashing deals with involving more resources to finish the project on
time.
• Example: add more developer in project, paying overtime to
employee.
• Crashing can only be applied when it fits your project budget.
THANK YOU…

You might also like