30
Domænemodeller og Systemsekvensdiagrammer

7 dæmænemodel og SSD

Embed Size (px)

Citation preview

Page 1: 7 dæmænemodel og SSD

Domænemodeller og Systemsekvensdiagrammer

Page 2: 7 dæmænemodel og SSD

PlanPlan

• TilstedeværelseTilstedeværelse

• Domænemodeller

Ø l d llé d l i f• Øvelse: modellér model over reservation af biografbillet

• Systemsekvensdiagrammer

2

Page 3: 7 dæmænemodel og SSD

DomænemodelDomænemodel

• Model over konceptuelle klasser/fænomener i et udsnit af problemdomænet (vi modellerer kun det der har relevans for den nuværende iteration og dens use‐cases)

• Hjælper os til at få et overblik over den verden vi skal modellere 

• Giver os et fælles vokabular omkring problemdomænet (tag udgangspunkt i kundens definitioner)

• Kan udvikles sammen med kunden• Ikke et Designklassediagram men kan bruges som 

inspiration til at udvikle detteinspiration til at udvikle dette– mindske den repræsentative kløft imellem domæne og kode

3

Page 4: 7 dæmænemodel og SSD

Består af:Består af:

• Klasser med navne og attributter samtKlasser med navne og attributter samt associationer imellem klasserne

association

KatPersonnavnfarvekøn

navn

Attributter

Klasse

4

Page 5: 7 dæmænemodel og SSD

Notationsform/konventionerNotationsform/konventioner

• Klasse‐ og attributnavne skrives medKlasse og attributnavne skrives med ”camelCase” hvis der indgår flere ord i navnet

• Klassenavne er altid med stort• Klassenavne er altid med stort begyndelsesbogstav

A ib l id d lill• Attributnavne er altid med lille begyndelsesbogstav 

ActivityRevision

revisionId

5

quota

Page 6: 7 dæmænemodel og SSD

Abstraktioner over problemdomænetAbstraktioner over problemdomænet

• Hvilke konceptuelle klasser og attributter er p grelevante at få med?– Bestemmes ud fra den kontekst vi arbejder medInden for det samme problemdomæne kan der– Inden for det samme problemdomæne kan der forekomme forskellige former for relevans alt efter hvilke bruger vi har med at gøreS f f j d l å I ikk d ll– Sørg for at afgrænse jeres model, så I ikke modellerer hele domænet, men kun den del I vil fokusere på (f.eks. med udgangspunkt i en use‐case)

• Mulige klasser/attributter til fænomenet Person– Navn, adresse, alder, køn, vægt, indkomst, uddannelse sygdomme kørekort kontonummeruddannelse, sygdomme, kørekort, kontonummer

6

Page 7: 7 dæmænemodel og SSD

Forskellig relevans JobcenterForskellig relevansLægeklinik

Jobcenter

Sekretær

Læge Person

Sekretær

navn

adresse sygdomme

indkomst

Tlf/email

indkomst

vægt

l k talder

uddannelse

kørekort Analyseinstitut

Bank lønkontoBank

Långiver

Analytiker

Forsikringsagent

7

Page 8: 7 dæmænemodel og SSD

Kandidater til konceptuelle kl / bklasser/attributter

• Tag udgangspunkt i jeres use‐casesll d k d d l kl– Alle navneord er kandidater til klasser

– 1. Assistenten anmoder om at oprette ny vare2. Systemet skifter til opret ny vare tilstand3. Assistenten registrerer den nye vare4 Systemet verificerer data for den nye vare4. Systemet verificerer data for den nye vare5. Systemet gemmer den nye vare (i varekataloget)6. Systemet informerer om at varen er gemt

• Brug kategorilisten fra bogen (s. 140 ‐ 141)T k i l i b li f d l b illi– Transaktioner: salg, reservation, betaling, forsendelse, bestilling 

– Hvad omhandler transaktionen: vare, service, måltid– Hvordan/hvor bliver transaktionen registreret: Kasseapparat, regnskabsbog, 

protokol, bestillingsliste, varekatalog– Hvem indgår i transaktionen: kunde, sælger, passager, grossist– Hvor foregår transaktionen: butik, biograf, web‐butik– …. 

8

Page 9: 7 dæmænemodel og SSD

Attribut eller klasse?Attribut eller klasse?

