Toelichting op dit erratum

Maat: px
Weergave met pagina beginnen:

Download "Toelichting op dit erratum"

Transcriptie

1 Toelichting op dit erratum Exameninstantie EXIN heeft de eindtermen van Object Oriented Analysis Advanced (OOAA) op een paar punten wat aangepast, waardoor de studiewijzer van de LOI niet meer 100% aansloot bij het examen. Het materiaal is inmiddels op een aantal punten herzien. In dit erratum vindt u deze aanpassingen. Als u de aanvullingen ook bestudeerd, bent u volledig voorbereid op het examen.

2 Inleiding Geen aanvullingen nodig.

3 Hoofdstuk 1 Analyse Basis diagrammen In het stuk tekst onder de inleiding, over de basis diagrammen, moet de opsomming van basis diagrammen als volgt zijn: Uiteindelijk werd er gekozen voor negen basis diagrammen: Use case, klassendiagram, objectdiagram, sequence- en communicatie diagram, activiteiten- en toestandsdiagram, componenten- en deployment-diagram. FURPS+ De tekst over FURPS+ moet als volgt zijn: Een vaak gebruikt geheugensteuntje om na te gaan of we aan alle categorieën van vereisten hebben gedacht, is FURPS+. FURPS staat voor Functionality, Usability, Relability, Performance en Supportability. Vrij vertaald komt dit neer op het volgende: hebben we wél aan alle functionele en bruikbaarheids vereisten (ergonomie) gedacht? Is het systeem voldoende betrouwbaar? Moet het systeem een bepaalde verwerkingssnelheid hebben, en hoe fout tolerant dient het systeem te zijn? De + staat voor Implementation, Interface, Operations, Packaging en Legal. Dus nog wat aanvullende eisen. Use case model De tekst voor afbeelding 3 moet als volgt zijn: In onderstaande tekening (het use case model) wordt het systeem afgebeeld als rechthoek, met daarin een ellips (de use case) die de functionaliteit van het systeem aanduidt. In dit voorbeeld bestaat het systeem slechts uit één use case. Dat kunnen er meerdere zijn. Een videotheek systeem zal niet alleen videocassettes uitlenen maar bijvoorbeeld ook moeten innemen, en inkopen. De lijnen geven aan wélke actor de geboden functionaliteit (direct of indirect) gebruikt. Deze lijnen worden associaties genoemd. De primaire actoren worden meestal aan de linkerkant in het diagram geplaatst, de secundaire aan de rechterkant. De actoren mogen meerdere keren in het diagram worden opgenomen. Dit geldt bijvoorbeeld voor actoren die zowel primair als secundair zijn. Als deze actor slechts eenmaal wordt opgenomen is de echter ook goed omdat de associaties bidirectioneel zijn. De tekst over de Blackbox moet als volgt zijn: Use cases gebruiken een black box-aanpak, dat wil zeggen: ze beschrijven de functionaliteit van een systeem, niet hoe deze functionaliteit technisch gerealiseerd wordt. Wat doet het systeem en niet hoe doet het systeem dat. De interne werking wordt niet beschreven.

4 Patterns De tekst voor de opsomming over enkele gekende analyse patterns moet als volgt zijn: Elk object krijgt een portie van het werk toebedeeld, en de objecten werken samen op een duidelijk gedefinieerde manier. In veel systemen zijn dezelfde soorten verantwoordelijkheden te vinden. Om niet telkens opnieuw daarvoor een oplossing te zoeken zijn deze oplossingen vastgelegd in zogenaamde patterns. Een pattern is een combinatie van een veel voorkomend probleem met een bijhorende standaardoplossing. Artefact De tekst onder de opmerking moet als volgt zijn: Tijdens analyse worden de volgende artefacten gebruikt: Use case diagram, Sequence diagram, Domeinmodel, Activiteitendiagram, Klassendiagram en Toestandsdiagram. Elk van deze diagrammen wordt hieronder kort toegelicht. Frame De tekst Frame moet als volgt zijn: Frame Zoals u uit de tekening kunt opmaken, zijn de system events (die van de actoren naar het systeem gaan) als volle pijl getekend, en de system responses worden als stippellijn pijlen weergegeven. Een klant kan meerdere cassettes uitlenen, en dit betekent dat het system event met de naam registercassette meerdere malen zal worden verstuurd naar het systeem. Er is dus sprake van herhaling. Om een lus te bouwen in een sequence diagram gebruikt u een interaction frame. Er zijn verschillende frames. In afbeelding 10 is het frame voor herhaling opgenomen. Links boven in de label (operator genoemd) staat dat het een herhaling is (loop). Dit frame dient ook een loop (lus) conditie te bevatten, die bepaalt hoe vaak de lus precies wordt uitgevoerd. De conditie (guard) staat tussen vierkante haken vermeld. Andere frames zijn: opt: als de conditie waar is dan wordt de inhoud van het frame uitgevoerd alt: als de conditie waar is dan wordt de inhoud van het eerste deel van het frame uitgevoerd, zoniet dan wordt gekeken of de conditie van het tweede deel van het frame mag worden uitgevoerd par: de verschillende delen van het frame (gescheiden door stippellijn) mogen parallel worden uitgevoerd ref en sd: deze twee frames horen bij elkaar. Zij kunnen diagrammen vereenvoudigen door verwijzingen te maken. sd wordt gezet om een geheel diagram met operator sd <naam>. In een ander diagram kan dit diagram worden gebruikt door een frame op te nemen met operator ref en een vermelding van <naam> in het frame zelf. Frames mogen worden genest, dat wil zeggen dat binnen een frame een ander frame mag worden opgenomen.

5 Multipliciteit De tekst bij Multipliciteit moet als volgt zijn: De notatie van een domeinmodel is in wezen identiek aan deze van een klassendiagram, met uitzondering van enkele aandachtspunten: methodes ontbreken in de concepten, en ook pijlpunten ontbreken op de associaties tussen de concepten. Inderdaad, in een domeinmodel zijn alle associaties bidirectioneel. Het is immers nog véél te vroeg om reeds een duidelijke richting aanwijzing op de associaties te plaatsten, want daar hebben we de methodes voor nodig. Methodes kunnen we slechts later (tijdens het maken van de communicatie diagrammen) ontdekken.

