0% found this document useful (0 votes)
16 views20 pages

software engineering notes4_Module4_new

The document covers project scheduling and cost estimation in software engineering, detailing methods such as Gantt charts and PERT for effective project management. It emphasizes the importance of accurate project estimation techniques, including LOC and FP based methods, to predict time, cost, and resource requirements. Additionally, it highlights various project scheduling tools and their features to improve team collaboration and project tracking.
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)
16 views20 pages

software engineering notes4_Module4_new

The document covers project scheduling and cost estimation in software engineering, detailing methods such as Gantt charts and PERT for effective project management. It emphasizes the importance of accurate project estimation techniques, including LOC and FP based methods, to predict time, cost, and resource requirements. Additionally, it highlights various project scheduling tools and their features to improve team collaboration and project tracking.
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/ 20

5th Semester ECS Software Engineering

Module-4 Project scheduling & Cost Estimation

 Project Scheduling
 Gantt chart
 Program Evaluation Review Techniques (PERT)
 Tracking the Schedule
 Software Project Estimation
 LOC based
 FP based
 Empirical estimation Models
COCOMO II Model
Project Scheduling

Project-task scheduling is a significant project planning activity. It comprises deciding which


functions would be taken up when. To schedule the project plan, a software project manager
wants to do the following:

1. Identify all the functions required to complete the project.


2. Break down large functions into small activities.
3. Determine the dependency among various activities.
4. Establish the most likely size for the time duration required to complete the activities.
5. Allocate resources to activities.
6. Plan the beginning and ending dates for different activities.
7. Determine the critical path. A critical way is the group of activities that decide the
duration of the project.

 Project schedule simply means a mechanism that is used to communicate and know
about that tasks are needed and has to be done or performed and which organizational
resources will be given or allocated to these tasks and in what time duration or time frame
work is needed to be performed.
 Effective project scheduling leads to success of project, reduced cost, and increased
customer satisfaction.
 Scheduling in project management means to list out activities, deliverables, and
milestones within a project that are delivered.
 It contains more notes than your average weekly planner notes. The most common and
important form of project schedule is Gantt chart.

Process:

 The manager needs to estimate time and resources of project while scheduling project.
 All activities in project must be arranged in a logical and well-organized manner for easy
to understand.
 The total work is separated or divided into various small activities or tasks during project
schedule.
 Then, Project manager will decide time required for each activity or task to get
completed. Even some activities are conducted and performed in parallel for efficient
performance. The project manager should be aware of fact that each stage of project is
not problem-free.

The project schedule is represented as set of chart in which work-breakdown structure and
dependencies within various activities are represented. To accomplish and complete project
within a given schedule, required resources must be available when they are needed. Therefore,
resource estimation should be done before starting development.

Resources required for Development of Project:

 Human effort
 Sufficient disk space on server
 Specialized hardware
 Software technology
 Travel allowance required by project staff, etc.

A Gantt chart
A Gantt chart is a bar chart that describes a project schedule. It was designed and popularized by
Henry Gantt around the years 1910–1915. A Gantt chart is a project management tool that
illustrates work completed over a period of time in relation to the time planned for the
work. A Gantt chart can include the start and end dates of tasks, milestones, dependencies
between tasks, assignees, and more. Gantt charts are used for many other purposes in project
planning, project scheduling, project tracking and resource management.

Advantages of Gantt chart

 Know what's going on in your projects.


 Improved communication and team coordination.
 Measure the progress of projects.
 See overlapping activities and task dependencies.
 Experience more clarity.
 Practice better time management.
 Work with remote team members and motivate them
 Create a sense of accountability
 Boost flexibility
 Promotes transparency
Program Evaluation Review Techniques (PERT)

A PERT chart, also known as a PERT diagram, is a tool used to schedule, organize, and map
out tasks within a project. PERT stands for program evaluation and review technique. It
provides a visual representation of a project's timeline and breaks down individual tasks.

 PERT charts are generally used before a project begins to plan and determine the
