17.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Implementering Principper, teknikker og vurdering Kapitel 17.

Slides:



Advertisements
Lignende præsentationer
Mapning af 1 til mange forbindelser
Advertisements

Notation Oversigt Kapitel 18.
Mapning af klasser til relationer
2009NOEA/IT - Databaser/arkitektur1 Databaser Introduktion - Arkitektur Introduktion DBMS-arkitektur Datamodeller.
06.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Brug Oversigt, principper og teknikker Kapitel 6.
Systemvalg Oversigt og teknikker Kapitel 2.
Formularer (Access, del 3)
Softwarekonstruktion
3. Funktionelle afhængigheder og normalisering
07 – Kort om OO Introduktion.
Kajs Biler Analyseresultater.
Felter og nøgle-felter (databaser, del 6)
1 Intro nedarvning (eng.: inheritance) Nedarvningshierarkier Intro polymorfisme (eng.: polymorphism) Abstract / virtual / override / sealed Intro interfaces.
ER-diagrammer (databaser, del 4)
Informationsteknologi B-A, HHX, 2005,
Objektorienteret programmering
NOEA/IT - FEN - Databaser/TabelDesign 1 Tabeldesign Design af relationsdatabaser Normalisering.
Mapning af 1 til mange forbindelser
Larman, 2. udgave kap. 11 Grundlæggende Systemudvikling zHvad er systemudvikling ? zHvad er UML ? zHvad er analyse og design ? zHvad er UP ?
Introduktion til Access (Access, del 1)
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer
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.
10.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Komponenter Oversigt, principper og teknikker Kapitel 10.
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.
2:Relations modellering og design regler.
12.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Modelkomponent Oversigt, principper og teknikker Kapitel 12.
11.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Processer Oversigt, principper og teknikker Kapitel 11.
Oversigt, principper og teknikker
13.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Funktionskomponent Oversigt, principper og teknikker Kapitel 13.
Dagens gang Sidste uges opgaver Databaser Opgaver til næste gang
NOEA/IT FEN - Databaser/modellering 1 Tabeldesign Omformning af E/R-modellen til relationelle skemaer.
Dagens gang Sidste uges opgaver Design af grænseflader
05.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Adfærd Oversigt, principper og teknikker Kapitel 5.
Den relationelle model
2009NOEA/IT - Databasedesign1 Agenda Datamodellering Databasedesign Normalisering.
09.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Kriterier Oversigt, principper og teknikker Kapitel 9.
16.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Dokumentation Oversigt og principper Kapitel 16.
1 Dagens gang Sidste uges opgaver OA+D: Adfærd Nye opgaver.
2009NOEA/IT - Databaser/arkitektur1 Den relationelle model En teoretisk model for databaser Hviler på et sundt teoretisk grundlag Omfatter: Datastruktur.
Fundamentale datastrukturer
Eksempel på realisering af domænemodel
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
08.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Grænseflader Oversigt, principper og teknikker Kapitel 8.
Objekter og klasser Rasmus D. Lehrmann DM
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
ER-modellering1 Analyse af data og sammenhæng mellem data.
1 Kursusafslutning. 2 Plan Opgaveseminar Kursusevaluering.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
3. Objekt Orientering og Relations Databaser
NOEA/IT FEN - Databaser/modellering 1 Datamodellering Den udvidede (enhanced) E/R-model (EE/R- modellen) Begreber Diagrammering Omformning til.
Oprettelse af tabeller (Access, del 2)
OOD  Relationel database: Klasser Hver klasse afbildes over i en tabel. Klassens navn bruges som navn på tabellen. Hver af klassens attributter afbildes.
2009Softwarekonstruktion / DB-design 11 Databasedesign 1 Fra begrebsmæssig model til relationel model.
Database.
E/R-diagrammering 7. Semester.
Den relationelle model
Objektorienteret programmering – UML2Java.  Jens Bennedsen 2001Multimedie programmering8.2 Indhold Klasser og associering til enkelt objekt –Programmering.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
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.
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
Mål M å let med kurset er at den studerende l æ rer grundlaget for systematisk konstruktion af simple programmer og herigennem opn å r kendskab til hvorledes.
01.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Objektorienteret Analyse & Design (OOA&D) Grundbegreber, principper og metode Kapitel 1.
Præsentationens transcript:

17.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Implementering Principper, teknikker og vurdering Kapitel 17

17.2 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Implementeringsstrategier Objektorienteret miljø OOD i Relationel database –Klasser –Strukturer –Operationer –Funktioner –Brugergrænseflade Princip Implementationen skal overholde disciplinen fra designet Princip Implementationen skal overholde disciplinen fra designet

17.3 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Objektorienteret miljø Der er en enkel og direkte vej fra design til implementation, idet de grundlæggende begreber som klasse, objekt, attribut og operation kan udtrykkes i implementationsværktøjet. Der tilbydes typisk indkapsling og nedarvning i det omfang, som forudsættes af det objektorienterede design. Funktioner, objektstrukturer, komponenter og processer skal typisk omformes og formuleres i termer af platformnære begreber. Klassebiblioteker spiller en afgørende rolle for implementation af grænsefladekomponenterne. Persistente objekter vil ofte kræve en speciel og særskilt håndtering i form af eksplicit lagring af objekter i en database.

