Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Klasser Modeller.

Lignende præsentationer


Præsentationer af emnet: "Klasser Modeller."— Præsentationens transcript:

1 Klasser Modeller

2 Domænemodellens rolle er central:
I dag Softwarekonstruktion 6

3 Objekter og klasser Objekt: Et objekt tilhører en klasse Klasse:
en helhed med identitet, tilstand og adfærd Et objekt tilhører en klasse Klasse: en beskrivelse af en samling af objekter med samme struktur, adfærdsmønster og attributter Til enhver klasse hører en mængde af objekter Softwarekonstruktion 6

4 UML objekt notation Softwarekonstruktion 6

5 Klassediagram Softwarekonstruktion 6

6 Eksempel på associering
UML notation Bil P er son .. * 0.. Beskriver sammenhæng mellem objekter. Kan være: 0..*, 1..*, 0..1 eller 1..1 Her ”mange-til-mange” Softwarekonstruktion 6

7 Generaliseringsstruktur
Softwarekonstruktion 6

8 Eksempel på generaliseringsstruktur
UML notation Er det her rigtigt? Softwarekonstruktion 6

9 Mønstere: Løsning på ofte forekommende modelleringsproblemer
Genstands-beskrivelse Relatering Composite Mmfl. Softwarekonstruktion 6

10 Nyttige mønstre: genstands-beskrivelse
Biludlejning Kunde = kunden, aftale= lejekontrakt og ydelse = biler Ordresalg Kunde = kunden, aftale = ordre og ydelse = varer Kursuscenter Kunde= kursist, aftale= tilmelding og ydelse = kursusafh Bibliotek?? Softwarekonstruktion 6

11 Nyttige mønstre: Relatering Klassediagram 1. Udkast plus objektdiagram
Problem: Associeringen mellem ordre og vare har selv nogle egenskaber - registrering af antal bestilte varer Softwarekonstruktion 6

12 Relaterings mønstret Løsningsmuligheder
Løsning: Tilføjelse af en associeringsklasse Alternativ 1: Navngivning af associering med tilhørende attributter Alternativ 2: En ny klasse Delordre – kaldes ofte Ordrelinie eller Varelinie Softwarekonstruktion 6

13 Aggregering vs. associering
Aggregering kan ses som en “del-helhed” forbindelse Associering er en mere “løs” forbindelse mellem objekter Kan komponenten eksistere selvstændigt? Kan komponenten skiftes ud? Hvem har ansvaret for oprettelsen af komponenten? Softwarekonstruktion 6

14 Opgave . Udarbejd klassediagram for web-bestilling af blomster mv.
Tag udgangspunkt i beskrivelsen af use casen: ”Afgiv ordre” Softwarekonstruktion 6

15 Use case realisering Interaktionsdiagrammer Sekvensdiagrammer
UP’s Analyse Use case realisering Interaktionsdiagrammer Sekvensdiagrammer

16 Analyse og design i UP Både analysen og design i UP beskriver hvordan use cases kan realiseres ved hjælp af samarbejdende objekter Analysen er teknologineutral og kan betragtes som en slags overordnet design Der vises klasser fra problemdomænet (kursist, kursus ..) ikke løsningsdomænet (database.., gui , netværk …) I designet indarbejdes teknologi-afhængige aspekter Hvilken type database? Hvilke designklasser indkapsler databasen? Softwarekonstruktion 6

17 Use case realisering Softwarekonstruktion 6

18 Use case realisering Målene for analysen er:
At finde de analyseklasser der skal bruges i realiseringen af use cases At finde ud af hvilke beskeder (metode kald) de enkelte objekter skal sende til hinanden for at kunne realisere use cases At sikre konsistens mellem krav og analyse ved løbende at opdatere kravsmodellerne Use case realisering handler om at fastlægge, hvordan klasser skal samarbejde for at realisere systemets funktionalitet i et dynamisk view Softwarekonstruktion 6

19 Use case realisering Softwarekonstruktion 6

