Structured Information Analysis Advanced SIAA Arie Bubberman 12/10/2009
Inhoudsopgave Analyse in het ontwikkelproces............................................................................................................... 4 Aspecten van informatieanalyse ......................................................................................................... 4 Bedrijfsgerichte analyseactiviteiten .................................................................................................... 4 Bedrijfsactiviteiten modelleren ....................................................................................................... 4 Informatie modelleren .................................................................................................................... 5 Systeemgerichte specificatieactiviteiten............................................................................................. 5 Systeem afbakenen: ........................................................................................................................ 5 Modelleren van systeemfuncties en gegevens: .............................................................................. 5 Ontwerpen en coderen: .................................................................................................................. 5 Applicatiegeneratie ............................................................................................................................. 5 MDA: Model Driven Achitecture ..................................................................................................... 6 Het tot stand komen van modellen..................................................................................................... 6 Incrementele en iteratieve ontwikkelbenadering ........................................................................... 6 Joint Application Design (JAD) ......................................................................................................... 6 Projectuitvoering MAD .................................................................................................................... 7 Analyses uitvoeren .................................................................................................................................. 7 Procesanalyse uitvoeren ..................................................................................................................... 7 Objectanalyse uitvoeren ..................................................................................................................... 8 Procesmodel opstellen ............................................................................................................................ 9 Schrijfwijze procesmodel..................................................................................................................... 9 Tekens.............................................................................................................................................. 9 Plaatsing stromen .......................................................................................................................... 10 Procesmodel maken .......................................................................................................................... 10 Processen Decomponeren ............................................................................................................ 10 Nummering.................................................................................................................................... 10 Stromen Decomponeren ............................................................................................................... 11 Consistentie tussen diagrammen .................................................................................................. 11 Overige regels procesmodel .............................................................................................................. 11 Introduceren nieuwe stromen ...................................................................................................... 11 Splitsen en samenvoegen stromen ............................................................................................... 11 Terugkoppeling .............................................................................................................................. 11 Combinatie controle en uitvoer .................................................................................................... 11 Informatiemodel opstellen.................................................................................................................... 12
ER- schrijfwijze................................................................................................................................... 12 Informatiemodel maken.................................................................................................................... 13 Opstellen ER- dagram .................................................................................................................... 13 Opstellen beschrijvingen ............................................................................................................... 13 Informatieregels formuleren ......................................................................................................... 13 Overige regels informatiemodel ....................................................................................................... 14 Objectivering ................................................................................................................................. 14 Subtypen........................................................................................................................................ 14 Afleidbaarheid ............................................................................................................................... 14
Analyse in het ontwikkelproces Aspecten van informatieanalyse Modelleren: De werkelijkheid volgens bepaalde afspraken weergeven in een model om inzicht te krijgen in die werkelijkheid. Modellen kunnen worden onderverdeeld in 2 soorten: 1) Bedrijfsgerichte modellen. Deze worden opgesteld met behulp van bedrijfsgerichte analyseactiviteiten. 2) Systeemgerichte modellen Deze worden opgesteld met behulp van systeemgerichte specificatieactiviteiten.
Bedrijfsgerichte analyseactiviteiten Er zijn 2 soorten bedrijfsgerichte analyseactiviteiten: Bedrijfsactiviteiten modelleren Procesanalyse: dit is het vertalen van bedrijfsprocessen naar een bedrijfsactiviteitenmodel oftewel een procesmodel. Het doel hiervan is het inzicht krijgen in de bedrijfsactiviteiten en hun informatieuitwisseling. Ook kan het dienen als hulpmiddel vin de communicatie met gebruikers en om bedrijfsprocessen te selecteren die voor automatisering in aanmerking komen IDEF0: Dit is een standaard gebaseerd op de Structured Analysis Design Technique (SADT) en kan zowel informatie als fysieke stromen weergeven. Deze benadering is breder dan andere benaderingen en kan bedrijfsprocessen en stromen weergeven, die niet geautomatiseerd kunnen worden. De afbakening van wat wel/niet geautomatiseerd gaat worden gebeurd na het opstellen van het bedrijfsactiviteitenmodel. De primaire doelstellingen zijn: 1. Een manier bieden om compleet en consistent de functies en de relatie tussen de functies van een systeem of organisatie te modelleren. 2. Een techniek bieden die onafhankelijk is van specifieke ontwikkeltools, maar die wel in samenwerking gebruikt kan worden 3. Een generiek, precies, bondige, conceptueel en flexibele modelleringtechniek bieden De kenmerken zijn: 1. Kan een grafische representatie geven van bedrijfsprocessen op elk gewenst detailniveau 2. Een samenhangende en simpele taal voor een consistent gebruik en interpretatie 3. Ondersteunt communicatie tussen systeemanalisten,ontwikkelaars en gebruikers doordat de taal gemakkelijk te leren is en heeft een hiërarchische details weergave voor de overzichtelijkheid. 4. De taal is goed getest en heeft zijn sporen verdiend 5. Kunnen in veel grafische programma’s gemaakt worden en veel producten ondersteunen IDEF0
Actimod: deze methode onderscheidt activiteiten, informatiestromen en materiestromen 1. Activiteit: een bedrijfsactiviteit die door een mens of machine wordt uitgevoerd 2. Informatiestroom: de uitwisseling van informatie tussen de activiteiten 3. Materiestroom: de uitwisseling van materie tussen de activiteiten Informatie modelleren ERD: Entiteit relatie diagrammen. 1. Entiteittype: ook wel objecttypen. Dit zijn groepen of soorten van objecten binnen de bedrijfsactiviteiten. Wordt weergeven als een rechthoek. 2. Relatietype: Geven de samenhang weer tussen entiteittypen. Wordt weergeven als een lijn tussen 2 entiteittypen met de naam ernaast, of een ruit in het midden van de lijn met daarin de naam van het relatietype. 3. Informatieregels: ook wel attribuuttypen genoemd. Worden toegevoegd aan de entiteittypen. Het zijn de gegevens die bij een entiteittype horen. Worden in het diagram of in een aparte beschrijving geplaatst.
Systeemgerichte specificatieactiviteiten Dit zijn de activiteiten om het systeem te kunnen ontwerpen en te bouwen. Systeem afbakenen: Dit is het vaststellen wat er wel en niet tot het geautomatiseerde systeem behoort. 1. Systeem- contextmodel: Ook wel contextdiagram genaamd. Hierin wordt de systeemafbakening opgenomen. Het systeem wordt als eenheid gezien en is een black box waar informatie en materiestromen binnenkomen en uitgaan. Het maakt duidelijk wat er wel en niet tot het systeem behoort. Modelleren van systeemfuncties en gegevens: 1. Systeemfuncties modelleren: De functionaliteit van het geautomatiseerde informatiesysteem wordt vastgelegd in een model. Hierbij worden de proces, het gedrag van het systeem en de gegevens weergeven 2. Gegevens modelleren:De informatiebehoefte die vastgelegd is in het informatiemodel vastleggen in een structuur van gegevenstypen, oftewel een gegevensmodel. Ontwerpen en coderen: 1. Softwareontwerp: Hier worden de onderlinge(hiërarchische) samenhang tussen verschillende softwareonderdelen en de gegevens die onderling uitgewisseld worden weergeven. 2. Databaseontwerp: Dit is een vertaling van het gegevensmodel in structuren voor het opslaan van gegevens. 3. Coderen: De ontwerpen worden vervolgens vertaald in een programma + database.
Applicatiegeneratie Applicatiegeneratoren kunnen aan de hand van modellen een werkende applicatie genereren. Uitgangspunten:
1. Alle informatiesystemen worden op de zelfde manier automatisch opgebouwd. Menustructuur, onderhoudsfuncties voor de database etc. Dit is de triviale functionaliteit. 2. Het onderwerp waarvoor het systeem gebouwd wordt maakt het systeem verschillend van anderen. Ook wel het universum van discussie genoemd. 3. Het systeem kan gemodelleerd worden in een relationeel gegevensmodel of een objectmodel aangevuld met gedragsregels. Standaardfunctionaliteiten: 1. Database structuur 2. Keuzemenu 3. Mutatiescherm voor elke tabel (verwijderen/toevoegen/wijzigen) 4. Navigatiepaden tussen tabellen 5. Zoekfuncties 6. Databasetechnische functies zoals: bewaken van referentiële integriteit en database regels MDA: Model Driven Achitecture Dit is een raamwerk van modellen opgesteld in UML, waarmee getracht wordt de complexiteit van applicaties te beheersen. De vertalingen tussen de verschillende modellen vind plaats doormiddel van applicatiegeneratoren. MDA kent 3 niveaus: 1. Een platformonafhankelijk model: hier wordt de functionaliteit en het gedrag vastgelegd 2. Een platformspecifiek model: Hier wordt systeem beschreven zoals nodig is voor het gekozen platform. 3. Een implementatiemodel: Dit model omvat alle code die nodig is, wordt gegenereerd uit het platformspecifieke model.
Het tot stand komen van modellen MAD (Model Application Development) Incrementele en iteratieve ontwikkelbenadering Kenmerken: 1. Incrementeel onwikkelen: beginnen met een kleine basis en deze vervolgens steeds verder uitbreiden. Een increment is een afzonderlijk bruikbare eenheid inclusief documentatie, specificaties etc. 2. Iteratief ontwikkelen: het steeds weer doorlopen van het traject: analyse, ontwerp en implementatie. Telkens een klein lineair traject doorlopen 3. Time-boxes: Stel een bepaalde periode vast en bepaal wat er binnen die periode gedaan kan worden. Er komt dan altijd een werkend systeem, met de functionaliteit binnen die tijd gemaakt kon worden. Daarna wordt er een nieuwe periode vastgesteld. a. Voordeel: De tastbaarheid voor de organisatie. Snelle resultaten b. Nadeel: Door de grote mate van flexibiliteit is het moeilijk deze projecten goed te managen. Soms zorgt dit er voor dat een informatie systeem niet uit de ontwikkelfase komt Joint Application Design (JAD) MAD maakt gebruik van JAD. Dit is een techniek die zorgt voor een effectieve communicatie tussen informatieanalisten en gebruikers. JAD- sessie: Dit is een soort workshop. Wordt gebruikt om huidige bedrijfsactiviteiten en
systeemgerichte specificatieactiviteiten in kaart te brengen. Wordt geïnitieerd door de opdrachtgever die ook de bedrijfsdoelstellingen definieert. Gebruikers formuleren eisen en wensen. De informatieanalisten vertalen deze naar modellen. Er zijn specialisten aanwezig voor vragen. De secretaris zorgt voor documentatie en een verslag van de sessie. Projectuitvoering MAD 1. Opstellen bedrijfsactiviteitenmodel: is een belangrijk communicatiemiddel tussen analisten en gebruikers, zodat er zekerheid is dat men het over dezelfde zaken heeft. 2. Opstellen informatiemodel: Wordt vaak gemaakt met behulp van een prototype, zodat er over gediscussieerd kan worden 3. Afbakenen systeem: Wat gaat er wel en niet bij het systeem horen 4. Definieren incrementen: deze worden gemaakt aan de hand van het informatiemodel, mogen niet groter zijn dan een half manjaar werk. 5. Definieren gegevensstructuur: Voor elk increment moet de gegevensstructuur gedefinieerd worden op basis van het informatiemodel. Dit kan ingevoerd worden in een applicatiegenerator om een initieel systeem te creëren. 6. Specificeren gedrag: informatieregels opstellen om de functionaliteit te kunnen specificeren 7. Definieren user interface: In overleg met de gebruiker wordt dit gemaakt. 8. Ontwikkelen: Het aanvullen van de gegenereerde versie van het systeem met de onderdelen die niet gegenereerd kunnen worden. Bijvoorbeeld interfaces, rapporten of berekeningen. Worden hier ontworpen, gebouwd en getest. 9. Implementeren: Het increment wordt nu geïmplementeerd in de gebruikersomgeving en er wordt een acceptatietest uitgevoerd.
Analyses uitvoeren Procesanalyse uitvoeren 1. Verzamelen feitenkennis Er moet feitenkennis verzameld worden over het onderzoeksgebied, dat in de meeste gevallen de activiteiten van de organisatie zijn of een deel van de organisatie. Er zijn verschillende bronnen: procedurevoorschriften, functiebeschrijvingen, interviews en notulen. 2. Opstellen lijsten van processen en stromen De relevante processen en stromen moeten vastgesteld worden. Dit kan gedaan worden door de feitenkennis te doorlopen en daaruit werkwoorden en zelfstandig naamwoorden te halen. De lijst met werkwoorden geeft een overzicht van de potentiële processen die van belang zijn en de lijst met zelfstandig naamwoorden geeft een overzicht van de potentiële stromen. De eerste lijsten zijn vaak lang en bevatten woorden die niet relevant zijn. Deze lijsten moeten gefilterd worden, door bijvoorbeeld dubbele woorden er uit te halen (bv: klant en koper). Daarnaast moet gekeken wat er binnen het systeem valt en wat niet. De lijsten vormen de basis voor het contextdiagram. 3. Opstellen contextdiagram Dit diagram geeft de scope van de analyse in het geheel weer als 1 bedrijfsproces. Een topdiagram bestaat uit alleen het hoofdproces, de externe processen worden hier dus weggelaten. De diagrammen bestaan uit de volgende tekens/symbolen:
4.
5.
6.
7.
1. Rechthoek: Het hoofdproces en de overige betrokken procesen die informatie leveren of geleverd krijgen 2. Pijl met enkele lijn: De informatiestromen 3. Pijl met dubbele lijn: De materiestromen Decomponeren Het hoofdproces moet vervolgens opgedeeld worden in subprocessen. Dit gebeurt op basis van de werkwoordenlijst waarin de structuur in principe al is aangebracht. Een decompositie bestaat meestal uit 3 tot 7 deelprocessen. Als er meer deelprocessen zijn, wordt er voor de overzichtelijkheid een extra niveau aangebracht. Decomponeren kan dus meerdere keren herhaald worden om alle processen tot in detail te beschrijven. De deelpocessen worden eerst op een diagonaal gezet en daarna worden de stromen uit het contextdiagram bij de juiste processen geplaatst. Beschrijven van activiteiten en stromen De processen en stromen moeten zorgvuldig beschreven worden. Dit is nodig om op detailniveau duidelijkheid te krijgen en eventuele misverstanden te voorkomen. Standaard bestaat deze beschrijving uit: de naam, de omschrijving en overige specificaties. Bij procesbeschrijvingen komen daar nog de in en uitgaan de stromen bij. Hierbij kunnen, indien relevant, de samenstellende delen aangegeven worden. Meestal betekend dit een aantal gegevens(attribuuttypen) behorende bij een informatiestroom(entiteittype). Afstemmen met het informatiemodel Als de diagrammen en beschrijvingen zijn opgesteld moeten deze gecontroleerd worden. Dit wordt gedaan door afstemming met het informatiemodel. ER wordt gekeken of alle benodigde informatie zowel in het procesmodel als in het informatiemodel voorkomt. Verifiëren van het model Het model wordt gecontroleerd op juistheid en volledigheid. Wordt gedaan met behulp van een inspectie waarbij de diagrammen en beschrijvingen worden gecontroleerd door gebruikers en andere specialisten. Dit leidt tot een advies aan de maker van de diagrammen en beschrijvingen. De maker blijft verantwoordelijk voor het eindproduct.
Objectanalyse uitvoeren Dit is het modelleren van informatie. Dit gebeurt doormiddel van een objectanalyse die leidt tot een objectmodel ook wel een informatiemodel genoemd. Het informatiemodel bestaat uit: 1. Informatiestructuurmodel: Bestaat uit een diagram en een beschrijving van de entiteittypen 2. Informatieregels De objecten/entiteiten met hun onderlinge relaties staan hier centraal. 1) Identificeren entiteittypen en relatietypen Welke entiteiten zijn relevant als we uitgaan van het procesmodel. Vervolgens moeten de onderlinge relaties tussen de entiteittypen vastgesteld worden. 2) Opstellen informatiestructuurdiagram Een informatiestructuurdiagram wordt ook wel ERD, entiteitstructuurdiagram of object genoemd. Het geeft de entiteittypen en relatietypen grafisch weer. a. Rechthoeken: Entiteittypen b. Ovalen: relatietypen. Staat tussen 2 entiteittypen in Kardinaliteit/ multipliciteit: Het minimale en maximale aantal dat een entiteittype kan voorkomen in relatie tot een ander entiteittype. 3) Toevoegen attribuuttypen
Dit zijn de gegevens die bij de entiteittypen horen, zoals een klantnummer, klant naam etc. De attribuuttypen kunnen uit de beschrijving van het procesmodel gehaald worden. 4) Beschrijven entiteittypen, relatietypen en attribuuttypen Hier wordt alles goed beschreven, zodat er geen misverstanden kunnen ontstaan. De beschrijving van het informatiestructuurmodel bestaat uit een tabel met daarin de naam, identificerende attribuuttypen en een overzicht van alle bijbehorende attribuuttypen. De naam moet uniek zijn en herkenbaar voor de gebruiker. 5) Toevoegen informatieregels Hier worden de informatieregels oftewel bedrijfsregels toegevoegd. Dit zijn wetmatigheden en restricties die gelden in de werkelijkheid van de organisatie en dus ook in het model ervan. Er zijn zes soorten regels a. Identificatieregels: Dit zijn de identificerende attributen of sleutels die al in de beschrijvingen zijn opgenomen. Het is het unieke attribuut van een entiteit. b. Verplichte attributenregel: Deze regel geeft aan welke attributen verplicht bekend/ingevuld moeten zijn als een entiteit aanwezig is. c. Validatie regels: Deze regels geven de toegestane waarden voor een attribuut aan. d. Afhankelijkheidregels: Deze regels beschrijven onderlinge afhankelijkheden tussen attributen van een entiteit of tussen attributen van verschillende entiteiten. e. Afleidingsregels: Hier kan de waarde van een attribuut afgeleid worden uit de waarde van andere attributen. f. Transitieregels: Dit zin de regels die betrekking hebben op de toegestane veranderingen in waarde van een attribuut. 6) Afstemmen en verifiëren van het model Het informatiemodel moet: a. Afgestemd worden met het procesmodel b. Geverifieerd worden Om vast te stellen dat de afstemming tussen beide werkelijk goed is, moeten deze punten gecontroleerd worden a. Bevat het model de benodigde informatie voor de processen, maar niet te veel informatie b. Wordt de informatie uit het model gebruikt door processen en daardoor onderhouden. c. Zin alle beschrijvingen eenduidig en helder d. Hebben de modellen voldoende diepgang voor het vastgestelde doel? e. Zijn de modellen correct en volledig, en dus geverifieerd.
Procesmodel opstellen Schrijfwijze procesmodel Het procesmodel wordt beschreven volgens de actimod standaard Tekens Er zijn 3 verschillende tekens waar IDEF0 (Actimod variant) gebruik van maakt: 1) Rechthoek: hiermee wordt een activiteit aangegeven. Deze activiteit wordt uitgevoerd door mensen, machines of computers. 2) Enkele pijl: Hiermee wordt een informatiestroom weergeven. Dit is de uitwisseling van informatie tussen activiteiten of externe actoren met relevante bedrijfsactiviteiten 3) Dubbele pijl: Hiermee wordt een materiestroom weergeven. Dit is de uitwisseling van materie oftewel fysieke zaken.
Plaatsing stromen De plaatsing van een stroom geeft aan wat voor stroom het is: 1) Een pijl naar de zijkant van de activiteit is een invoerstroom. 2) Een pijl vanaf de zijkant van de activiteit is een uitvoerstroom. 3) Een pijl aan de bovenkant van de activiteit is een controlstroom. Invoerstromen en uitvoerstromen Een invoerstroom ondergaat een transformatie die leidt tot een uitvoerstroom. De activiteit(rechthoek) zorgt er voor dat er iets in die stroom veranderd. Voorbeeld: “geplaatste bestelling” ”Gereedmaken bestelling” “bestelling gereed” In en uitvoerstromen kunnen zowel informatie als materiestromen zijn. Controlstromen Dit zijn stromen die geen verandering ondergaan in de activiteit maar die wel nodig zijn om die activiteit goed te laten verlopen. Ook wel controle of besturingsstromen genoemd. Klantinformatie is bijvoorbeeld nodig om een factuur op te kunnen stellen, maar de klantinformatie veranderd zelf niet tijdens de activiteit “opstellen factuur”.
Procesmodel maken Het uitgangspunt van het procesmodel is het topdiagram. Dit proces wordt opgesplitst zodat er op detailniveau activiteiten beschreven kunnen worden. Dit is het Decomponeren van processen Processen Decomponeren Het opsplitsen vind vaak in meer stappen plaats. Een proces wordt voor de overzichtelijkheid per stap opgedeeld in 3 tot 6 subprocessen. Vaak moet een subproces ook weer opgesplitst worden, omdat niet alle details uitgewerkt kunnen worden. Het is belangrijk om te stoppen met decomponeren op het moment dat het duidelijk is welke activiteiten volledig handmatig en welke volledig geformaliseerd uitgevoerd worden. Horizontal balancing: Dit is het gelijkmatig verdelen van het proces over de subprocessen. Alle subprocessen bij elkaar moeten onder het hoofdproces vallen. Het hoofdproces moet op alle gebieden afgedekt zijn en er mogen geen subprocessen toegevoegd worden die niet onder het hoofdproces vallen. Nummering Nummering is nodig om de gedecomponeerde modellen goed te kunnen ordenen. De nummering wordt als volgt gedaan:
A-1 (Spreek uit als ‘a min 1’): Dit nummer heeft een contextdiagram om aan te geven dat dit diagram meer geeft dan alleen het hoofdproces. A-0 (spreek uit als ‘a min 0’: Dit is het topdiagram. Het hoofdproces heeft hier het nummer A0 A0: Dit is het diagram waarin het hoofdproces wordt opgeplitst. Het hoofdproces heet ook hier weer A0. De subprocessen krijgen de nummers A1, A2 etc.
A1: Dit is het diagram waarin het subproces A1 nogmaals is opgesplitst. De subprocessen die hier ontstaan krijgen dan de nummering: A11, A12 etc. Op deze manier kunnen ook de andere subprocessen weer gesplitst worden.
Stromen Decomponeren Stromen kunnen ook gedecomponeerd worden. Zo kan een materie- of informatiestroom die op een hoger niveau 1 stroom is, op een lager niveau opgedeeld worden in meerdere stromen. Voorbeeld: het A-0 diagram heeft alleen de stroom ‘klantinformatie’ en het A0 diagram heeft de stromen: ‘klant bezorg gegevens’ en ‘Klant factuur gegevens’. Consistentie tussen diagrammen Level balancing: Dezelfde stromen die het hoofdproces in- en uitgaan moeten ook de deelprocessen in- en uitgaan. Hierbij zijn 3 punten belangrijk: 1) Alle stromen moeten terugkomen, maar het hoeft niet zo te zijn dat de stromen het eerste subproces moeten binnen komen en het laatste subproces moeten uitgaan. 2) Al worden stromen gedecomponeerd, er moet op lager niveau een balans zijn. Het moet duidelijk zijn in welke deelstromen een stroom is opgedeeld. Dit is voor de consistentie 3) Stromen tussen subprocessen worden niet meegenomen in de controle op consistentie. Deze zijn er slechts om de onderlinge samenhang van de subprocessen te weergeven.
Overige regels procesmodel Op lagere niveaus kunnen onder bepaalde voorwaarden stromen geïntroduceerd, gesplitst, samengevoegd, teruggekoppeld of gecombineerd worden Introduceren nieuwe stromen Sommige stromen zijn op hoger niveau niet relevant, maar op een subniveau wel. Daarom mogen er stromen toegevoegd worden. Het toevoegen van stromen wordt tunneling genoemd. Om aan te geven dat het om stromen gaat die niet op het hogere niveau voorkomen, worden aan de pijlen haakjes toegevoegd. Dit geld voor invoer, uitvoer en controlstromen. Tunneling: het toevoegen van stromen op lagere niveaus Splitsen en samenvoegen stromen Binnen 1 diagram kunnen stromen worden gesplitst in deelstromen of kunnen deelstromen samengevoegd worden tot 1 stroom Branching: dit is het splitsen van stromen in deelstromen Joining: Dit is het samenvoegen van deelstromen in stromen Terugkoppeling Het kan voorkomen dat informatiestromen als uitvoer van een subproces teruggekoppeld worden naar een eerder subproces in het diagram, om daar als invoerstroom of controlstroom te dienen. - Bij invoer wordt de stroom onderlangs naar de activiteit getekend - Bij control wordt de stroom bovenlangs naar de activiteit getekend Combinatie controle en uitvoer De controlstroom kan ook leiden tot een uitvoerstroom. Als dit het geval is wordt er geen aparte uitvoerstroom getekend, maar wordt dit doormiddel van een pijl met 2 punten aangegeven. Dit wordt het actualiseren van een controlstroom genoemd.
Informatiemodel opstellen ER- schrijfwijze Het ER- model volgens ISO kent twee elementen 1) ER-Diagram: Dit diagram bestaat uit een aantal basistekens a. Rechthoek: dit tekens staat voor een entiteittype. Hierin wordt de naam van de entiteit geplaatst doormiddel van een zelfstandig naamwoord b. Ovaal: dit teken staat voor een relatietype. Hierin wordt de naam van de relatie weergeven in de vorm van een werkwoord. c. Dikke open pijl: dit teken staat voor een subtype van een entiteittype. De pijl vertrekt vanuit het subtype( ook een entiteittype) naar het entiteit type. Een subtype is een entiteit type die alle kenmerken van het hoofdtype heeft, aangevuld met specifieke gegevens. d. Cijfers: Deze staan voor de kardinaliteit. Deze geven de aard van de relatie aan tussen twee entiteittypen. De mogelijheden zijn 0, 1 en N. 0: dit betekent dat de relatie niet verplicht hoeft te bestaan. Een artikel hoeft bijvoorbeeld altijd in een bestelling te zitten 1: dit betekent dat er precies 1 verband voorkomt. Een bestelling heeft bijvoorbeeld maar 1 factuur N: dit betekent dat er meer verbanden kunnen bestaan Vervolgens wordt er per entiteittype en per relatietype een minimum en maximum waarde vast gesteld. Er zijn 4 verschillende varianten: 0,1: een entiteittype kan niet of maximaal 1 keer voorkomen in de relatie 0,N: Een entiteittype kan 0 of meer keren voorkomen in de relatie 1,1: Een entiteittype komt altijd precies 1 keer voor in de relatie 1,N: Een entiteittype komt minimaal 1 keer voor in een relatie 2) ER-beschrijving: Naast het diagram maken beschrijvingen ook deel uit van het model. Er zijn 2 soorten beschrijvingen, die van de entiteittypen en van de relatietypen. De beschrijving voor de entiteittypen bestaan uit: a. Entity-type (ET) voor de naam b. Identifier(ID) voor het identificerende attribuuttype c. Description(DE) voor het overzicht van attributen De beschrijving voor een relatietype bestaat uit: a. Relationshiptype voor de naam b. Dimension om aan te geven hoeveel verbindingen het relatietype heeft met entiteittypen c. Collection voor een overzicht van de namen van de verschillende entiteittypen waarmee het relatietype een verbinding heeft. d. Cardinality voor de kardinaliteiten met de verschillende entiteittypen
Informatiemodel maken Opstellen ER- dagram Benoemen van entiteittypen: De eerste stap is het vaststellen van de entiteittypen. Meestal zal dit op basis van het procesmodel duidelijk zijn. Belangrijk is om de termen te gebruiken binnen de organisatie. Denk aan bijvoorbeeld in een hotel aan de termen: cliënt en gast. Er wordt dezelfde persoon bedoeld, maar het woord gast past veel beter bij een hotel dan cliënt. Koppelen entiteittypen doormiddel van relatietypen: Vervolgens worden er koppelingen aangebracht tussen de entiteittypen door het benoemen van relatietypen. Maak hierbij gebruik van hele werkwoorden, die herkenbaar zijn in de organisatie (boeken, bestellen etc.) probeer woorden te gebruiken die een zin kunnen vormen (denk aan Artikel, ‘opnemen in’, Bestelling, ) Toewijzen kardinaliteiten: bepaal bij elke combinatie van entiteittype met relatietype allereerst of het entiteittype verplicht moet voorkomen, oftewel of het minimum 0 of 1 is. Bepaal vervolgens hoe vaak een entiteittype mag voorkomen in de relatie, oftewel het maximum 1 of N Opstellen beschrijvingen Bij de beschrijvingen van relatietypen kan alle informatie worden afgeleid uit het ER- Diagram. Daarom zijn beschrijvingen ook optioneel en worden ook vaak niet opgesteld. Bij beschrijvingen over een entiteittype moeten wel andere gegevens gebruikt worden, namelijk die over de bijbehordende attribuuttypen Identificering attribuuttype: Om vast te stellen op welke entiteit bepaalde gegevens betrekking hebben moet een identificerend attribuuttype of een combinatie van attribuuttypen worden vastgesteld. Dit moet een unieke waarde zijn voor alle entiteiten( Auto kenteken). Overige attribuuttypen: Vervolgens moeten de andere attribuuttypen die horen bij het entiteittype opgesteld worden. Deze kunnen meestal uit de beschrijvingen bij het procesmodel afgeleid worden. Als dit niet zo is, kunnen ze uit de feitenkennis of extra interviews verworven worden. Informatieregels formuleren Bij het opstellen van een informatiemodel kunnen slechts een paar informatieregels grafisch of in de beschrijving worden weergeven. Alle overige bedrijfsregels moeten apart in tekst aan het model worden toegevoegd worden. Denk hierbij aan: 1. 2. 3. 4.
Attributen waarvan de waarde kan worden afgeleid van de waarden van andere attributen De toegestane waarden voor een attribuut De onderlinge afhankelijkheden tussen entiteittypen of tussen attributen De toegestane veranderingen in de status van een entiteittype
Overige regels informatiemodel Verder zijn er nog een aantal bijzondere gevallen bij het opstellen van een informatiemodel Objectivering In sommige gevallen kan een attribuuttype niet worden toegewezen aan een entiteittype, maar wordt deze bepaald door de relatie tussen 2 entiteittypen. Om dit te kunnen modelleren moet een relatietype geobjectiveerd worden. Dit houdt in dat er van een relatietype een entiteittype gemaakt wordt, en dat daaraan het attribuuttype wordt toegevoegd. Subtypen Een subtype is een entiteittype dat alle kenmerken heeft van het hoofdtype aangevuld met specifieke gegevens die alleen gelden voor het subtype. Deze wordt weergeven door een dikke, open pijl die vanuit het subtype naar het hoofdtype loopt. Er zijn 2 soorten subtypen 1. Niet-disjunct: subtypes die elkaar niet uitsluiten 2. Disjunct: Subtypes die elkaar wel uitsluiten Iemand kan bijvoorbeeld zowel manager als ondernemingsraadlid zijn (niet disjunct). Een medewerker kan niet tegelijkertijd een vaste medewerker zijn en een uitzendkracht (disjunct) Afleidbaarheid Soms kan een attribuuttype, als deze afleidbaar is van andere gegevens toch opgenomen worden in het model. Dit komt omdat in het model informatiebehoefte wordt vastgelegd. Als er behoefte is aan de betreffende informatie, mag het niet zomaar weggelaten worden. Dit geld alleen voor de structurele informatiebehoefte en niet voor de ad hoc informatiebehoeften.