CS代写 SP-4206/ch9.htm

Software Engineering
Dr Kingsley Sage

Copyright By PowCoder代写 加微信 powcoder

What is this lecture about? • Planning a project
– What is it?
– The key steps

The first step: Project Plan
All we have to decide is what to do with the time that is given to us Gandalf in The Lord of the Rings: Fellowship of the Ring
• The quality manual says that this should include:
– organizational information,
– a breakdown of the phases and tasks, – a list of milestones for each phase, and – a PERT chart.
– conflict resolution protocol.
– peer assessment plan.

Why spend time planning?
• Without a plan, you won’t know what to do next
• A plan lets you track your progress (think quality)
• A plan can help you estimate how long the project will take and what resources are required
• A well-written plan can help convince your customer to extend your deadline, or to reduce the requirements
• Applicable to Waterfall and Agile projects
• For your project, the deadline can’t be extended, but perhaps the customer is asking too much…

Flexibility
• It would be a truly remarkable project which stuck precisely to its plan throughout.
• Things will go wrong. When they do, you should change the plan accordingly, so that the project can be tracked accurately.
• You will know more about the tasks as time goes by. Again, change the plan to reflect this.
• But don’t spend too long on the plan after the initial planning phase!
In preparing for battle I have always found that plans are useless, but planning is indispensable . a good plan
• To make an accurate plan, including estimates of task duration, several pieces of information are needed:
– Software scope – Resources
– Experience

Software scope
– What are the inputs and outputs of the system? – Are there any performance constraints?
– How reliable must the system be?
These questions are part of the analysis phase.

– How much equipment is there?
– What staff can be employed?
– Is any existing software re-usable here?

Experience
– How long have similar projects taken?
– What about other systems of similar size?

Milestones
• The major milestones for a project are its deliverables.
• If the deliverables are easily decomposed, smaller milestones should be apparent.
• As the project proceeds, more and more small milestones will appear.
• A good management technique is setting up mini- milestones. Set yourself or your team some small, achievable tasks for a day. Then achieve them! This is good for morale and for focus.

PERT charts
• PERT: Program Evaluation and Review Technique
• It is a management technique which is applicable to all kinds of project.
– First developed in US around 1958 by the US Navy to manage their Polaris nuclear submarine program
– Also used extensively by NASA to manage the Apollo space program
– And very much alive and well to this day
– Not everyone is a fan. Use it where it adds value
– You might be interested in:
– https://en.wikipedia.org/wiki/Program_evaluation_and_revi ew_technique
– https://history.nasa.gov/SP-4206/ch9.htm

PERT chart: what it can look like

PERT chart: “activity on arrow”
• The tasks are shown by arrows. Task names are shown by letters, in this case.
• The circles are called nodes. The nodes indicate the start or end of tasks.
• Task durations are the shown by the numbers.

PERT chart: what does it do?
• It provides useful information:
– Expected project completion time
– Critical path activities that directly impact completion time
– The difference in the latest and earliest finish of each activity is that activity’s slack
– Activities that have slack time and can lend resources to critical path activities
– Activity start and end dates

PERT charts: HOW
• Once you know the tasks and milestones of your project, you can perform analysis of the task at hand:
– Estimate how long each task will take (best/average/worst case).
– Assign dependencies. If task A cannot begin until task B is complete, then A depends on B.
– Assign deadlines to tasks as appropriate.
– Draw a dependency network for the tasks.
– Calculate the earliest possible finish and latest allowable finish for each task.
– Calculate the critical path, …and look at it in despair.

Critical paths
• A critical path is a chain of tasks which must be completed on time if the project is to finish at the time predicted.
• A task is on a critical path precisely when its earliest finish is the same as its latest finish: No slack!
• The project manager (and QA) will pay particular attention to the tasks on the critical path.
• If you change the PERT chart during the project, perhaps to reflect a missed deadline, new critical paths may emerge.

Let’s play!
• Questions:
– What is the critical path?
– What is slack time for C, D and G?
– What is impact of 1-day delay on task C?
– What is the impact of 1-day reduction of both D and F?
– Trick question: There is now a 2-day delay on task A. How do you get it back?

8,11 11,14
PERT chart: Step 1
• Earliest possible start and finish

8,11 11,14
PERT chart: Step 1
• Earliest possible start and finish
• Latest possible start and finish

PERT chart: Step 3
• Critical path: path where any delay impacts on the overall timescale for the task
• So earliest start time = latest start time

• As there can be quite a lot of information to place on a PERT chart, one common notation looks like this for the “activity on node” case:
Earliest start
Earliest finish
Task description
Latest start
Latest finish

Gantt chart

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com