3.1 Opsomming data type



Vergelijkbare documenten
Deel I Hoofdstuk 2: Het klassenmodel

Unified Modeling Language

Deel II: Modelleren en software ontwikkeling. Hoofdstuk 7 Software ontwikkeling - Overzicht. Naïeve benadering

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

Deel I Hoofdstuk 4: Modelleren van Toestand

case: ocl-expressies

Programmeren in Java 3

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

Domeinmodellen en klassendiagrammen

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

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

Problemen met platte toestandsdiagrammen

H9: Klasse Ontwerp. Richtlijnen Specificaties Multiple inheritence

Deel I Hoofdstuk 6: Modelleren van interactie

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

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

Informatie-analyse volgens het NIAM model.

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

Ontwerp van Informatiesystemen

IMP Uitwerking week 13

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

Software-Ontwikkeling I Academiejaar

ER-modeling. Datamodellering Wat is ER-modeling?

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

Abstracte klassen & Interfaces

DATAMODELLERING BASIS UML KLASSEMODEL

Kleine cursus PHP5. Auteur: Raymond Moesker

G e n e r e r e n v a n o p e r a t i o n e l e s p e c i f i c a t ies aan de hand van UML d i a g r a m m e n

Object Oriëntatie Foundation (OOF.NL)

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

VI. Klassen en objecten

BRP-BZM Use Case Realisations Guidelines

Programmeren in C# Overerving

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

Inhoudstafel. UML (Unified Modeling Language)

Oplossingen voor het testen van objectgeoriënteerde software

EEN INLEIDING IN DE UNIFIED MODELING LANGUAGE

Les F-02 UML. 2013, David Lans

case: toestandsdiagrammen

DATAMODELLERING ARCHIMATE DATAMODELLERING

UML een overzicht. Gert Florijn

DATAMODELLERING BEGRIPPENBOOM

Top-down ontwerpen. Concentreren op de hoofdzaak zonder rekening te houden met allerlei details.

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

Overerving & Polymorfisme

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

Archimate risico extensies modelleren

Keteininformatiemodellering op basis van UML

Project Objectgericht Programmeren : Deel 3

Unified Modeling Language

Hoofdstuk 5. case: klassediagram

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

UML. From weblog Dennis Snippert

Een inleiding in de Unified Modeling Language 79

2WO12: Optimalisering in Netwerken

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

DATAMODELLERING ARCHIMATE DATA- & APPLICATIEMODELLERING

Inhoud leereenheid 1. Objectgeoriënteerd ontwerpen. Introductie 17. Leerkern 18. Samenvatting 50. Zelftoets 51. Terugkoppeling 52

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

Opleiding SQL / Systeemanalyse IBK ERD. Hogeschool Rotterdam

DATAMODELLERING GEAVANCEERD UML KLASSEMODEL

Aan het eind van deze lesbrief wordt uitgelegd wat het nut van OOP is en vind je een aantal oefenopdrachten.

Aquo Informatiemodellen, Uitwisselformaten en objecten

Oplossingen voor het testen van objectgeoriënteerde software

Oefenvragen OMI eerste helft

Getallensystemen, verzamelingen en relaties

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

Toegepaste notatiewijzen DLA software

Verzamelingen. Hoofdstuk 5

Kenmerken van DLArchitect

DATAMODELLERING DATA MAPPING MODEL

Hoofdstuk: 1 Objectoriëntatie en systeemontwikkeling

Discrete Wiskunde, College 7. Han Hoogeveen, Utrecht University

III.2 De ordening op R en ongelijkheden

HOGESCHOOL ROTTERDAM

DATAMODELLERING RACI MATRIX

Systeem modellen. Topics covered

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

Programmeren in C++ (deel 1)

Methods of Development

Hoofdstuk 1. Inleiding. Lichamen

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Ternaire relaties in ERDs zijn lastig

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

Oefening 2.2. Welke van de volgende beweringen zijn waar?

Oplossingen Datamining 2II15 Juni 2008

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

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

Datastructuren en algoritmen

Het ontwerpen van een databaseschema

4EE11 Project Programmeren voor W. College 3, , Blok D Tom Verhoeff, Software Engineering & Technology, TU/e

rh265e 0 true. In onze schrijfwijze wordt dat dus: (de bewering) [ P ] is even waar als (de bewering) P = true.

Eigenschappen en Axioma s van de E 6 -meetkunde

Informatiemodelleren

Metamodel voor de Referentiemodellen Gemeentelijke Basisgegevens

Vergelijking Oracle certificering voor Java en het CPP Gecertificeerd Javaprogrammeur van de Open Universiteit

Interactie diagrammen

HvA Instituut voor Interactieve Media ActionScript 3.0

ISO Query By Example