• Attributter er egenskaber ved en klasse som ikke selv kan have tt ib tt lt å i l t å t k t t l d/f l k diattributter altså simple typer såsom tekst, tal, sand/falsk‐værdier (boolean)– Hvis vi ikke anser fænomenet som værende af disse typer i den 

virkelige verden, er de det typisk heller ikke i domænemodellenvirkelige verden, er de det typisk heller ikke i domænemodellen• Undersøg bl.a. ved at spørge ”har fænomenet egenskaber og er de relevante?” 

hvis ja er det en klasse– Simple typer i den virkelige verden kan dog også anses som værende 

en klasse i domæne‐modellenen klasse i domæne modellen• Navn ‐> kan bestå af fornavn, mellemnavn, efternavn• Adresse‐> kan bestå af gade, nr, etage, by, postnummer• Cpr‐nr ‐> kan bestå af fødselsdato, århundrede, løbenummer, køn

Mål > ll t• Mål ‐> cm eller tommer• Penge ‐> hvilken valuta• Pris ‐> start og slutdato

– Handler igen om kontekst

9

Page 10: 7 dæmænemodel og SSD

Attribut eller klasse 2? JobcenterAttribut eller klasse 2?Lægeklinik

Jobcenter

Sekretær

Læge Person

Sekretær

navn

adresse sygdomme

indkomst

Tlf/email

indkomst

vægt

l k talder

uddannelse

kørekort Analyseinstitut

Bank lønkontoBank

Långiver

Analytiker

Forsikringsagent

10

Page 11: 7 dæmænemodel og SSD

AssociationerAssociationer

• Associationer imellem klasser fortæller noget om deres indbyrdes tilhørsforhold– A ejes af B ‐> Person ejer Kat– A er en del af B ‐> Bildør del af BilA er en del af B  > Bildør del af Bil– A indeholder B ‐> Klasselokale indeholder Studerende– A beskriver B ‐> Stamtavle beskriver Hund(se hele listen s 155 156)– (se hele listen s. 155 ‐ 156)

• Vær moderat med associationer, medtag kun de vigtigste, dem der fremmer forståelsen og fortæller 

d h knoget der er vigtigt at huske

Bildør Bil

Association 11

Page 12: 7 dæmænemodel og SSD

AssociationsmærkaterAssociationsmærkater

• For at gøre diagrammerne lettere at læse kanFor at gøre diagrammerne lettere at læse kan der tilføjes mærkater til associationerne – Mærkaterne skal fremme forståelsen ellers er de– Mærkaterne skal fremme forståelsen ellers er de ligegyldige. Er associeret til, har, bruger er alle dårlige eksempler, da de ikke siger mere end selve g p , gassociationsstregen

– Ud over den forklarende tekst kan en læseretningspil også tilføjes

Bildør BilIndgår i ‐>

Indeholder ‐> Bildør BilKlasselokale Studerende

12

Page 13: 7 dæmænemodel og SSD

Associationsmærkater IIAssociationsmærkater II• Vær opmærksom på at vi har med et statisk diagram at gøre og associationer i den 

sidste ende også bare er attributter for en klasse Associationer skal altså ikkesidste ende også bare er attributter for en klasse. Associationer skal altså ikkeudtrykke handlinger.

• Følgende er altså kun gyldige hvis vi kan omsætte associationen til en attribut –altså information vi ønsker at have viden om. Ellers er det handlinger og skal ikke med i modellenmed i modellen

• Dette vil også fremstå tydeligere hvis man prøver at vende læseretningen

Person PosteringSletter ‐> Postering

‐navn ‐ beløb

Person Posteringforetager ‐>

‐ beløb‐ slettetAf : Person

Postering

‐navn ‐ beløb

P P t iændrer ‐>

‐ beløb‐ foretagetAf : Person

Postering

ok

Person

‐navn

Postering

‐ beløb

ændrer  > Postering

‐ beløb‐ændretAf : Person

Page 14: 7 dæmænemodel og SSD

MultiplicitetMultiplicitet

• Multiplicitet udtrykker restriktioner forMultiplicitet udtrykker restriktioner for associationerne imellem de forskellige klasser– Restriktionerne skal fortolkes som værende udtryk yfor hvad der er tilladt i en bestemt situation eller tidspunkt

E P h k ét l i• En Person har kun ét navn selvom personen igennem sit liv kan skifte navn flere gange.

