You are on page 1of 98

Lecture 4

Software Engineering
Project Management
Course 2023/2024

Software Engineering 2023/2024


Outline
● Introduction to Project Management
● Gantt Charts
● Activity-on-Nodes (AON)

Software Engineering 2023/2024


2
How do you comfort a JavaScript bug?

Software Engineering 2023/2024


3
1.
Project Management
An introduction to Project Management

Software Engineering 2021/2022 4


Managing projects

To manage a given project means to Plan, Execute and


Control the Work Activity of that same project

Software Engineering 2023/2024


5
To Plan a given project means to understand:

● What- is the work that must be accomplished(scope)


and what are their corresponding activity components
(Work Breakdown Structure)
● Who- is going to execute and manage the work to be
done (responsibility matrix)
● When- is the work going to be done (calendar)
● Cost- of work, materials and other required resources
for its accomplishment
Software Engineering 2023/2024
6
Managing projects

To manage a given project means to Plan, Execute and


Control the Work Activity of that same project

Software Engineering 2023/2024


7
To Execute a given project means:
● to accomplish the work that needs to be done according
to what was planned;

● and keep informed the team and managers.

Software Engineering 2023/2024


8
Managing projects

To manage a given project means to Plan, Execute and


Control the Work Activity of that same project

Software Engineering 2023/2024


9
To Control a given project means:
● Monitor and Report the execution of the management
plan pertaining to scope, time and cost, as well as
quality and risk
● Main goal: to keep work performance and its results
aligned with the initial plans, within a tolerance margin

Software Engineering 2023/2024


10
Why is Control so challenging?

Software Engineering 2023/2024


11
2.
Project Planning

Software Engineering 2021/2022 12


Software project planning
● Identify activities
● Schedule activities
● Assign resources

Software Engineering 2023/2024


13
Activities and resources: WBS
Work Breakdown Structure (WBS) Decomposes the work to
be done in a set of activities

Software Engineering 2023/2024


14
Activities and resources: OBS
Organization Breakdown Structure Creates the structure of
the organization and is useful for relating elements to the
project activity

Software Engineering 2023/2024


15
Activity identification - Howto
Work Breakdown Structure

Software Engineering 2023/2024


16
Work-Breakdown Structure
● Defines the scope of the project (“to do” list)
● Breaks work down to components
○ Subdivides complex tasks into simpler ones
● Hints on building a WBS
○ Include 100% of the work / deliverables
○ Avoid overlapping elements
○ Plan first for work outcomes, rather than actions
○ Try to get the “sweet spot” of detail
■ Too little makes planning harder
■ Too much hinders the communication role of the WBS
Software Engineering 2023/2024
17
WBS example

Software Engineering 2023/2024


18
Creating Work-Breakdown Structures
● Several possible decomposing strategies
○ Product oriented
○ Process oriented
○ …
● The WBS may have a different number of levels
○ Enough to facilitate estimates on costs, resources, …
○ Not too many, to facilitate communication
● The lower level components are work packages
○ Must be assigned to individuals, or teams, responsible for delivering
them
○ Estimates of time, costs and resources are done at the work
package level of granularity (where we decompose into activities)
Software Engineering 2023/2024
19
Product oriented Work Breakdown Structure

Product oriented work breakdown structure

Software Engineering 2023/2024


20
Process-oriented work breakdown structure

Software Engineering 2023/2024


21
What is the sweet spot for detail?

● The 8/80 rule (of thumb)


○ No work package should be less than 8 hours or more
than 80 hours
● Groups of tasks, or activities, once complete, should
correspond to the completeness of the
corresponding upper level
22

Software Engineering 2023/2024


How should we
schedule activities?

Software Engineering 2023/2024


23
Naive project scheduling
Project: A sequence of interconnected activities to achieve a certain
goal

Activity 1 Activity 2 Activity 3 Activity 4 Activity 5

Time time
Problem! Longest possible completion schedule

Software Engineering 2023/2024


24
Networked project plan

Build a network of relationships among activities, so


that activities precedences can be established
Activity 2 Activity 3
Activity 5
Activity 1
Activity 4 time 25

Time

Software Engineering 2023/2024


Which activities must finish,
before a particular new activity
starts?

Software Engineering 2023/2024