duration of each task—so they don't have to show the actual dates of your project. They
also do a better job of showing whether certain tasks need to be completed in order or
whether they can be completed simultaneously.
Difference:

 PERT and Gantt charts enable project managers to track tasks and project status.
 PERT charts display tasks in a network diagram, highlighting dependencies;
 Gantt charts show tasks and timelines in a bar graph.

PERT Planning comprises of the following steps:

 Identification of definite activities and breakthroughs


 Determining the proper sequence of the activities
 Construction of network diagram
 Estimation of the time required for each activity
 Determination of Critical Path
 Updation of PERT chart
Differences between PERT Charts and Gantt Charts

SL.NO Parameters PERT Charts Gantt Charts


1 Development Developed by the U.S. Navy Created by Henry Gantt in the
in the 1950s to help manage early 1900s so people could see a
complex projects. project’s status at a glance.
2 Description A network diagram that A bar chart that shows the status
illustrates the status and and dependencies of tasks in a
dependencies of tasks in a project.
project.
3 Data Included Project duration, Project duration, dependencies,
dependencies, critical path, project phases, and responsibility.
and responsibility.
4 Usefulness After defining tasks, use theUsed to track the status of each
chart to create a timeline for
task and break tasks into smaller
the project. segments while a project is in
progress.
5 Format of Network diagram with boxes Bar chart, where each bar
Presentation that represent tasks. represents a task.
6 Time Structure there is no axis to represent The x-axis is the project timeline.
time.
7 Percentage of There is space to add the A filled-in bar represents a task
Task Completed completion percentage in the and shows the completion
box representing the task. percentage.
Dependent events have to be completed in order. Non-dependent events can be
worked on at the same time.

Project Schedule Tracking Tools in Software Engineering


Project Planning is an important activity performed by Project Managers. Project Managers can use the
tools and techniques to develop, monitor, and control project timelines and schedules. The tracking
tools can automatically produce a pictorial representation of the project plan. These tools also instantly
update time plans as soon as new information is entered and produce automatic reports to control the
project. Scheduling tools also look into Task breakdown and Risk management also with greater
accuracy and ease of monitoring the reports. It also provides a good GUI to effectively communicate
with the stakeholders of the project.

Features of Project Scheduling Tools

 Time management: The project scheduling tools keep projects running the way it is planned.
There will be proper time management and better scheduling of the tasks.
 Resource allocation: It provides the resources required for project development. There will be
proper resource allocation and it helps to make sure that proper permissions are given to different
individuals involved in the project. It helps to monitor and control all resources in the project.

 Team collaboration: The project scheduling tool improves team collaboration and
communication. It helps to make it easy to comment and chat within the platform without relying
on external software.

 User-friendly interface: Good project scheduling tools are designed to be more user-friendly
to enable teams to complete projects in a better and more efficient way.

Benefits of Project Scheduling Tools

 Defines work tasks: The project scheduling tool defines the work tasks of a project.
 Time and resource management: It helps to keep the project on track with respect to
the time and plan.
 Cost management: It helps in determining the cost of the project.
 Improved projectivity: It enables greater productivity in teams as it helps in smarter
planning, better scheduling, and better task delegation.
 Increased efficiency: The project scheduling tool increases speed and efficiency in
project development.
Criteria for Selecting Project Scheduling Tools

 Capability to handle multiple projects: The scheduling tool must handle multiple
projects at a time.
 User-friendly: It should be easy to use and must have a user-friendly interface.
 Budget friendly: The tool should be of low cost and should be within the development
budget.
 Security features: The tool must be secured and risk-free from vulnerable threats.

Top 10 Project Scheduling Tools

1. Microsoft Project
2. Daily Activity Reporting and Tracking (DART)
3. Monday.com
4. ProjectManager.com
5. Smart Task
6. Proof Hub
7. Asana
8. Wrike
9. GanttPRO
10. Zoho Projects

ProjectManager.com

ProjectManager.com is a very simple and useful application for project planning. It plans and
schedules the project easily. It is cost-friendly and suited to various types of project
development. This projectmanager.com also provides the functionality for tracking the
productivity of the team in project development.