20 UML interaktionsdiagrammer
De vigtigste er: Sekvensdiagrammer Kollaborationsdiagrammer Elementerne i diagrammerne: Livslinjer for de deltagende objekter Fx: minkonto: Konto (objekt:Klasse) Beskeder, som er en specifik kommunikation mellem livslinjerne Fx: FindKonto(kontonr) Softwarekonstruktion 6

21 Interaktions diagrammer
Kollaborations diagrammer objekt interaktion i graf eller netværks format fokus på strukturelle aspekter Sekvens diagrammer interaktionen vises I stakit format tids ordnet sekvens af handlinger Softwarekonstruktion 6

22 Eksempel 1 Softwarekonstruktion 6

23 Deltagende klasser: AddCourse
Softwarekonstruktion 6

24 nsdiagram: AddCourse Softwarekonstruktion 6

25 Kollaborationsdiagram: AddCourse (en anden måde at vise samme interaktion på)
Softwarekonstruktion 6

26 Eksempel 2: DeleteCourse
Softwarekonstruktion 6

27 Sekvensdiagram:DeleteCourse
Håndteres automatisk i moderne sprog Softwarekonstruktion 6

28 UML syntaks for meddelelser
return = message(parameter: parameterType):returnType eksempler: p=getPerson(id) p=getPerson(id:personId) p=getperson(id:personId):Person Softwarekonstruktion 6

29 Syntaks for kombineret fragmenter og operatorer
Softwarekonstruktion 6

30 Kollaborationsdiagram med forgreninger
Softwarekonstruktion 6

31 Opgave: Godbid Domænemodellen for Godbid er vist på figuren
Lav use cases og interaktions diagrammer for følgende: Opret Bord Opret Bestilling Opret Medarbejder Softwarekonstruktion 6

32 Opgave Indtast diagrammerne i Rose (vi hjælpes ad) 07-04-2017
Softwarekonstruktion 6

33 Analyse klassediagram
I analyse klassediagrammet vises klasser, attributter og metoder, som illustrer den use case, der arbejdes med Attributter overføres fra domænemodellen Metoder tilføjes på klasserne: Indgående beskeder til en klasse betyder, at klassen må definere en modsvarende metode Metoderne specificeres ved at angive deres navn (beskeden) i operationsdelen på klassen Softwarekonstruktion 6

34 Analyseklassediagram for AddCourse og DeleteCourse
Softwarekonstruktion 6

35 Trivielle metoder Følgende metoder navngives som regel ikke:
metoder til at generere og destruere objekter. Ved at definere klasserne specificere vi implicit, at de findes. Deres design og placering afhænger af programmeringssproget metoder til aflæsning og opdatering af attributter på et objekt (properties). Ved definition af attributterne specificerer vi implicit, at disse findes. metoder til at finde og tilføje objekter på multiobjekter. Softwarekonstruktion 6

36 Opgave: Godbid Lav et analyse klassediagram Indtast det i Rose
Lav et nyt klassediagram (som kaldes for analyseklasse diagram). Overfør klasserne fra domænemodellen Bemærk: Analyse klassediagrammet er ikke det samme som domænemodellen!! Softwarekonstruktion 6

37 Fra use cases til interaktionsdiagram
Hvis der er mange trin i en use case kan der være en fordel først at finde og navngive input- og output systemhændelser mellem hhv. aktør og system i en tidsmæssig orden efter use casens forløb Softwarekonstruktion 6

38 Fra use cases til interaktionsdiagram
Softwarekonstruktion 6

39 Opgave: Afgiv Ordre (blomster)
Gå use casen Afgiv Ordre igennem (den vi lavede for interflora) Find og navngiv input system hændelser mellem bruger og system (output hændelser behøver ikke at blive navngivet). Analyser herefter hver input systemhændelse i et interaktionsdiagram Overfør de fundne metoder til analyse klassediagrammet Softwarekonstruktion 6


Download ppt "Klasser Modeller."

Lignende præsentationer


Annoncer fra Google