17.4 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © OOD  Relationel database: Klasser Hver klasse afbildes over i en tabel. Klassens navn bruges som navn på tabellen. Hver af klassens attributter afbildes over i en søjle i tabellen. Tabellen udbygges med en søjle, som indeholder en entydig reference til ethvert objekt. For hver attribut overvejes endvidere –domæne (type) –muligheden for tomme værdier –relevante nøgler –hyppighed i anvendelsen Overvej mulige opdelinger af tabellen. Kunde CPR-nr Navn Adresse kunde-IDCPR-nrnavnadresse Jens AndersenSøndergade Oda NielsenAlgade Pia SchrøderBispensgade 27

17.5 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © OOD  Relationel database: Opdeling af tabeller Vertikal: –Klassen har mange attributter, som anvendes med forskellig hyppighed og til forskellige formål. Horisontal: –Klassen har mange objekter, som anvendes med forskellig hyppighed. Begge former for opdeling forudsætter, at applikationerne kan afgøre, hvilken tabel, der skal anvendes. kunde-IDCPR-nrnavnadresse Jens AndersenSøndergade Oda NielsenAlgade Pia SchrøderBispensgade 27 kunde-IDCPR-nrnavnadresse Jens AndersenSøndergade Oda NielsenAlgade 99 kunde-IDCPR-nrnavnadresse Pia SchrøderBispensgade 27 Horisontal Vertikal kunde-IDnavn 1Jens Andersen 2Oda Nielsen 1251Pia Schrøder kunde-IDCPR-nr

17.6 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © OOD  Relationel database: Strukturer Afbildning af strukturer giver nye attributter, og i nogle tilfælde også nye tabeller. Afbildningen vælges, så den fastholder så meget af objektmodellens semantik, som muligt. For hver struktur er der flere muligheder. Valget mellem disse afhænger blandt andet af effektivitet i udførelsen af funktioner.

17.7 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Klassestrukturer: Generalisering og klynger Generalisering: tre alternativer 1.Hver klasse afbildes i en tabel. De generelle og specielle dele af et objekt bindes sammen med nøgler. 2.Hver specialiseringsklasse afbildes i en tabel, som også indeholder generaliseringsklassens attributter. 3.Generaliseringsklassen afbildes i en tabel, som også indeholder alle specialiseringsklassernes attributter. Klynger Implementeres som aggregering. Konto KontoNr SidsteUdtog Checkkonto Rentesats SidsteHæfte Lån Hovedstol Afdrag Afdragsdato

17.8 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Generalisering (1) konto-IDkonto-nrsidste-udtogkontotype checkkonto lån checkkonto konto-IDrentesatssidste-hæfte 10, , Konto konto-IDhovedstolafdragafdragsdato CheckkontoLån Begrebsmæssig klar. Enkel og overskuelig. Let at ændre. Besværligt at tilgå objekter. Konto KontoNr SidsteUdtog Checkkonto Rentesats SidsteHæfte Lån Hovedstol Afdrag Afdragsdato

17.9 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Generalisering (2) Checkkonto konto-IDkonto-nrsidste-udtogrentesatssidste-hæfte , , Ingen tabel for generaliseringsklassen. Enkel tilgang, når kontotypen kendes. Ændringer i generaliseringsklassen kræver rettelse i alle specialiseringsklasser. Bedst når generaliseringsklassen har få attributter. Konto KontoNr SidsteUdtog Checkkonto Rentesats SidsteHæfte Lån Hovedstol Afdrag Afdragsdato

17.10 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Generalisering (3) Konto Ingen tabeller for specialiseringsklasserne. Enkel tilgang. Bedst når generaliseringsklassen har mange attributter. konto-IDkonto-nrsidste-udtogkontotyperentesatssidste-hæftehovedstolafdragafdragsdato checkkonto0, lån checkkonto0,

17.11 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Generalisering: Multipel nedarvning 1.En klasse nedarver fra to eller flere generaliseringsklasser, som ikke har en fælles generaliseringsklasse (disjunkte). Tilgang 1 anvendes direkte. 2.En klasse nedarver fra to eller flere generaliseringsklasser, som har en fælles generaliseringsklasse (overlappende). Tilgang 1 anvendes, idet den kombineres med en tabel, som viser de konkrete relationer mellem generaliserings- og specialiseringsklasser.

17.12 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Objektstrukturer: Aggregering og associering Aggregeringsstruktur De indgående klasser bliver til tabeller. Tabellerne udbygges med nøgle-attributter. Strukturen kan afbildes over i en selvstændig tabel. Oprettelse og nedlæggelse af objekter kræver specielle overvejelser: –skal delobjekter oprettes sammen med helhedsobjektet? –skal delobjekter nedlægges sammen med helhedsobjektet? Associeringsstruktur Implementeres som aggregeringsstruktur. Oprettelse og nedlæggelse af de indgående objekter sker normalt uafhængigt.

17.13 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Aggregeringsstruktur: Mange-til-mange Kunde-Konto Konto Kunde kunde-IDkonto-ID kunde-IDCPR-nrnavnadresse Jens AndersenSøndergade Oda NielsenAlgade Pia SchrøderBispensgade 27 konto-IDkonto-nrsidste-udtogkontotype checkkonto lån checkkonto Konto Saldo SidsteUdtog Kontotype Kunde CPR-nr Navn Adresse 0:m 1:m

17.14 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Aggregeringsstruktur: En-til-mange Konto konto-IDkonto-nrsidste-udtogkontotypekunde-ID checkkonto lån checkkonto 5 To alternativer 1.Strukturen implementeres som mange-til-mange – det vil sige med en selvstændig tabel. 2.Nøglerne for den ene klasses objekter bliver til attribut- værdier (fremmednøgler) i den anden klasses objekter. Konto Saldo SidsteUdtog Kontotype Kunde CPR-nr Navn Adresse 1 1:m