Keteininformatiemodellering op basis van UML



Vergelijkbare documenten
DATAMODELLERING BASIS UML KLASSEMODEL

Canonieke Data Modellering op basis van ArchiMate. Canonieke Data Modellering op basis van Archimate Bert Dingemans

DATAMODELLERING GEAVANCEERD UML KLASSEMODEL

DATAMODELLERING BEGRIPPENBOOM

DATAMODELLERING DATA MAPPING MODEL

DATAMODELLERING XML SCHEMA DEFINITIONS

Unified Modeling Language

Aquo Informatiemodellen, Uitwisselformaten en objecten

Keteininformatiemodellering op basis van Archimate

Standaardisatie. XML Schema Definition Architectuurprincipes. Versie document 1.3. Datum: v1.3

Kenmerken van DLArchitect

Standaardisatie. XML Schema Definition. Architectuurprincipes. Versie document 1.0. Datum:

Toegepaste notatiewijzen DLA software

DATAMODELLERING ER DIAGRAM

Handleiding voor gegevensmakelaars. Aanlevering kwaliteitsgegevens bij Zorginstituut Nederland

DATAMODELLERING ARCHIMATE DATAMODELLERING

KvK-FRIS Eisen aan en toelichting op gebruik SBR rapportages (XBRL instances) voor het deponeren van jaarrekeningen gebaseerd op de NT 2011

Mogelijk onvolledige datum

Tools voor canonieke datamodellering Bert Dingemans

Archimate risico extensies modelleren

DATAMODELLERING DATA FLOW DIAGRAM

DATAMODELLERING TOEPASSEN DATA ANALYTICS

DATAMODELLERING ARCHIMATE DATA- & APPLICATIEMODELLERING

Taal van de Laan WAZZUP? Hoeveel doekoe kost die fatoe? Paul Janssen - Geonovum p.janssen@geonovum.nl

BRP-BZM Use Case Realisations Guidelines

DATAMODELLERING SIPOC

Dat we scherpe en compacte schema s kunnen maken voor berichten in koppelvlakken, en die ook kunnen beheren. Dat we op een consistente manier

Deel I Hoofdstuk 2: Het klassenmodel

RESTful API Een RESTful API is een gebaseerd op de Representational state transfer (REST) is een softwarearchitectuur.

InterActory CDModeller

RESTful API Een RESTful API is een gebaseerd op de Representational state transfer (REST) is een softwarearchitectuur.

Geadviseerd wordt om MIM in procedure te nemen voor opname op de lijst aanbevolen standaarden.

DATAMODELLERING RACI MATRIX

Wijzigingen Imkad Dit is een major release. 1. Het model is niet langer letterlijk van nen3610 afgeleid. Er zijn een GeoObject en

Metamodel M(etamodel) I(nformatiemodellen) G(emeenten)

Het handboek van Umbrello UML Modeller

1 P a g e. KKG ISO profiel. Auteurs: A. Loeffen, L. vd Brink, mei Werkversie 0.1. Pagina 1

DATAMODELLERING CRUD MATRIX

Informatiemodelleren

Praktijkrichtlijn IMBRO

Introductie OWMS 3.5

Voorstel Hygiëne SIKB0101-protocol

Informatieobjecten zijn systematisch beschreven

1 XML/CSV documentatie

DATAMODELLERING SCORE MATRIX

Ontwerprichtlijnen voor XML-Schemadefinities

TPUPT Gebruikershandleiding

NEN 3610: mei 2010

Inhoudelijke reactie EGEM op adviesrapport Telematica Instituut: 'Over het service-georiënteerde gehalte van StUF 3.0.'

XSD.

Functionele Dataservice Beschrijving

Wijziging Informatiemodel ZTC

Bevordering van Interoperabiliteit tussen Overheidsorganisaties

Tentamen SPM1120 Analyse van bedrijfssystemen 18 Januari 2011, 9:00-12:00

Migratie PS API 40 naar 50

Technisch Ontwerp Ontwerp template

GAB Postcode (geheel)

Ontwerprichtlijnen voor XML-schemadefinities (XSD s) 18 juli 2017

Informatiemodel Ruimtelijke Ordening (IMRO) Modeldocument: beschrijving van het model. Opdrachtnemer: Ravi

Canonieke data-architectuur Bert Dingemans

Programmeren in Java 3

IDsW en waterkwantiteitsbeheer

