Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

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

Lignende præsentationer


Præsentationer af emnet: "17.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Implementering Principper, teknikker og vurdering Kapitel 17."— Præsentationens transcript:

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

2 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

3 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.

4 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 1010155-2321Jens AndersenSøndergade 6 2101289-7566Oda NielsenAlgade 99 1251060967-2390Pia SchrøderBispensgade 27

5 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 1010155-2321Jens AndersenSøndergade 6 2101289-7566Oda NielsenAlgade 99 1251060967-2390Pia SchrøderBispensgade 27 kunde-IDCPR-nrnavnadresse 1010155-2321Jens AndersenSøndergade 6 2101289-7566Oda NielsenAlgade 99 kunde-IDCPR-nrnavnadresse 1251060967-2390Pia SchrøderBispensgade 27 Horisontal Vertikal kunde-IDnavn 1Jens Andersen 2Oda Nielsen 1251Pia Schrøder kunde-IDCPR-nr 1010155-2321 2101289-7566 1251060967-2390

6 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.

7 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

8 17.8 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Generalisering (1) konto-IDkonto-nrsidste-udtogkontotype 1615-6789280295checkkonto 2931-1453311294lån 256112-7290120395checkkonto konto-IDrentesatssidste-hæfte 10,1100395 2560,5221294 Konto konto-IDhovedstolafdragafdragsdato 225000250030 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

9 17.9 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Generalisering (2) Checkkonto konto-IDkonto-nrsidste-udtogrentesatssidste-hæfte 1615-67892802950,1100395 256112-72901203950,5221294 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

10 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 1615-6789280295checkkonto0,1100395 2931-1453311294lån25000250030 256112-7290120395checkkonto0,5221294

11 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.

12 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.

13 17.13 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Aggregeringsstruktur: Mange-til-mange Kunde-Konto Konto Kunde kunde-IDkonto-ID 1 2 1 4 2 1 2 2 2 4 3 3 4 2 4 1251 5 1251 256 25 kunde-IDCPR-nrnavnadresse 1010155-2321Jens AndersenSøndergade 6 2101289-7566Oda NielsenAlgade 99 1251060967-2390Pia SchrøderBispensgade 27 konto-IDkonto-nrsidste-udtogkontotype 1615-6789280295checkkonto 2931-1453311294lån 256112-7290120395checkkonto Konto Saldo SidsteUdtog Kontotype Kunde CPR-nr Navn Adresse 0:m 1:m

14 17.14 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Aggregeringsstruktur: En-til-mange Konto konto-IDkonto-nrsidste-udtogkontotypekunde-ID 1615-6789280295checkkonto 2 2931-1453311294lån 2 1251112-7290120395checkkonto 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


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

Lignende præsentationer


Annoncer fra Google