OSLO-Standaarden
OSLO-Standaarden copied to clipboard
Kardinaliteit & mandatory/optional
Kardinaliteit heeft een semantische betekenis, ttz als ik zeg busnummer[0..1] zeg ik dat een adres niet altijd een busnummer heeft. Wat het niet betekent is dat ik busnummers mag weglaten in een data-uitwisseling.
We zijn hier niet consequent mee omgegaan in de OSLO-AP's. Bij het Basis Persoon AP geven we de werkelijke kardinaliteit weer (op nog wat foutjes na), dat kan daar ook aangezien er geen applicatie achter zit die bepaalt wat voor de toepassing verplicht of optioneel is. Bij het Dienstencataloog AP echter zie ik kardinaliteiten zoals toepassingsgebied[0..*]. Dit klopt niet met de werkelijkheid: elke Dienstverlening heeft altijd een toepassingsgebied. INSPIRE lost dit op dmv het stereotype voidable, elementen van dit type mag je weglaten bij data-uitwisseling, of de kardinaliteit vh element nu 0 of 1 of * is doet er niet toe.
INSPIRE biedt zelfs de mogelijkheid om een element toch op te voeren in een data-uitwisseling en er de waarde NULL aan mee te geven op voorwaarde dat je zegt waarom de waarde NULL is: omdat het een voidable element betreft (NULL vh type unpopulated), omdat je de waarde niet kent (NULL vh type unknown) of omdat je de waarde wel kent maar ze niet mag meegeven (NULL vh type withheld).
Ook ISA werkt met stereotypes in CPSV-AP: mandatory of optional (waarbij deze keuze enkel geldt voor verzenders van data, als ontvanger moet je in principe alle elementen kunnen verwerken). Voor de rest geven ze daar alle elementen kardinaliteit van ten minste 1.
Wat ik voorstel is dit: in het UML-diagram geven de kardinaliteiten weer of een element in werkelijkheid steeds voorkomt of niet, om aan te geven of een element verplicht/optioneel is bij data-uitwisseling voegen we net als ISA een tabel toe met per element de kwalificatie verplicht of optioneel (we zouden zoals ISA bijkomend met stereotypes verplicht/optioneel kunnen werken maar dit verzwaart het UML-diagram).