Features:

 Provides Gantt chart to track the schedule of processes.


 Easily updates available.
 Can create a detailed project plan using this tool.
 Budget-friendly tool.
 Can integrate with Office 365, slack, and more applications.

GanttPRO

GanttPRO is Gantt chart-based project management software that allows teams to plan, track and
manage their business activities in a clean and easy-to-use interface. GanttPRO is leading
scheduling software that can be used by teams of all sizes and skill levels. It is one of the most
popular project management solutions out there and is integrated with some of the most used
project management tools like Google Chrome, Microsoft Outlook, Basecamp, and Jira.
Features:

 GanttPRO is a useful tool that helps in managing large-scale projects by offering project
portfolio management features, team collaboration features, and communication features.
 It is a free, open-source project management app that lets team organize their tasks,
deadlines, and actions in a Gantt chart.
 GanttPRO comes with free templates for project management.
 Teams can add notes or comments attach files from the cloud and send notifications to
clients via email or push notifications with priorities so they get all the updates in real
time.

What is JIRA Software?

JIRA is a software development tool used for project management and issue tracking. It is a
popular tool among software development teams to plan, track, and release software projects.
JIRA provides a centralized platform for managing tasks, bugs, and other types of issues and it
helps teams to organize and prioritize their work. The tool integrates with other software
development tools and has a variety of customizable features and workflows that allow teams to
adapt it to their specific needs. Additionally, JIRA also provides various reporting and dashboard
features that help teams to stay on top of their work and make data-driven decisions.

 JIRA supports multiple languages including English, French, etc. It is a platform-


independent tool. A 30-day free trial version is available on JIRA.
 JIRA provides a centralized platform for managing tasks, bugs, and other types of issues,
and it helps teams to organize and prioritize their work. JIRA is designed for agile
software development teams and it supports multiple methodologies such as Scrum,
Kanban, and custom workflows.

JIRA is used for:

 Project Management: JIRA provides a centralized platform for managing software


development projects, with support for multiple projects and workflows.
 Task Management: Teams can create, assign, and track tasks, bugs, and other types of
issues.
 Agile Planning: JIRA supports agile methodologies such as Scrum and Kanban and
provides tools for planning and tracking sprints, backlogs, and releases.
 Reporting and Dashboards: JIRA provides various reports and dashboards that help
teams to get a real-time view of their work and make data-driven decisions.
 Collaboration: JIRA allows teams to collaborate and communicate effectively, with
features such as comments, notifications, and alerts.
 JIRA is widely used by software development teams of all sizes and is known for its ease
of use and customization capabilities. The tool offers a free trial and several pricing
plans, including a cloud-based version and an on-premise version.
 Software Project Estimation

What is software project estimation? Why it is needed?


Software project estimation is a crucial process that revolves around
predicting the project's time and effort, cost, and scope; all this
information is necessary for the planning stage and to ensure the project's
success.
 Software project estimation approaches assist project managers in
effectively estimating critical project parameters such as cost and scope.
 PMs can then use these estimation strategies to give clients more accurate
projections as well as budget the funds and resources they’ll require for a
project’s success.
 Project estimation is a complex process that revolved around predicting
the time, cost, and scope that a project requires to be deemed finished.
 Project Estimation requires the use of complex tools & good
mathematical as well as knowledge about planning.
 Whether big or small, every project is advised to employ project
estimation as a crucial step to avoid unpredictable failure in the future.

Why is Project Estimates Important?

 Accurate estimates are critical to plan and execute a project successfully. Without precise
estimates, it becomes tough to determine how long a project will take or the number of
resources required.
 Project managers use these estimates to ensure the team has the right people, materials,
and tools available whenever needed. These estimates also help managers set realistic
goals and expectations for the team members and the stakeholders.

The 3 Major Parts to Project Estimation

 Effort estimation
 Cost estimation
 Resource estimate

 Estimation is the process of finding an estimate, or approximation, which is a value that