6 Tekst onder afbeelding 12 Onder afbeelding 12 (Activity- diagram voor Uitlenen van cassette ) dient de volgende tekst worden toegevoegd: Het model bestaat uit rechthoeken met afgeronde hoeken, de activiteiten genoemd, en de pijlen, de flow of control. Deze laatste geven de volgorde van de activiteiten aan. De volgorde kan worden bepaald door keuzes en door parallel uitvoerbare activiteiten. Zie onderstaande afbeelding. Elk diagram heeft een start- en eindpunt. De symbolen hiervoor worden ook in andere diagrammen gebruikt. Een extra toevoeging aan het diagram zijn de partities (in het verleden swimlanes genoemd). Dit zijn de verticale vlakken (Shop Mgr, System, Customer) in afbeelding 12. Deze geven aan welke rol welke activiteit uitvoert. Deze vlakken mogen ook horizontaal zijn, naar eigen voorkeur voorkeur. Statediagram Het begrip statediagram moet overal worden vervangen door toestandsdiagram. GOF De tekst bij GOF moet als volgt zijn: GOF patterns (Gang of Four) zijn nét iets technischer dan hun GRASP tegenhangers, en worden later in de design-fase ingezet door de designers, die het klassendiagram opstellen. In de familie van de GOF patterns vinden we een totaal van 23 patterns terug. Eén daarvan is de Composite. Dit pattern geeft een oplossing als het geheel en de delen daarvan op dezelfde wijze worden behandeld. Bijvoorbeeld een product bestaat uit een of meerdere andere subproducten. Elke subproduct wordt echter ook gezien als een product. Naast GRASP en GOF zijn er nog wel meer patterns gedefinieerd. Er wordt namelijk vanuit verschillende hoeken enthousiast gezocht naar patterns die het werk van de analist kunnen vergemakkelijken. Met succes overigens, want regelmatig worden nieuwe patterns ontdekt én voorgesteld op het internet. Dankzij dit medium kan iedereen die dat wenst feedback geven op de plausibiliteit van de patterns, en na grondige studie duiken de patterns dan vaak op in de technische literatuur. Quantity en Business entity zijn voorbeelden van patterns die recentelijk werden voorgesteld, maar die nog niet gecatalogiseerd zijn onder één enkele waaier zoals GRASP en GOF. Quantity. Dit pattern geeft een oplossing voor het problem van het vastleggen van eenheden. Bijvoorbeeld het vastleggen van het gewicht van een persoon kan bij die persoon, maar daarbij is niet duidelijk welke eenheid dat is. Is dat in kilogrammen, grammen of ponden? Problemen die hiermee samenhangen worden voorkomen door het gebruik van het Quantity pattern. Het Business entity pattern heeft als doel het scheiden van het concept business entiteit zoals een persoon of een bedrijf van de rol die zij vervullen. Bijvoorbeeld een persoon Piet kan zowel werknemer zijn als een klant. De persoon blijft hetzelfde maar de rol kan veranderen in de tijd.

7 Hoofdstuk 2 Statisch modelleren Common category list Het begrip common category list moet overal vervangen worden door Conceptual Class Category List. Verder worden de volgende regels toegevoegd aan de laatste alinea boven afbeelding 5: De moeilijkheid bij het verzamelen van al deze klassen van de stakeholders (belanghebbenden) is dat ieder zijn eisen, visie en prioriteiten heeft. Aan de tekst onder afbeelding 7 de volgende zinnen toevoegen: Deze laatste notatie is niet meer toegestaan in UML 2.1, maar omdat u deze toch nog vaak tegen kunt komen wordt deze toch nog even vermeld (ook in het proefexamen komt u deze notatie nog tegen). Bouwen van een domeinmodel Onder de opsomming deze tekst toevoegen: Description klasse Een description klasse en een klasse die informatie bevat over een andere klasse. Bijvoorbeeld een productbeschrijving is een description klasse van een aantal producten. De gegevens van een bepaalde verzameling producten is hetzelfde, het zijn allemaal dezelfde blauwe pennen met dezelfde verkoopprijs, gewicht etc. Als de pen wordt weggegooid blijven de gegevens over die pen bestaan, de pen zelf niet. Collaboratiediagram Het begrip collaboratiediagram in de hele tekst vervangen door het begrip communicatiediagram. UML objectdiagram Aan de tekst onder de kop UML objectdiagram moet de volgende tekst met bijbehorende afbeelding worden toegevoegd: Het objectdiagram is een weergave van objecten die gecreëerd zijn volgens de structuur in het klassadiagram. Een voorbeeld is hieronder te vinden. De videotheek Acht heeft 3 Klanten waaraan het leent.

8

