Slack Critical Path PERT
Slack Critical Path PERT
Slack Critical Path PERT
Critical path:
A sequence of activities that take the longest time to complete
The length of the critical path(s) defines how long your project will
take to complete.
If a task is only on the critical path when delaying that task will
delay the project.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2
Example of project schedule showing critical path
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3 3
In the above example, the test preparation tasks are not on the
critical path.
In this case, that would require nine weeks (Thin bars to the
right of test preparation tasks).
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4
Dependency Diagrams / Task network chart
Dependency diagrams consist of 3 elements
Event (also called milestone): A significant occurrence in the life of a project.
Activity: Work required to move from one event to the next.
Span time ( also called duration or elapsed time): The actual calendar time
required to complete an activity.
Span time parameters: people’s availability, parallelizability of the activity,
availability of nonpersonnel resources, ….
Dependency Diagram are drawn as a connected graph of nodes and arrows.
2 commonly used diagram notations to display dependency diagrams:
1) Activity-on-the-arrow (Mealy automaton)
2) Activity-in-the-node (Moore automaton)
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5
Why Dependency Diagrams?
Example:
You are assigned a project consisting of 10 activities which take one
week each to be completed.
How long does the project take?
When projects have more than 15-20 activities, one cannot to
compute the schedule in the head any more.
Dependency Diagrams are a formal notation to help in the
construction and analysis of complex schedules
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6
1) Activity-on-the-arrow Diagram Notation
Activity
A B
t
Event (Milestone
Span Time Event (Milestone
or Deliverable)
or Deliverable)
System Design
RAD SDD
T1 = 4 weeks
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7
PERT
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8
2) Activity-in-the-node Diagram Notation
Activity
A Node is either an event or an activity.
Distinction: Events have span time 0
A B C
tA = 0 tB = 0 tC = 0
RAD SDD
System Design
available available
t = 2 weeks
t=0 t=0
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9
Example of an Activity-in -the -Node Diagram
Activity 1 Activity 2
t1 = 5 t2 = 1
Start
t=0 End
t=0
Activity 4 Activity5
Activity 3
t3 = 1 t4 = 3 5= 2
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10
What do we do with these diagrams?
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11
Definitions: Critical Path and Slack Time4
Critical path:
A sequence of activities that take the longest time to complete
The length of the critical path(s) defines how long your project will
take to complete.
Noncritical path:
A sequence of activities that you can delay and still finish the
project in the shortest time possible.
Slack time:
The maximum amount of time that you can delay an activity and
still finish your project in the shortest time possible.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12
Example of a critical path
Activity 1 Activity 2
t1 = 5 t2 = 1
Start
t=0 End
t=0
Activity 4 Activity5
Activity 3
t3 = 1 t4 = 3 t55 = 2
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14
2 Ways to Analyze Dependency Diagrams
Forward pass: Goal is the determination of critical paths
Compute earliest start and finish dates for each activity
Start at the beginning of the project and determine how fast you can
complete the activites along each path until you reach the final
project milestone.
Backward pass: Goal the determination of slack times
Compute latest start and finish dates activity
Start at the end of your project, figure out for each activity how late
it can be started so that you still finish the project at the earliest
possible date.
To compute start and finish times, we apply 2 rules
Rule 1: After a node is finished, we can proceed to the next node(s)
that is reachable via a transition from the current node.
Rule 2: To start a node all nodes must be complete from which
transitions to that node are possible.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15
Activity Schedule
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16
Activity 1
Forward Path Example t1 = 5
Activity 2
t2 = 1
Start
End
t=0
t=0
Project Duration = 7
Activity 4 Activity5
Activity 3
EF= ES+t tA4 = 3 t5 = 2
tA3 = 1
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17
Activity 1
Backward Path Example t1 = 5
Activity 2
t2 = 1
Start
End
t=0
t=0
Project Duration = 7
LS=LF-t Activity 4 Activity5
Activity 3
LF=LS of the successor tA3 = 1 tA4 = 3 t5 = 2
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18
Computation of slack times
Slack time ST of an activity A:
STA = LSA - ESA or LF-EF
Subtract the earliest start date from the latest start date for each activity
Example: STA4 = 3 - 2 = 1
Slack times on the same path influence each other.
Example: When Activity 3 is delayed by one week, activity 4
slack time becomes zero weeks.
Activity 1 Activity 2
Activity 2
Activity Slack time
t1 = 5 tt22 =
=11
Start
A1 0 t=0
End
A2 1 t=0
A3 1
A4 1 Activity 3 Activity 4 Activity5
A5 0 tA = 1 tA4 = 3 t5 = 2
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19
Example
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20