Imvertor / Imvertor-Maven

Mavenized version of Imvertor
http://www.imvertor.org
7 stars 12 forks source link

BRO: Controle op overeenkomst tag 'MIM-versie' met BRO CONCEPTUAL configuratie #461

Closed jacobvosimpronotion closed 3 months ago

jacobvosimpronotion commented 3 months ago

In Enterprise Architect kunnen we bij een package van het stereotype 'Basismodel' de tag 'MIM versie' invullen. Bij het aanbieden van het package aan Imvertor willen we graag een controle of die versie overeenkomt met de versie zoals die in onze configuratie voor "BRO CONCEPTUAL' is vastgelegd. Als dit niet overeenkomt, dan willen we een Warning krijgen.

ArjanLoeffen commented 3 months ago

Zover ik weet wordt voor BRO conceptuele modellen verwezen naar BRO-CONCEPTUAL. Dat metamodel verwijst naar MIM 1.1.1, dwz. het metamodel met de naam MIM 1.1.1. Je ziet dit terug in ieder report, onder 3. Configuration / 1. Configuration dependencies.

Er spelen dus twee zaken voordat deze validatie kan worden gerealiseerd.

  1. Er is op dit moment nog geen formele identificatie van dat metamodel behalve de naam (element <name>). Is deze naam geschikt om de test op uit te voeren?
  2. Er is geen logica vastgesteld om te bepalen dat metamodel BRO CONCEPTUAL feitelijk een MIM 1.1.1 metamodel is.

We zouden kunnen aannemen:

  1. De naam van het metamodel (<name>) is de formele naam, dus op basis daarvan wordt getest.
  2. De eerste MIM versie die genoemd wordt in de lijst van geïncludeerde metamodellen is de feitelijke versie. NB de lijst van genoemde metamodellen vind je op de genoemde plek in het report.

Voor de MIM versie opgenomen in het model als tagged value (1.1.1 o.i.d.) kunnen we afspreken dat de naam van het MIM model dan altijd MIM {versienummer} moet zijn. Dus bijv. MIM 1.1.1.

Als dit akkoord is kunnen we het zo implementeren. @jacobvosimpronotion Wat is jouw mening?

ArjanLoeffen commented 3 months ago

Ik heb het alvast zo geïmplementeerd. Als we tot een andere logica komen kunnen we e.e.a. snel aanpassen. De code is actief voor alle gebruikers van imvertor.

jacobvosimpronotion commented 3 months ago

Bij vraag 1: of in het MIM 1.1.1 metamodel het attribuut name de formele identificatie is, kan ik niet te zeggen. Waar is die XML van afkomstig? Van Geonovum? Die zou je dan de vraag moeten stellen of name de formele identificatie is.

Bij vraag 2, of BRO CONCEPTUAL een MIM 1.1.1 metamodel is: ik denk dat je dat zo niet mag stellen. Het BRO CONCEPTUAL metamodel maakt gebruik van c.q. leent elementen uit het MIM 1.1.1 metamodel. Maar voor dit vraagstuk maakt dat niet uit. Het gaat erom: hoe kunnen we vaststellen van welke MIM-versie BRO CONCEPTUAL gebruikmaakt. Dus het volgende stukje uit BRO CONCEPTUAL bepaalt de daarin gebruikte MIM versie?

<metamodel type="config" xmlns:xi="http://www.w3.org/2001/XInclude">

    <xi:include href="../../../MIM/cfg/metamodels/MIM111.xml"/>
ArjanLoeffen commented 3 months ago

Filenamen kunnen geen identificatie vormen. De <name> in het bestand MIM111.xml kan dat wel. Dat is mijn voorstel.

Jouw analyse dat BRO CONCEPTUAL geen MIM 1.1.1 model is vraagt om discussie. N.m.m. is dat namelijk wel zo. Er worden niet "geleend" van het MIM 1.1.1 metamodel, het bouwt erop voort, toch?

jacobvosimpronotion commented 3 months ago

Ik denk dus dat je voorstel toe moet naar wie dat attribuut heeft bedacht in dat MIM111.XML-bestand. Wij zijn vanuit BRO Standaardisatie niet de auteur daarvan, dus wie zijn wij om de uitspraak te doen dat dit hét identificerende kenmerk is? Nogmaals: daarvoor moet je bij de eigenaar zijn - wellicht het MIM standaardisatie team bij Geonovum.

Idd bouwt BRO CONCEPTUAL voort op het MIM 1.1.1 metamodel, maar behalve toevoegingen zitten er ook weer afwijkingen in. Dus met wat kanttekeningen geldt je initiële uitspraak.

jacobvosimpronotion commented 3 months ago

Vandaag getest en een waarschuwing verschijnt bij afwijking van MIM-versie.