Symptom på problemen vid programvaruutveckling

Relevanta dokument
RUP - Rational Unified Process

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

RUP Rational Unified Process. 17 november 2004

RUP och lite användbarhet...

RUP och lite användbarhet...

RUP och lite användbarhet...

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Agil programutveckling

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet

Informationssystem och databasteknik, 2I-1100

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Objektorientering. Grunderna i OO

TDP005. Föreläsning 3 - UML. Filip Strömbäck

Arkitektur Michael Åhs

Lyckade projekt - finns det?

Design för användbarhet

Införande och anpassning av Rational Unified Process. Introduction and adaptation of Rational Unified Process

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Design för användbarhet Användarcentrerad utvecklingsprocess

Modern utvecklingsmetodik. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Opponentrapport på examensarbete Utveckling av ett affärssystem med Unified Process av Therese Sundström.

Datavetenskap. Therese Sundström. Utveckling av ett affärssystem med. Unified Process. Examensarbete, D-nivå 30 ECTS 2005:05

Övningstenta, Examinationsfrågor

Metoder och verktyg för funktionssäkerhet

Testhantering enligt RUP

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Martin Völcker, SLL & Suit

Objektorienterad analys och design

Tillämpning av Unified Process och Design Patterns vid integrering av system

Att fatta rätt beslut vid komplexa tekniska upphandlingar

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Del av projektuppgiften. Systemarkitektprogrammet

Agil testning i SCRUM

Use case som teknik för identifiering och dokumentering av krav (HS-IDA-EA )

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Användarmedverkan i teori och praktik vid skapandet av användarfall i RUP En kvalitativ intervjustudie Daniela Linder

Användarcentrerad systemdesign

Användarcentrerad systemdesign

LÖSNINGSFÖRSLAG. Tentamen. Objektorienterad modellering och design. EDA665, 4 poäng

Programvara i säkerhetskritiska tillämpningar

Projektering av informationssystem

Software Engineering

UML 2.0 och dess roll för modellbaserad utveckling

Projektmetodik. Översikt. Lektion 1: Metodiker. Metodiker.

Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel.

Steget efter CAD Data Management. Per Ekholm

Software Engineering. Mål med föreläsningen 10/2/2017. Kort presentation

Användarcentrerad Systemutveckling

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Programmeringsstil 18/3-2002

Detta dokument syftar till att ge en introduktion till RUP och bemöta argument såväl för som emot processen.

Chaos om datorprojekt..

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

Processinriktning i ISO 9001:2015

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Användarcentrerad systemdesign

Vad händer med L3: ΔL3-L4 för Krav följs upp av annan projektgrupp. Föreläsning 5: V&V II + Design II Efterläsning Kodning

Filhanterare med AngularJS

PROJEKTLEDNING. Vad är ett PROJEKT? Ett projekt:

Processbeskrivning Systemutveckling

Kravfångst Bra kravarbete handlar om att ställa rätt frågor och att ge rätt svar i rätt form

SYSTEMUTVECKLING METODER & MODELLER. Suzana Ramadani

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN Åbo, Finland url:

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Copyright Syntell AB 1

RUTIN FÖR DRIFTSÄTTNING

Chaos om IT-projekt..

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

REGELVERK & HANDBÖCKER

Föreläsning 3. Programvaruutveckling för Stora System. Målsättning i programvaruprojekt. Fel och risker. Christin Lindholm

Diagnos och design av Verksamhet och IT, 7, 5 HP. Föreläsning 2 Sofie Pilemalm

Objektorienterad konstruktion

Introduktion. Byggstenar TDBA

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Mjukvaruprojekt Inception-fasen. 1DV404, HT14 Jesper Andersson Kap 5, 6, 7

Från Data till Process

Tentamen NOA011 Systemarkitektprogrammet. 51 poäng

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Kurser och seminarier från AddQ Consulting

Bilaga A. Klassdiagram i OMT (klasser och dess relationer) Klassdiagram i UML (klasser och dess relationer) 1 st

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Användarcentrerad systemdesign

Spetskompetens inom systemintegration, SOA och systemutveckling

Projektuppgift i Användarcentrerad Systemdesign, ht 04

Iterativ mjukvaruutveckling. 1DV404 HT14 Jesper Andersson

Objektorientering Användning

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Användning av modeller för system/produktutveckling

men borde vi inte också testa kraven? Robert Bornelind

men borde vi inte också testa kraven?

Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16

Praktikum i programvaruproduktion

Agile-metoder, XP och ACSD

Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Transkript:

eller Varför är det bättre med halsbränna i början av ett projekt än i slutet? Eva Hådding ehadding@rational.com Symptom på problemen vid programvaruutveckling Användarnas och verksamhetens behov ej uppfyllda Ständigt nya krav Moduler omöjliga att integrera Svårt att underhålla Sen upptäckt av allvarliga fel Dålig kvalitet eller missnöjda användare Låg prestanda vid hög belastning Dålig koordination inom teamet Bygg- och utgåveproblem 2 Page 1

Praxis En praktisk process Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 3 Praxis 1: Hantera krav Praxis En praktisk process Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 4 Page 2

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 Lösningsområde Problemområde Programvarukrav Spårbarhet Produkt att bygga Testskript Design Anv. dok. 6 Page 3

Praxis 2: Använd komponentarkitekturer Praxis En praktisk process 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 Page 4