– Mulitiplicitet kan læses i begge retningen ved altid p gg gat tage den første klasse i associationen som værende ental

Klasselokale StuderendeIndeholder ‐>1 *

14

Page 15: 7 dæmænemodel og SSD

Multiplicitet 2Multiplicitet 2

• * ‐> 0 til mange• 1..*, 3..* ‐> udgangspunkt til mange• 3..10 ‐> bestemt interval• 10 ‐> bestemt• 3, 5, 10 ‐> flere bestemte• Igen er det konteksten der bestemmer hvilken multiplicitet vi 

modellerer– Selvom en Person typisk kun vil have en adresse vil det i folkeregister 

kontekst være relevant at have informationer om alle adresser en person har boet på og så adskille dem ved at kunne definere nuværende adresse og tidligere adresser

Person Adresse

Nuværende ‐>* 1

Tidligere ‐>* *

15

Tidligere  >

Page 16: 7 dæmænemodel og SSD

ProduktbeskrivelseProduktbeskrivelse

• Knytter sig til et ”produkt”Knytter sig til et  produkt

• Mere end bare en attribut, udgør metainformation omkring produktet en formmetainformation omkring produktet, en form for prototype

U d å d d d• Undgå redundant data– Ret kun data et sted

• Gør det muligt at få information om ”produkter” selvom der ikke er nogen på lager

16

Page 17: 7 dæmænemodel og SSD

Produktbeskrivelse VIP‐O‐MATICProduktbeskrivelse VIP O MATIC

• En postering beskriver en bestemt aktivitet udført af en VIP og hvor mange timer denne er blevet udført

• Første udkast kunne altså være følgende:Entry VIPEntry

namequotadescription

VIP

name1*

• Der sker tit at den samme aktivitet udføres mange gange med den samme timetakst, så vi kan løbe ind i problemer:

p

– Vi skal huske at skrive navnet og beskrivelsen ens– Vi skal huske hvad den typiske timetakst er– Hvis der sker ændringer, skal vi foretage dem i alle posteringer

17

Page 18: 7 dæmænemodel og SSD

Produktbeskrivelse VIP‐O‐MATIC 2Produktbeskrivelse VIP O MATIC 2

• Vi gør aktiviteten uafhængig af om der er oprettet posteringer eller j D t til kti it t f h ld t åej. Det er nu op til aktiviteten af holde styr på:– Navn– Beskrivelse

Takst– Takst• Der opstår dog nu det problem at vi ikke kan variere taksten hvis en 

postering f.eks. skal gøre det ud for 2 * aktivitet. Dette løses med en faktor

Entry

factor

VIP

name

Activity

name1**1

quotadescription

18

Page 19: 7 dæmænemodel og SSD

Produktbeskrivelse VIP‐O‐MATIC 3Produktbeskrivelse VIP O MATIC 3

• Der forekommer nu det problem at kvoten for en aktivitet kan ændre sig grundet forhandlinger og ændringer i aktivitetens omfang. Hvis vi ændrer taksten på aktiviteten vil tallet for allerede udførte posteringer p p gogså ændre sig. Vi skal altså have en form for revision/historik indbygget

E t VIPA ti it Entry

factoractivityRevisionId

VIP

name

Activity

namedescription

1**1

ActivityRevision

1

1..*

ActivityRevision

revisionIdquota 19

Page 20: 7 dæmænemodel og SSD

Afledte attributterAfledte attributter

• Det kan nogen gange ønskes at udtrykke enDet kan nogen gange ønskes at udtrykke en attribut som allerede er beskrevet via associationerne eller andre attributter Enassociationerne eller andre attributter. En sådan attribut kaldes en afledt attribut. Og beskrives ved hjælp af ”/” foran attributnavnetbeskrives ved hjælp af  /  foran attributnavnet

Person

Kat

navn

Har killinger*Person

fornavnmellemnavnefternavn

farvekøn/antalKillinger

1/navn

20

Page 21: 7 dæmænemodel og SSD

Attribut kravAttribut krav

• Sæt ekstra specifikationer på attributter hvis detSæt ekstra specifikationer på attributter hvis det fremmer forståelsen, er de f.eks. optionelle, kan ikke ændres, har en standard værdi, type, , yp

KristenVerden

type