Metamodel voor informatiemodellen. door KING en Kadaster

EEN INLEIDING IN DE UNIFIED MODELING LANGUAGE

Systeemontwikkeling, Hoofdstuk 3, Tabellen en formulieren

Informatie Model Omgevingswet (IMOW) de keten van plan tot publicatie. Versie 0.98-beta

Retour samenloop financiering Wlz-Zvw

Metamodel voor de Referentiemodellen Gemeentelijke Basisgegevens

Beschrijving OpenTunnel koppelvlak met MijnOverheid BerichtenBox

IMOP en IMTP v 085 Consultatiesessie 15 feb 2018

Tien tips voor canonieke datamodellering. Bert Dingemans

Gebruikershandleiding e-line DNB: het XML-importbestand

Richtlijnen DSI Data Transformatie Tool

case: toestandsdiagrammen

Projecten Applicatie Ontwikkeling

1. Milieuklacht Handleiding opladen XML in mkros Werken met Refertes... 5

Standaarden en richtlijnen epv. Versienummering. Datum 19 december Onderwerp Standaarden en richtlijnen Versienummering

Ontwerprichtlijnen voor XML-Schemadefinities

Verkenning adoptie W3C rdf/owl technologie voor IMxx/NEN modellen

Les F-02 UML. 2013, David Lans

Externe integratie. Betaalopdracht Mondzorg Wlz BM801. Berichtspecificatie [BER] Versie EI-standaard 1.0 Versie datum

0.1 Verdieping BAG Bevragen. versie 0.1. Datum. 1 juli Document versie. 0.1 ConceptICT Services Keten RZDirectie IT

3.1 Opsomming data type

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2

het bank voorbeeld ISO Datamodelleren modelleren met het E-R R model een database ontwerpen verzamelingen van relaties (verbanden)

Hoofdstuk 5. case: klassediagram

Metamodel voor informatiemodellen. door KING en Kadaster

ER-modeling. Wat is ER-modeling? ERD & relationeel model. ER-benadering DMO Datamodellering 2008

ER-modeling. Datamodellering Wat is ER-modeling?

BEFDSS. Het Belgische uitwisselingsformaat voor onderzoekgegevens afkomstig van visueel rioolonderzoek. 1/12/ / 6

voorbeeldexamen Object Oriëntatie Foundation (OOF.NL) editie juli 2010 inhoud inleiding 3 voorbeeldexamen 4 antwoordindicatie 11 evaluatie 22

InformatieModel Water (IMWA) 2013

Uitbreiding van UM Aquo cluster metingen, toevoegen optioneel attribuut Identificatie waarnemingssoort aan klasse WaardeReeks MIDDELGROOT

Ternaire relaties in ERDs zijn lastig

Testen in SOA-omgevingen

Conceptenbibliotheek & Technisch register. Frank Terpstra

Schema. Schema - Inleiding. <hoofdstuk> </hoofdstuk> DTD? Eenstapjeverder. Schema XML

Presentatie Jaarproject. Nils De Moor Sam Verboven

Sparse columns in SQL server 2008

Wijzigingsvoorstel op het Logisch Model Aquo 2 kabel-elementen uit IMKL overnemen RfC-W

Transcriptie:

Keteininformatiemodellering op basis van UML Richtlijnen en voorbeelden versie 0.1 Bert Dingemans

Keteininformatiemodellering op basis van UML... 1 Richtlijnen en voorbeelden... 1 Inleiding... 2 Documenten... 3 Richtlijnen naamgeving... 3 Richtlijnen UML modelleren... 4 Component... 4 Klasse... 5 Associatie... 5 Eigenschap... 5 DataType... 5 Enumeratie... 6 Lijstklasse... 6 Richtlijnen documentatie... 6 Richtlijnen UML XSD omzetting... 9 Ouder Kind... 9 XSD Schema... 10 Aggregatie... 12 XSD Schema... 12 Overerving... 14 XSD Schema... 14 Dienst- of servicemodel... 16 XSD Schema... 16 Inleiding 2

