UML Use case drevet analyse og design 31.01.2005 Kirsten Ribu I dag Domenemodell (forløper til klassediagram) Interaksjonsdiagrammer Sekvensdiagram Kollaborasjonsdiagram 1 2 Domenemodell visualisering av konsepter Eksempel Domenemodellen viser konsepter i applikasjonsdomenet og forholdet mellom dem: ideer, ting, objekter (konseptuelle klasser en abstraksjon) Det finnes ingen fasit på hva som er en riktig domenemodell Domenemodellen lages med UML klassediagrammer uten metoder, og utarbeides gjennom flere iterasjoner Det er bedre å spesifisere for mange konseptuelle klasser enn for få 3 4 Hvordan finne domeneklasser? 2 forskjellige tilnærminger: Lag en liste over kandidater til domeneklasser Finn substantiver og substantivutrykk i use case beskrivelsene NB! Naturlig språk er flertydig, mekanisk mapping av substantiver til klasser er ikke å anbefale 5 6 1
Bruk en liste Finn substantiver i use casene Fysiske objekter Spesifikasjoner, beskrivelser av ting Steder Transaksjoner Roller (personer) Beholdere Ting i beholdere Eksterne systemer Eksempler (Spørreskjemagenerator) Tekst, informasjon Internett Eksport (til andre verktøy) Import (til regneark) Ansatt, deltaker Skjema Spørsmål, svar, antall Browser Eksempel: Use case Generer spørreskjema Aktør: Ansatt 1. Systemet ber om overskrift, innledning og antall spørsmål 2. Ansatt skriver inn nødvendig informasjon 3. Systemet sjekker at alle felt er utfylt 4. Systemet viser et spørreskjema der tekst til spørsmål skal fylles inn 5. Ansatt skriver inn tekst og svaralternativ 6. Systemet sjekker at riktig antall spørsmål har fått tekst 7. Ansatt ber om at spørreskjemaet blir lagret 8. Systemet lagrer spørreskjemaet Hendelser Abstrakte begreper Besvarelse Fortsettelse 7 8 Fremgangsmåte for domenemodellering Overordnet domenemodell Lag en liste over kandidater til klasser: Spørreskjema, Tekst, Overskrift, Innledning, Antall spørsmål, Informasjon, Felt, Spørsmål, Svar, Svaralternativ, Ansatt, Deltaker, Browser Ta bort unødvendige klasser Tegn klassene inn i domenemodellen Legg på assosiasjoner for å vise relasjoner Legg til attributter som er nødvendige for å oppfylle kravene 9 10 Assosiasjoner En assosiasjon er en relasjon mellom klasser (eller instanser av klasser: objekter) som indikerer at det er en meningsfylt sammenheng mellom dem Brukes i domenemodellen hvis informasjon om relasjonen skal lagres NB! For mange assosiasjoner i domenemodellen gir visuell støy Eksempel Assosiasjonsnavn (Kan utelates) Spørreskjema Består av 1 1 * Spørsmål Assosiasjonen går i begge retninger. Dette er en ren abstraksjon og sier ingen ting om forbindelser mellom objektene i selve systemet. 11 12 2
Forfin modellen Legg til attributter Ta bort unødvendige klasser (Kunde, Informasjon) Noen klasser viser seg å være attributter (Overskrift, Tekst etc.) Legg på multiplisitet : 1.* etc 13 Inkluder de attributter som det må lagres informasjon om i følge use casene Attributter er vanligvis datatyper, f.eks tall, boolean, tekst, dato Modeller konsepter (ting) som klasser, ikke attributter. Hvis det er tvil, lag en klasse! Eksempel: Lag en klasse Oversikt (eller Statistikk) som viser enkel statistikk som antall svar, deltakerens alder, geografiske tilknytning etc. 14 Domenemodell med assosiasjoner Oppsummering av analysen så langt * Use case modellen utarbeides i iterasjoner Use case modell og domenemodell lages parallelt Det finnes ingen fasit på hva som er en riktig domenemodell En god modell fanger opp informasjonen om entiteter (ting) som er beskrevet i use casene 15 16 Oppgave Interaksjonsdiagrammer Lag en domenemodell for Zebrasystemet Arbeid sammen: Finn substantiver i use casene (og kravspesifikasjonen) Lag et diagram og legg på assosiasjoner Legg til noen attributter (de viktigste/de som det må lagres informasjon om) 17 18 3
Interaksjonsdiagrammer Sekvensdiagram for mobiltelefon Sekvensdiagrammer og kollaborasjonsdiagrammer = modeller som beskriver hvordan grupper av objekter samarbeider Et interaksjonsdiagram viser oppførselen til et enkelt use case Diagrammene viser et antall objekter og hvordan meldinger sendes mellom objektene i use caset Vi skal konsentrere oss om sekvensdiagrammer 19 20 Sekvensdiagram forts Kollaborasjonsdiagram 21 22 Sekvensdiagrammer Grunnleggende notasjon for sekvensdiagram Viser hvordan objekter kommuniserer ved hjelp av beskjeder (meldinger) Viser hendelsesflyten i use casene Er et redskap for å lage et godt objektdesign Lages parallelt med klassediagrammer Lag sekvensdiagrammer to og to for å bedre forståelsen 23 24 4
Utforming av sekvensdiagrammer Patterns (strukturerte retningslinjer) og designprinsipper kan forbedre kvaliteten Aktøren (grensesnittklassen) er med for å vise grensesnittet mellom system og aktør Meldinger (metodekall) vises med piler. Metodene ligger i klassen som pilen peker på Nytt objekt opprettes med create() NB! create() peker rett på det nye objektet i høyden der objektet opprettes Klasser og objekter I UML er klasser og objekter illustrert på samme grafiske måte, men navnet er understreket i objektene. Spørsmål :Spørsmål s1:spørsmål klasse objekt navngitt objekt 25 26 Use case realisering En betegnelse fra Unified Process (UP) Beskriver forbindelsen mellom kravene uttrykt i use casene og objektdesignet som oppfyller disse kravene Beskriver hvordan scenariene i et use case realiseres gjennom objekter som samarbeider Illustreres med sekvensdiagrammer Hendelsene vises i meldinger som sendes mellom objektene Forberedelser til designfasen Undersøk systemoppførsel: Hva systemet gjør, ikke hvordan Bruk black-box sekvensdiagrammer (Betrakt systemet som black-box og finn meldingen som går ut og inn av systemet) Denne framgangsmåten visualiserer operasjonene som genereres av aktørene (input og output) 27 28 Ekstern aktør Black box diagram for Generer spørreskjema Systemet som black box Meldinger Retur til forrige melding Sammenheng mellom use case tekst og black box diagram Use case Generer spørreskjema Aktør Ansatt 1. Systemet ber om overskrift, innledning og antall spørsmål 2. Ansatt skriver inn nødvendig informasjon 3. Systemet sjekker at alle felt er utfylt 4. Systemet viser et spørreskjema der tekst til spørsmål skal fylles inn 5. Ansatt skriver inn tekst og svaralternativ 6. Systemet sjekker at riktig antall spørsmål har fått tekst 7. Ansatt ber om at spørreskjemaet blir lagret 8. Systemet lagrer spørreskjemaet 29 30 5
Sekvensdiagram Generer spørreskjema (1) Oppgave Ta for dere Timebestillings-use caset i Zebra systemet. Lag et black-box diagram for use caset Lag et sekvensdiagram for use caset Arbeid minst to sammen 31 32 Neste mandag Use case realisering Designmodellen Kapittel 6 i UML Distilled Torsdag: Andreas 33 6