Problemen die er niet zijn
|
|
|
- Pieter-Jan van Doorn
- 9 jaren geleden
- Aantal bezoeken:
Transcriptie
1 D T S E O N T W E R P Wie zegt dat relationeel en objectgeoriënteerd niet samengaan? Problemen die er niet zijn Patrick Savalle Het is niet gemakkelijk een relationele database te koppelen aan een objectgeoriënteerd ontworpen softwaresysteem. Er zijn boeken volgeschreven over deze materie. Relationeel en objectgeoriënteerd zijn volgens velen als water en vuur. Het probleem heeft inmiddels verschillende namen gekregen: de impedance-mismatch, het ORmapping-probleem. Er wordt zelfs door verschillende bedrijven gewerkt aan een nieuwe soort DMS-sen : de objectgeoriënteerde database management systems of ODMS-sen, in plaats van een relationeel systeem of RDMS. Is er wel sprake van een slecht samenspel tussen relationeel en objectgeoriënteerd? De veronderstelling dat een objectgeoriënteerde structuur niet goed samengaat met een relationele structuur is echter gebaseerd op een denkfout. eide zijn modellen van hetzelfde systeem en zijn daarom per definitie juist zeer goed te combineren. Een relationeel datamodel is gewoon een bijzondere vorm van een class-model. Het enige dat daar voor nodig is, zijn slim gekozen definities. De huidige generatie class-modellen (UML, ooch, OMT) zijn vanwege hun inconsistente definitie ongeschikt voor een goede integratie van verschillende soorten modellen. De slim gekozen definities komen uit de Synalyse-methode; het besproken class-model is dus geen UML-model, maar een Synalyse-model dat speciaal voor de gewenste integratie van class-, data- en andere modellen is opgesteld. Verder zal worden aangetoond dat objectgeoriënteerde databases onnodig zijn en dat huidige implementaties verkeerd in elkaar zitten. Om een systeem te ontwerpen moeten modellen worden gemaakt. Om een bepaald soort model te kunnen maken moet bekend zijn hoe een systeem er in het algemeen uit ziet. Een gebruikelijke manier in geval van software is het systeem te zien als een structuur van objecten: dit heet objectoriëntatie. Volgens objectmodellering is het softwaresysteem een veranderlijke verzameling van objecten. Objecten die samenwerken door elkaar berichten te sturen (berichtrelaties), die bij elkaar horen door verwijzingen naar elkaar op te slaan (aggregatie- en associatierelaties) en die elk een eigen toestand en daardoor gedrag kunnen vertonen (attribuutwaarden en methoden). Het systeem bestaat dus uit objecten. Objecten zijn eenheden van programmacode en data. Ze voeren methoden uit bij het ontvangen van berichten en slaan hun momentane toestand op in attribuutwaarden. Het is deze momentane toestand die ook af en toe moet worden opgeslagen in een database. Hiervoor is het nodig een relationeel datamodel en classmodel te combineren, omdat de database wordt beschreven door een datamodel. ehalve dat objecten elkaar berichten sturen, kunnen ze ook bij elkaar horen zonder dat ze informatie uitwisselen, zoals de piloot bij zijn vliegtuig hoort: dit zijn associatierelaties. Ze kunnen ook bij elkaar horen zoals een wiel bij een fiets hoort: dit zijn aggregatierelaties. ssociatierelaties kunnen eenvoudig worden onderscheiden van aggregatierelaties door te kijken of twee objecten op hetzelfde niveau van aggregatie bestaan of op een verschillend niveau, zoals een geheel en zijn delen (de fiets en zijn wielen). Opsommend bestaat een softwaresysteem uit de volgende elementen. Objectsysteem (instanties) Objecten - ttribuutwaarden erichtrelaties ssociatierelaties ggregatierelaties HET SOFTWRESYSTEEM HET CLSS-MODEL Het class-model is de bouwtekening van een softwaresysteem dat volgens objectgeoriënteerde werkwijze wordt ontworpen. Het toont de karakteristieke structuur van een systeem dat bestaat uit objecten. Omdat het in het leven van een softwaresysteem een komen en gaan is van objecten en objectrelaties, is het lastig de objectstructuur zelf vast te leggen. In plaats daarvan noteren we de karakteristieke structuur van het softwaresysteem: het class-model. Database Magazine - Nummer 6 - oktober
2 D T S E O N T W E R P Een class-model is opgebouwd uit classes en class-relaties. De verzameling elementen en regels waarmee een class-model kan worden opgebouwd, vormt samen een class-metamodel. Zo n metamodel is onderdeel van de methode of semantiek waarmee de software wordt ontworpen. De opbouw van het class-model kan uit de opbouw van objectmodel worden afgeleid (via typering). Een objectstructuur is een veranderlijke structuur waarvan alleen snapshots kunnen worden gemaakt. Een class-model is een onveranderlijke structuur waarin alle mogelijke relaties en toestanden van de objecten staan aangegeven. Het opbouwen van een class-model gebeurt door alle mogelijkheden die objecten hebben samen te nemen en toe te kennen aan hun classes. Objecten worden getypeerd door classes, attribuutwaarden door attributen en methoden blijven na typering gewoon methoden. Een class bestaat dus uit attributen en methoden. PIET - gewicht: int = 75 - leeftijd: int = 32 - lengte: int = 184 Fabriek rbeider FIGUUR 3: SSOCITIERELTIE Objecten sturen elkaar vaak verschillende berichten. Om dit aan te geven worden interfaces gebruikt. Een interface is de verzameling berichttypen die een object kan verzenden of ontvangen. In figuur 2 staat aangegeven dat objecten van Verzender-class twee soorten berichten kunnen sturen aan objecten van Ontvanger-class. Ook elke associatie- en aggregatierelatie waaraan een object kan deelnemen, is zichtbaar in het class-model; in figuur 3 een associatierelatie. In korte stappen is nu een class-model opgesteld door eerst te bepalen hoe we het systeem graag willen zien (als een objectstructuur) en vervolgens die opbouw te typeren tot een model (het class-model). Opsommend bestaat een class-model uit de volgende elementen: RO - gewicht: int = 86 - leeftijd: int = 58 - lengte: int = 185 PTRICK typeren MENS - gewicht: int - leeftijd: int - lengte: int Class-model (types) Classes - ttributen Interfaces / berichttypen erichtrelaties ssociatierelaties ggregatierelaties - gewicht: int = 84 - leeftijd: int = 33 - lengte: int = 188 FIGUUR 1: OPOUW CLSS-MODEL VI TYPERING VN HET OJECT- MODEL Relaties die objecten met elkaar hebben, bestaan ook tussen classes. erichtrelaties worden in een class-model dus ook aangegeven. Verderop zullen nog enkele elementen worden toegevoegd, maar dit zijn de basiselementen. Merk op dat de UML geen berichtrelatie kent in het class-model, interfaces niet goed definieert en het onderscheid tussen associatie- en aggregatierelaties anders (bijna niet) definieert. Verder bestaan er in de UML slechts links tussen objecten en is er geen verband tussen het objectmodel en het class-model, ondanks het feit dat de één het onderwerp van de ander is (zou moeten zijn). CTIEVE EN PSSIEVE ELEMENTEN Verzender 'interrface' + Operatie () + Operatie () Ontvanger FIGUUR 2: INTERFCE LS VERZMELING ERICHTTYPEN VN EEN OJECT Om gemakkelijk de samenhang tussen een class-model en een (relationeel) datamodel te kunnen zien, is het handig om binnen het class-model onderscheid te maken tussen een zogenaamd passief en een actief aspect. Elementen zijn actief als er data-uitwisseling of dataverandering plaatsvindt, terwijl elementen passief zijn als dat niet het geval is. Een berichtrelatie is actief, een methode ook. Een interface bestaat alleen als er een berichtrelatie bestaat, wat actieve elementen zijn. Zonder berichtrelaties vervalt ook de noodzaak tot interfaces. Een attribuut en een associatierelatie zijn daarentegen passief: ze wisselen geen data uit of veranderen die, net als een aggregatierelatie. Database Magazine - Nummer 6 - oktober
3 D T S E O N T W E R P De volgende indeling is nu ontstaan: Class-model ctief aspect - Interfaces - erichtrelaties Passief aspect - ttributen - ssociatierelaties - ggregatierelaties - : int - : int - : int = 1 - : int = -32 eide classes instantiëren tot hetzelfde object. - : int - : int STRCTE EN CONCRETE ELEMENTEN Een tweede opdeling die moet worden gemaakt, is de opdeling in zogenaamde concrete en abstracte elementen. bstracte elementen zijn elementen die niet zichtbaar zijn in het onderwerp van het model (het systeem) maar slechts dienen ter optimalisatie van het model zelf. Een voorbeeld is de spiegellijn in een bouwtekening: het onderwerp van de bouwtekening heeft zelf geen spiegellijnen. Een abstract element is als het ware een notatietruc. In een classmodel bestaan ook zulke elementen; generalisatierelaties bijvoorbeeld. Dit zijn abstracte elementen omdat ze in het systeem (de veranderlijke structuur van objecten) onzichtbaar zijn: aan een object is niet te zien of zijn definitie bestaat uit een enkele class of een hele hiërarchie van super- en subclasses. Figuur 4 laat dat zien. Elementen die wel zichtbaar zijn in het uiteindelijke systeem zijn concrete elementen - het zijn de concrete elementen die het onderwerp van het model vormgeven. Een class is een concreet element, het modelleert objecten van hetzelfde soort. De uiteindelijke indeling van class-modelelementen is daarmee als volgt: Class-model bstracte elementen - Generalisatierelaties - bstracte classes Concrete elementen - ctief aspect Methoden Interfaces erichtrelaties - Passief aspect ttributen ssociatierelaties ggregatierelaties HET RELTIONELE MODEL De opbouw van het class-model is nu bepaald. De volgende stap is het bepalen van de opbouw van een relationeel datamodel. Het datamodel is de bouwtekening van een database: het toont de FIGUUR 4: GENERLISTIERELTIES karakteristieke structuur van een database die bestaat uit records, precies zoals het class-model de karakteristieke structuur toont van een softwaresysteem dat bestaat uit objecten. Vanwege deze analogie en dankzij de opbouw van het Synalyse class-model, is het eenvoudig om aan te geven hoe een datamodel is opgebouwd. Een datamodel is namelijk gewoon het passieve aspect van een classmodel. Punt. Een database is daarmee ook het passieve aspect van een objectmodel. Een class zonder methoden is een recordtype ofwel een tabel. En een class-model zonder methoden, interfaces of berichtrelaties (het actieve aspect) is een datamodel ofwel een schema. Door uit Het OR-mapping-probleem is ontstaan door slechte metamodellen met onhandig gekozen definities. een class-model de passieve elementen te selecteren, ontstaat een datamodel. Of, andersom, door een datamodel te voorzien van actieve elementen, ontstaat een class-model. Voor een class-model dat ook abstracte elementen heeft (generalisatierelaties, abstracte classes), geldt dat deze eerst moeten worden verwijderd. Hoe dat moet en welke consequenties dat heeft, bespreken we zo dadelijk. Een relationeel datamodel kent daarnaast ook zogenaamde normalisatieregels. Deze regels worden gebruikt om het datamodel zo te herstructureren dat de resulterende database zo min mogelijk herhaling van attribuutwaarden bevat. Het is gebruikelijk om drie opeenvolgende normalisatieregels te gebruiken, elk voor een grotere mate van herhalingvrijheid. Het datamodel, dat ontstaat door het passieve aspect te selecteren uit een class-model, is niet altijd even herkenbaar als volwaardig datamodel, omdat datamodellen wel en class-modellen niet worden genormaliseerd. Toch is het een geldig datamodel. ovendien, omdat het datamodel onderdeel uitmaakt van het class-model, kunnen deze normalisatieregels ook worden toegepast op een class-model. De slimste manier om dat te Database Magazine - Nummer 6 - oktober
4 D T S E O N T W E R P doen is door eerst een datamodel op te stellen, dat te normaliseren en op basis daarvan het class-model op te stellen. records aanwezig zijn. Dat is alsof de timmerman de spiegellijnen en centerkruizen natuurgetrouw overneemt in de nieuwe tafel die hij aan het maken is. HET OR-MPPING PROLEEM ls een class-model en een relationeel datamodel zo gemakkelijk te combineren zijn, waar komt dan het idee vandaan dat relationeel en objectgeoriënteerd niet samengaan? Waarom zijn sommige softwareleveranciers dan zelfs bezig met het ontwikkelen van objectgeoriënteerde databases? Een deel van het probleem is dat het passieve aspect, het datamodel, niet in alle soorten classmodellen herkenbaar is. De constatering dat een datamodel een onderdeel van een class-model is, lijkt een open deur, maar ontwerpers die gebruik maken van bijvoorbeeld UML, ooch of OMT kennen helemaal geen actieve of passieve aspecten in een classmodel. Ze kennen ook geen berichtrelaties in hun class-modellen. De constatering is dus alleen triviaal voor ontwerpers die gebruik maken van een methode of semantiek die het genoemde onderscheid wel maakt. Het Synalyse-model doet dat omdat het speciaal voor dit soort unificatie en integratie is opgesteld. Het andere probleem is de manier waarop wordt omgegaan met overerving. Overerving wordt in een class-model gebruikt om een class-structuur anders (slimmer) te formuleren zonder dat de classstructuur een andere objectstructuur gaat weergeven - bijvoorbeeld om verschillende soorten objecten die onderling wel herhaling vertonen te modelleren met classes die onderling geen herhaling vertonen. Het is opnieuw een notatietruc die onzichtbaar zou moeten zijn in het systeem. Ook als twee classes onderling een generalisatierelatie hebben, hebben de objecten (of de records die daaruit kunnen worden geselecteerd) onderling nog steeds geen relatie. Figuur 5 toont dat. Negen van de tien boeken die uitleggen wat overerving in een class-model is of hoe een class-model moet worden afgebeeld op een datamodel doen dat fout. Negen van de tien objectdatabases maken dezelfde fout. De fout die wordt gemaakt is dat generalisatierelaties worden overgenomen in de database, ofwel ook tussen EEN VOOREELD Het reduceren van een (Synalyse) class-model tot een relationeel datamodel is gebaseerd op een paar eenvoudige constateringen. Een class bestaat uit attributen en methoden. Een recordtype Objectgeoriënteerde databases zijn overbodige dingen. slechts uit attributen. Daarom wordt gesteld dat recordtypes classes zonder methoden en interfaces zijn. Simplistisch, maar correct. Het extraheren van het relationele schema uit een class-model in een stappenplan: De class-methoden worden uit het class-model verwijderd (gewoon weggegumd ), classes worden hierdoor recordtypes. erichtrelaties worden uit het class-model verwijderd (gewoon weggegumd ). Interfaces worden uit het class-model verwijderd (gewoon weggegumd ), eventuele generalisatierelaties met zo n interface (polymorfie) vervallen. Dit model bevat nog wel eventueel abstracte elementen zoals generalisatierelaties. bstracte elementen hebben per definitie alleen maar betekenis binnen het gegeven model en worden daarom niet overgenomen van class-model naar datamodel. Nadat ook deze abstracte elementen zijn verwijderd (door zorgvuldige ), ontstaat een traditioneel datamodel. De laatste regel voor het extraheren van een datamodel is daarom: bstracte elementen worden zorgvuldig verwijderd middels - ttribuutp: int - X; ttribuut - Y: ttribuut + Operatie () + Operatie () - X: ttribuut - Y: ttribuut - ttribuutq: int - ttribuutp: int - ttribuutq: int - V: ttribuut + OperatieC () + OperatieD () + OperatieC () + OperatieD () - V: ttribuut FIGUUR 5: OJECTEN HEEN GEEN RELTIE, OOK LS TWEE CLSSES DIE WEL HEEN FIGUUR 6: ERICHTRELTIES EN INTERFCES Database Magazine - Nummer 6 - oktober
5 D T S E O N T W E R P - ttribuutp: int - ttribuutp: int 0..n 0..n FIGUUR 7: VOOREELD VN EEN GGREGTIERELTIE - ttribuutq: int - ttribuutp: int - ttribuutq: int - ttribuutp: int - ttribuutq: int Het model dat zo ontstaat, kan direct worden ingevoerd in de definitietaal - de DDL - van het relationele model. De volgende figuren tonen enkele class-modellen en de datamodellen die daaruit kunnen worden afgeleid. llereerst een constructie met berichtrelaties en interfaces. erichtrelaties en interfaces worden gewoon genegeerd bij de vertaling. Vervolgens een voorbeeld van een aggregatierelatie. Deze wordt zonder eisen te stellen aan de navigeerbaarheid overgenomen. Hetzelfde geldt voor associatierelaties. De volgende figuren tonen hoe generalisatierelaties moeten worden vertaald. llereerst een situatie waarin beide classes concreet (instantieerbaar) zijn. Elke instantieerbare class krijgt een eigen recordtype toegewezen. Tussen de resulterende recordtypes bestaan geen relaties. In het datamodel is de generalisatierelatie dus op geen enkele wijze zichtbaar. Dataselectie betreft het selecteren van het aspect data. Ten slotte een situatie waarin één van beide classes abstract (niet instantieerbaar) is. bstracte classes worden (net als andere abstracte elementen) niet overgenomen in het datamodel. FIGUUR 8: DE VERTLING VN GENERLISTIERELTIES 'interface' + OperationX () + OperationY () - ttribuutp: int - ttribuutq: int bstracte class - ttribuutp: int - ttribuutq: int FIGUUR 9: NIET INSTNTIEERRE STRCTE KLSSE - ttribuutp: int - ttribuutq: int OO-DTSES OVERODIG Relationele modellen en class-modellen zijn prima te combineren: het ene model is gewoon een aspect van het andere model. Zelfs de normalisatieregels van het relationele model zijn, met wat inzicht, bruikbaar voor een class-model. Het ontwerpen van een systeem zou kunnen gebeuren door eerst een datamodel op te stellen en dat dan later uit te breiden tot een class-model. Naar mijn mening is het hele OR-mapping probleem ontstaan door slechte metamodellen (UML, ooch, OMT) met onhandig gekozen definities, met de juiste definities bestaat het probleem helemaal niet. Objectgeoriënteerde databases zijn overbodige dingen. Een relationele database is prima te gebruiken bij objectgeoriënteerde software. Sterker nog, een RDMS sluit beter aan op OO-software dan een ODMS. Raar maar waar. Hooguit sluit de huidige generatie RDMS-en wat betreft jargon wat slecht aan op class-modellen. Vreemd is de manier waarop de meeste auteurs en producten omgaan met generalisatie of overerving. Het is het slimst om overerving te zien als een notatietruc die onzichtbaar zou moeten zijn buiten het model waarin het wordt toegepast. De meeste problemen kunnen trouwens worden vermeden door class-modellen gewoon op te stellen zonder generalisatie. Zulke modellen zijn absoluut niet slechter dan modellen die er wel gebruik van maken, maar dat is een artikel op zich waard. Patrick Savalle is een van de ontwerpers van de Synalyse-methode en momenteel werkzaam als consultant bij Turnkiek Technical Systems (een onderdeel van Imtech ICT). Zie voor meer informatie. Database Magazine - Nummer 6 - oktober
Unified Modeling Language
Unified Modeling Language Een introductie voor leden van de expertgroep Informatiemodellen Harmen Mantel, Ordina ICT Management & Consultancy, werkzaam voor KING DOELSTELLING PRESENTATIE GEMEENSCHAPPELIJKE
DATAMODELLERING ARCHIMATE DATAMODELLERING
DATAMODELLERING ARCHIMATE DATAMODELLERING Inleiding In dit whitepaper wordt de datamodelleervorm ArchiMate datamodellering beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen.
DATAMODELLERING BEGRIPPENBOOM
DATAMODELLERING BEGRIPPENBOOM Inleiding In dit whitepaper wordt de datamodelleervorm begrippenboom inclusief de begrippenlijst beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen.
Tools voor canonieke datamodellering Bert Dingemans
Tools voor canonieke datamodellering Tools voor canonieke datamodellering Bert Dingemans Abstract Canonieke modellen worden al snel omvangrijk en complex te beheren. Dit whitepaper beschrijft een werkwijze
Canonieke Data Modellering op basis van ArchiMate. Canonieke Data Modellering op basis van Archimate Bert Dingemans
Canonieke Data Modellering op basis van ArchiMate Canonieke Data Modellering op basis van Archimate Bert Dingemans Abstract Modelleren op basis van de open standard ArchiMate is een goed uitgangspunt voor
DATAMODELLERING ARCHIMATE DATA- & APPLICATIEMODELLERING
DATAMODELLERING ARCHIMATE DATA- & APPLICATIEMODELLERING Inleiding In dit whitepaper wordt de datamodelleervorm ArchiMate data- & applicatiemodellering beschreven. Deze modelleervorm staat in verhouding
Ontwerp van Informatiesystemen
1ste bach HIB Ontwerp van Informatiesystemen Prof. Verelst Q www.quickprinter.be uickprinter Koningstraat 13 2000 Antwerpen 112 2,50 Online samenvattingen kopen via www.quickprintershop.be Table of Contents
DATAMODELLERING BASIS UML KLASSEMODEL
DATAMODELLERING BASIS UML KLASSEMODEL Inleiding In dit whitepaper wordt de datamodelleervorm basis UML klassemodel beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen.
voorbeeldexamen Object Oriëntatie Foundation (OOF.NL) editie juli 2010 inhoud inleiding 3 voorbeeldexamen 4 antwoordindicatie 11 evaluatie 22
voorbeeldexamen Object Oriëntatie Foundation (OOF.NL) editie juli 2010 inhoud inleiding 3 voorbeeldexamen 4 antwoordindicatie 11 evaluatie 22 bijlage bijlagenset A711 EXIN Hét exameninstituut voor ICT
Technisch Ontwerp Ontwerp template
Auteur Dennis Steenwijk Versie Datum Status 1 Inleiding 2 Versie geschiedenis Versie Datum Status Naam Omschrijving 03-10-08 Dennis Steenwijk versie 2 van 9 Versie geschiedenis 3 Distributie Naam Functie
case: ocl-expressies
Hoofdstuk 7 case: ocl-expressies In dit hoofdstuk worden de expressies ontwikkeld bij het domein-klassediagram van de case zoals dat in hoofdstuk 5 ontwikkeld is. Daarna worden de resterende stappen uit
In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen.
Leerlijn programmeren In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen. Deze leerlijn is opgebouwd aan de
Programmeren in Java 3
26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class
Informatie & Databases
Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat
Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.
Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze
DATAMODELLERING DATA MAPPING MODEL
DATAMODELLERING DATA MAPPING MODEL Inleiding In dit whitepaper wordt de datamodelleervorm data mapping model beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil
Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling
Databases SQL Leerjaar 1/2 ICT-Academie Niveau 4 Applicatie ontwikkeling Auteur: R. Meijerink Datum: Januari 2013 0. Inleiding Databases / SQL In deze lessen wordt je geleerd databases te bouwen in SQL-code.
DATAMODELLERING GEAVANCEERD UML KLASSEMODEL
DATAMODELLERING GEAVANCEERD UML KLASSEMODEL Inleiding In dit whitepaper wordt de datamodelleervorm geavanceerd UML klassemodel beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen.
Technisch Ontwerp W e b s i t e W O S I
Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept
Tentamen SPM1120 Analyse van bedrijfssystemen 18 Januari 2011, 9:00-12:00
Tentamen SPM20 Analyse van bedrijfssystemen 8 Januari 20, 9:00-2:00 Bij de meerkeuzevragen, vul de antwoorden in op het schrapformulier. Vul daarop behalve je naam ook je studienummer in (zowel in cijfers
Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1
Workshop 3x Analytisch vermogen Huiswerk Lestijden 10:00 12:30 Pauze 10:15 10:30 Deze les: Hiëarchische database Relationele database ODBMS Normaliseer stappen Hiëarchische database Elk record in een database
0.1 Verdieping BAG Bevragen. versie 0.1. Datum. 1 juli Document versie. 0.1 ConceptICT Services Keten RZDirectie IT
0.1 Verdieping BAG Bevragen versie 0.1 Datum 1 juli 2016 Document versie 0.1 ConceptICT Services Keten RZDirectie IT Versiehistorie Versie datum Omschrijving 0.1 01-07-2016 Initiële versie. Versie 0.1
Dataconversie met Oracle Spatial
Realworld klantendag 19 september 2013 Voorstellen 1 2 Computer Science & Engineering (TU/e) 3 Realworld Systems 4 Datamigraties Alliander Stedin Agenda 1 Architectuur Inleiding Ontwerp migratie 2 Rapportage
Application interface. service. Application function / interaction
Les 5 Het belangrijkste structurele concept in de applicatielaag is de applicatiecomponent. Dit concept wordt gebruikt om elke structurele entiteit in de applicatielaag te modelleren: softwarecomponenten
Databases - Inleiding
Databases Databases - Inleiding Een database is een verzameling van een aantal gegevens over een bepaald onderwerp: een ledenbestand van een vereniging, een forum, login gegevens. In een database worden
NHibernate als ORM oplossing
NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een
Juliana van Stolberglaan 3 2595 CA Den Haag Postbus 93144 2509 AC Den Haag www.agentschapnl.nl. [Handleiding Generieke interface Energielabels.
Juliana van Stolberglaan 3 2595 CA Den Haag Postbus 93144 2509 AC Den Haag www.agentschapnl.nl Handleiding Generieke interface Energielabels Documentnaam [Handleiding Generieke interface Energielabels.doc]
DATAMODELLERING XML SCHEMA DEFINITIONS
DATAMODELLERING XML SCHEMA DEFINITIONS Inleiding In dit whitepaper wordt de datamodelleervorm XML Schema Definition (XSD) beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen.
3.1 Opsomming data type
Deel I Hoofdstuk 3: Klasse Model - gevorderd 2005 Prof Dr. O. De Troyer Klasse Model - gevorderd pag. 1 3.1 Opsomming data type Opsomming (enumeration) data type Data type waarvan de verzameling waarden
DATAMODELLERING ER DIAGRAM
DATAMODELLERING ER DIAGRAM Inleiding In dit whitepaper wordt de datamodelleervorm ER diagram beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil je een beeld krijgen
UML is een visuele taal om processen, software en systemen te kunnen modeleren.
Vragen inleinding UML 1. Wat is UML? UML is een visuele taal om processen, software en systemen te kunnen modeleren. 2. Waar bestaat UML uit? Notaties(zijn symbolen, commentaar en waarden etc.) en diagrammen(grafische
TROWA. Visie en scope Informatiemodel Waterschapsverordening. Datum : : 2.0, definitief
TROWA Visie en scope Informatiemodel Waterschapsverordening Datum : 0-02-209 Versie : 2.0, definitief Documenthistorie Datum Versie Beschrijving 29--208 0. Initiële versie 07-2-208 0.2 Aangevulde/gecorrigeerde
Databases en SQL Foundation (DBSQLF.NL)
Databases en SQL Foundation (DBSQLF.NL) EXIN Hét exameninstituut voor ICT ers Janssoenborch - Hoog Catharijne Godebaldkwartier 365 3511 DT Utrecht Postbus 19147 3501 DC Utrecht Nederland T +31 30 234 48
Les 10 : Aanmaken van een database (deel2).
Les 10 : Aanmaken van een database (deel2). Wat is een database? Een centrale opslagruimte voor gegevens. Alle informatie wordt centraal opgeslagen en kan door iedereen geraadpleegd worden. Voordelen van
DATAMODELLERING TOEPASSEN DATA ANALYTICS
DATAMODELLERING TOEPASSEN DATA ANALYTICS Inleiding In dit whitepaper wordt een toepassingsgebied beschreven voor datamodellering. Een toepassing is een werkveld op het vlak van architectuur of modellering
Dat we scherpe en compacte schema s kunnen maken voor berichten in koppelvlakken, en die ook kunnen beheren. Dat we op een consistente manier
1 We willen vanuit KING StUF koppelvlakken ontwikkelen vanuit een modelgedreven aanpak. Waar we in het verleden nogal eens de standaarden maakten en beoordeelden vanuit xml-schemabestanden, willen we dat
Generieke interface energielabels
Handleiding Generieke interface energielabels In opdracht van het ministerie van Binnenlandse Zaken en Koninkrijksrelaties (Directie Woningbouw) 1 Inleiding 3 1.1 Doel 3 1.2 Korte omschrijving 3 1.3 Indeling
Database Structuur via menus
Data Dictionary Database Structuur via menus Na het normaliseren en maken van een data dictionary kunnen de tabellen worden ingevoerd in de database. In deze les wordt getoond hoe dit in Access gebeurt.
BIM Laatste BIM ontwikkelingen efficiency, kwaliteit en euro s. A.M. Slockers Admea / Smits van Burgst
BIM Laatste BIM ontwikkelingen efficiency, kwaliteit en euro s A.M. Slockers Admea / Smits van Burgst Voorstellen Anton Slockers Directeur Admea / Smits van Burgst Admea is onderdeel van de Smits van Burgst
Oplossingen voor het testen van objectgeoriënteerde software
Oplossingen voor het testen van objectgeoriënteerde software Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 14 maart 2013 HOM/FHTeL Oplossingen voor het testen
EEN INLEIDING IN DE UNIFIED MODELING LANGUAGE
Een inleiding in de Unified Modeling Language 51 III EEN INLEIDING IN DE UNIFIED MODELING LANGUAGE Als een aannemer een huis bouwt, dan ontwerpt hij dat huis niet terwijl hij het bouwt. Hij bouwt het huis
Programmeren met databanken volgens het lagenmodel in C#
Programmeren met databanken volgens het lagenmodel in C# met Visual Studio en MySQL HA-2267-02 Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2016 Guimardstraat 1, 1040 Brussel Guimardstraat
Toegepaste notatiewijzen DLA software
Toegepaste notatiewijzen DLA software Bert Dingemans [email protected] Inleiding In de DLA Software wordt gebruik gemaakt van een aantal notatiewijzen voor het opstellen van een object- en procesmodel.
Object Oriëntatie Foundation (OOF.NL)
Object Oriëntatie Foundation (OOF.NL) EXIN Hét exameninstituut voor ICT ers Janssoenborch - Hoog Catharijne Godebaldkwartier 365 3511 DT Utrecht Postbus 19147 3501 DC Utrecht Nederland T +31 30 234 48
Waarom Access. In de onderstaande afbeelding ziet u een begin van de lijst met cliëntgegevens van de diëtiste.
Waarom Access Voor velen is het verschijnsel van de relationele database een brug te ver. Voor het opslaan en analyseren van gegevens neemt men zijn toevlucht tot Excel. Excel heeft inderdaad een uitgebreid
Koppeling met een database
PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt
Introductie ArchiMate
Introductie ArchiMate NAF Insight De Meern, 8 maart 2012 Egon Willemsz, enterprise architect UWV Programma Waarom ArchiMate? Praktijkvoorbeelden Samenvatting concepten Van start met ArchiMate Tot besluit
Vakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen [email protected] en [email protected]
Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2
Modelleren Werkelijkheid Modelleren Modeleren Waarvan maken we een model?!analyse " Maak een model van de te automatiseren werkelijkheid of van het op te lossen probleem! Domeinkennis = structuur! Functionele
ER-modeling. Datamodellering Wat is ER-modeling?
ER-modeling Datamodellering 2008 1 Wat is ER-modeling? ER-modelleren: top-down benadering bedacht door P. Chen 1976, paper in ACM Transactions on Database Systems Codd (Relationeel Model) aanvankelijk
ER-modeling. Wat is ER-modeling? ERD & relationeel model. ER-benadering DMO Datamodellering 2008
ER-modeling Datamodellering 2008 1 Wat is ER-modeling? ER-modelleren: top-down benadering bedacht door P. Chen 1976, paper in ACM Transactions on Database Systems Codd (Relationeel Model) aanvankelijk
Metamodel M(etamodel) I(nformatiemodellen) G(emeenten)
Metamodel M(etamodel) I(nformatiemodellen) G(emeenten) (metamodel voor informatiemodellen KING en Kadaster + extensie) Het metamodel MIG (Metamodel Informatiemodellen Gemeenten) is het metamodel voor de
1 Introductie. Wat is een blog? Waarom is bloggen zo populair?
1 Introductie Wat is een blog? Nu je dit boek in je handen hebt neem ik aan dat je al eens van WordPress gehoord hebt. WordPress is een CMS dat staat voor Content Management System dat oorspronkelijk gemaakt
Deel I Hoofdstuk 4: Modelleren van Toestand
Deel I Hoofdstuk 4: Modelleren van Toestand 2005 Prof Dr. O. De Troyer Toestandsmodel pag. 1 Berichten of boodschappen OO is gebaseerd op hoe de reële wereld werkt 2005 Prof. Dr. O. De Troyer Toestandsmodel
VAN USE CASE NAAR TEST CASE ORDINA SMART COMPETENCE CENTER
VAN USE CASE NAAR TEST CASE ORDINA SMART COMPETENCE CENTER Sander Hoogendoorn Versie 1.0 15 april 2002 Documentbeheer Versie Datum Auteur Omschrijving 0.1 15 April 2002 Sander Hoogendoorn 0.2 15 april
Programmeren met databanken volgens het lagenmodel in C#
Programmeren met databanken volgens het lagenmodel in C# met Visual Studio en MySQL HA-2267-04 Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2017 Guimardstraat 1, 1040 Brussel Guimardstraat
StUF ondersteunt historie op attribuuten groepsniveau!
StUF ondersteunt historie op attribuuten groepsniveau! Inleiding Op het StUF Forum is er een discussie gaande over de vraag of in de StUF-standaard historie op objectof op attribuutniveau is gedefinieerd,
IMBOR bij gemeente Amsterdam. Implementatie en toepassing van een datamodel
IMBOR bij gemeente Amsterdam Implementatie en toepassing van een datamodel 3 oktober 2017 Organisatie onderdelen Amsterdam, tot 2015: gefragmenteerde beheerapplicaties 2 Meer dan 10 beheerorganisaties
Bedrijfsproces-Architectuur
Bedrijfsproces-Architectuur Methoden en Richtlijnen in de Praktijk HET NUT VAN PROCES-ARCHITECTUUR Bij het in kaart brengen van de processen in een organisatie, speelt een groot aantal vragen. Het zijn
Ontwikkelaars van BIR Open BIM Standaarden en softwareleveranciers
Memo AAN Ontwikkelaars van BIR Open BIM Standaarden en softwareleveranciers VAN Bouw Informatie Raad (contactpersoon D. Spekkink, [email protected]) DATUM 1 januari 2016 ONDERWERP BIR Kaders voor
EEN BIM ALS AANBESTEDINGSDOCUMENT
EEN ALS AANBESTEDINGSDOCUMENT met 1/ 38 P5 presentatie EEN ALS AANBESTEDINGSDOCUMENT met van kosten en kwaliteit met 2/ 38 EEN ALS AANBESTEDINGSDOCUMENT Aanleiding met 3/38 EEN ALS AANBESTEDINGSDOCUMENT
H 1 Databases en databasesystemen (10 punten) a. Veel van de huidige databases zijn gebaseerd op een drie-laags systeemarchitectuur:
Tentamen Engineering 2007/2008 Opleiding: Embedded Systems Opl.variant: vt Groep/Klas: T Engineering Volledige vaknaam: Databases in Dag en Datum: woensdag, Tijd: 18.1-18.4 Technische Automatisering Vakcode:
Onderzoeksplan van de NCG subcommissie Ruimtelijke Basisgegevens. Nederlandse Commissie voor
Onderzoeksplan van de NCG subcommissie Ruimtelijke Basisgegevens Luc Heres, George Vosselman Nederlandse Commissie voor Geodesie De NCG is het Nederlandse platform van wetenschappers uit de geodesie en
DATAMODELLERING CRUD MATRIX
DATAMODELLERING CRUD MATRIX Inleiding In dit whitepaper wordt de datamodelleervorm CRUD Matrix beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil je een beeld
21st Century Skills - Leerdoelen van de puzzels. X2 Computational thinking - 1. Probleem (her)formuleren
21st Century Skills - Leerdoelen van de puzzels Puzzel Vaardigheden Onderwijsdoelen Aanbodsdoelen Ruimte X X0 Informatievaardigheden - 4. Verwerken van X1 Informatievaardigheden (en geletterdheid) - 2.
Microsoft Excel. It s all about Excel - VBA
X Microsoft Excel Stap in de wereld van Visual Basic for Applications (VBA) binnen het Microsoft Office programma Excel. Leer hoe deze programmeertaal precies in elkaar zit en hoe u deze in de dagelijkse
Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.
Objectgeoriënteerd PHP (versie 5) Kennisvereisten: Ervaring met programmeren in PHP met MySQL Je weet wat een class of klasse is Je weet wat een instantie van een klasse (een object) is Je weet wat een
case: toestandsdiagrammen
Hoofdstuk 13 case: toestandsdiagrammen In dit hoofdstuk wordt het maken van de eerste versie van de toestandsdiagrammen voor het boodschappensysteem van Hans en Jacqueline uitgewerkt. 13.1 Vind klassen
Handleiding ZorgMail Secure Viewer
Handleiding ZorgMail Secure e-mail Viewer Voor ontvangers van Secure e-mail VANAD Enovation is een handelsnaam van ENOVATION B.V. Alle rechten voorbehouden. Niets uit deze uitgave mag worden openbaar gemaakt
Unified Modeling Language
Unified Modeling Language Een overzicht Danny Greefhorst Matthijs Maat 19 december 1997 Copyright 1997 Software Engineering Research Centre All rights reserved. Software Engineering Research Centre Stichting
Bijlage 1 bevat een overzicht van het domeinmodel van metadata in de HortiCube. In het model zijn de volgende deelgebieden te onderscheiden:
Domeinmodel van de metadata in de HortiCube Versie 6, 23 juni 2016 Inleiding De HortiCube levert via gestandaardiseerde interfaces gestandaardiseerde data aan applicaties. De functionaliteit van de HortiCube
Domeinmodellen en klassendiagrammen
Overview Architectuur Deployment-diagram Software-architectuur 1 Architectuur Deployment-diagram Software-architectuur 2 3 Architectuur Architectuur Deployment-diagram Software-architectuur Webapplicatie
HANDLEIDING ZORGMAIL SECURE VIEWER
HANDLEIDING ZORGMAIL SECURE E-MAIL VIEWER Voor ontvangers van Secure e-mail Referentienummer / Versie 06-06-2019 / 2.4 Enovation Contact +31 (0)10 288 16 00 [email protected] www.enovationgroup.com/nl
Een inleiding in de Unified Modeling Language 79
Een inleiding in de Unified Modeling Language 79 2. Het objectdiagram Soms hebben we behoefte om in de plaats van een klasse een instantie van deze klasse weer te geven. Figuur 3.22. toont als voorbeeld
Beoordelingscriteria scriptie Nemas HRM
Beoordelingscriteria scriptie Nemas HRM Instructie Dit document hoort bij het beoordelingsformulier. Op het beoordelingsformulier kan de score per criterium worden ingevuld. Elk criterium kan op vijf niveaus
Verschillende softwaresystemen
Verschillende softwaresystemen 4orange, 2016 Hogehilweg 24 1101 CD Amsterdam Zuidoost www.4orange.nl 2 Verschillende software systemen CRM, Leadmanagement CRM Lead management tools Microsoft Dynamics CRM,
Plug and Play in de machinebouw. Zelf configurerende machines
Plug and Play in de machinebouw Zelf configurerende machines Kort voorstellen IMS ontwikkelt hightech productielijnen 80 professionals Productielijnen voor hoog volume samengestelde producten Uniek, schaalbaar
Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces
Software Processen Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1 Het software proces Een gestructureerd set van activiteiten nodig om een software systeem te ontwikkelen Specificatie;
Form follows function -Louis Henry Sullivan
www.grundsatzlich-it.nl Form follows function -Louis Henry Sullivan Datawarehouse: vorm en functie Ronald Kunenborg licentie: Datawarehouse: vorm en functie Een data warehouse komt voort uit pijn Die pijn
Bestanden uitwisselen via OMO-Transfer
Bestanden uitwisselen via OMO-Transfer Beschrijving van de OMO-Transfer applicatie Deze applicatie is ontwikkeld om binnen de OMO-organisatie op een veilige en verantwoorde manier uitsluitend zakelijk
Hoofdstuk 26: Modelleren in Excel
Hoofdstuk 26: Modelleren in Excel 26.0 Inleiding In dit hoofdstuk leer je een aantal technieken die je kunnen helpen bij het voorbereiden van bedrijfsmodellen in Excel (zie hoofdstuk 25 voor wat bedoeld
Cursus Access voor Beginners Hoofdstuk 2
Cursus Access voor Beginners Hoofdstuk 2 Handleiding van Auteur: OctaFisH April 2011 handleiding: Cursus Access voor Beginners Hoofdstuk 2 Cursus Access voor Beginners Hoofdstuk 2 Auteur: OctaFisH In deze
Data Vault master class. BI Retail Community
Data Vault master class BI Retail Community 9 november 2010 Agenda 15.30-16.00 Ontvangst 16.00-17.30 Mini Masterclass Data Vault 17.30-18.30 Afsluiting en borrel 2 Update BI Retail Community Update BI
Entiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto.
Relationele databases SqlServer en Oracle zijn relationele client server databases. De verwerking van de opdrachten vindt plaats op de server. Access is een relationele pc database. De verwerking van de
1. Welke diagrammen beschrijven het dynamisch gedrag van een applicatie?
1. Welke diagrammen beschrijven het dynamisch gedrag van een applicatie? -Use case-diagram -Use case-beschrijving -Activity diagram -Sequentie diagram 2. Welke diagrammen beschrijven de structuur van de
Java. Basissyllabus. Egon Pas
Java Basissyllabus Egon Pas 2011 BeanPole bvba Gasmeterlaan 92-9000 Gent BTW BE 472.902.516 Tel: + 32 9 224 42 17 Fax: + 32 9 223 62 88 www.beanpole.be [email protected] 1 Programmeren 1.1 Hoe werkt een
Checklist basisontwerp SDM II
Organisatie SYSQA B.V. Pagina 1 van 5 Checklist basisontwerp SDM II Documentatie. Zijn de uitgangspunten voor het basisontwerp Is een plan van aanpak Zijn er wijzigingen op het Software Quality Assurance
Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.
Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort
Abstraheren van modellen
Abstraheren van modellen Geert Delanote 7 maart 2005 [email protected] Software Development Methodology 1 Inhoudstafel Motivatie Denkpistes Software Development Methodology 2 Motivatie Verslag
HANDLEIDING. LogMeIn Free host software version 4.0.0.982
HANDLEIDING LogMeIn Free host software version 4.0.0.982 september 2011 Inhoudsopgave Inleiding... 3 Over LogMeIn Free... 4 Stappenplan... 4 Stap 1 - Een LogMeIn-account aanmaken... 5 Stap 2 - C3LO-computers