Voor het ontwikkelen van keten- en informatiemodellen en voor het ontwikkelen van ketenviews in het algemeen worden ontologieen en berichtenboeken opgesteld. Het opstellen van beide producten zal veelal releasematig plaatsvinden. Daarnaast is te verwachten dat delen van de ontologieen hergebruikt zullen worden. Dat stelt enerzijds eisen aan de tools waarmee deze producten ontwikkeld en beheerd worden. Anderzijds is het gewenst om afspraken te maken over de wijze van modellering binnen de ontologie en de standaardisatie in de berichtdefinitie. Hiermee wordt bereikt dat de modellen eenduidiger, eenvoudiger te automatiseren en gemakkelijker geïnterpreteerd kunnen worden. Bij het opstellen van de architectuurrichtlijnen wordt uitgegaan van het materiaal van andere overheidsdiensten zoals ISO standaarden, Justid en Geonovum. Documenten NEN 3610-2005 Richtlijnen naamgeving In de communicatie over keteninformatie en de uitwisseling hiervan staan twee noties centraal. De ene notie betreft de visuele taal UML en de andere notie de syntax XML. UML is bedoeld voor communicatie tussen mensen (zoals gebruikers en systeemontwerpers) en XML is bedoeld voor communicatie tussen informatiesystemen. UML en XML zijn gelijkwaardig in die zin dat ze beide dezelfde betekenis van de uit te wisselen informatie uitdrukken. De semantiek van het model is in deze het gene waarover de communicatie plaats dient te vinden. Het kiezen van de juiste naam voor de klassen en attributen is de eerste stap in het maken van een semantisch model. In diverse bronnen worden regels voor de naamgeving van de objecten gegeven. De volgende algemene richtlijnen gelden voor de naamgeving van de XML en UMLelementen: Wees niet hoofdlettergevoelig uniek binnen hun namespace Geen witte ruimte (spaties) in de naam 3

Gebruik nauwkeurige en begrijpelijke benamingen voor de klassen, attributen, operaties en parameters, maak voor operaties gebruik van werkwoorden voor de andere elementen van zelfstandig naamwoorden. Gebruik toevoegingen zoals datum, type en toelichting als dit de inhoud verduidelijkt, maar stapel de elementen hierbij niet Combineer meerdere woorden als nodig is om een nauwkeurige en begrijpelijke naam te vormen zonder gebruik van tussenliggende tekens (zoals "_", "-", of ruimte). Voor attributen en namen van vereniging rollen en parameters: gebruik alleen hoofdletters voor elk woord na de beginletter (camelcase). Gebruik voor klassen en datatypen een hoofdletter voor elk woord in de naam. Gebruik documentatie velden om nader toe te lichten wat de betekenis (semantiek) is van namen. Houd namen zo kort als praktisch. Gebruik standaard afkortingen. Sla voorzetsels, werkwoorden over als ze niets toevoegen aan de naamgeving. Is een verdere detaillering van de naamgeving gewenst maak dan gebruik van de standaarden en richtlijnen epv naamgeving opgesteld door het programma epv van het ministerie van Justitie. Richtlijnen UML modelleren Voor het opstellen van de ontologie wordt gebruik gemaakt van UML modellering. Alternatief is eventueel ER modellering. De richtlijnen voor UML hieronder zijn eenvoudig toepasbaar voor ER modellering. Hierbij worden twee eindproducten opgesteld. Enerzijds een ontologie dat een beschrijving geeft van het complete domein- of keteninformatiemodel. Dit is het gezamenlijke begrippenkader voor alle ketenpartners. Anderzijds een dienstenmodel waarmee aangegeven wordt op welke wijze het model gevoed wordt vanuit de verschillende bronsystemen van de ketenpartners.. Binnen de UML wordt voornamelijk gebruik gemaakt van de notatiewijze klassediagram en eventueel een packagediagram. Indien gewenst kan ter illustratie een object diagram opgesteld worden. Binnen de klassediagrammen worden alleen de volgende entiteiten gemodelleerd: Component Gebruik componenten cq packages voor het groeperen van klassen in het klassediagram. 4

