500 likes | 717 Views
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
E N D
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 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 Lektion 4 - SWK
Vandfaldsmodellen (Royce) Lektion 4 - SWK
Vandfaldsmodellen – laksen Lektion 4 - SWK
Fordele / ulemper • Fordele • 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 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å. Lektion 4 - SWK
Evolutionær udvikling Lektion 4 - SWK
Fordele / ulemper • Fordele • 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 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) Lektion 4 - SWK
Boehm’s spiralmodeleksempel 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 Lektion 4 - SWK
Historien bag UML 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 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 Lektion 4 - SWK
UML model og kode UML modellen kan mappes til forskellige platforme fx Java, og automatisk omsættes til kode 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 Lektion 4 - SWK
UML strukturer • Byggeklodser • 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 Lektion 4 - SWK
Oversigt over UML diagrammer Lektion 4 - SWK
Eks. Specifikationerogsemantik Lektion 4 - SWK
Eks. Udvidelserafmodelelement med vigtigedetaljer Lektion 4 - SWK
Classifier and instance Lektion 4 - SWK
Eksemplerpåstereotyper Lektion 4 - SWK
UP bygger på en 4+1 View arkitektur Lektion 4 - SWK
UP ~ RUP 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 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! Lektion 4 - SWK
Workflows Lektion 4 - SWK
time Faser Inception Elaboration Construction Transition • InceptionMål og afgrænsning • Elaboration Arkitekturens basis • Construction Systemet gjort køreklar • Transition Færdig produkt release 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 Lektion 4 - SWK
Milestone efter inception 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….) Lektion 4 - SWK
Milestone efter elaboration 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 Lektion 4 - SWK
Milestone efter construction 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. Lektion 4 - SWK
Milestone efter transition 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 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 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å 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 Lektion 4 - SWK
Manifesto for Agile Software Development Lektion 4 - SWK
Principles of agile methods Lektion 4 - SWK
Klasser og objekter Lektion 4 - SWK
UML klasse notation Lektion 4 - SWK