Klasser Modeller.

Slides:



Advertisements
Lignende præsentationer

Advertisements

Læreridentitet og professionalisme
Hvordan får du downloadet, installeret og konfigureret GSAK
Velkommen til informationsmødet Et par nye adressebegreber
Lønkommissionen Præsentation i Nationaløkonomisk Forening den 8. sept 2010 Niels Westergård-Nielsen,
Mapning af 1 til mange forbindelser
Et fagligt løft af folkeskolen
Notation Oversigt Kapitel 18.
Kom i gang med GSAK Hvordan får du downloadet, installeret og konfigureret GSAK Af ProsperoDK (aka. René Boe) Teknik-event i det mørke Jylland IV - 16/
GSAK Makroer Hvordan får du downloadet, installeret og konfigureret GSAK Af ProsperoDK (aka. René Boe) Teknik-event i det mørke Jylland IV - 16/
Velkommen til Softwarekonstruktion
Thomas, Nicklas, Kim, Dennis G., Benjamin
Arkitektur, lagdeling og pakker
07 – Kort om OO Introduktion.
1 Intro nedarvning (eng.: inheritance) Nedarvningshierarkier Intro polymorfisme (eng.: polymorphism) Abstract / virtual / override / sealed Intro interfaces.
Mobile Atlas Creator (MOBAC) Prepare online maps for your mobile device Af ProsperoDK (aka. René Boe) Teknik-event i det mørke Jylland V - 12/ –
Lavet af: Paw Petersen Design Design Class Diagram (DCD)
Informationsteknologi B-A, HHX, 2005,
Mapning af 1 til mange forbindelser
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer Del 2 af 2: Proces- og funktionsdiagrammering Aalborg Universitet, d. 9. oktober 2006.
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer
Hvordan kan lean bruges i videnvirksomheder?
04.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Struktur Oversigt, principper og teknikker Kapitel 4.
03.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Klasser Oversigt, principper og teknikker Kapitel 3.
1 Dagens gang Repeter systemvalg Gennemgang af klasser og strukturer (kap. 3+4 OOA+D) Tavle opgave Gruppe opgave til næste gang.
07.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Funktioner Oversigt, principper og teknikker Kapitel 7.
12.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Modelkomponent Oversigt, principper og teknikker Kapitel 12.
Opfølgning på obligatorisk opgave 1 ONK1. Ingeniørhøjskolen i Århus Slide 2 Overordnet Flere gode opgaver De samme fejl går igen.. Alle der har afleveret.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Oversigt, principper og teknikker
13.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Funktionskomponent Oversigt, principper og teknikker Kapitel 13.
Introduktion til arkitektur design Arkitektur design handler om at få en forståelse for, hvordan et system skal organiseres og designe den overordnede.
Dagens gang Sidste uges opgaver Design af grænseflader
OOA&D Et Crash-kursus.
05.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Adfærd Oversigt, principper og teknikker Kapitel 5.
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
9. december Optimering af produktionsprocesser Ledelsessystemer som et nyttigt værktøj i optimeringsprocesserne Konsulent Christian.
v. Birgit Kjærside Storm
1 Dagens gang Sidste uges opgaver –Klasse opgaver –Adfærdsmønstre (Låner, Reservation, Materiale, Eksemplar) Brugsmønstre og funktioner Nye opgaver.
09.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Kriterier Oversigt, principper og teknikker Kapitel 9.
Introduktion og behovsafdækning Fokus på problemer med medicin og medicinhåndtering i hverdagen Forslag til løsninger Fastlæggelse af læringsbehov.
1 Dagens gang Sidste uges opgaver OA+D: Adfærd Nye opgaver.
Spørgetime. Kunde / konto eksemplet Konto åbnet( ) Beløb indsat( , 100) Konto åbnet( ) Beløb hævet ( , ) Beløb indsat( ,
Introduktion I4DAB1 Jesper Tørresø Forår Layers + Tiers ? Tiers er opdelinbgslag omkring en logisk abstraktion (Præsentation, forretningslogik og.
Eksempel på realisering af domænemodel
Objekter og klasser Rasmus D. Lehrmann DM
Use Case Modellering. En form for requirements engeneering – dvs. fastlæggelse af systemkrav.
Gruppe D/4 Tema Design.
Repetition: Introduktion til OOP med C# og .NET
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
Generelt om abstraktion og modellering Tietgen Skolen.
Oprettelse af tabeller (Access, del 2)
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design interaktionselementer Analysedokumentet.
2009Softwarekonstruktion / DB-design 11 Databasedesign 1 Fra begrebsmæssig model til relationel model.
Database.
E/R-diagrammering 7. Semester.
Unified Modeling Language
Den relationelle model
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
 Jens Bennedsen 2002Objektorienteret systemudvikling Interaktionsdiagrammer Hvordan beskrives objektinteraktion? Sekvensdiagrammer Collaborationsdiagrammer.
Dagens gang Komponenter Projektetablering Opgave i komponenter til næste gang.
Design af brugerflader13.1 Kursusgang 13 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
Introduktion I4DAB1 Jesper Tørresø Efterår Databaser ? Hvorfor indskyde et lag mellem applikation og det permanente/persistente lager? Hvordan gemmes.
01.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Objektorienteret Analyse & Design (OOA&D) Grundbegreber, principper og metode Kapitel 1.
Forretningsmodellering 2. Modul Foråret 2008 Nord LBP.
Abstraktioner.
Dokumentation.
Dokumentation.
Dokumentation.
Præsentationens transcript:

Klasser Modeller

Domænemodellens rolle er central: I dag 07-04-2017 Softwarekonstruktion 6

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 07-04-2017 Softwarekonstruktion 6

UML objekt notation 07-04-2017 Softwarekonstruktion 6

Klassediagram 07-04-2017 Softwarekonstruktion 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” 07-04-2017 Softwarekonstruktion 6

Generaliseringsstruktur 07-04-2017 Softwarekonstruktion 6

Eksempel på generaliseringsstruktur UML notation Er det her rigtigt? 07-04-2017 Softwarekonstruktion 6

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

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?? 07-04-2017 Softwarekonstruktion 6

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

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 07-04-2017 Softwarekonstruktion 6

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? 07-04-2017 Softwarekonstruktion 6

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

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

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? 07-04-2017 Softwarekonstruktion 6

Use case realisering 07-04-2017 Softwarekonstruktion 6

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 07-04-2017 Softwarekonstruktion 6

Use case realisering 07-04-2017 Softwarekonstruktion 6

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) 07-04-2017 Softwarekonstruktion 6

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 07-04-2017 Softwarekonstruktion 6

Eksempel 1 07-04-2017 Softwarekonstruktion 6

Deltagende klasser: AddCourse 07-04-2017 Softwarekonstruktion 6

nsdiagram: AddCourse 07-04-2017 Softwarekonstruktion 6

Kollaborationsdiagram: AddCourse (en anden måde at vise samme interaktion på) 07-04-2017 Softwarekonstruktion 6

Eksempel 2: DeleteCourse 07-04-2017 Softwarekonstruktion 6

Sekvensdiagram:DeleteCourse Håndteres automatisk i moderne sprog 07-04-2017 Softwarekonstruktion 6

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

Syntaks for kombineret fragmenter og operatorer 07-04-2017 Softwarekonstruktion 6

Kollaborationsdiagram med forgreninger 07-04-2017 Softwarekonstruktion 6

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 07-04-2017 Softwarekonstruktion 6

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

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 07-04-2017 Softwarekonstruktion 6

Analyseklassediagram for AddCourse og DeleteCourse 07-04-2017 Softwarekonstruktion 6

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. 07-04-2017 Softwarekonstruktion 6

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!! 07-04-2017 Softwarekonstruktion 6

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 07-04-2017 Softwarekonstruktion 6

Fra use cases til interaktionsdiagram 07-04-2017 Softwarekonstruktion 6

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 07-04-2017 Softwarekonstruktion 6