1 / 20

Project Strategies [A&N 1,2] Wishnu Prasetya

Project Strategies [A&N 1,2] Wishnu Prasetya. 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.

tamera
Télécharger la présentation

Project Strategies [A&N 1,2] Wishnu Prasetya

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Project Strategies[A&N 1,2] Wishnu Prasetya

  2. 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)

  3. 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

  4. 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

  5. 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.

  6. 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

  7. 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.

  8. 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

  9. 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.

  10. 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

  11. 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.

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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.

More Related