Presentation on theme: "Project Strategies [A&N 1,2] Wishnu Prasetya. Managing a large software project Software Development Life Cycle (SDLC) Typical phases in : Planning, Requirement,"— Presentation transcript:
Managing a large software project Software Development Life Cycle (SDLC) Typical phases in : Planning, Requirement, Design, Implementation, Test. A well design software is important 2 P P R R D D I I time The traditional waterfall approach tries to first design as much as possible before implementation; and to finish the implementation first before testing. T T 10 1000 10000 #functionalities 35 30 25 20 15 10 5 (Larman, Applying UML and Patterns, 2005) Why waterfall fails: requirement change (%) Oh, there is this nice film http://www.youtube.com/watch?v=OfgfnZZdMlIhttp://www.youtube.com/watch?v=OfgfnZZdMlI
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. 3 PRDIT iterative overlapping stages PRDIT P P R R D D I I T T
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 4
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) 5 2 2 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 6 find actors and use cases detail use cases a design class use case diagrams use case diagrams detailed class diagrams detailed class diagrams use case specifications use case specifications System analyst Designer Anna Bob class constraints class constraints
UP “axioms” driven by requirement and risk architecture centric UML iterative and incremental baseline 7 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 8 InceptionElaborationConstructionTransition phases Iterations: 1 2 3 4 5... time requirement analysis design implementation test UP’s core workflows D D A A C C B B E E 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). what intensity each activity is done also implies when a WF should be completed
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.g Kruchten. 9 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 10 requirementsoftware 20% requirementsoftware 30% requirementsoftware 50% software 90% software 90% requirement iter-1iter-2iter-3iter-4iter-5 Inception iter-6iter-7... MTWTF 1h kickoff meeting clarifying iteration goals start coding sketch-design models refine models start testing alongside coding final code check in demo and 2 days requirement workshop next iteration planning MTWTFMTWTF using 3w iteration (Larman, 2005) descoping
Agile approach to SDLC From 90’s, as people observe problems in tight management ala classical waterfall. “Agile Manifesto” Agile approaches: Extreme Programming, Scrum 11 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 http://www.youtube.com/watch?v=8_lA9fXFonI Read more in scrum.org 12 2w sprint Product v. n-1 Product v. n project backlog sprint backlog daily scrum 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 Sprint Planning Meeting Sprint review Compl
Burndown chart 13 X X X X product backlog release backlogs sprint backlogs Estimate your effort : 120 h 30 h... remaining work time give you a tool to compare projected and estimated speed Burndown chart :
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. 14 you spend weeks constructing UML models before programming you try to plan a project in detail from start to finish
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 Technique Decorate each node in PLD with timing information. Other decoration: resources committed to each node. 15 Compl start task A task C task B finish
PERT 16 010 20 Task A 151025 20530 Task C 015 5520 Task B duration (d) earliest starting time (es) earliest finish time (ef) latest starting time (ls) latest finish time (lf) slack You specify the duration of each task, other timing info are computed. Compl
First, compute es and lf 17 010 Task A 151025 Task C 015 Task B ef = es + d Start es for start is 0es = max es of predecessors 000 Compl
Next, compute lf and ef 18 21517 2 Task C2 21012 717 Task C1 022 02 Task B Finish lf of finish = its ef lf = min ls of predecessors ls = lf - d 17 0 Compl
Now we can calculate slack 19 21517 20 Task C2 21012 7517 Task C1 022 002 Task B Finish 17 0 slack = lf - ef 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. Compl
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. 20