26
A B
Dependency relationship (FS)
● Finish to Start relationship
○ As soon as A finishes, B can start
● Example
○ A is a data collection activity
○ B is a data storing activity
○ As soon as we finish data collection, we can start data storing
● Recommended as default dependency in early planning

Software Engineering 2023/2024


27
A
Dependency relationship (SS)
B
● Start to Start relationship
○ As soon as A starts, B can start
● Example
○ A is a data collection activity
○ B is a data storing activity
○ Data storing cannot start before data collection starts
● Use for compressing activities in time

Software Engineering 2023/2024


28
A
Dependency relationship (SF)
B
● Start to Finish relationship
○ As soon as A starts, B can finish
● Example
○ A is a new system running
○ B is an old system running
○ As soon as the new system is running, the old system may
be discontinued
● Used for just in time scheduling (relatively uncommon)
Software Engineering 2023/2024
29
A
Dependency relationship (FF)
B
● Finish to Finish relationship
○ As soon as A finishes, B can finish
● Example
○ A is a data collection activity
○ B is a data storing activity
○ Only when we finish collecting data, can we finish storing it as
well
● To preserve network connectivity, SS should be used with FF
Software Engineering 2023/2024
30
3.
Gantt Charts
From work breakdown structure to schedule management

Software Engineering 2021/2022 31


Gantt Charts (illustration)

Software Engineering 2021/2022 32


Gantt charts limitations

● Lack of detail on task precedence


○ But some tools do support precedence mechanisms
such as those explained before
● No support for helping the project manager
● Defining the shortest possible completion schedule
● Allocating resources effectively

Software Engineering 2021/2022 33


Project Milestones
A milestone is a logical end to a stage in the project for progress
reviewing.

● Can be conceptual or tangible


● Signals the reaching of a key stage in the project
● An important sign for the team
● A point for project management to check project goal
alignment

Software Engineering 2021/2022 34


Project Milestones

It can be documented (report, email, etc), summarizes work done


and is associated with one task or groups of tasks.

Software Engineering 2021/2022 35


Project Deliverables
Any unique and verifiable product, result, or capability to perform a
service that is produced to complete a process, phase or project. It
can be associated with a milestone in the Gantt chart.

● Must be tangible (i.e. a product or service)


● Signals the completion of a project phase
● An important sign for the client
● A point for the client to sign-off on project status

Software Engineering 2021/2022 36


4.
Activity on node diagrams
The precedence diagram method

Software Engineering 2021/2022 37


Activity on Node diagrams

● Detailed project planning & control


● Support for project schedule analytics
○ Identification of the first possible moment for
completing an activity
○ Support for earliest completion date computation
○ Comparison of alternative detailed scheduling
○ Project scheduling control 38

Software Engineering 2023/2024


Activity On Node (AON) Diagrams

● AON is a directed acyclic graph


● Each activity is represented in an activity node
● Dependency relationships represented by arrows

Software Engineering 2021/2022 39


Building an
AON
diagram

Software Engineering 2021/2022 40


How should we build an AON diagram?

Add
Identify Create a schedule
activities directed information
and acyclic and
precedents graph compute
critical path

Software Engineering 2021/2022 41


Start by Identifying Tasks and their precedents

Add
Identify Create a schedule
activities directed information
and acyclic and
precedents graph compute
critical path

Software Engineering 2021/2022 42


Identify activities and precedents
Activity Predecessors
A -
B -
C A
D B
E B
F A
G C
H D
I A
J E, G, H
K F, I, J
Software Engineering 2021/2022 43
Let’s transform that table into a graph

Add
Identify Create a schedule
tasks directed information
and acyclic and
precedents graph compute
critical path

Software Engineering 2021/2022 44


Where should we start?

Activity Predecessors
A -
B -
C A
D B
E B
F A
G C
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 45


The first thing to do is to create a Start node

Activity Predecessors
A - Start
B -
C A
D B
E B
F A
G C
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 46


Activity A has no predecessors:
it can start from the beginning of the project!

A
Activity Predecessors
A - Start
B -
C A
D B
E B
F A
G C
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 47


Activity B can also start from the beginning of the project

A
Activity Predecessors
A - Start
B -
C A
D
E
B
B
B
F A
G C
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 48


A is a burst activity:
when it ends, several other activities that depend on A can start

A
Activity Predecessors
A - Start
B -
C A
D
E
B
B
B
F A
G C
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 49


