Toon posts:

[UML] Associaties als member-variables in classdiagram?

Pagina: 1
Acties:
  • 134 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Als je een classdiagram maakt, en je brengt een associatie aan tussen twee klassen, dan wordt in je implementatie de geassocieerde klasse een variabele van de andere klasse. Dus klasse Bedrijf heeft een array (of ander soort lijst) van type Persoon (deze variabele noem je bijvoorbeeld werknemers).

Neem je die variabele ook op in je classdiagram voor die klasse? Ik zie voorbeelden waarin dat wel gebeurt, maar ik weet niet zeker of dat 'hoort'.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Dat hangt er AFAIK vanaf wat je voor diagram maakt, en wat je opdrachtgever voor eisen stelt. Als het een implementatiemodel betreft dat je voor je baas moet maken, dan kan het zijn dat hij wil dat je het opneemt. Betreft het een globaal ontwerp, dan kun je het over het algemeen prima weglaten. Is het een model voor jezelf, dan kun je kiezen wat je doet.

Ik laat voor mezelf dergelijke dingen over het algemeen meestal weg, aangezien het wel voortvloeit uit het diagram zelf.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Het betreft alleen een classdiagram, en het is voor mezelf. Ik heb er zelf geen moeite mee om het weg te laten (het volgt uit het diagram lijkt mij), maar omdat ik voorbeelden zag waarin ze wel opgenomen waren, dacht ik, hoe zit dat nou eigenlijk 'officieel'.

Of is dat niet vastgelegd?

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

Verwijderd schreef op zondag 23 oktober 2005 @ 21:48:
Het betreft alleen een classdiagram, en het is voor mezelf. Ik heb er zelf geen moeite mee om het weg te laten (het volgt uit het diagram lijkt mij), maar omdat ik voorbeelden zag waarin ze wel opgenomen waren, dacht ik, hoe zit dat nou eigenlijk 'officieel'.

Of is dat niet vastgelegd?
In een klassendiagram hoor je dit eigenlijk wel op te nemen, aangezien het een blauwafdruk is voor wat je gaat maken. In je voorbeeld van Bedrijf-Persoon, dit zou dan een whole-part relatie zijn, en afhankelijk van de levensduur van Persoon in het bijzonder een composite of aggregation... die dingen dien je wel gewoon weer te geven dunkt me.

Verwijderd

Topicstarter
True true, maar die relatie geef je weer door de 'lijntjes' (ff simpel gezegd). M.a.w. als ik zie dat er sprake is van compositie en de multipliciteit is 0..* dan weet ik dat ik in de klasse Bedrijf moet zorgen dat er 0 of meerdere objecten Persoon kunnen zitten. M.a.w. ik kan opmaken uit het model dat de klasse Bedrijf naast naam, ondernemingsvorm en btw-nummer (die wel expliciet in het diagram als members staan) ook nog een variabele werknemer moet hebben (die naam kun je opmaken uit de naam die bij de associatie als rol vermeld staat).

Ik zeg natuurlijk niets nieuws, maar ik vraag me dus af of ik die variabele werknemer opneem in het lijstje members in het klassediagram. Ik geef toe, het is een beetje 'muggezifterij' maar vroeg het me gewoon af.

Verschil tussen deze 2 dus:

Afbeeldingslocatie: http://home.planet.nl/~oost1957/Drawing1.gif
Afbeeldingslocatie: http://home.planet.nl/~oost1957/Drawing2.gif

[ Voor 11% gewijzigd door Verwijderd op 23-10-2005 22:04 ]


  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

Verwijderd schreef op zondag 23 oktober 2005 @ 21:59:
True true, maar die relatie geef je weer door de 'lijntjes' (ff simpel gezegd). M.a.w. als ik zie dat er sprake is van compositie en de multipliciteit is 0..* dan weet ik dat ik in de klasse Bedrijf moet zorgen dat er 0 of meerdere objecten Persoon kunnen zitten. M.a.w. ik kan opmaken uit het model dat de klasse Bedrijf naast naam, ondernemingsvorm en btw-nummer (die wel expliciet in het diagram als members staan) ook nog een variabele werknemer moet hebben (die naam kun je opmaken uit de naam die bij de associatie als rol vermeld staat).

Ik zeg natuurlijk niets nieuws, maar ik vraag me dus af of ik die variabele werknemer opneem in het lijstje members in het klassediagram. Ik geef toe, het is een beetje 'muggezifterij' maar vroeg het me gewoon af.

Verschil tussen deze 2 dus:

[afbeelding]
[afbeelding]
Nee, de member hoef je niet op te nemen, echter dien je wel per member te vermelden van welk type ze zijn. Dus ipv werknemer in je klasse, werknemer:Persoon. De volledige officiele syntax is dan: member:Klasse[ =init_value ], waarbij het gedeelte dat tussen squarebraces zit optioneel is. De klassendiagram zoals die in UML hoort is eigenlijk meer om relaties neer te zetten.
Bij de klassendiagram die je gaat opstellen om te implementeren is het wel verplicht om dergelijke members te vermelden iig.

[ Voor 29% gewijzigd door prototype op 23-10-2005 22:14 ]


Verwijderd

Topicstarter
prototype schreef op zondag 23 oktober 2005 @ 22:09:
[...]

Bij de klassendiagram die je gaat opstellen om te implementeren is het wel verplicht om dergelijke members te vermelden iig.
Bedankt!
Pagina: 1