Standard værdigudsSøn : PersontidAtSkabe : int = 7 {readOnly}pave : Person [0..1]

Kan ikke ændresKan ikke ændres

Optionel værdiOptionel værdi

21

Page 22: 7 dæmænemodel og SSD

ØvelseØvelse

• Brug 20 min. på at lave en domænemodelBrug 20 min. på at lave en domænemodel over en reservation til en biograffilm– Konceptuelle klasser/fænomenerp /– Attributter– Associationer

• Tag udgangspunkt i navneord fra jeres use‐case fra sidst og listen i bogen s. 140 ‐ 141

• Vi diskuterer bagefter jeres modeller og prøver at lave en samlet på tavlen 

22

Page 23: 7 dæmænemodel og SSD

Eks. på domænemodel for biografEks. på domænemodel for biograf

Page 24: 7 dæmænemodel og SSD

SystemsekvensdiagrammerSystemsekvensdiagrammer

• Supplement til use‐casesSupplement til use cases

• Visualisering af kommunikationen med systemet og dets feedback (input/output)systemet og dets feedback (input/output)

• Giver et godt overblik når vi skal til at designe kl k divores klasse‐ og sekvensdiagrammer

– Hvilken input skal behandles

– Hvilke resultater skal returneres til brugeren

24

Page 25: 7 dæmænemodel og SSD

Eksempel på SSDEksempel på SSD

• Tag udgangspunkt i succes‐scenariet fra denTag udgangspunkt i succes scenariet fra den use‐case der skal modelleres – Den primære aktør stilles over for systemet– Den primære aktør stilles over for systemet

Opret studieordning

:SystemTAP

25

Page 26: 7 dæmænemodel og SSD

• Identificer operationer brugeren anmoder systemet om df f db k fat udføre samt feedback fra systemet.

– Operationsnavne skrives med ”camelCase”, hvilket i denne omgang bare betyder at det er operation der udføres på g g y p ø psystemet

:System

Opret studieordning

TAPopretNyStudieordningp y g

inputNavn

l d fvalidering af navn

tilFøjKursus

kursus tilføjet studieordningkursus tilføjet studieordning

gemStudieordning26

Page 27: 7 dæmænemodel og SSD

• Find dernæst den information der skal overføres til systemet og tilføj den til operationerne

:System

Opret studieordning

TAPopretNyStudieordningp y g

inputNavn(navn)

l d fvalidering af navn

tilføjKursus(navn, takst)

kursus tilføjet studieordningkursus tilføjet studieordning

gemStudieordning27

Page 28: 7 dæmænemodel og SSD

• Hvis den samme operation kan udføres mere end en gang kan den omgrænses af en interaktionsen gang kan den omgrænses af en interaktions‐ramme med tilhørende betingelse

Opret studieordning

:System

p g

TAPopretNyStudieordning

inputNavn(navn)

validering af navn

type

tilføjKursus(navn, takst)

kursus tilføjet studieordning

gemStudieordning

loop [Flere kurser]

gemStudieordningbetingelse

28

Page 29: 7 dæmænemodel og SSD

Modulopgave 2Modulopgave 2• 3‐5 sider pr. person

Sk l i d h ld• Skal indeholde:– Domæne‐model(ler)– Klasse‐diagram(mer)– Use‐cases

Sekvens diagrammer for hver use case (i hvert fald 2)– Sekvens‐diagrammer for hver use‐case (i hvert fald 2)– Glossary med beskrivelser af termer brugt i problemdomænet, samt evt. restriktioner 

(valideringsregler)– Supplementerende specifikation med udgangspunkt i FURPS+

• Alle diagrammer ledsages af forklarende tekstg g• Kan indeholde

– Mockups brugt til test af jeres use‐cases– Systemsekvens‐diagram for use‐cases– Vision– ...

• Mindst 5 klasser i domænemodellen for at opnå en tilstrækkelig kompleksitet• Afleveringsdato: 20. nov. kl. 12.00 i aula

29

Page 30: 7 dæmænemodel og SSD

Eksamen kandidatEksamen kandidat

• Der er en fejl i studieordningDer er en fejl i studieordning– Følgende er forkert: 5‐8 sider eksklusiv programkode ekstern censurprogramkode, ekstern censur

• Jeg lægger en ny studieordning op på aula i dag som der er givet dispensation tildag, som der er givet dispensation til

30