C, F, and I can start as soon as burst activity A finishes

A I
Activity Predecessors
A - Start C
B -
C A
D
E
B
B
B
F A
G C
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 50


B is also a burst activity

A I
Activity Predecessors
A - Start C
B -
C A
D
E
B
B
B
F A
G C
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 51


D and E can start as soon as B finishes

A I
Activity Predecessors
A - Start C
B -
C A
D
E
B
B
B D
F A
G C E
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 52


When C finishes, G can start
When D finishes, H can start

A I
Activity Predecessors
A - Start C G
B -
C A
D
E
B
B
B D H
F A
G C E
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 53


J is a fusion activity: it can only start when E, G and H finish

A I
Activity Predecessors
A - Start C G
B -
C A
D B
B D H J
E B
F A
G C E
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 54


K is also a fusion activity: it can only start after F, I and J finish

A I
Activity Predecessors
A - Start C G K
B -
C A
D B
B D H J
E B
F A
G C E
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 55


K was the last activity, end the diagram with a Finish node

A I
Activity Predecessors
A - Start C G K Finish
B -
C A
D B
B D H J
E B
F A
G C E
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 56


Review this carefully

A I
Activity Predecessors
A - Start C G K Finish
B -
C A
D B
B D H J
E B
F A
G C E
H D
I A
J E, G, H
K F, I, J

Software Engineering 2021/2022 57


Burst Activity
More than one activity may start when the
burst activity finishes

Software Engineering 2021/2022 58


Fusion Activity
A fusion activity may only start when all its
precedent activities have finished

Software Engineering 2021/2022 59


How should we build an AON diagram?

Add
Identify Create a schedule
tasks directed information
and acyclic and
precedents graph compute
critical path

Software Engineering 2021/2022 60


What information do we need to store
on the Activity Node?

Early Start Duration Early Finish

Task Name

Late Start Slack Late Finish

Duration = Early Finish – Early Start = Late Finish – Late Start

Slack = Late Start – Early Start = Late Finish – Early Finish

Software Engineering 2021/2022 61


Consider this scenario

● A company decides to reengineer its IT system


● They will need new hardware, network and internet
access, along with the corresponding software
● The Project Manager has already made a
description of the activities to conduct and the time
required for each of them
62

How much time do we need for this project?

Software Engineering 2021/2022


Identify activities, precedents and duration

Activity Predecessors Duration


A - 5
B A 10
C A 6
D A 7
E B, C 4
F D, E 2
G F 2

Software Engineering 2021/2022 63


Create a Start node, with 0 duration

Activity Predecessors Duration


A - 5
B A 10
C A 6
0 D A 7
E B, C 4
Start
F D, E 2
G F 2

Early Duration Early


Start Finish

Task Name

Late Slack Late


Start Finish

Software Engineering 2021/2022 64


Activity A has no precedents and has 5 days duration

Activity Predecessors Duration


A - 5
B A 10
C A 6
0 D A 7
E B, C 4
Start
F D, E 2
G F 2

5
A

Early Duration Early


Start Finish

Task Name

Late Slack Late


Start Finish

Software Engineering 2021/2022 65


B, C, and D start after A finishes

Activity Predecessors Duration


A - 5
B A 10
C A 6
0 10 D A 7
E B, C 4
Start B
F D, E 2
G F 2

5 6
A C

Early Duration Early


Start Finish 7
Task Name
D
Late Slack Late
Start Finish

Software Engineering 2021/2022 66


E starts when both B and C finish

Activity Predecessors Duration


A - 5
B A 10
C A 6
0 10 D A 7
E B, C 4
Start B
F D, E 2
G F 2

5 6 4
A C E

Early Duration Early


Start Finish 7
Task Name
D
Late Slack Late
Start Finish

Software Engineering 2021/2022 67


F starts when D and E finish

Activity Predecessors Duration


A - 5
B A 10
C A 6
0 10 D A 7
E B, C 4
Start B
F D, E 2
G F 2

5 6 4 2
A C E F

Early Duration Early


Start Finish 7
Task Name
D
Late Slack Late
Start Finish

Software Engineering 2021/2022 68


G starts when F finishes

Activity Predecessors Duration


A - 5
B A 10
C A 6
0 10 D A 7
E B, C 4
Start B
F D, E 2
G F 2

