IBM Software Group RUP - Rational Unified Process Eva Hådding eva.hadding@se.ibm.com 1
Projektkaos. Chaos-rapporten 28% av projekten avslutades i tid och enligt budget. 49% av projekten drog över de ursprungliga estimaten. - Tid i genomsnitt 63%. - Kostnad i genomsnitt 45%. 23% av projekten lades ner. Standish Group, 01 (www.standishgroup.com) 2
Praxis Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 3
Praxis 1: Hantera krav Praxis Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 4
Kravhantering Se till att ni löser de verkliga problemen bygger det rätta systemet mha ett systematiskt tillvägagångssätt för kravfångst organisation dokumentation hantering av de föränderliga kraven på en programvarutillämpning. 5
Översikt över kravhantering Behov Problem Egenskaper Spårbarhet Programvarukrav Problemområde Lösningsområde Produkt att bygga Testskript Design Anv. dok. 6
Praxis 2: Använd komponentarkitekturer Praxis Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 7
Förändringståliga, komponentbaserade arkitekturer Förändringstålig Uppfyller nuvarande och framtida krav Underlättar utbyggnad Möjliggör återanvändning Kapslar in systemberoenden Komponentbaserad Återanvänd eller anpassa komponenter Välj bland kommersiellt tillgängliga komponenter Vidareutveckla existerande programvara inkrementellt 8
Praxis 3: Modellera visuellt (UML) Praxis Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 9
Varför visuell modellering? Fånga struktur och beteende Visa hur systemets delar passar ihop Hålla designen och implementationen konsistenta Dölja eller visa detaljer efter behov Förenkla tydlig kommunikation Dynamiska diagram Klassdiagram Användningsfallsdiagram Modeller Objektdiagram Komponentdiagram Aktivitetsdiagram Sekvensdiagram Samarbetsdiagram Tillståndsdiagram Driftsättningsdiagram Statiska diagram 10 UML erbjuder ett språk för alla inblandade
Praxis 4: Verifiera kvalitet kontinuerligt Praxis Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 11
Verifiera programvarans kvalitet kontinuerligt Programvaruproblem blir 100 1000 gånger dyrare att hitta och åtgärda efter driftsättning Kostnad Kostnad för åtgärdande Kostnad för uteblivna möjligheter Kostnad för förlorade kunder Förberedelse Etablering Konstruktion Överlämning 12
Testa varje iteration Iteration 1 Iteration 2 Iteration 3 Iteration 4 UML-modell och implementation Testsvit 1 Testsvit 2 Testsvit 3 Testsvit 4 Tester 13
Praxis 5: Hantera ändringar Praxis Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 14
The Configuration and Change Management (CCM) Cube 15
Praxis 6: Utveckla iterativt Praxis Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 16
Egenskaper hos vattenfallsutveckling Vattenfallsprocess Kravanalys Design Kodning och enhetstest Delsystemintegration Systemtest Försenar möjligheten att bekräfta kritiska riskåtgärder Mäter framskridande genom att utvärdera arbetsprodukter som är dåliga på att visa mängden återstående arbete Försenar och försvårar integration och testning Förhindrar tidig driftsättning Leder ofta till stora, oplanerade iterationer 17
Iterativ utveckling producerar körbara utgåvor Risk! Krav Analys & design Initial planering Planering Projektledning Implementation Test Utvärdering Varje iteration resulterar i en körbar utgåva Driftsättning 18
Riskprofiler Vattenfallsrisk Risk Riskreducering Iterativ risk Tid 19
RUP förverkligar dessa praxis Praxis En praktisk process Hantera krav Använd komponentarkitekturer Modellera visuellt(uml) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 20
Processtruktur - Livscykelfaser Förberedelse Etablering Konstruktion Överlämning tid Rational Unified Process definierar fyra faser: Förberedelse (Inception) Definierar projektets omfattning Etablering (Elaboration) Planera projektet, specificera egenskaper, ta fram grundversion av arkitekturen Konstruktion (Construction) Bygg produkten Överlämning (Transition) Överlämna produkten till slutanvändarna 21
Fasgränserna utgör större milstolpar Förberedelse Etablering Konstruktion Överlämning tid Milstolpe: Livscykelmål Milstolpe: Initialt funktionsduglig Milstolpe: Livscykelarkitektur Produktutgåva 22
Iterationer och faser Förbered. Etablering Konstruktion Överlämning Iteration F1 Iteration E1 Iteration E2 Iteration K1 Iteration K2 Iteration K3 Iteration Ö1 Iteration Ö2 Mindre milstolpar: Interna utgåvor 23
Nio discipliner 24
Tillsammans blir det: Ett iterativt tillvägagångssätt I en iteration går man igenom alla discipliner Discipliner grupperar aktiviteter logiskt 25
RUP är en användningsfallsdriven, arkitekturcentrisk, samt riskdriven process. 26
Nyckelbegrepp i RUP: Roller, aktiviteter, artefakter Aktivitet Roll Artefakt 27
RUP är en omfattande process, ett processramverk RUP bör införas stegvis RUP måste anpassas till organisationen till projektet 28
Användarcentrering i RUP Requirements: Analysis & Design: Deployment: Conceptual Road Map: Usability Engineering Concepts: User-Centered Design, Usability Testing Guidelines: Role playing, Interviews, Storyboarding, User Interface etc Use Cases Ux Plug-In
Användningsfall och användarcentrering... + Fokus på användarna och deras uppgifter!! - Oftast bara beskrivning av nuläget... - Användarna är inte utvecklare... - Sekventiell struktur... - Ett användningsfall blir ett fönster... - Ingen entydig definition... Användarna ska delta! 30
Användarcentrering i RUP Detta kunde varit bättre... Användbarhet är utspritt och otydligt kan nedprioriteras eller helt enkelt försvinna Ingen samordnande, ansvarig roll Detta är bra! Användningsfall användarcentrering Fokus på krav Iterativ utveckling Tvärdisciplinärt samarbete 31