9 Hoofdstuk 3 - Statisch Modelleren Detailleringen Associaties en Attributen De zin over de attributen moet als volgt worden aangepast: Verder is het ook aangewezen om de visibiliteit van elk attribuut duidelijk te noteren met een minusteken ( ) voor private, een plusteken (+) voor public, een een sharp (#) voor protected. Derived attributes Na de tekst over OCL de volgende tekst toevoegen: Identificatie In de traditionele systeemontwikkeling (relationele modellen) is het gebruikelijk dat elke entiteit een eigen unieke sleutelwaarde krijgt. In objectoriëntatie is dit niet nodig. Objecten krijgen geen identifier mee in de vorm van bijvoorbeeld een uniek nummer of code. Ieder object heeft per definitie al een unieke identiteit. Dit neemt niet weg dat het gebruik van de oude identificatie voor gebruikers makkelijk is als zoekcriterium (net zoals de naam van een klant) en dat je ze vaak zult tegenkomen, maar ze zijn dus niet noodzakelijk (en als ze gebruikt worden zijn zij geen identificatie van objecten)! Association class De alinea onder de eerste opmerking moet als volgt worden aangevuld: U mag dus A met C verbinden door middel van een associatieconcept dat de naam B draagt. Voorwaarde is wel dat B ontstaat zodra de link tussen A en C ontstaat en dat B verdwijnt zodra deze link verdwijnt. Toepassen van Inheritance De tekst Super and Sub classes moet als volgt zijn: Super and Sub classes De basisklasse of het basisconcept waar men van overerft noemen we de superclass. De overervende klasse wordt subclass genoemd. Indien we deze subclass opnieuw als basis nemen om van over te erven, dan wordt deze subclass een superclass in de context van de overervende subclass. De subclass erft alle attributen, methoden en associaties van de superclass. Dit betekent dat deze slechts in de superclass vermeld hoeven worden. Is de definitie, implementatie van een of meer van deze eigenschappen anders in de subclass, dan wordt deze eigenschap opnieuw vermeld in deze subclass. Dit wordt overriden genoemd. Daarnaast kan elke subclass eigen attributen, methoden en associaties hebben. Deze worden dan alleen in de subclass vermeld. Op deze manier kunnen we dus een complexe hiërarchie van klassen of concepten bouwen.

10 Ook spreken we over specialisatie en generalisatie -afhankelijk van de manier waarop we het diagram interpreteren. In het volgende voorbeeld staat een basisklasse die we Voertuig hebben genoemd, en waarvan een klasse Auto overerft. De tekst onder afbeelding 5 moet als volgt luiden: In dit voorbeeld is de Auto een specialisatie van Voertuig. Een Auto kan via overerving de eigenschappen en gedragingen van een Voertuig gebruiken, maar kan hier zelf ook dingen aan toevoegen. We denken dan aan specifieke eigenschappen (attributen) en methodes (verantwoordelijkheden) van een auto, die niet terugkomen in Voertuig. Het Voertuig noemen we een generalisatie van de klasse Auto. De Auto erft het attribuut kleur en de methode start() van Voertuig en daarnaast heeft het de eigen attributen pk en type en de methode accelereer() en stop(). Merk op dat overerving géén verplichting inhoudt tot het gebruik van de attributen en methodes van de superclass, het is slechts de mogelijkheid tót het gebruik die geboden wordt. Inheritance and Analysis Patterns Bij de oplossing in de opsomming Statusdiagram vervangen door Toestandsdiagram. Extend De tekst onder afbeelding 13 als volgt aanpassen: De extend-pijl loopt van Use case B náár Use case A. Men stelt dat Use case A uitgebreid wordt door Use case B. Dit gedrag is optioneel, de functionaliteit van B wordt dus niet bij élke uitvoering van A aangeroepen. Het is mogelijk om in use case A aan te geven bij welke stap use case B wordt gebruikt. Dit kan door een horizontale lijn in use case A te tekenen en daaronder die stap te noemen. Dit is dan ook meteen de reden waarom we de call naar Use case B niet in de happy flow (main scenario) terugvinden. Het is immers uitzonderlijk, dan wel alternatief gedrag. In de Videotheek kan een klant bijvoorbeeld tijdens het registratieproces van de mediadragers plots beslissen dat hij die dvd s eigenlijk toch niet wil. Het annuleren van de registratie zou men dan als extend (het is immers een optioneel gedrag) van Uitlenen van Media dienen op te nemen in het Use case diagram. In het cross-references deel van de Use case template geeft men opnieuw aan dat er een relatie bestaat tussen Use case A en Use case B.

11 Hoofdstuk 4 Dynamisch modelleren Ook in dit hoofdstuk overal de volgende termen vervangen: - collaboratiediagram: communicatiediagram - statusdiagram: toestandsdiagram SSD-Notatie tips Na de alinea onder afbeelding 4 de volgende tekst en bijbehorende afbeelding toevoegen: lifeline Een lifeline ontstaat op het moment dat een object wordt gecreëerd (create) en verdwijnt op het moment dat deze wordt beëindigd (destroy). Dit is terug te vinden in het diagram door de verticale positie van het object en de lifeline die daarbij hoort. Het object hoeft dus niet bovenaan in het diagram te staan maar kan bijvoorbeeld halverwege staan en de lifeline kan halverwege het diagram eindigen. De tekst onder het voorbeeld, beginnend met parate kennisvraag 8, en eindigend bij de kop De essentie van SSD, moet vervangen worden door de volgende tekst: [P8]Eventuele parameters worden tussen haakjes, achteraan de naam van het system event toegevoegd (met eventueel het type: message (parameter : parametertype) ). Ook al zijn er geen parameters, toch moeten de haakjes geplaatst worden. Het systeem kan op elk system event reageren met een system response (antwoord van het systeem). System responses zijn gemakkelijk herkenbaar: ze worden steeds in stippellijn weergegeven. Het is wel even opletten bij

12 een antwoord naar een menselijke actor, deze kan immers nooit parameters bevatten! Een alternatief is om niet de response te tekenen maar de response in het system event op te nemen: return = message (parameter : parametertype) : returntype. Return is de variabele waarin de response komt. Optioneel is met returntype aan te geven van welke type dat antwoord is bijvoorbeeld datum. Er wordt niet altijd (direct) een antwoord (response) verwacht van het systeem. Indien er niet op een antwoord wordt gewacht spreekt men van een asynchroon event, indien dit wel het geval is een synchroon event. De notatiewijze verschilt. De pijlkop is bij een synchroon event dicht (zie afbeelding 4), bij een asynchroon event open ( ). De herhaling (lus) en beslissingen in een sequence-diagram is al eerder besproken. Zie hiervoor hoofdstuk 3. De analyse van de Use case-tekst kan uitwijzen dat het systeem, als reactie op een system event, autonoom processen gaat opstarten. Dit moeten we ook in het sequence-diagram opnemen, en wel in de vorm van events naar self of this. Deze system events worden getekend als pijl van systeem naar systeem. In de SSD-afbeelding staan meerdere voorbeelden die dit gedrag uitbeelden. Delegation Om een bepaalde verantwoordelijkheid te kunnen uitvoeren moet een object samenwerken met andere objecten. Als een object zijn verantwoordelijkheid naar een ander object verplaatst/doorgestuurd dan wordt dat delegation genoemd. Dus het verzoek zelf wordt doorgezet naar een ander object. UML-Communicatiediagram De eerste twee zinnen vervallen. Iteration Onder de tekst over Iteration de volgende extra tekst toevoegen: Condition Condities kunnen in het diagram worden opgenomen door de conditie tussen vierkante haken [] op te nemen bij de message. Bijvoorbeeld 1 [kleur = rood] : berekentotaal(). Als er meerdere mogelijkheden, één van de condities is waar, dan wordt er gebruik gemaakt van letters om deze alternatieven aan te geven. Er wordt altijd begonnen met a. Bijvoorbeeld 1a [kleur = rood] : berekentotaal() 1b [kleur = blauw] : berekensubtotaal() Als er als gevolg van bericht 1 een aantal andere berichten moeten worden uitgewisseld voordat bericht 2 mag worden verstuurd, dan worden die subberichten met subnummering uitgerust. Dat wil zeggen achter het nummer van bericht 1 wordt een nieuwe nummering gestart: bijvoorbeeld 1.1 en 1.2. Dit kan ook in combinatie met de alternatieven. Dit zou dan bijvoorbeeld 1a.1 en 1a.2 kunnen worden.

13 UML State Machine Diagram De tekst van de paragraaf UML State Machine Diagram in zijn geheel vervangen door de volgende tekst: UML state machine diagrammen (in het Nederlands ook wel toestandsdiagram genoemd) tonen de diverse toestanden waarin een UML-artefact zich kan bevinden, en de overgangen (transities) tussen die toestanden. Het toestandsdiagram (vroeger genoemd state diagram) kan gemaakt worden om de status van een Use case, een object of ander UML-artefact te tonen. Een toestand vertegenwoordigt een stadium in het gedragspatroon van een object. Een eerste toestand, ook een creation state genoemd, is de status waarin het object zich bevindt wanneer het eerst wordt gecreëerd. Een definitieve toestand of end state is er één van waaruit men geen transities meer kan afleiden. Elke transitie in het toestandsdiagram duidt op de overgang van een state naar een andere, en zal worden teweeggebracht door een event. States worden voorgesteld als rond gemaakte rechthoeken en een object start in een initiële state en eindigt in een state. Voor start en eind worden dezelfde symbolen gebruikt als bij het activity diagram. Onderstaande afbeelding toont een eenvoudige toestandsdiagram. Als het Lichtobject aangemaakt wordt, is het in de status Licht Uit. Zodra er een event on wordt gedetecteerd, verandert de status naar Licht Aan. Omgekeerd zal een off event de status opnieuw laten overgaan naar Licht Uit. Indien het licht uit is, en men detecteert een off event, dan blijft de lichtschakelaar in de status Licht Uit (gaat van Licht Uit naar Licht Uit ). In het model is dat weergegeven door de self transitie. Eigenlijk heeft dit geen betekenis in het voorbeeld zolang er niets gebeurt (action).

14 Transities [P19]Transities of overgangen worden voorgesteld door pijlen tussen de states. De notatie van de labels op de transities is als volgt: event naam van het event dat de transitie triggert [guard condition] een conditie die bepaalt of de transitie ja dan neen wordt uitgevoerd /action aanroepen van een methode van het object waarvan de state wordt voorgesteld. Merk op dat slechts het aangeven van een event verplicht is, guard conditie en actie zijn optioneel. Guard condities kunnen op om het even welke manier, met inbegrip van zowel vrije vormteksten als formele taal worden beschreven. Een voorbeeld van het toevoegen van een action voor de transitie van Licht uit naar Licht aan zou kunnen zijn: on / hogepiep(). Dit zou bijvoorbeeld handig kunnen zijn bij blinden die dan de boodschap krijgen dat het licht is aangegaan. Er kan echter nog meer worden weergegeven in het model. Het is mogelijk om in de status aan te geven wat er gebeurt als deze status wordt bereikt, wat er moet gebeuren zolang deze status actief is en wat er gebeurt als deze status wordt verlaten. Hiervoor worden respectievelijk de termen entry / <operatie>, do/ <operatie> en exit / <operatie> gebruikt. Dit wordt opgenomen in de status zelf onder de naam van de status. Ook in dit diagram is het mogelijk om zaken parallel uit te voeren en/of te synchroniseren. Een object kan zich dan in meerdere verschillende substatussen tegelijkertijd bevinden (nesting) en naar een andere status gaan afhankelijk van de event en/of guard. Een voorbeeld is hieronder te vinden.

15 In dit diagram A wordt begonnen in toestand A en wordt bij event 1 overgegaan naar toestand B. Meer specifiek naar subtoestand1 want het startsymbool gaat direct naar subtoestand1. Op het moment dat event 2 plaatsvindt wordt de overgang naar toestand C gemaakt. Vindt event 3 plaats dan de overgang naar subtoestand2. Het bijzondere in dit voorbeeld is dat van de contour ook een statusovergang is aangegeven, event 5. Dit betekent dat als toestand B geldt (ongeacht dus of dit subtoestand1 of 2 is) dat de overgang bij event 5 gemaakt wordt naar subtoestand 2. Een ander voorbeeld daarvan is dat als event 4 plaatsvindt en de status is toestand B dat wordt overgegaan naar toestand D. In diagram B en C staat aangegeven hoe parallel (stippellijn tussen de parallelle statussen) en synchronisatie (verticale/horizontale balken) wordt weergegeven.

16 Essentie van het toestandsdiagram Het gebruik van toestandsdiagrammen is optioneel. Er moet een duidelijke toegevoegde waarde zijn bij het maken van dit diagram. Analyseer het aantal mogelijke states van een artefact, en ga na of het artefact op een andere manier reageert afhankelijk van zijn status. Alle dynamische artefacten kunnen baat hebben bij dit type diagram, maar in de praktijk zal het vooral gebruikt worden om de toestanden van objecten uit te beelden. UML Timing-Diagram Aan de paragraaf over het UML Timing-Diagram moet de volgende zin en bijbehorende afbeelding toegevoegd worden: Een andere weergave van het Timing-Diagram is de volgende: OCL De tekst van de paragraaf OCL vervangen door de volgende tekst: De Object Constraint Language is een geformaliseerde taal, die we kunnen gebruiken om de beperkingen op niveau van de attributen en methodes in uit te drukken. Er zijn een viertal constraints in OCL uit te drukken: Invariant inv: Preconditie pre: Postconditie post: Guard zie de state machine diagram. Wordt hier verder niet meer behandeld. Constraints worden aan de UML diagrammen toegevoegd als stukjes tekst in een note, die dan wordt gelinkt aan een bepaald artefact. De naam van de class die de OCL dient te respecteren wordt de context genoemd. Invariants OCL maakt gebruik van zogenaamde invariants die dienen gerespecteerd door alle objecten van de klasse waarvoor de OCL gedefinieerd is. Het testen van een OCL kan dus alleen gebeuren door de klasse te instantiëren: klassen zijn immers statisch en vertonen geen gedrag. Invariants worden gebruikt om de waarden van attributen te controleren, en deze laatste krijgen een waarde toegekend in de objecten. De term invariant slaat op het feit dat de beperking steeds geldig moet zijn, ongeacht de toestand van het object. De volgende afbeelding bevat een aantal constraints.

17 In de tekening zien we een associatie tussen een klasse Vlucht en Vliegtuig. Dankzij de constraints kunnen we uitdrukken dat een Vlucht van type cargo enkel vracht mag bevatten, en een Vlucht van type passagier enkel passagiers. Hieronder wat meer gedetailleerde uitleg bij het voorbeeld: Context Vlucht we plaatsen ons in de context van de klasse vlucht. inv: type=cargo implies Vliegtuig.type=cargo de eerste invariant drukt uit dat indien het attribuut type (van de Vlucht) gelijk is aan cargo, het attribuut type (van Vliegtuig) ook de waarde cargo dient te hebben. Het keyword implies is gestandaardiseerde OCL, en betekent het volgende: indien de vermelding links van implies naar true evalueert, dient wat rechts van implies staat eveneens naar true te evalueren, zoniet wordt de invariant niet gerespecteerd. inv: type=passagier implies Vliegtuig.type=passagier de tweede invariant doet precies hetzelfde als de eerste, maar dit keer controleren we of het type van de Vlucht en Vliegtuig gelijk is aan passagier. We hebben de UML-tekening dus preciezer gemaakt door het toevoegen van beperkingen. Deze beperkingen kunnen bovendien door bepaalde case tools worden geïnterpreteerd, en komen dan uiteindelijk ook in de code terecht. Uitgangspunt in de expressie is dus de context, het object waar vanuit wordt gekeken. Het woord self wordt gebruikt in de expressie om naar dit object te refereren, maar mag ook worden weggelaten als dit geen verwarring kan geven. Bijvoorbeeld Context Klant Inv: self.leeftijd > 0 is hetzelfde als Context Klant Inv: leeftijd > 0. Wat ook mag ik het object een naam geven en deze naam gebruiken om te verwijzen naar dat object. Dus Context Klant : K Inv: K.leeftijd > 0. K is dus naam waarmee verwezen wordt naar het object Klant. Indien er tussen het object Vliegtuig en Klant twee associaties bijv met rolnamen passagier en betaler bestaan kan het zo zijn dat je die Klant wilt die passagier is. Je kunt die Klant gebruiken die passagier is vanuit de context van Vliegtuig door die in het pad te benoemen door de rolnamen te gebruiken. In dit geval Context Vliegtuig inv: self.passagier.. Op deze wijze kun je van object naar object lopen in het model om de constraints te definiëren (door telkens een punt te plaatsen). Dit moet natuurlijk wel kloppen met het model.

18 De constraint zelf mag ook een naam gegeven worden. Die naam wordt dan gezet voor de invariant zelf (dus na de inv:). Bijvoorbeeld Context Passagier Inv controleleeftijd : leeftijd > 0. Om attributen of operaties aan te duiden van een object wordt eerst het object genoemd, gevolgd door een punt en dan gevolgd door de naam van het attribuut of operatie. Zie in het voorbeeld Vliegtuig.type. De gebruikelijke operatoren mogen worden gebruikt in de expressie zoals +, -, *, /, >, <, =, <>, <=, >=. Daarnaast mag ook gebruik gemaakt worden if, else en endif, and, or, xor, not. En nog veel meer. Er zijn ook operaties voor verzamelingen (multiobjecten) maar deze worden hier verder niet besproken. Pre- en postconditie Voor de controle van operaties gebruikt men ook constraints, maar dan vaak in de vorm van pre - en postcondities. De context wordt in het geval van operaties Context <object>:: <operatie>. Bijvoorbeeld Context Bestelling :: verstuur() heeft betrekking op de operatie verstuur van object Bestelling. We kunnen dan vervolgens een preconditie en/of een postconditie hierbij beschrijven. Een voorbeeld: Context Bestelling::voegToeArikel() Post: self.totaal = self.totaal@pre + Artikel.prijs

19 Hoofdstuk 5 - Modelmanagement Ook in dit hoofdstuk overal de volgende termen vervangen: - collaboratiediagram: communicatiediagram - statusdiagram: toestandsdiagram Dependency pijl Onder de tekst na de kantkop dependency pijl, voor de de tekst over de namespace, moet de volgende tekst worden toegevoegd: Een element is eigendom van de package waarin het is gedefinieerd. Dus A is eigendom van de package Sales, maar er kan aan worden gerefereerd in een ander package. Dus A kan worden opgenomen in package Products door eraan te refereren. Dit gebeurt door het element A op te nemen in package Products met als label Sales::A. Dus notatie PackageName::ElementName. Dan kan de associatie tussen A en Z worden opgenomen, maar wel binnen de package. Inzendopgaven In opgave 5 en 7 dient u bij antwoord A respectievelijk antwoord D collaboratiediagram te vervangen door communicatiediagram.

case: toestandsdiagrammen

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

Nadere informatie

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

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

Nadere informatie

BRP-BZM Use Case Realisations Guidelines

BRP-BZM Use Case Realisations Guidelines BRP-BZM Use Case Realisations Guidelines Versie 2.0 02-09-2011 Definitief Versiehistorie Datum Versie Auteur 23-12-2010 0.1 Eerste versie R.F. Schaaf 04-01-2011 1.0 Feedback verwerkt R. Schaaf en D. Geluk

Nadere informatie

OOAA. Object Oriented Analysis Advanced. Arie Bubberman 12/10/2009

OOAA. Object Oriented Analysis Advanced. Arie Bubberman 12/10/2009 OOAA Object Oriented Analysis Advanced Arie Bubberman 12/10/2009 Contents 1 Analyse...3 Kiezen van een ontwikkelproces...3 Agile Methoden...3 Deelprocessen in het OO-ontwikkelproces...Fout! Bladwijzer

Nadere informatie

Interactie diagrammen

Interactie diagrammen Interactie diagrammen Use case Verhaaltje Interactie van gebruiker (actor) met systeem In een vast formaat Analyse van functionele vereisten Interactie diagrammen Vertrekken van use cases Interactie van

Nadere informatie

1. Welke diagrammen beschrijven het dynamisch gedrag van een applicatie?

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

Nadere informatie

UML is een visuele taal om processen, software en systemen te kunnen modeleren.

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

Nadere informatie

Object Oriëntatie Foundation (OOF.NL)

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

Nadere informatie

Deel I Hoofdstuk 4: Modelleren van Toestand

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

Nadere informatie

Les F-02 UML. 2013, David Lans

Les F-02 UML. 2013, David Lans Les F-02 UML In deze lesbrief wordt globaal beschreven wat Unified Modeling Language (UML) inhoudt. UML is een modelleertaal. Dat wil zeggen dat je daarmee de objecten binnen een (informatie)systeem modelmatig

Nadere informatie

Deel I Hoofdstuk 6: Modelleren van interactie

Deel I Hoofdstuk 6: Modelleren van interactie Deel I Hoofdstuk 6: Modelleren van interactie 2005 Prof Dr. O. De Troyer, pag. 1 Introductie Interactiemodellen beschrijven de interactie die plaats vindt tussen objecten Toestandsmodellen beschrijven

Nadere informatie

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

Nadere informatie

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

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

Nadere informatie

Domeinmodellen en klassendiagrammen

Domeinmodellen en klassendiagrammen Overview Architectuur Deployment-diagram Software-architectuur 1 Architectuur Deployment-diagram Software-architectuur 2 3 Architectuur Architectuur Deployment-diagram Software-architectuur Webapplicatie

Nadere informatie

Voorbeeld. public class BankRekening {

Voorbeeld. public class BankRekening { OCL Constraints Eigenschappen die op bepaalde momenten altijd voldaan moeten zijn Belangrijk voor bug-vrije programma s Contract tussen implementator & gebruiker Vier soorten Preconditie: conditie die

Nadere informatie

Een inleiding in de Unified Modeling Language 79

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

Nadere informatie

Unified Modeling Language ACTIVITY DIAGRAMS

Unified Modeling Language ACTIVITY DIAGRAMS Unified Modeling Language ACTIVITY DIAGRAMS Alle Metzlar UML 19 augustus 2014 Inleiding Use case diagrammen laten zien wat het (informatie)systeem zou moeten doen. Activiteiten diagrammen laten zien hoe

Nadere informatie

Eindtoets. Opgaven. 1 Gegeven is het domeinmodel van figuur 1. Domeinmodel voor betalingen. Eindtoets I N T R O D U C T I E.

Eindtoets. Opgaven. 1 Gegeven is het domeinmodel van figuur 1. Domeinmodel voor betalingen. Eindtoets I N T R O D U C T I E. Eindtoets I N T R O D U C T I E Deze eindtoets is bedoeld als voorbereiding op het tentamen. Het is belangrijk dat u de eindtoets pas probeert te maken op het moment dat u denkt klaar te zijn met de tentamenvoorbereiding.

Nadere informatie

3.1 Opsomming data type

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

Nadere informatie

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.

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

Nadere informatie

Toegepaste notatiewijzen DLA software

Toegepaste notatiewijzen DLA software Toegepaste notatiewijzen DLA software Bert Dingemans info@dla-architect.nl Inleiding In de DLA Software wordt gebruik gemaakt van een aantal notatiewijzen voor het opstellen van een object- en procesmodel.

Nadere informatie

DATAMODELLERING BEGRIPPENBOOM

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.

Nadere informatie

Inhoudstafel. UML (Unified Modeling Language)

Inhoudstafel. UML (Unified Modeling Language) UML (Unified Modeling Language) Inhoudstafel Inleiding...2 Waarvoor dient UML...2 Wat is UML... 2 Use-cases... 2 Inleiding...2 Voorbeeld...3 Eigenschappen van een goede use-case...3 Wat is een actor...4

Nadere informatie

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium Zelftest OOAD/UML Document: N0767Test.fm 30/08/2010 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is gebaseerd op de inhoud van onze cursus OO

Nadere informatie

Objectgericht Ontwerpen

Objectgericht Ontwerpen Objectgericht Ontwerpen Probleem Analyse Ontwerp Code Unified Modelling Language Doel Hulpmiddel bij nadenken Hulpmiddel communicatie met collega s Documentatie van code In dit vak Leren door doen Project

Nadere informatie

Presentatie Jaarproject. Nils De Moor Sam Verboven

Presentatie Jaarproject. Nils De Moor Sam Verboven Presentatie Jaarproject Nils De Moor Sam Verboven Story Driven Modelling Story Diagrams UML class / activity / colaboration diagrams Operatoren : - Diagram begint bij - Doorloopt activities (onderling

Nadere informatie

UML. From weblog http://dsnippert.wordpress.com. Dennis Snippert

UML. From weblog http://dsnippert.wordpress.com. Dennis Snippert UML From weblog http://dsnippert.wordpress.com Naam: Dennis Snippert Inhoudsopgave 1. Wat is Uml?... 3 2. UML diagrammen... 4 3. Uitleg diagrammen... 5 3.1. Usecase diagram:... 5 3.2. Class diagram:...

Nadere informatie

Die inputs worden op een gecontroleerde manier aangeboden door (test) stubs. De test driver zorgt voor de uiteindelijke uitvoering ervan.

Die inputs worden op een gecontroleerde manier aangeboden door (test) stubs. De test driver zorgt voor de uiteindelijke uitvoering ervan. Nota: Schrijf je antwoorden kort en bondig in de daartoe voorziene velden. De puntenverdeling is 2 punten per theorie-vraag en 8 punten per oefening. Het totaal is 40. Vraag 1. Er bestaan verschillende

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

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 tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Programmeren in Java 3

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

Nadere informatie

Hoofdstuk 9: Object Constraint language (OCL) Prof. Dr. Olga De Troyer. Constraints

Hoofdstuk 9: Object Constraint language (OCL) Prof. Dr. Olga De Troyer. Constraints Hoofdstuk 9: Object Constraint language (OCL) Prof. Dr. Olga De Troyer 2005 Prof Dr. O. De Troyer, pag. 1 Constraints UML s notatie is grafisch Goed voor het uitdrukken van structurele eigenschappen van

Nadere informatie

Module 1 Programmeren

Module 1 Programmeren Module 1 Programmeren Programmeertalen 13 1.1 Inleiding 13 1.2 Programmeertalen in historisch perspectief 13 1.2.1 Machinecode 13 1.2.2 Assembleertalen (assembly) 14 1.2.3 Hogere programmeertalen 15 1.2.4

Nadere informatie

gewoon Start Event (Gebeurtenis) Deze lege cirkel, met dunne rand, geeft de aanvang (start) van het proces weer.

gewoon Start Event (Gebeurtenis) Deze lege cirkel, met dunne rand, geeft de aanvang (start) van het proces weer. BPMN 1.2 basis elementen en hun betekenis, core 2 Onderstaande tabel geeft een overzicht van de meest gangbare basis elementen van BPMN met telkens een beknopte toelichting. Hiermee kan men aan de slag

Nadere informatie

Oplossingen voor het testen van objectgeoriënteerde software

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

Nadere informatie

DATAMODELLERING ARCHIMATE DATA- & APPLICATIEMODELLERING

DATAMODELLERING ARCHIMATE DATA- & APPLICATIEMODELLERING DATAMODELLERING ARCHIMATE DATA- & APPLICATIEMODELLERING Inleiding In dit whitepaper wordt de datamodelleervorm ArchiMate data- & applicatiemodellering beschreven. Deze modelleervorm staat in verhouding

Nadere informatie

Unified Modeling Language

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

Nadere informatie

Abstraheren van modellen

Abstraheren van modellen Abstraheren van modellen Geert Delanote 7 maart 2005 Geert.Delanote@cs.kuleuven.ac.be Software Development Methodology 1 Inhoudstafel Motivatie Denkpistes Software Development Methodology 2 Motivatie Verslag

Nadere informatie

DATAMODELLERING BASIS UML KLASSEMODEL

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.

Nadere informatie

Oplossingen voor het testen van objectgeoriënteerde software

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

Nadere informatie

Naam:... INFO / WIS-INF / ASIB / IAJ. Theorie

Naam:... INFO / WIS-INF / ASIB / IAJ. Theorie Theorie Beantwoord onderstaande vragen (elke vraag staat op 3 punten) door de antwoordzinnen KORT aan te vullen. 1. Wat doe je wanneer je de risico's projecteert (afschat)? Welke categorieën van risico's

Nadere informatie

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces. Hoofdstuk 1: Inleiding Objectoriëntatie: 1. Objecten & klassen: samenwerking van componenten om bepaald doel te bereiken; herbruikbaarheid. 2. Encapsulation: afschermen gedragingen en kenmerken van de

Nadere informatie

Module Softwaresystemen (201300071) Toets Ontwerpen, 4 december 2013 8:45 12:15

Module Softwaresystemen (201300071) Toets Ontwerpen, 4 december 2013 8:45 12:15 Module Softwaresystemen (201300071) Toets Ontwerpen, 4 december 2013 8:45 12:15 Verschillende opgaven worden nagekeken door verschillende personen. Maak daarom iedere opgave op een apart vel. Het is toegestaan

Nadere informatie

HOGESCHOOL ROTTERDAM

HOGESCHOOL ROTTERDAM HOGESCHOOL ROTTERDAM IAN02 - Informatie-analyse (objectgeoriënteerde analyse) M O D U L E W I J Z E R I A N 0 2 1 V A N 1 5 Modulecode: IAN02 Modulenaam: Informatieanalyse 2 Belasting (aantal cp): 2 Bestemd

Nadere informatie

Tentamen in2705 Software Engineering

Tentamen in2705 Software Engineering Tentamen in2705 Software Engineering Voorbeeld (bijna tweemaal te groot) U mag meenemen naar dit tentamen: Lethbridge, afdrukken PPT slides, afdrukken handouts. 1. De TU wil een nieuw systeem ontwikkelen

Nadere informatie

voorbeeldexamen I-Tracks voorbeeldexamen ISDDF Information Systems Design and Development Foundation uitgave april 2005

voorbeeldexamen I-Tracks voorbeeldexamen ISDDF Information Systems Design and Development Foundation uitgave april 2005 voorbeeldexamen Information Systems Design and Development Foundation I-Tracks voorbeeldexamen ISDDF Information Systems Design and Development Foundation uitgave april 2005 inhoud 3 inleiding 4 voorbeeldexamen

Nadere informatie

Inhoud. Deel een Het ontwikkeltraject 13. Inleiding 11

Inhoud. Deel een Het ontwikkeltraject 13. Inleiding 11 5 Inhoud Inleiding 11 Deel een Het ontwikkeltraject 13 1 Werken binnen organisaties 15 1.1 Non-profit-organisatie 15 1.2 Profit-organisatie 16 1.3 Doelen 16 1.4 Rechtsvormen 16 Rechtspersoon 17 Persoonlijke

Nadere informatie

Programmeren in Java les 3

Programmeren in Java les 3 4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een

Nadere informatie

Petri-netten in Protos: wat moet je ermee?

Petri-netten in Protos: wat moet je ermee? Petri-netten in Protos: wat moet je ermee? Dr.ir. Hajo Reijers Faculteit Technologie Management, TU Eindhoven e-mail: h.a.reijers@tm.tue.nl Agenda Petri-netten klein beetje geschiedenis wat is het nou

Nadere informatie

Problemen met platte toestandsdiagrammen

Problemen met platte toestandsdiagrammen Deel I Hoofdstuk 5: Modelleren van toestand -- gevorderd 2005 Prof Dr. O. De Troyer OO modelleren pag. 1 Problemen met platte toestandsdiagrammen Bij complexe systemen krijgt men een explosie van toestanden

Nadere informatie

Kenmerken van DLArchitect

Kenmerken van DLArchitect Kenmerken van DLArchitect Bert Dingemans, e-mail : bert@dla-os.nl www : http://www.dla-os.nl 1 Inhoud KENMERKEN VAN DLARCHITECT... 1 INHOUD... 2 INLEIDING... 3 ARCHITECTUUR... 3 Merode... 3 Methode en

Nadere informatie

Deel I Hoofdstuk 2: Het klassenmodel

Deel I Hoofdstuk 2: Het klassenmodel Deel I Hoofdstuk 2: Het klassenmodel 2005 Prof Dr. O. De Troyer Klasse Model pag. 1 Hoofdstuk 2: Het klassenmodel Het Klassenmodel Beschrijft de statische structuur van een systeem door middel van Het

Nadere informatie

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 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;

Nadere informatie

case: ocl-expressies

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

Nadere informatie

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

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

Nadere informatie

DATAMODELLERING ARCHIMATE DATAMODELLERING

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.

Nadere informatie

De keuzestructuur. Versie DD

De keuzestructuur. Versie DD De keuzestructuur Versie DD Tot nu toe Programma in rechte lijn = sequentie of opeenvolging Nieuw Vertakking in parcours = selectie of keuzestructuur Controlestructuren Opeenvolging = sequentie Keuze =

Nadere informatie

Keteininformatiemodellering op basis van UML

Keteininformatiemodellering op basis van UML 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...

Nadere informatie

Unified Modeling Language

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

Nadere informatie

Noties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst

Noties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst s Informatica Hoofdstuk 1 Object Klasse Methode Parameters Type Velden Toestand Compiler Resultaten (returnwaarde) In java fungeren objecten als een model voor de elementen waarin een probleem kan worden

Nadere informatie

case: sequence- en communicatiediagrammen

case: sequence- en communicatiediagrammen Hoofdstuk 11 case: sequence- en communicatiediagrammen In dit hoofdstuk wordt het maken van de eerste versie van de sequence- en communicatiediagrammen voor het boodschappensysteem van Hans en Jacqueline

Nadere informatie

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

het bank voorbeeld ISO Datamodelleren modelleren met het E-R R model een database ontwerpen verzamelingen van relaties (verbanden) het bank voorbeeld ISO Datamodelleren Prof. dr. Paul De Bra waarom zijn er drie tabellen om klanten en rekeningen voor te stellen? customer (customer_name, customer_street, customer_city) account (account_number,

Nadere informatie

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

Nadere informatie

toon overzicht personeel toonoverzichtpersoneel() getpersoneelsleden() getgegevens() overzicht : Magazijnconsole : VoorraadBeheer : Produktsoort

toon overzicht personeel toonoverzichtpersoneel() getpersoneelsleden() getgegevens() overzicht : Magazijnconsole : VoorraadBeheer : Produktsoort Antwoorden hoofdstuk 0 ) In de class Restaurant vindt er als gevolg op de aanroep getpersoneelsleden() weer een aanroep getpersoneelsleden() plaats. De methode roept zichzelf dus aan volgens dit diagram.

Nadere informatie

VAN USE CASE NAAR TEST CASE ORDINA SMART COMPETENCE CENTER

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

Nadere informatie

beschrijvingstechnieken bij systeemontwikkeling

beschrijvingstechnieken bij systeemontwikkeling 1 Bijlage 8 Alternatieve (UML) beschrijvingstechnieken bij systeemontwikkeling De in hoofdstuk 3 weergegeven beschrijvingstechnieken voor de beschrijving van de informatietechnologie is summier. Er wordt

Nadere informatie

DATAMODELLERING DATA MAPPING MODEL

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

Nadere informatie

Archimate risico extensies modelleren

Archimate risico extensies modelleren Archimate risico extensies modelleren Notatiewijzen van risico analyses op basis van checklists versie 0.2 Bert Dingemans 1 Inleiding Risico s zijn een extra dimensie bij het uitwerken van een architectuur.

Nadere informatie

case: applicatie- en implementatiemodellen

case: applicatie- en implementatiemodellen Hoofdstuk 17 case: applicatie- en implementatiemodellen In dit hoofdstuk wordt het maken van de applicatie- en implementatieversies van de diagrammen voor EasyShop, het maaltijdsysteem van en, uitgewerkt.

Nadere informatie

Systeem modellen. Topics covered

Systeem modellen. Topics covered Systeem modellen Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 8 Slide 1 Topics covered Context models Behavioural models Data models Object models CASE workbenches Ian Sommerville 2004

Nadere informatie

Project network. Gebaseerd op paragrafen , uit het boek. We simuleren een sociaal netwerk

Project network. Gebaseerd op paragrafen , uit het boek. We simuleren een sociaal netwerk Project network Gebaseerd op paragrafen 10.1-10.7, 11.1-11.6 uit het boek. We simuleren een sociaal netwerk Er zijn twee soorten berichten: tekstberichten en fotoberichten,... voorgesteld door de klassen

Nadere informatie

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c Een Minimaal Formalisme om te Programmeren We hebben gezien dat Turing machines beschouwd kunnen worden als universele computers. D.w.z. dat iedere berekening met natuurlijke getallen die met een computer

Nadere informatie

ARE methodiek Het ontwikkelen van Informatie Elementen

ARE methodiek Het ontwikkelen van Informatie Elementen ARE methodiek Het ontwikkelen van Informatie Elementen WI1: Het opstarten van het project Milestone 1 WI2: Ontwikkel een Vison WI3: Modelleer het Business Domain WI4: Creëer een Glossary WI7: Beheer wijzigingen

Nadere informatie

Design principes.

Design principes. Design principes joost.vennekens@kuleuven.be Doelstelling Code die werkt doet wat klant wil betrouwbaar is gemakkelijk te veranderen is En dit ook blijft doen Software rot Rottende software geeft geurtjes

Nadere informatie

Datastructuren Werkcollege Intro

Datastructuren Werkcollege Intro Bart Hijmans, Universiteit Leiden. Universiteit Leiden The Netherlands Focus 1 19 ˆ Ervaring in gebruik en implementatie van datastructuren ˆ Kennis van mogelijkheden ˆ Programmeren voor andere programmeurs

Nadere informatie

Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving

Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Henk van de Ridder Administratief 12 mei 2007 Inhoud Aanleiding Administratieve systemen REA model Aspect Oriented

Nadere informatie

DATAMODELLERING SIPOC

DATAMODELLERING SIPOC DATAMODELLERING SIPOC Inleiding In dit whitepaper wordt de datamodelleervorm Sipoc beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil je een beeld krijgen van

Nadere informatie

Rapportage Lineage. Introductie. Methode. J. Stuiver

Rapportage Lineage. Introductie. Methode. J. Stuiver Rapportage Lineage Rapportage Lineage J. Stuiver Introductie In elk project is het essentieel om informatie over het project en haar activiteiten voor alle partijen beschikbaar te stellen. Deze informatie

Nadere informatie

ISO Datamodelleren. Prof. dr. Paul De Bra. Gebaseerd op: Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan

ISO Datamodelleren. Prof. dr. Paul De Bra. Gebaseerd op: Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan ISO Datamodelleren Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. het bank voorbeeld waarom zijn er drie tabellen om klanten en rekeningen voor te stellen? customer (customer_name,

Nadere informatie

DATAMODELLERING CRUD MATRIX

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

Nadere informatie

Hoofdstuk Error! Style not defined. 19. 3. Use-case analyse

Hoofdstuk Error! Style not defined. 19. 3. Use-case analyse Hoofdstuk Error! Style not defined. 19 3. Use-case analyse Hier worden een paar use-case diagrammen gegeven en een aantal use-case beschrijvingen volgens het template van Warmer & Kleppe. 3.1 Use-case

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

Overerving & Polymorfisme

Overerving & Polymorfisme Overerving & Polymorfisme Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit

Nadere informatie

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

TENTAMEN Programmeren 1 VOORBEELDUITWERKING TENTAMEN Programmeren 1 vakcode: 213500 datum: 28 november 2002 tijd: 13:30 17:00 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding

Nadere informatie

Dynamiek met VO-Script

Dynamiek met VO-Script Dynamiek met VO-Script Door Bert Dingemans DLA Ontwerp & Software bert@dla-architect.nl Inleiding Op de SDGN nieuwsgroep voor Visual Objects ontstond laatst een draad van berichten over de nieuwe libraries

Nadere informatie

Abstracte klassen & Interfaces

Abstracte klassen & Interfaces Abstracte klassen & Interfaces Overerving public class Vierhoek {... Vierhoek public class Rechthoek extends Vierhoek {... public class Ruit extends Vierhoek {... Rechthoek Ruit Elke rechthoek is een vierhoek.

Nadere informatie

DATAMODELLERING GEAVANCEERD UML KLASSEMODEL

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.

Nadere informatie

De modellen die hiervoor gebruikt zijn zijn: Class diagrams; object diagrams; use case diagrams.

De modellen die hiervoor gebruikt zijn zijn: Class diagrams; object diagrams; use case diagrams. 1 1. Uml is een manier van communiceren. Het werkt met plaatjes en laat jouw modellen maken van software. 2. UML bestaat uit Notations and diagrams. Notations zijn bv, pijltjes; connectors; notities. Diagrams

Nadere informatie

Uitleg van de Hough transformatie

Uitleg van de Hough transformatie Uitleg van de Hough transformatie Maarten M. Fokkinga, Joeri van Ruth Database groep, Fac. EWI, Universiteit Twente Versie van 17 mei 2005, 10:59 De Hough transformatie is een wiskundige techniek om een

Nadere informatie

Android apps met App Inventor 2 antwoorden

Android apps met App Inventor 2 antwoorden 2014 Android apps met App Inventor 2 antwoorden F. Vonk versie 1 11-11-2014 inhoudsopgave Mollen Meppen... - 2 - Schrandere Scholier... - 15 - Meteoor... - 21 - Dit werk is gelicenseerd onder een Creative

Nadere informatie

Object Oriented Programming

Object Oriented Programming Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming

Nadere informatie

Methodiek. Versie: 16/05/2012 13:42:35

Methodiek. Versie: 16/05/2012 13:42:35 Methodiek Versie: 16/05/2012 13:42:35 Inhoudsopgave Methodiek... 2 Onze visie op het functioneel ontwerp... 2 Stappen in het ontwerpproces... 3 Methodiek Inleiding In dit deel van de encyclopedie wordt

Nadere informatie

TENTAMEN Programmeren 1

TENTAMEN Programmeren 1 TENTAMEN Programmeren 1 vakcode: 213500 datum: 15 augustus 2002 tijd: 13:30 17:00 uur Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding van Programmeren

Nadere informatie

Inhoud leereenheid 7c. JavaScript: Objecten en functies. Introductie 59. Leerkern 60. Samenvatting 82. Opdrachten 83. Zelftoets 89.

Inhoud leereenheid 7c. JavaScript: Objecten en functies. Introductie 59. Leerkern 60. Samenvatting 82. Opdrachten 83. Zelftoets 89. Inhoud leereenheid 7c JavaScript: Objecten en functies Introductie 59 Leerkern 60 1 Functies 60 1.1 Syntax - samenvatting 60 1.2 Functies definiëren 61 1.3 Functie als parameter (facultatief) 64 1.4 Functie

Nadere informatie

Inhoud Deel een Het ontwikkeltraject 1 2 3

Inhoud Deel een Het ontwikkeltraject 1 2 3 5 Inhoud Inleiding 11 Deel een Het ontwikkeltraject 13 1 Werken binnen organisaties 15 1.1 Non-profit-organisatie 15 1.2 Profit-organisatie 16 1.3 Doelen 16 1.4 Rechtsvormen 16 Rechtspersoon 17 Persoonlijke

Nadere informatie

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, 8.30-10.30 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

Systeemontwikkeling met UML

Systeemontwikkeling met UML Systeemontwikkeling met UML De visuele modelleertaal Unified Modeling Language (UML) is een gezamenlijk product van een groot aantal bedrijven. Het is een standaard die naar aanleiding van een request

Nadere informatie

Inhoud. Introductie tot de cursus

Inhoud. Introductie tot de cursus Inhoud Introductie tot de cursus 1 Plaats en functie van de cursus 7 2 Inhoud van de cursus 8 2.1 Voorkennis 8 2.2 Leerdoelen 8 2.3 Opbouw van de cursus 8 2.4 Leermiddelen 9 3 Aanwijzingen voor het bestuderen

Nadere informatie

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers 1 Inhoud Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers 2 Geluidsbronnen simulator, deel 2 Inleiding De weergave versnellen

Nadere informatie

NHibernate als ORM oplossing

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

Nadere informatie