Clusters worden gemodelleerd met behulp van componenten cq packages Klasse Klassen zijn de meeste elementaire elementen in het klassediagram. Indien gewenst kunnen klassen beschreven worden in clusters Indien een klasse door meerdere ketenpartners wordt aangeleverd wordt één ketenpartner als eigenaar van de klassedefinitie aangewezen. Klassen kunnen structuur overerven van andere klassen. Meervoudige overerving is niet mogelijk. Hiermee wordt bedoeld dat een klasse rechtstreeks van twee of meer verschillende ouderklassen overerft Van klassen volstaat het om alleen de eigenschappen te modelleren, operaties zijn niet relevant in XSD s. Associatie Alleen met behulp van associaties worden klassen met elkaar verbonden. Iedere associatie heeft een unieke naam Een associatie kan slechts twee klassen met elkaar verbinden Minimum cardinaliteit kan slechts de waarde 0 of 1 bevatten Maximum cardinaliteit kan slechts de waarden 1 of * (veel) bevatten Alleen de basisrelatie en het type aggregatie mogen gebruikt worden (andere zijn niet relevant in een keteninformatiemodel). Eigenschap Eigenschappen zijn uniek binnen een klasse (inclusief de overervingsketen) Minimum cardinaliteit voor een eigenschap is 0 (optioneel) of 1 (verplicht). Wees zorgvuldig met verplichte eigenschappen, zorg desgewenst voor een waarde onbekend indien mogelijk. Maximum cardinaliteit voor een eigenschap is 1. Zichtbaarheid van eigenschappen is altijd publiek. Datatype van eigenschappen bestaat uit de basis gegevenstypen van UML inclusief de klassen beschreven in de ontologie. Iedere klasse dient ten minste één identifier eigenschap te hebben. Naast enumeraties als beperking van het domein van eigenschappen kunnen ook checkconstraints gebruikt worden indien gewenst. DataType De datatypen vanuit UBL 2.0 kunnen worden gebruikt. Zie onderstaande opsomming: 5

o Bedrag (xsd:decimal) o Datum (xsd:date) o Tijd (xsd:time) o Datum en tijd (xsd:datetime) o Geo (xsd:base64binary) Naast de UML en UBL 2.0 datatypen kan gebruik gemaakt worden van keteninformatiemodel specifieke stereotypen te definieren. Zie het hieronder uitgewerkt voor beeld geboorte vanuit het epv. <gwb:geboorte> <gwb:datum>1970-01-01</gwb:datum> <gwb:jaar>1970</gwb:jaar> <gwb:nederlandsegemeentecode>0014</gwb:nederlandsegemeentecode> <gwb:landcode>6030</gwb:landcode> <gwb:geslachtcode>01</gwb:geslachtcode> <!-- mannelijk --> </gwb:geboorte> Enumeratie Enumeraties of codelijsten worden gebruikt om het domein van een eigenschap in te perken Een enumeratie omvat ten minste een code en een omschrijving De omschrijving van een enumeratie kan uitgebreid worden met een lijst van aliassen voor deze omschrijving. Lijstklasse Een verbijzondering van de klasse die gebruikt wordt in de dienstenbeschrijving Geeft aan wat de ingaande paramaters (zoekparameters) zijn Beschrijft de condities waaraan de resultaatset moet voldoen. Richtlijnen documentatie Ten behoeve van het berichtenboek wordt het onderstaande sjabloon toegepast. Het verdient aanbeveling om deze gegevens geïntegreerd op te nemen in het UML 6

klassediagram. Bijvoorbeeld door uitbreiding van het model binnen de tooling. Mits de tooling dit ondersteunt Naam Omschrijving Lijst van klassen Eigenaar Lijst van aanleverende partijen Lijst van afnemende partijen Diagram Component Naam van de component Toelichtende tekst over het component Opsomming van de in het component opgenomen klassen Ketenpartner die de definitie van het cluster beheert Lijst van partijen die (delen van) de gegevens aanleveren vanuit bronsystemen Lijst van partijen die (delen van) de gegevens afnemen naar doelsystemen Van een cluster wordt een UML diagram opgenomen in het berichtenboek Naam Omschrijving Definitie Herkomst Definitie Lijst van aliassen Lijst van attributen Eigenaar Lijst van aanleverende partijen Lijst van afnemende partijen 7 Klasse Naam van de klasse Toelichtende tekst over de klasse Gezamenlijke ketendefinitie De herkomst, bron, van de definitie, bijvoorbeeld (inter)nationale, sectorale of departementale standaarden Lijst van omschrijvingen die dezelfde klasse beschrijven (symoniemen) Opsomming van de in de klasse opgenomen attributen Ketenpartner die de definitie van het cluster beheert Lijst van partijen die (delen van) de gegevens aanleveren vanuit bronsystemen Lijst van partijen die (delen van) de gegevens afnemen naar

