0% found this document useful (0 votes)
6 views

Software Project Scheduling Techniques

The document discusses different techniques for software project scheduling including planning phase approach, function point approach, and timeboxing approach. The function point approach involves estimating the system size, effort required, and schedule time using metrics like lines of code and person-months. Timeboxing prioritizes meeting deadlines over delivering all planned functionality.

Uploaded by

thrafi.reserve
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Software Project Scheduling Techniques

The document discusses different techniques for software project scheduling including planning phase approach, function point approach, and timeboxing approach. The function point approach involves estimating the system size, effort required, and schedule time using metrics like lines of code and person-months. Timeboxing prioritizes meeting deadlines over delivering all planned functionality.

Uploaded by

thrafi.reserve
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

CSE347

Information System Analysis and Design


Topic 3: Software Project Scheduling Techniques

Maliha Nawshin Rahman


Lecturer
Department of Computer Science and Engineering
Faculty of Science and Engineering
Software project management

Project management is the process of planning and controlling the


development of a system within a specified time frame at a minimum
cost with the right functionality.
The science (or art) of project management is in making trade-offs
among 3 important concepts:
• size of the system (in terms of what it does)
• time to complete the project (when the project will be finished)
• cost of the project

2
Software project scheduling

Software project scheduling is an activity that distributes estimated


effort across the planned project duration by allocating the effort to
specific software engineering tasks. It is important to note that the
schedule evolves over time. (Software Engineering book by Pressman)

Schedule time
The estimated effort is then converted into an estimated schedule
time in terms of the number of months from start to finish.

3
System Development Life Cycle
In which phase project scheduling takes place?
Phase 2. Analysis
▪ Conduct preliminary investigation
▪ Perform detailed analysis activities:

Study current system


Phase 1. Planning Determine user requirements Phase 3. Design
▪ Review project requests Recommend solution ▪ Acquire hardware
▪ Prioritize project and software, if
requests necessary
▪ Allocate resources ▪ Develop details of
▪ Identify project system
development team
Phase 4. Implementation
▪ Develop programs, if necessary
▪ Install and test new system
▪ Train users
▪ Convert to new system
Software project scheduling

There are different ways to estimate the time required to build a


system (project time) –
• Using Planning phase approach (simplest way)
• Function point approach
• Task-decomposition approach using work breakdown structures
• Timeboxing approach

5
Software project scheduling

Person-days: how long each


task would take to complete
in terms of the number of
days of work for a single
person

Person-months?

https://medium.com/momenton/effort-estimating-person-days-or-story-points-4c5301277423 6
Software project scheduling

Estimating Project Time Using the


Planning Phase Approach
Industry standards suggest that a typical
business application system spends 15%
of its effort in the planning phase, 20%
in the analysis phase, 35% in the design
phase, and 30% in the implementation
phase. This would suggest that if
planning a project takes 4 months, then
the rest of the project will probably take
a total of 22.67 person-months.

7
Function Point Approach
Estimating Project Time Using the Function Point Approach

It uses a more complex and reliable, 3-step process.


• First, the project manager estimates the size of the project in
terms of the number of lines of code the new system will
require.
• This size estimate is then converted into the amount of effort
required to develop the system in terms of a number of
person-months.
• The estimated effort is then converted into an estimated
schedule time in terms of the number of months from start to
finish.

8
Function Point Approach
Step 1: Estimate System Size (Calculating TUFP)

• To calculate the function points for a project, components


are listed on a worksheet to represent the major elements
of the system. For example, data entry screens are kinds of
inputs, reports are outputs, and database queries are kinds
of queries
• Project Manager breaks down the number to show the
number of components that have low, medium, and high
complexity
• After each line is filled in, a total number of points is
calculated per line by multiplying each number by a
complexity index. The line totals are added to determine Image source: Reference Book page 74
the total unadjusted function points (TUFP) for the project.

9
Function Point Approach
Step 1: Estimate System Size (Calculating TAFP)

• To create a more realistic size for the project, a number of


additional system factors, such as end user efficiency,
reusability, data communications are assessed in terms of
their effect on the project’s complexity
• These assessments are totaled and placed into a formula to
calculate an adjusted project complexity (APC) score. The
TUFP value is multiplied by the APC value to determine the
ultimate size of the project in terms of total adjusted function
points (TAFP).
• Sometimes a shortcut is used to determine the complexity of
the project. Project managers choose to assign an APC value
that ranges from .65 for very simple systems, to 1.00 for
normal systems, to as much as 1.35 for complex systems;
then, they multiply the value to the TUFP score.

10
Function Point Approach
Step 2: Estimate Required Effort (Converting Function Points to
Lines of Code)

Once you have estimated the number of function points, you


need to convert the number of function points into the lines of
code (LOC) that will be required to build the system. The number
of lines of code depends on the programming language you
decide to use. Figure presents a very rough conversion guide for
some popular languages. To develop the system in Java would
typically require approximately (60 * TAFP) lines of code to write
it.
What will be the LOC if we develop the system in example using
C? (TAFP = 243 from previous slide)

11
Function Point Approach

Step 2: Estimate Required Effort (Using COCOMO model)

One of the most popular algorithms, the COCOMO4 model, was designed by Barry W. Boehm to convert a lines-of-
code estimate into a person–month estimate. There are different versions of the COCOMO (Constructive Cost
Model), which vary based on the complexity of the software, the size of the system, the experience of the
developers, and the type of software being developed. For small- to moderate-sized business software projects
(i.e., 100,000 lines of code and ten or fewer programmers), the model is quite simple:

effort (in person-months) = 1.4 * thousands of lines of code

What will be the effort if we develop the system in example using C? (calculate with LOC from previous slide)

12
Function Point Approach

Step 3: Estimate Time Required

Once the effort is understood, the optimal schedule for the project can be estimated. Historical data or estimation
software can be used as aids. One rule of thumb is to determine schedule using the following equation:

schedule time (months) = 3.0 * person-months 1/3


This equation is widely used, although the specific numbers vary (e.g., some estimators may use 3.5 or 2.5 instead
of 3.0). The equation suggests that a project that has an effort of 14 person-months should be scheduled to take a
little more than 7 months to complete. It is important to note that this estimate is for the analysis, design, and
implementation; it does not include the planning.

Total project time = planning phase time + schedule time (months)

What will be the schedule time if we develop the system in example using C?

13
Timeboxing
Another approach to scope management is a technique called timeboxing. Up until now, we have described
task-oriented projects. In other words, we have described projects that have a schedule driven by the tasks that
need to be accomplished, so the greater number of tasks and requirements, the longer the project will take.
Some companies have little patience for development projects that take a long time, and these companies take
a time-oriented approach that places meeting a deadline above delivering functionality. Steps for this approach-

14
References
• Systems Analysis and Design UML Version 2.0 An Object-Oriented
Approach, 3rd Edition, By Barbara Haley Wixom, Alan Dennis,
(Chapter 3)

15

You might also like