NEN 3610: mei 2010

Transcriptie:

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 eindig en opsombaar is Voorbeelden: Klasse Person, attribuut sex: {m, f} Klasse Figure, attribuut pentype: {solid, dashed, dotted} Klasse TwoDimentional, attribuut filltype: {solid, grey, none, horizontal lines, vertical lines} 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 2

3.1 Opsomming data type Colour: {red, yellow, green} 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 3 3.1 Opsomming data type Gebruik geen subklassen om enkel de waarden van een opsombaar attribuut weer te geven Gebruik enkel subklassen indien ten minste 1 subklasse significant andere attributen, operaties of associaties heeft die niet van toepassing zijn voor het supertype 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 4

3.1 Opsomming data type - UML notatie 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 5 3.2 Multipliciteit voor attributen Multipliciteit voor een attribuut Aantal mogelijke waarden voor het attribuut voor één instantie [1] juist é én (verplicht enkelwaardig attribuut) [0..1] optioneel enkelwaardig attribuut [*] meerdere waarden Default: [1] 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 6

Klasse multipliciteit Klasse multipliciteit Geeft aan hoeveel instanties de klasse kan hebben Default is 0 of meer (geen beperking) Soms is het nuttig om aan te duiden dat een klasse maar 1 instantie kan hebben 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 7 3.3 Klasse attributen en operaties Klasse attribuut is een (benoemde) eigenschap van de klasse zelf die een waarde beschrijft voor de klasse Klasse operatie Een functie of een procedure die kan worden toegepast door de klasse Klasse attributen - voorbeelden: Mailbox: maxmessages, maxlengthmessage Klasse operaties - voorbeelden: creëer, totaalaantal, gemiddelde UML notatie: klasse attribuut/operatie wordt onderlijnd 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 8