Lijst van eigenschappen Lijst van associaties Lijst van generalisaties Specialisatie Component Condities doelsystemen Opsomming van de eigenschappen ingesloten in deze klasse inclusief het datatype en de cardinaliteiten Opsomming van de associaties met andere klassen inclusief de cardinaliteiten en de relatiesoort. Dit is inclusief de aggregaties Van welke klassen is deze klasse een generalisatie Van welke klasse is deze klasse een specialisatie Van welke component is deze klasse een onderdeel Lijst van condities (specifiek voor Lijstklassen) Naam Definitie Herkomst Definitie Lijst van aliassen Omschrijving Klassenaam Datatype Cardinaliteit Enumaratie Eigenschap Naam van de eigenschap Gezamenlijke ketendefinitie De herkomst, bron, van de definitie, bijvoorbeeld (inter)nationale, sectorale of departementale standaarden Lijst van omschrijvingen die dezelfde eigenschap beschrijven (symoniemen) Toelichtende tekst over de eigenschap Naam van omvattende klasse Datatype van eigenschap Minimum en maximum cardinaliteit Eventueel de toegepaste enumeratie Naam Omschrijving 8 Associatie Naam van de associatie Toelichtende tekst over de associatie

Klassenaam 1 Klassenaam 2 Associatietype Cardinaliteiten Rol Naam van omvattende klasse Naam van omvattende klasse Type van de associatie (inclusief aggregaties) Minimum en maximum cardinaliteiten Eventuele rolnaam Richtlijnen UML XSD omzetting In onderstaande paragrafen worden de meestgebruikte UML constructies getoond op basis van de ingezette tool. Op basis van deze UML klassediagrammen wordt getoond op welke wijze deze constructies omgezet worden naar XSD structuren. Desgewenst worden de constructies nader toegelicht. De tool die ingezet wordt voor het modelleren biedt de mogelijkheid om op basis van een UML klassediagram XSD bestanden te genereren. De uitwerking hieronder is hier een voorbeeld van. Echter het is te voorzien dan in de gegenereerde bestanden handmatige aanpassingen nodig zijn. Dit wordt bij de huidige projectomvang een acceptabele werkwijze. Ouder Kind 9

class OuderKind KlasseA 0..* KlasseB XSD Schema <?xml version="1.0" encoding="iso-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="klassea" type="klassea"/> 10

<xs:complextype name="klassea"> <xs:sequence/> <xs:element name="klasseb" type="klasseb"/> <xs:complextype name="klasseb"> <xs:sequence> maxoccurs="1"/> <xs:element name="klassea" type="klassea" minoccurs="1" </xs:sequence> </xs:schema> 11

Aggregatie class Aggregatie KlasseA 0..* KlasseB KlasseA XSD Schema <?xml version="1.0" encoding="iso-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:include/> <xs:element name="klassea" type="klassea"/> <xs:complextype name="klassea"> <xs:sequence> 12

<xs:element name="klasseb" type="klasseb" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> <xs:element name="klasseb" type="klasseb"/> <xs:complextype name="klasseb"> <xs:sequence/> </xs:schema> 13

Overerving class Ov ererv ing KlasseB KlasseA XSD Schema <?xml version="1.0" encoding="iso-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="klasseb" type="klasseb"/> <xs:complextype name="klasseb"> <xs:complexcontent> <xs:extension base="klassea"> 14

<xs:sequence> <xs:element name="klasseb"> <xs:complextype> <xs:sequence/> </xs:element> </xs:sequence> </xs:extension> </xs:complexcontent> <xs:element name="klassea" type="klassea"/> <xs:complextype name="klassea"> <xs:sequence/> </xs:schema> 15

Dienst- of servicemodel class DienstModel Lij stklassea KlasseA KlasseB KlasseC XSD Schema 16

<?xml version="1.0" encoding="iso-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="klassea" type="klassea"/> <xs:complextype name="klassea"> <xs:sequence> maxoccurs="1"/> <xs:element name="klasseb" type="klasseb" minoccurs="1" </xs:sequence> <xs:element name="klasseb" type="klasseb"/> <xs:complextype name="klasseb"> <xs:sequence/> <xs:element name="klassec" type="klassec"/> <xs:complextype name="klassec"> <xs:complexcontent> <xs:extension base="klassea"> <xs:sequence/> </xs:extension> </xs:complexcontent> 17 <xs:element name="lijstklassea" type="lijstklassea"/>

<xs:complextype name="lijstklassea"> <xs:sequence> maxoccurs="1"/> <xs:element name="klassea" type="klassea" minoccurs="1" </xs:sequence> </xs:schema> 18