Syftet med en komponentbaserad arkitektur Grund för återanvändning Av komponenter Av arkitekturer Grund för projektledning Planering Bemanning Leverans Intellektuell kontroll Hantera komplexitet Upprätthålla integriteten En skiktad, komponentbaserad arkitektur Verksamhets- specifikt Applikations- specifikt Anpassnings- programvara System- programvara 9 Praxis 3: Modellera visuellt (UML) Praxis En praktisk process Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 10 Page 5

Varför visuell modellering? För att: Fånga struktur och beteende Visa hur systemets delar passar ihop Hålla designen och implementationen konsistenta Dölja eller visa detaljer efter behov Uppmuntra tydlig kommunikation UML erbjuder ett språk för alla inblandade 11 Visuell modellering med Unified Modeling Language Multipla vyer Exakt syntax och semantik Klassdiagram Användningsfallsdiagram Objektdiagram Komponentdiagram Sekvensdiagram Samarbetsdiagram Modeller Dynamiska diagram Aktivitetsdiagram Tillståndsdiagram Driftsättningsdiagram Statiska diagram 12 Page 6

Praxis 4: Verifiera kvalitet kontinuerligt Praxis En praktisk process Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 13 Verifiera programvarans kvalitet kontinuerligt Programvaruproblem blir 100-1000 gånger dyrare att hitta och åtgärda efter driftsättning Kostnad för åtgärdande Kostnad för uteblivna möjligheter Kostnad för förlorade kunder Kostnad Förberedelse Etablering Konstruktion Överlämning 14 Page 7

Testa varje iteration Iteration 1 Iteration 2 Iteration 3 Iteration 4 UML-modell och implementation Testsvit 1 Testsvit 2 Testsvit 3 Testsvit 4 Tester 15 Praxis 5: Hantera ändringar Praxis En praktisk process Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 16 Page 8

Vad vill man ha kontroll över? Säkra arbetsareor för varje utvecklare Automatiserad hantering av integration/byggen Parallell utveckling Hantering av arbetsareor Parallell utveckling CM är mer än att bara kunna checka in och checka ut RAPPORT LARM Processintegration Bygghantering 17 Egenskaper hos ett CM-system Hantering av ändringsbegäran (CRM Change Request Management) Konfigurationshantering (CM Configuration Management) Rapportering av konfigurationsstatus Spårning av ändringar Versionshantering Programvaruproduktion 18 Page 9

Praxis 6: Utveckla iterativt Praxis En praktisk process Hantera krav Använd komponentarkitekturer Modellera visuellt (UML) Verifiera kvalitet kontinuerligt Hantera ändringar Utveckla iterativt 19 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 20 Page 10 1

Iterativ utveckling producerar körbara utgåvor Initial planering Krav Planering Analys & design Implementation Projektledning Test Utvärdering Varje iteration resulterar i en körbar utgåva Driftsättning 21 Riskprofiler Vattenfallsrisk Risk Riskreducering Iterativ risk Tid 22 Page 11 1

RUP förverkligar dessa praxis Praxis En praktisk process Utveckla iterativt Hantera krav Använd komponentarkitekturer Modellera visuellt(uml) Verifiera kvalitet kontinuerligt Hantera ändringar 23 Processtruktur - Livscykelfaser Förberedelse Etablering Konstruktion Överlämning tid 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 24 Page 12 1

Fasgränserna utgör större milstolpar Förberedelse Etablering Konstruktion Överlämning tid Milstolpe: Livscykelmål Milstolpe: Initialt funktionsduglig Milstolpe: Livscykelarkitektur Produktutgåva 25 Iterationer och faser Förbered. Etablering Konstruktion Överlämning Preliminär iteration Arkitekt. iteration Arkitekt. iteration Utv. iteration Utv. iteration Utv. iteration Överl. iteration Överl. iteration Mindre milstolpar: Utgåvor En iteration är en tydlig sekvens av aktiviteter med en grundläggande plan och värderingskriterier som resulterar i en utgåva (intern eller extern). 26 Page 13 1

Nio discipliner 27 Tillsammans blir det: Ett iterativt tillvägagångssätt I en iteration går man igenom alla discipliner Discipliner grupperar aktiviteter logiskt 28 Page 14 1

RUP är en användningsfallsdriven, arkitekturcentrisk, samt riskdriven process. 29 Nyckelbegrepp i RUP: Roller, aktiviteter, artefakter utför Roll Aktivitet Designer Use-Case Realizations Användningsfallsrealiseringar Use-Case Användningsfallsanalys Analysis ansvarig för Artefakt 30 Page 15 1

Arbetsflödesdetaljer Exempel: Arbetsflödet för utvecklingsmiljö Exempel: Arbetsflödesdetalj: Färdigställ projektmiljön 31 RUP är en omfattande process, ett processramverk RUP bör införas stegvis RUP måste anpassas till organisationen till projektet 32 Page 16 1

Användbarhet i RUP Requirements: Deployment: Environment: Use cases Roadmap: Usability Engineering Ux Plug-In Concepts: Work guidelines: Användbarhet i RUP Detta kunde varit bättre... Användbarhet är utspritt och otydligt kan försvinna Ingen samordnande, ansvarig roll Detta är bra! Användningsfall användarcentrering Fokus på krav Iterativ utveckling Tvärdiciplinärt samarbete 34 Page 17 1