3.4 Zichtbaarheid Principe OO: Encapsulatie attributen en methoden zijn niet zichtbaar buiten de methoden van de klasse; operaties wel Veel OO-talen zondigen hier echter tegen Public ( + ): zichtbaar en vrij toegankelijk vanuit alle methoden Protected ( # ): enkel zichtbaar en toegankelijk vanuit methoden van de klasse en subklassen Private ( - ): enkel zichtbaar en toegankelijk vanuit methoden van de klasse package ( ~ ): enkel zichtbaar en toegankelijk vanuit methoden in hetzelfde package als de klasse 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 9 3.4 Zichtbaarheid Private, protected en package operaties zijn meestal bedoeld als hulpoperaties Vermijd het wijzigen van public operaties Alle methoden die er gebruik van maken moeten gewijzigd worden Vermijd public attributen Bemoeilijkt wijzigingen Zondigt tegen het encapsulatie principe 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 10

3.5 N-aire associaties N-aire associatie associatie tussen drie of meer klassen Voorbeeld Een programmeur gebruikt een programmeertaal in een project 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 11 3.5 N-aire associaties Gebruik zoveel mogelijk binaire associaties N-aire associaties kunnen in principe omgezet worden naar binaire associaties Soms is een abstracte klasse nodig met een extra beperking 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 12

3.5 N-aire associaties is verschillend van 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 13 3.5 N-aire associaties Voorbeeld Project pr1 pr1 pr2 pr2 Taal t1 t2 t2 t1 Persoon p1 p2 p1 p2 Project pr1 pr1 pr1 pr1 pr2 pr2 Taal t1 t1 t2 t2 t2 t2 Persoon p1 p2 p1 p2 p1 p2 Project pr1 pr1 pr2 Taal t1 t2 t2 Project pr1 pr1 pr2 Persoon p1 p2 p1 Taal t1 t2 t2 Persoon p1 p2 p1 pr2 pr2 t1 t1 p1 p2 pr2 t1 pr2 p2 t1 p2 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 14

3.5 N-aire associaties is equivalent met N-aire associatie heeft hier de voorkeur! 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 15 + met elke combinatie (project, persoon, programmeertaal) kan maar 1 taalgebruik (-object) overeenstemmen ( uniqueness constraint ) 3.5 Niet N-aire associaties Niet elementaire N-aire associatie Kan worden omgezet zonder verlies van informatie naar: 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 16

3.5 Niet N-aire associaties Auteurschap GeschrevenDoor UitgegevenDoor Boek Persoon Uitgever Boek Persoon Boek Uitgever B1 A1 P1 B1 A1 B1 P1 B1 A2 P1 B1 A2 B2 P2 B1 A3 P1 B1 A3 B2 A3 P2 B2 A3 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 17 3.5 N-aire associaties Rolnamen kunnen ook gebruikt worden bij n-aire associaties Verplicht wanneer een klasse in meer dan 1 n-aire associatie voorkomt N-aire associaties kunnen ook associatie klassen hebben 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 18

3.5 N-aire associaties Multipliciteiten in n-aire associaties Aantal projecten waarin een bepaalde persoon kan deelnemen met een bepaalde programmeertaal Aantal programmeertalen die een bepaalde persoon kan hanteren in een bepaald project Aantal personen die kunnen meewerken in een bepaald project en een bepaalde programmeertaal 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 19 3.6 Aggregatie Aggregatie is een speciale associatie; de associatie modelleert een deel-van (part-of) relatie. Deze associatie verbindt een samengesteld object ( assembly ) met één van zijn onderdelen ( component ). Voorbeelden Een grasmaaier model bestaat uit een mestype, een motortype, wielen van een welbepaald type en een kaptype Een fiets model bestaat uit 2 wieltypen, een stuurtype, een frametype en een zadeltype 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 20

3.6 Aggregatie Voorbeeld-1 Grasmaaiertype bestaat uit een mestype, een motortype, wielen(type) en een kaptype UML notatie 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 21 3.6 Aggregatie Voorbeeld-2 Fietstype bestaat uit 2 wieltypen, een stuurtype, een frametype en een zadeltype 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 22

3.6 Aggregatie Eigenschappen aggregatie associatie Transitief Als A deel is van B en B is deel van C dan is A deel van C Antisymmetrisch Als A deel is van B dan is B geen deel van A - Licht is een deel van Frame, Frame is deel van Fiets dus Licht is deel van Fiets - Wiel is deel van Fiets maar Fiets is geen deel van Wiel 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 23 3.6 Aggregatie vs Associatie Wanneer aggregatie - Mogelijke vragen: Kan je spreken van een deel-van relatie? Fiets-Wiel: een wiel is een deel van een fiets Werknemer-Bedrijf: een werknemer is geen deel van een bedrijf Propageren sommige operaties zich automatisch naar de componenten? Produceer fiets --> produceer wiel Propageren sommige attribuutwaarden zich naar de componenten? Producent fiets Is er sprake van een intrinsieke asymmetrie? 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 24

3.7 Compositie Compositie beperktere vorm van aggregatie: het onderdeel is slecht deel van maximaal 1 assembly het onderdeel bestaat zolang de assenbly bestaat Voorbeelden Een fysieke grasmaaier bestaat uit een mes, een motor, wielen en een kap. Elk van de onderdelen kan maar deel uitmaken van 1 enkele grasmaaier! Een fysieke fiets bestaat uit 2 wielen, een stuur, een frame en een zadel. Elk van de onderdelen kan maar deel uitmaken van 1 enkele fiets! 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 25 3.7 Compositie Voorbeeld-1 Een grasmaaier bestaat uit een mes, een motor, wielen en een kap. Elk van de onderdelen kan maar deel uitmaken van 1 enkele grasmaaier! UML notatie 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 26 Bij een compositie is de multipliciteit: 1 of 0..1

3.7 Compositie Voorbeeld-2 Fiets bestaat uit 2 wielen, een stuur, een frame en een zadel. Elk van de onderdelen kan maar deel uitmaken van 1 enkele fiets! 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 27 3.7 Compositie Voorbeeld-3 Een bedrijf bestaat uit divisies; een divisie bestaat uit departementen en werknemers werken voor een bedrijf 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 28

Voorbeeld 3.8 Propageren van operaties Een document bestaat uit paragrafen en een paragraaf bestaat uit karakters. Het kopiëren van een document impliceert het kopiëren van paragrafen en dit impliceert het kopiëren van karakters Een paragraaf kan echter gekopieerd worden zonder het volledige document te moeten kopiëren. Idem voor karakters 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 29 3.8 Propageren van operaties - notatie Een document bestaat uit paragrafen en een paragraaf bestaat uit karakters. Notatie maakt geen deel uit van UML - wel handig 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 30

3.9 Abstracte klassen Abstracte Klasse Klasse die geen instanties heeft maar met subklassen (directe of indirecte) die wel instanties hebben Concrete Klasse Klasse die instanties heeft Voorbeelden Figuur is een abstracte klasse Vierkant, Rechthoek en Cirkel zijn concrete klassen De abstracte klasse is een veralgemening van de concrete klassen 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 31 3.9 Abstracte klassen -UML notatie Voorbeeld Naam klasse in schuin of Naam gevolgd door {abstract} 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 32 Alle bladeren in de boom moeten concrete klassen zijn

3.9 Abstracte klassen Waarom abstracte klassen? Om gemeenschappelijke attributen en/of operaties te specificeren Operaties kunnen abstract zijn (zonder implementatie). De implementatie wordt dan gegeven in de concrete klassen. Concrete klassen mogen geen abstracte operaties meer hebben! 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 33 3.9 Abstracte klassen 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 34

3.9 Abstracte klassen 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 35 3.10 Multiple Inheritance Multiple inheritance Wanneer een klasse meerdere superklassen kan hebben en van al deze superklassen kan erven Voordeel: Krachtig Bevordert hergebruik Nadeel Conflicten mogelijk Meeste programmeertalen ondersteunen geen multiple inheritance 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 36

3.10 Multiple Inheritance Voorbeeld 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 37 3.10 Multiple Inheritance Workarounds - gebruik makend van delegatie 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 38

3.10 Multiple Inheritance Workarounds - gebruik makend van combinatie inheritance en delegatie 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 39 3.10 Multiple Inheritance Workarounds - uitsplitsing van de subtypes 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 40

3.10 Multiple Inheritance Workarounds Delegatie: bij verschillende subklassen allen van gelijk belang Delegatie + inheritance: wanneer 1 subklasse duidelijk dominant (belangrijker) is Uitsplitsen: wanneer aantal combinaties beperkt is en duplicatie van beperkt is Gebruik voor subklassering eerst het meest belangrijk criterium 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 41 3.11 Metadata MetaData data die andere data beschrijft Voorbeeld Klasse definitie Beschrijft een klasse Modellen Beschrijven de dingen die men modelleert Soms bevatten modellen ook Metadata: Een automodel is metadata voor een fysieke auto. Beide klassen (Auto en AutoModel) kunnen voorkomen in een model 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 42

3.13 Beperkingen ( Constraints ) Beperking (constraint) een waar/onwaar uitdrukking gebaseerd op modelelementen die een beperking uitdrukt op mogelijke waarden en/of relaties Voorbeelden: Salaris van een werknemer kan niet hoger zijn dan het salaris van de baas van deze werknemer Het salaris van een werknemer mag niet dalen De verhouding lengte/breedte van een schermvenster mag niet kleiner zijn dan 0.8 en niet groter dan 1.5 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 43 3.13 Beperkingen ( Constraints ) Constraints kunnen uitgedrukt worden in natuurlijke taal of via een constraint taal, bijv. OCL (Object Constraint Language) - zie later Constraints voor de instances van een klasse {salaris baas.salaris} {salaris never increases} {0.8 lengte/breedte 1.5} 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 44

3.13 Beperkingen ( Constraints ) Constraints op subklassen Impliciete constraints Zonder multiple inheritance zijn subklassen disjunct UML voorziet Disjoint : de subklassen zijn disjunct. Elke instantie behoort tot hoogstens één subklasse Overlapping : een instantie kan tot verschillende subklassen behoren Complete : Elke instantie behoort tot minstens één subklasse Incomplete : Niet elke instantie behoort tot een subklasse 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 45 3.13 Beperkingen ( Constraints ) -UML notatie 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 46

Constraints op links 3.13 Beperkingen ( Constraints ) Multipliciteit Beperkt het aantal objecten die kunnen gerelateerd zijn via een associatie met een bepaald object {ordered} geeft aan dat er een expliciete order is op de verzameling objecten gerelateerd via een associatie met een bepaald object Idem voor {sequence} en {bag} 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 47 3.13 Beperkingen ( Constraints ) Constraints op links (vervolg) Expliciete constraints op links Subset: deelverzameling vereist tussen verzameling van links Equality: verzameling van links moet gelijk zijn Exclusion: verzamelingen van links moeten disjunct zijn 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 48

3.13 Beperkingen ( Constraints ) Probeer zo veel mogelijk constraints te specificeren Verhoogt de kwaliteit van het model Notatie voor constraints Tussen { en } In commentaar box Stippellijn/stippellijnpijl om elementen in een constraint te verbinden OCL (zie later) 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 49 3.14 Afleidbare informatie Afleidbaar element element afleidbaar van ander elementen door middel van een functie Klassen, attributen en associaties kunnen afleidbaar zijn UML notatie: / 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 50

3.14 Afleidbare informatie Voeg enkel afleidbare elementen toe indien belangrijk of noodzakelijk (bijv. voor het gemak bij implementatie) 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 51 3.15 Packages Package groep elementen met een gemeenschappelijk thema Een package kan andere packages bevatten Is een abstractie mechanisme 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 52

3.15 Packages Denk goed na over de mogelijke opdeling in packages Klassennamen en associatienamen moeten uniek zijn binnen een package Probeer de overlap tussen packages te beperkingen Zet associaties en subklassen in hetzelfde package Een mogelijke benadering Definieer een package voor elke klasse met de volledige definitie van de klasse. In andere packages kan men dan de eenvoudige rechthoek notatie voor de klasse gebruiken de diagrammen worden luchtiger 2005 Prof. Dr. O. De Troyer Klasse Model - gevorderd pag. 53