Object-Oriented Software Engineering: Practical Software Development Using UML and Java
Object-Oriented Software Engineering: Practical Software Development Using UML and Java
Chapter 11:
Managing the Software Process
“The most likely way for the world to be destroyed, most experts
agree, is by accident. That's where we come in; we're computer
professionals. We cause accidents."
Timing: 90 minutes
A lot of computer science people think:
“I don’t want to code for the rest of my life. Maybe
I would enjoy managing the project.”
• Directing
• Being a technical leader
• Reviewing and approving decisions made by others
• Building morale and supporting staff
• Monitoring and controlling
• Co-ordinating the work with managers of other projects
• Reporting
• Continually striving to improve the process
• Agile Development:
“based on iterative and incremental development, where
requirements and solutions evolve through collaboration
between self-organizing, cross-functional teams. It
promotes adaptive planning, evolutionary development
and delivery, a time-boxed iterative approach, and
encourages rapid and flexible response to change.”
13
Reengineering
—Functions Points:
Egoless team:
• In such a team everybody is equal, and the team works
together to achieve a common goal.
• Decisions are made by consensus.
• Most suited to difficult projects with many technical
challenges.
• Architect
• Project manager
• Configuration management and build specialist
• User interface specialist
• Technology specialist
• Hardware and third-party software specialist
• User documentation specialist
• Tester
Task duration
•Task letter:
• Often keyed to a legend to tell which task it represents
•Task duration = how long (e.g. days, hours) task will take
Event Number:
Earliest Completion
Sequence number Time (ECT):
assigned 9
5 Earliest time this event
Only task edges 19 can be achieved, given
indicate durations and
dependencies dependencies
Steps:
1. Make a list of all project tasks (and events if possible).
2. Find interrelated task dependencies (what task has to be
completed before other tasks)
3. Draw initial PERT without durations, ECTs or LCTs
4. Estimate duration of each task
5. Fill in durations
6. Calculate ECTs and LCTs
9
3
10
9 T
5
12 3
9
4
12
UWO Computer Science Department 41
Example: Tasks with Dependencies
To start the PERT, identify the dependencies amongst tasks
A Specification 1 2
B High Level Design 2 3
C Detailed Design 3 4
D Code/Test Main 4 5
E Code/Test DB 4 6
F Code/Test UI 4 7
G Write test plan 4 8
Dummy Task 5 8
Dummy Task 6 8
Dummy Task 7 8
H Integrate/System Test 8 9
I Write User Manual 8 10
J Typeset User Manual 10 9
UWO Computer Science Department 42
Software Example: Skeleton PERT Chart
D 5
A B C E H
1 2 3 4 6 8 9
I J
F
7 1
G
Factors to consider:
• Difficulty of task
• Size of team
• Experience of team
• Number, attitude and availability of end users
• Management commitment
• Other projects in progress
7 1
G
2
•Say we have estimated durations of all tasks (in days)
•New PERT chart, with durations filled in:
•Note, dummy tasks (dashed lines) always have a duration of zero
•Which, if any, tasks should have been completed by today and aren’t
even started? ______
•Which, if any, tasks have been completed? ______
•Which, if any, tasks have been completed ahead of schedule:? ______
•Which, if any, tasks are on or ahead of schedule? _________
•Which, if any, tasks are behind schedule? ________
PERT chart
• All us to show dependencies explicitly
• Allow us to calculate critical path
• Can tell us how one task falling behind affects other tasks
Gantt charts
• Allow us to record progress of project
• Allow us to see what tasks are falling behind
• Allow us to represent overlapping tasks
Project Management Tools, e.g. MS Project
• Allow us to specify tasks, dependencies, etc
• Allow us to specify progress on tasks, etc
• Can generate either PERT or Gantt charts (whichever we want)
from data entered