can be used for some purpose even if input data may be incomplete, uncertain, or
unstable.
 Estimation determines how much money, effort, resources, and time it will take to build a
specific system or product.
 Estimation is based on –

 Past Data/Past Experience


 Available Documents/Knowledge
 Assumptions
 Identified Risks

The four basic steps in Software Project Estimation are –

 Estimate the size of the development product.


 Estimate the effort in person-months or person-hours.
 Estimate the schedule in calendar months.
 Estimate the project cost in agreed currency.

Project Estimation Techniques


 LOC based estimation:
A line of code (LOC) is any line of text in a code that is not a comment or blank line, and also
header lines, in any case of the number of statements or fragments of statements on the line.
LOC clearly consists of all lines containing the declaration of any variable, and executable and
non-executable statements. As Lines of Code (LOC) only counts the volume of code, you can
only use it to compare or estimate projects that use the same language and are coded using the
same coding standards.

Features:
 Variations such as “source lines of code”, are used to set out a codebase.
 LOC is frequently used in some kinds of arguments.
 They are used in assessing a project’s performance or efficiency.
Advantages:
 Most used metric in cost estimation.
 Its alternates have many problems as compared to this metric.
 It is very easy in estimating the efforts.

Disadvantages:

 Very difficult to estimate the LOC of the final program from the problem specification.

 It correlates poorly with quality and efficiency of code.


 It doesn’t consider complexity.
 FP based estimation: Functional Point (FP) Analysis
Objectives of Functional Point Analysis
 The objective of FPA is to measure the functionality that the user requests and receives.
 The objective of FPA is to measure software development and maintenance
independently of the technology used for implementation.
 It should be simple enough to minimize the overhead of the measurement process.
 It should be a consistent measure among various projects and organizations.

Types of Functional Point Analysis

There are basically two types of Functional Point Analysis, which are listed below.

 Transactional Functional Type

 Data Functional Type

Transactional Functional Type


 External Input (EI): EI processes data or control information that comes from outside
the application’s boundary. The EI is an elementary process.

 External Output (EO): EO is an elementary process that generates data or control


information sent outside the application’s boundary.

 External Inquiries (EQ): EQ is an elementary process made up of an input-output


combination that results in data retrieval.

Data Functional Type


 Internal Logical File (ILF): A user-identifiable group of logically related data or control
information maintained within the boundary of the application.

 External Interface File (EIF): A group of users recognizable logically related data
allusion to the software but maintained within the boundary of software.
Benefits of Functional Point Analysis

 FPA is a tool to determine the size of a purchased application package by counting all the
functions included in the package.

 It is a tool to help users discover the benefit of an application package to their


organization by counting functions that specifically match their requirements.

 It is a tool to measure the units of a software product to support quality and productivity
analysis.

 It is a vehicle to estimate the cost and resources required for software development and
maintenance.

 It is a normalization factor for software comparison.


Difference between LOC and Function Point:

Function Point (FP) Line of Code (LOC)


Function Point metric is specification-
LOC metric is based on analogy.
based.
Function Point metric is language
LOC metric is dependent on language.
independent.
Function Point metric is user-oriented. LOC metric is design-oriented.
Function Point metric is extendible to Line
It is changeable to FP
of Code.
Function Point is used for data processing LOC is used for calculating the size of the
systems computer program
Function Point can be used to portray the LOC is used for calculating and comparing
project time the productivity of programmers.

In general, people prefer the Function Point for one very important reason, i.e., the size
expressed using the Function point metric stays constant in any case and whichever
language or languages are used.

 Empirical estimation models


What are empirical estimation models?
 Empirical estimation is a technique or model in which empirically derived formulas are
used for predicting the data that are a required and essential part of the software project
planning step.
 Empirical models can be used for calibration and prediction of experimental data, in
addition to their abilities to achieve process optimization.

What is COCOMO estimation model?


Cocomo (Constructive Cost Model) is a regression model based on LOC, i.e number of
Lines of Code. It is a procedural cost estimate model for software projects and is often
used as a process of reliably predicting the various parameters associated with making a
project such as size, effort, cost, time, and quality.

