Managing a large software project Oh, there is this nice film http://www.youtube.com/watch?v=OfgfnZZdMlI • Software Development Life Cycle (SDLC) • Typical phases in : Planning, Requirement, Design, Implementation, Test. • A well design software is important P 35 30 25 20 15 10 5 R D Why waterfall fails: I requirement change (%) T 10 1000 10000 #functionalities time The traditional waterfall approach tries to first design as much as possible before implementation; and to finish the implementation first before testing. (Larman, Applying UML and Patterns, 2005)
You need to make the process more robust (able to respond to changes) • Iterative and incremental • Intermediate feedback • Some “agile approaches” use short iterations, with time boxing. P R PRDIT PRDIT PRDIT D I T iterative overlapping stages
What we will cover: • Arlow & Neustadt • “Unified Process” as their preferred SDLC approach. • Focusing on UML, and how it is used within UP • We won’t discuss UP itself in detail, see e.g. The Rational Unified Process An Introduction, Kruchten, 2000. • For completeness we’ll also discuss: • Agile approach to SDLC • some other basic management instruments: GANT and PERT
2 Unified Process (UP) • UP is a disciplined SDLC approach, by assigning tasks, responsibilities, and schedule within the process. • Based on real experience, popular. • Rational UP (RUP) commercial (IBM) big brother of UP, tool supported, and templates so that you don’t have to draw your plan from scratch.
UP basic elements • At the top level, UP views an SDLC as so-called “process”, where you define: • artifacts • activities • workers (roles) • workflow use case diagrams find actors and use cases Anna System analyst use case specifications detail use cases Bob detailed class diagrams Designer a design class class constraints
UP “axioms” • driven by requirement and risk • architecture centric UML • iterative and incremental baseline The entire process proceeds in “iterations”. Each iteration produces a “baseline”, where we try to cover the whole system, but may still be incomplete.Each baseline should ‘increment’ towards the complete final system.
Scheduling the activities • Two dimensional: work flows and iterations phases Every workflow contains specify a general work to do, and a plan to realize that with activities, and a schedule (which activities to be done in iteration k, and in which order). Inception Elaboration Construction Transition what intensity each activity is done B A • requirement • analysis • design • implementation • test C also implies when a WF should be completed D E UP’s core workflows Iterations: 1 2 3 4 5 ... time
Phases are goal-based • E.g. Inception phase’s (foc. on R & A) goal: to get the project off the ground. • Made concrete by a set of satisfaction conditions, e.g.: • UP predefines these kind things for you, to be used as template you don’t have to draw the entire project plan from scratch For actual use of UP, read e.gKruchten . • stakeholders agree on project objectives • system scope is defined and agreed on • key requirements are captured and agreed on • cost and schedule are estimated and agreed on • ... see book.
Example of iterations run Inception requirement software requirement software requirement software requirement software (Larman, 2005) requirement software 90% 90% 50% 30% 20% ... iter-2 iter-3 iter-4 iter-5 iter-6 iter-7 iter-1 using 3w iteration M T W T F M T W T F M T W T F 1h kickoff meeting clarifying iteration goals next iteration planning descoping final code check in start coding refine models sketch-design models demo and 2 days requirement workshop start testing alongside coding
Compl Agile approach to SDLC • From 90’s, as people observe problems in tight management ala classical waterfall. • “Agile Manifesto” • Agile approaches: Extreme Programming, Scrum • We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: • individuals and interactions over processes and tools • working software over comprehensive documentation • customer collaboration over contract negotiation • responding to change over following a plan • That is, while there is value in the items on the right, we value the items on the left more.
Compl Scrum • From 90’s, Sutherland, Schwaber, etc. • Based on practice, popular. http://www.youtube.com/watch?v=8_lA9fXFonI • Read more in scrum.org Sprint Planning Meeting 2w sprint Sprint review Product v. n sprint backlog daily scrum Product v. n-1 • A project has one or more Scrum teams. Every team has: • Scrum Master • Product Owner • The Team (ideal 7), cross functional, self-organizing! • Pigs and chicken principles project backlog
Burndown chart Estimate your effort : 120 h 30 h 30 h ... X sprint backlogs X release backlogs product backlog Burndown chart : give you a tool to compare projected and estimated speed remaining work time
UP and Scrum • Both are iterative approach • They can be combined • (Controversial) Larman: you don’t understand iterative development when: • To keep in mind: safety-critical systems should be handled differently. You need to put more effort to keep your models consistent and sufficiently detailed to facilitate verification. • you spend weeks constructing UML models before programming • you try to plan a project in detail from start to finish
Compl Some popular tasks management instruments • We’ll discuss PLD, PERT, GANT • Project Logic Diagram just listing the “tasks”, and their logical dependency, visualized as a graph: • PERT: Programme Evaluation and Review TechniqueDecorate each node in PLD with timing information. • Other decoration: resources committed to each node. task A start task C finish task B
Compl PERT duration (d) You specify the duration of each task, other timing info are computed. earliest starting time(es) 0 10 10 earliest finish time (ef) Task A 15 10 25 latest starting time(ls) 10 10 20 latest finish time (lf) Task C slack 20 5 30 0 15 15 Task B 5 5 20
Compl First, compute es and lf ef = es + d 0 10 10 es for start is 0 es = max es of predecessors Task A 15 10 25 0 0 0 Start Task C 0 15 15 Task B
Compl Next, compute lf and ef 2 10 12 Task C1 0 2 2 7 17 17 0 17 Task B Finish 0 2 2 15 17 17 17 lf of finish = its ef lf = min ls of predecessors Task C2 2 17 ls = lf - d
Compl Now we can calculate slack slack = lf - ef 2 10 12 Task C1 0 2 2 7 5 17 17 0 17 Task B Finish 0 0 2 2 15 17 17 17 Task C2 Tasks with slack=0 are “critical”, they form a path called “critical path”. Tasks on this path cannot be delayed without delaying the entire project. Other tasks can be delayed as much as their slacks. 2 0 17
Gantt • Henry Gantt, 1910’s • Very popular • For every task, specify predecessor and “duration”. • Modern extensions: • task to be split in subtasks • resources (e.g. persons) , and their allocation to tasks • milestones (imply approved deliverables) • PERT can be turned to Gantt, vice versa.