XMI

XMI ( XML Metadata Interchange ) er en OMG-standard for metadataudveksling ved hjælp af XML -sproget . Kan bruges til enhver metadata, så længe dens metamodel kan udtrykkes ved hjælp af MOF (Meta-Object Facility). [1] XMI bruges mest som et udvekslingsformat for UML - modeller. En datamatiker kunne ikke tidligere importere en UML-model fra et UML-modelleringsværktøj til et andet på grund af forskelle i definitionen af ​​syntaks og semantik af sprogelementer. [2]

Syntaks

XMI-specifikationen er ret kompleks (i version 1.2 er den over 400 sider lang). Metamodellen af ​​UML skrevet i XMI er også skræmmende stor. For at give en generel idé om syntaksen, vil vi bruge det faktum, at XMI definerer ikke kun UML-metamodellen, men også specifikke UML-modeller, og giver kun definitionen af ​​UML "adresse"-konstruktionen [3] . De følgende forklaringer af sprogets syntaks er også hentet fra den refererede kilde. Bemærk, at tags "UML:Class", "UML:Attribute", "UML:Classifier" ikke tilhører XMI-sproget, men blev defineret i UML-metamodellen, som denne XMI-fil refererer til.

XMI fil eksempel: adresse

<?xml version="1.0"?> <XMI xmi.version= "1.2" xmlns:UML= "org.omg/UML/1.4" > <XMI.header> <XMI.documentation> <XMI.exporter> ananas. org stylesheet </XMI.exporter> </XMI.documentation> <XMI.metamodel xmi.name= "UML" xmi.version= "1.4" /> </XMI.header> <XMI.content> <UML:Model xmi .id= "M.1" name= "adresse" visibility= "public" isSpecification= "false" isRoot= "false" isLeaf= "false" isAbstract= "false" > <UML:Namespace.ownedElement> <UML:Class xmi.id= "C.1" name= "adresse" synlighed= "offentlig" isSpecification= "falsk" navneområde= "M.1" isRoot= "true" isLeaf= "true" isAbstract= "false" isActive= "false " " > <UML:Classifier.feature> <UML:Attribute xmi.id= "A.1" name= "navn" visibility= "privat" isSpecification= "false" ownerScope= "instans" /> <UML:Attribut xmi . id= "A.2" name= "gade" visibility= "privat" isSpecification= "false" ownerScope= "instans" /> <UML:Attribute xmi.id= "A.3" name= "zip" synlighed= " private" isSpecification= "false" ownerScope= "forekomst" /> <UML:Attribut xmi.i d= "A.4" name= "region" visibility= "privat" isSpecification= "false" ownerScope= "instans" /> <UML:Attribute xmi.id= "A.5" name= "by" visibility= " private" isSpecification= "false" ownerScope= "instance" /> <UML:Attribute xmi.id= "A.6" name= "country" visibility= "private" isSpecification= "false" ownerScope= "forekomst" /> < /UML:Classifier.feature> </UML:Class> </UML:Namespace.ownedElement> </UML:Model> </XMI.content> </XMI>

XMI header

XMI definerer følgende tags og attributter:

  • XMI er altid rodelementet. Den skal have en xmi.version-attribut (gyldige versioner er 1.0, 1.1, 1.2 og 2.0).
    • XMI.header - header. Dens vigtigste børn er XMI.documentation og XMI.metamodel.
      • XMI.dokumentation indeholder oplysninger om slutbrugeren:
        • XMI.owner - ejeren af ​​metamodellen.
        • XMI.contact - hans kontaktoplysninger.
        • XMI.longDescription - lang beskrivelse af ejeren.
        • XMI.shortDescription - en kort beskrivelse.
        • XMI.exporter - eksportør.
        • XMI.exporterVersion - eksportørversion.
        • XMI.exporterID - Eksportør-id.
        • XMI.notice er en kommentar.
      • XMI.metamodel Beskrivelse af den metamodel, som XMI-algoritmen er blevet anvendt på.
    • XMI.content - indholdet af modellen.
      • xmi.id er en unik identifikator for linket til metamodellen.
      • xmi.idref er linket til selve metamodellen.

Metoder til beskrivelse af metamodeller

UML-metamodellen er en model, der beskriver UML-sproget - især beskriver den klasser, attributter, associationer, pakker (pakker), samarbejder (samarbejde), use cases (use cases), aktører, beskeder, tilstande og andre begreber i UML sprog. Selve metamodellen kan skrives i UML.

Præfikset "meta" betyder, at metamodellen beskriver modellen for modellen. Derudover bruges XML i dette tilfælde som et metasprog (et sprog, hvor et andet sprog er beskrevet). UML-metamodellen er offentliggjort i UML-specifikationen. Mere specifikt bruger XMI "UML Model Interchange" beskrevet i kapitel 5 i UML-specifikationen.

Et af de centrale begreber i UML, i det mindste i klassediagrammer, er selve begrebet "klasse". I metamodellen er dette koncept modelleret af metaklassen Class , som arver fra den abstrakte metaklasse Classifier . Classifier er forælderen til en klasse, grænseflade og datatype. Arvekæden fortsætter: GeneralizableElement , som repræsenterer alle begreber, der kan generaliseres (det vil sige nedarves fra andre); ModelElement , som repræsenterer alle abstraktionerne i modellen (såsom navneområde, begrænsninger, klasse), og endelig Element , den øverste metaklasse. Hver af disse metaklasser har attributter, som Class arver fra.

Der er en sammensætning mellem Classifier og Feature , som er overordnet til StructuralFeature . Attributten arver fra StructuralFeature.

Programmer, der bruger dette format

  • Altova UModel
  • ArgoUML
  • ARIS værktøjssæt
  • Håndværkerstudie
  • Astah UML-værktøj
  • da: BOUML
  • Eclipse Process Framework Composer
  • da:Enterprise Architect (Sparx Systems)
  • Innovator
  • en:teraplan
  • en:MagicDraw
  • en: Model
  • Pentaho
  • en:PowerDesigner (Sybase)
  • da:Systemarkitekt (rationel)
  • SAP BI
  • en:StarUML
  • Paraply
  • de:UML2 Project (Eclipse MDT)
  • de:Visuelle paradigmer

Noter

  1. OMG XMI-websted Arkiveret 11. marts 2007.
  2. Stevens, P. XMI og MOF: en mini-tutorial. University of Edinburgh. . Dato for adgang: 8. september 2013. Arkiveret fra originalen 28. februar 2013.
  3. Marchal B. Working XML: UML, XMI, and code generation, Part 2 . Hentet 8. september 2013. Arkiveret fra originalen 26. maj 2015.