5 6 4 2 2
A C E F G

Early Duration Early


Start Finish 7
Task Name
D
Late Slack Late
Start Finish

Software Engineering 2021/2022 69


Add a Finish node

Activity Predecessors Duration


A - 5
B A 10
C A 6
0 10 D A 7
E B, C 4
Start B
F D, E 2
G F 2

5 6 4 2 2
A C E F G

Early Duration Early


Start Finish 7 0
Task Name
D Finish
Late Slack Late
Start Finish

Software Engineering 2021/2022 70


EST(Start) = 0
EFT(Start) = 0
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 10 D A 7
E B, C 4
Start B
F D, E 2
G F 2

5 6 4 2 2
A C E F G

Early Duration Early


Start Finish 7 0
Task Name
D Finish
Late Slack Late
Start Finish

Software Engineering 2021/2022 71


EST(A) ← 0
EFT(A) ← EST(A) + Dur(A)
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 10 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 6 4 2 2
A C E F G

Early Duration Early


Start Finish 7 0
Task Name
D Finish
Late Slack Late
Start Finish

Software Engineering 2021/2022 72


EST(B) ← EFT(A)
EFT(B) ← EST(B) + DUR (B)
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 6 4 2 2
A C E F G

Early Duration Early


Start Finish 7 0
Task Name
D Finish
Late Slack Late
Start Finish

Software Engineering 2021/2022 73


EST(C) ← EFT(A)
EFT(C) ← EST(C) + DUR(C)
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 4 2 2
A C E F G

Early Duration Early


Start Finish 7 0
Task Name
D Finish
Late Slack Late
Start Finish

Software Engineering 2021/2022 74


EST(D) ← EFT(A)
EFT(D) ← EST(D) + DUR(D)
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 4 2 2
A C E F G

Early Duration Early


Start Finish 5 7 12 0
Task Name
D Finish
Late Slack Late
Start Finish

Software Engineering 2021/2022 75


EST(E) ← MAX (EFT(B), EFT(C))
EFT(E) ← EST(E) + DUR(E)
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 2 2
A C E F G

Early Duration Early


Start Finish 5 7 12 0
Task Name
D Finish
Late Slack Late
Start Finish

Software Engineering 2021/2022 76


EST(F) ← MAX (EFT(D), EFT(E))
EFT(F) ← EST(F) + DUR(F)
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 19 2 21 2
A C E F G

Early Duration Early


Start Finish 5 7 12 0
Task Name
D Finish
Late Slack Late
Start Finish

Software Engineering 2021/2022 77


EST(G) ← EFT(F)
EFT(G) ← EST(G) + DUR (G)
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G

Early Duration Early


Start Finish 5 7 12 0
Task Name
D Finish
Late Slack Late
Start Finish

Software Engineering 2021/2022 78


EST(Finish) ← EFT(G)
LST(Finish) ← EST(Finish) + DUR (Finish)
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish

Software Engineering 2021/2022 79


LFT(Finish) ← EFT(Finish)
LST(Finish) ← LFT(Finish) – DUR(Finish)
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 23 23
Software Engineering 2021/2022 80
Slack(Finish) ← LST(Finish) – EST(Finish)

Activity Predecessors Duration