Figure. COCOMO MODEL


What is the difference between theoretical model and empirical model?

 Empirical means based on observations or experience.


 Theoretical means based on theories and hypotheses.
 The two terms are often used in scientific practice to refer to data, methods, or
probabilities.

Where is COCOMO model used?

COCOMO stands for the constructive cost model, a cost estimation model for software projects
based on LOC. The COCOMO model calculates a proposed software project's time, effort, cost,
and quality. In simple words, it predicts the performance of a software project.

What is COCOMO 1 and COCOMO 2 model?

 COCOMO I is useful in the waterfall models of the software development cycle.


 COCOMO II is useful in non-sequential, rapid development and reuse models of
software. It provides estimates of effort and schedule.

COCOMO II Model

COCOMO-II is the revised version of the original Cocomo (Constructive Cost Model) and is
developed at University of Southern California. It is the model that allows one to estimate the
cost, effort and schedule when planning a new software development activity. It consists of three
sub-models:

1. End User Programming:


Application generators are used in this sub-model. End users write the code by
using these application generators. Example – Spreadsheets, report generator, etc.
2. Intermediate Sector:

(a)Application Generators and Composition Aids –


This category will create largely prepackaged capabilities for user programming. Their product
will have many reusable components. Typical firms operating in this sector are Microsoft, Lotus,
Oracle, IBM, Borland, Novell.
(b)Application Composition Sector –
This category is too diversified and to be handled by prepackaged solutions. It includes GUI,
Databases, and domain specific components such as financial, medical or industrial process
control packages.
(c) System Integration –
This category deals with large scale and highly embedded systems.
3. Infrastructure Sector:
This category provides infrastructure for the software development like Operating System,
Database Management System, User Interface Management System, Networking System, etc.
Stages of COCOMO II:

Stage-I:
It supports estimation of prototyping. For this it uses Application Composition Estimation
Model. This model is used for the prototyping stage of application generator and system
integration.
Stage-II:
It supports estimation in the early design stage of the project, when we less know about it. For
this it uses Early Design Estimation Model. This model is used in early design stage of
application generators, infrastructure, and system integration.
Stage-III:
It supports estimation in the post architecture stage of a project. For this it uses Post Architecture
Estimation Model. This model is used after the completion of the detailed architecture of
application generator, infrastructure, and system integration.

Difference between COCOMO 1 and COCOMO 2

COCOMO 1 Model:

 The Constructive Cost Model was first developed by Barry W. Boehm.


 The model is for estimating effort, cost, and schedule for software projects.
 It is also called as Basic COCOMO. This model is used to give an approximate
estimate of the various parameters of the project.
 Example of projects based on this model is business system, payroll management
system and inventory management systems.

COCOMO II Model:

 The COCOMO-II is the revised version of the original Cocomo (Constructive


Cost Model) and is developed at the University of Southern California.
 This model calculates the development time and effort taken as the total of the
estimates of all the individual subsystems.
 In this model, whole software is divided into different modules. Example of
projects based on this model is Spreadsheets and report generator.

COCOMO I COCOMO II
COCOMO I is useful in the waterfall models COCOMO II is useful in non-sequential, rapid
of the software development cycle. development and reuse models of software.
It provides estimates that represent one
It provides estimates of effort and schedule. standard deviation around the most likely
estimate.
This model is based upon the linear reuse This model is based upon the nonlinear reuse
formula. formula
This model is also based upon reuse model
This model is also based upon the assumption
which looks at effort needed to understand and
of reasonably stable requirements.
estimate.
Effort equation’s exponent is determined by 3 Effort equation’s exponent is determined by 5
development modes. scale factors.
Development begins with the requirements
It follows a spiral type of development.
assigned to the software.
Number of submodels in COCOMO I is 3 and In COCOMO II, Number of submodel are 4
15 cost drivers are assigned and 17 cost drivers are assigned
Size of software stated in terms of Lines of Size of software stated in terms of Object
code points, function points and lines of code

You might also like