Softwarekonstruktion Udviklingsmodeller generelt Introduktion til UML Udviklingsmodellen UP UML strukturer
Udviklingsmodel, metode og notation Et udviklingsmodel er en samling af aktiviteter, der fører frem til det færdige produkt En metode er konkrete retningslinier for, hvordan de enkelte aktiviteter skal udføres UP er både en udviklingsmodel og metode En notation er et sprog til beskrivelse og visualisering UML er en fælles standard for visualisering af modeller og understøttes af forskellige case – værktøjer UP og mange andre metoder benytter UML 07-04-2017 Lektion 4 - SWK
Udviklingsmodeller – oversigt Basis modeller: Vandfaldsmodellen Specifikation (først) og udvikling (sidst) i adskilte faser Et sekventielt gennemløb Evolutionær systemudvikling Prototyper der iterativt forbedres på baggrund af brugerinput Specifikation, udvikling og test er vævet ind i hinanden ”Moderne” modeller (UP, XP m. fl.) indeholder alle et miks af elementer fra ovennævnte basismodeller – derfor er det vigtigt at forstå deres fordele/ulemper 07-04-2017 Lektion 4 - SWK
Vandfaldsmodellen (Royce) 07-04-2017 Lektion 4 - SWK
Vandfaldsmodellen – laksen 07-04-2017 Lektion 4 - SWK
Fordele / ulemper Fordele Ulemper Anvendelse God synlighed - let at styre efter God dokumentation Ulemper Går ofte fejl af brugerne, idet beslutninger tages på grundlag af abstrakte specifikationer og med begrænset brugerinddragelse (ingen kodning/test i de første faser) Ændringshåndtering vanskelig (kun et gennemløb) Fejl-/misforståelser opdages først sidst i processen, hvor de er dyre at rette (test sent i processen) Anvendelse Modellen passer bedst til situationer, hvor kravene kan specificeres, er forståelige, og senere ændringer er begrænsede, hvilket sjældent er tilfældet 07-04-2017 Lektion 4 - SWK
Evolutionær systemudvikling (evolutionsmodellen) Udforskende udvikling Formålet at udvikle et system, mens der løbende integreres med kunden. Der startes med de mest forståelige dele Features tilføjes efterhånden af kunden Bruges i situationer, hvor det ikke er klart, hvordan systemet skal fungere Smid - væk prototyper Målet er en bedre kravspecifikation. Prototypen bruges for at afklare det reelle behov Bruges i situationer, hvor kravene til systemet kendes, men er vanskelige at forstå. 07-04-2017 Lektion 4 - SWK
Evolutionær udvikling 07-04-2017 Lektion 4 - SWK
Fordele / ulemper Fordele Ulemper Hurtig udvikling af noget der ligner et rigtigt system Stor grad af brugerdeltagelse, motiverende God opfyldelse kundekrav Ulemper Vanskelig af måle fremdrift – samt afgøre hvornår systemet er færdigt. Vanskeliggør projektledelse Mange ændringer ødelægger strukturen Specielle krav til uddannelse og værktøjer 07-04-2017 Lektion 4 - SWK
Iterative og inkrementelle modeller Set over tid vil der altid komme krav til ændringer Derfor er iterationer nødvendige Hver iteration resulterer i en udvidelse af systemet - et inkrement Moderne modeller forener det bedste fra vandfald og evolutionær Risikostyrede iterative modeller: Et første bud: Spiral modellen Et praktisk anvendeligt bud: Unified Proces (UP) 07-04-2017 Lektion 4 - SWK
Boehm’s spiralmodel eksempel 07-04-2017 Lektion 4 - SWK
Situationsbestemt udvikling Hvilken type projekt? Stabile / dynamiske krav Lille/stort Simpelt/Komplekst Fejl har store/små konsekvenser Hvilke type udviklere? Erfarne/uerfarne Selvstændige/uselvstændige Hvilken type software – hardware? Prøvet før/nyt 07-04-2017 Lektion 4 - SWK
Historien bag UML 07-04-2017 Lektion 4 - SWK
Udviklingsmodel, metode og notation Et udviklingsmodel er en samling af aktiviteter, der fører frem til det færdige produkt En metode er konkrete retnings linier for, hvordan de enkelte aktiviteter skal udføres UP er både en udviklingsmodel og metode En notation er et sprog til beskrivelse og visualisering UML er en fælles standard for visualisering af modeller og understøttes af forskellige case – værktøjer UP og mange andre metoder benytter UML 07-04-2017 Lektion 4 - SWK
Perspektiver Analyse (Hvad skal systemet indeholde?) en simplifikation af virkeligheden i et black box view gør udviklerne i stand til bedre at forstå det system de udvikler Design (Hvordan skal systemet bygges?) et white box view på systemet betragter systemet ud fra et bestemt perspektiv for bedre at forstå kompleksiteten UML binder analyse, design og kode sammen. ældre strukturerede metoder bruger forskellig notation i analyse og design 07-04-2017 Lektion 4 - SWK
UML model og kode UML modellen kan mappes til forskellige platforme fx Java, og automatisk omsættes til kode 07-04-2017 Lektion 4 - SWK
UML grundelementer er objekter UML bygger på, at det der skal modelleres, kan betragtes som en samling af interagerende objekter Der er to hovedaspekter: Den statiske struktur, som er objekterne i systemet og deres relationer Den dynamiske opførsel, der beskriver hvordan objekterne kalder hinanden i run time tilstanden 07-04-2017 Lektion 4 - SWK
UML strukturer Byggeklodser Fælles mekanismer Arkitektur symboler for ting som fx en klasse eller use case symboler for relationer diagrammer der er views af modeller over ting og deres relationer Fælles mekanismer specifikationer og semantik udvidelse med vigtige detaljer på diagrammerne fælles beskrivelser af elementer ved klassificering og interfaces udvidelse med fx egne modelleringselementer Arkitektur 07-04-2017 Lektion 4 - SWK
Oversigt over UML diagrammer 07-04-2017 Lektion 4 - SWK
Eks. Specifikationer og semantik 07-04-2017 Lektion 4 - SWK
Eks. Udvidelser af modelelement med vigtige detaljer 07-04-2017 Lektion 4 - SWK
Classifier and instance 07-04-2017 Lektion 4 - SWK
07-04-2017 Lektion 4 - SWK
Eksempler på stereotyper 07-04-2017 Lektion 4 - SWK
UP bygger på en 4+1 View arkitektur 07-04-2017 Lektion 4 - SWK
07-04-2017 Lektion 4 - SWK
UP ~ RUP 07-04-2017 Lektion 4 - SWK
Hvorfor UP ? De hidtidige metoder er utidssvarende Behov for en ”reference proces” Behov for en proces der kan guide et teams aktiviteter styre teamets og den enkeltes opgaver specificerer hvilke opgaver der skal løses angiver kriterier for overvågning og måling af et projekts resultater 07-04-2017 Lektion 4 - SWK
UP Understøtter iterationer og illustrerer god udviklingspraksis. Drevet af use cases og risici Arkitektur centreret Iterativ og inkrementel Beskrives normalt ud fra 3 perspektiver: Et dynamisk perspektiv, der viser faserne over tid Et statisk perspektiv der viser procesaktiviteterne (workflows/discipliner) Et udførende perspektiv som viser god praksis Kritiseres af nogen for at være for tung! 07-04-2017 Lektion 4 - SWK
07-04-2017 Lektion 4 - SWK
Workflows 07-04-2017 Lektion 4 - SWK
Faser Inception Mål og afgrænsning Elaboration Arkitekturens basis Construction Transition time Inception Mål og afgrænsning Elaboration Arkitekturens basis Construction Systemet gjort køreklar Transition Færdig produkt release 07-04-2017 Lektion 4 - SWK
Fokus i inception fasen I denne fase er det afgørende kriterium gennemførbarhed opnået gennem: identificering og reducering af risici arbejde med use case modellering af vigtige krav opstilling af en første arkitektur udarbejdelse af et første estimat forretningsmæssige/økonomiske overvejelser (inception kan oversættes med påbegyndelse - så der er ingen mystik 07-04-2017 Lektion 4 - SWK
Milestone efter inception 07-04-2017 Lektion 4 - SWK
Fokus i elaboration fasen I denne fase er det afgørende kriterium evnen til at bygge systemet indenfor en given økonomisk ramme ved at identificere og reducere risici af væsentlig betydning for systemets konstruktion specificere de fleste use cases og dermed systemets funktionalitet præcisering af systemets arkitektur udarbejdelse af projekt plan for konstruktionsfasen præcisering af estimater og overvejelser over den forretningsmæssige side (elaboration kan oversættes med uddybning….) 07-04-2017 Lektion 4 - SWK
Milestone efter elaboration 07-04-2017 Lektion 4 - SWK
Fokus i construction fasen Det er et afgørende kriterium at få udviklet et system som er i stand til at fungere i brugernes omgivelser Dette opnås ved en serie af iterationer, som leder til nye ”byggesten”. Gennemførligheden af systemet er synlig ud fra de konstruerede dele af systemet 07-04-2017 Lektion 4 - SWK
Milestone efter construction 07-04-2017 Lektion 4 - SWK
Fokus i transition fasen Målet med denne fase er at opnå et system, der er klar til at gå i drift. Opnås ved: at løse de problemer der ikke blev konstateret tidligere i forløbet, herunder deciderede fejl planlægge brugerkurser mv. 07-04-2017 Lektion 4 - SWK
Milestone efter transition 07-04-2017 Lektion 4 - SWK
Den iterative tilgang i UP er risikodrevet En risiko er et anliggende ved et projekt som, der er en sandsynlighed for, kan ødelægge eller påvirke systemets succes Kategorisering af risici tekniske risici ikke tekniske risici 07-04-2017 Lektion 4 - SWK
Tekniske risici Tekniske risici kan inddeles i fire grupper: Risici i forbindelse med funktionelle og ikke funktionelle krav Risici i forbindelse med ny teknologi Risici relateret til arkitektur (integration af delsystemer, kvalitet af eksterne komponenter ,,,) Risici relateret til performance 07-04-2017 Lektion 4 - SWK
Ikke tekniske risici Risici som ledelsen har mulighed for umiddelbart at tage hånd om, f.eks. urealistisk tidsplan fra en kundes side afhængighed af delleverandører, som ikke tidligere har været anvendt mangel på bestemte ressourcer Det er ikke denne type risici UP tager sigte på 07-04-2017 Lektion 4 - SWK
Håndtering af risici Når risici er identificeret og prioriteret, skal det besluttes, hvordan de håndteres Der er ifølge UP grundlæggende fire valg undgå risikoen ved at ændre planer og/eller krav begræns eller indkapsl risikoen afprøv risikoen. Hvis den materialiseres (viser sig at være reel) må den genovervejes nogle risici kan ikke fjernes, men må overvejes og besluttes ud fra en foretaget risikoanalyse 07-04-2017 Lektion 4 - SWK
Manifesto for Agile Software Development 07-04-2017 Lektion 4 - SWK
Principles of agile methods 07-04-2017 Lektion 4 - SWK
Klasser og objekter 07-04-2017 Lektion 4 - SWK
UML klasse notation 07-04-2017 Lektion 4 - SWK
07-04-2017 Lektion 4 - SWK