A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 23 0 23
Software Engineering 2021/2022 81
LFT(G) ← EST(Finish)
LST(G) ← LFT(G) – DUR(G)
Slack(G) ← LST(G) – EST(G) Activity
A
Predecessors
-
Duration
5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
21 0 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 23 0 23
Software Engineering 2021/2022 82
LFT(F) ← LST(G)
LST(F) ← LFT(F) – DUR(F)
Slack(F) ← LST(F) – EST(F) Activity
A
Predecessors
-
Duration
5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
19 0 21 21 0 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 23 0 23
Software Engineering 2021/2022 83
LFT(E) ← LST(F)
LST(E) ← LFT(F) – DUR(E)
Slack(E) ← LST(E) – EST(E) Activity
A
Predecessors
-
Duration
5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
15 0 19 19 0 21 21 0 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 23 0 23
Software Engineering 2021/2022 84
LFT(D) ← LST(F)
LST(D) ← LFT(D) – DUR(D)
Slack(D) ← LST(D) – EST(D) Activity
A
Predecessors
-
Duration
5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
15 0 19 19 0 21 21 0 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 12 7 19 23 0 23
Software Engineering 2021/2022 85
LFT(C) ← LST(E)
LST(C) ← LFT(C) – DUR(C)
Slack(C) ← LST(C) – EST(C) Activity
A
Predecessors
-
Duration
5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
9 4 15 15 0 19 19 0 21 21 0 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 12 7 19 23 0 23
Software Engineering 2021/2022 86
LFT(B) ← LST(E)
LST(B) ← LFT(B) – DUR(B)
Slack(B) ← LST(B) – EST(B) Activity
A
Predecessors
-
Duration
5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
5 0 15 G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
9 4 15 15 0 19 19 0 21 21 0 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 12 7 19 23 0 23
Software Engineering 2021/2022 87
LFT(A) ← MIN(LST(B), LST(C), LST(D))
LST(A) ← LFT(A) – DUR(A)
Slack(A) ← LST(A) – EST(A) Activity
A
Predecessors
-
Duration
5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
5 0 15 G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
0 0 5 9 4 15 15 0 19 19 0 21 21 0 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 12 7 19 23 0 23
Software Engineering 2021/2022 88
LFT(Start) ← 0
LST(Start) ← 0
Slack(Start) ← 0 Activity
A
Predecessors
-
Duration
5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
0 0 0 5 0 15 G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
0 0 5 9 4 15 15 0 19 19 0 21 21 0 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 12 7 19 23 0 23
Software Engineering 2021/2022 89
What is the Critical Path of a project?
● The longest network path formed by activities where
EST = LST (i.e. the slack is 0)
● This is called the critical path
○ Any deviation on the duration of activities in the
critical path will have a direct impact on the whole
network, i.e., on the whole project schedule)

Software Engineering 2023/2024


90
Compute the critical path
Critical path (slack equals 0 and sum of durations is maximized)
Activity Predecessors Duration
A - 5
A-B-E-F-G -> 5+10+4+2+2 = 23 B A 10

A-C-E-F-G -> 5+ 6+4+2+2 = 19 C A 6


0 0 0 5 10 15
A-D-E-F-G -> 5+ 7+4+2+2 = 20
D A 7
E B, C 4
Start B
F D, E 2
0 0 0 5 0 15 G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
0 0 5 9 4 15 15 0 19 19 0 21 21 0 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 12 7 19 23 0 23
Software Engineering 2021/2022 91
Building an
AON
diagram
Summary

Software Engineering 2021/2022 92


Choose the greater Early Finish time
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish

Software Engineering 2021/2022 93


Choose the smaller Late Start time
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
0 0 0 5 15 G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
0 5 9 15 15 19 19 21 21 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 12 19 23 0 23
Software Engineering 2021/2022 94
Compute the slack
Activity Predecessors Duration
A - 5
B A 10
C A 6
0 0 0 5 10 15 D A 7
E B, C 4
Start B
F D, E 2
0 0 0 5 0 15 G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
0 0 5 9 4 15 15 0 19 19 0 21 21 0 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 12 7 19 23 0 23
Software Engineering 2021/2022 95
Compute the critical path
Critical path (slack equals 0 and sum of durations is maximized)
Activity Predecessors Duration
A - 5
A-B-E-F-G -> 5+10+4+2+2 = 23 B A 10

A-C-E-F-G -> 5+ 6+4+2+2 = 19 C A 6


0 0 0 5 10 15
A-D-E-F-G -> 5+ 7+4+2+2 = 20
D A 7
E B, C 4
Start B
F D, E 2
0 0 0 5 0 15 G F 2

0 5 5 5 6 11 15 4 19 19 2 21 21 2 23
A C E F G
0 0 5 9 4 15 15 0 19 19 0 21 21 0 23

Early Duration Early


Start Finish 5 7 12 23 0 23
Task Name
D Finish
Late Slack Late
Start Finish 12 7 19 23 0 23
Software Engineering 2021/2022 96
How do you comfort a JavaScript bug?

You console it.

Software Engineering 2023/2024


97
References
Software Engineering, by Ian Sommerville, Pearson, (either 9th or 10th edition)
see chapters 22 and 23

Other suggestions:
Gestão Moderna de Projetos, Melhores técnicas e práticas, António Miguel, FCA Editora

Software Engineering 2023/2024


98

You might also like