Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
pl:miw:miw08_umlandardxtt:notatki [2008/02/26 12:34]
gjn utworzono
pl:miw:miw08_umlandardxtt:notatki [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 +FIXME 
 +======= Brudnopis =======
 +
 +====== XML Metadata Interchange (XMI) ======
 +
 +XML Metadata Interchange (XMI) to standard dla wymiany metadanych przy użyciu XMLa.
 +
 +XMI może być używany dla jakichkolwiek metadanych, których metamodel da się wyrazić w specyfikacji MOF.
 +Metamodel jest zapisywany w postaci XML Document Type Definitions (DTD), zaś model jest zapisywany w XMI zgodnie z regułami określonymi w specyfikacji mapowania XMI (XMI Mapping Specification).
 +
 +Najczęściej XMI jest używany jako format zapisu i wymiany modeli UMLa pomiędzy różnymi narzędziami
 +(jest to możliwe, gdyż UML jest oficjalnie zdefiniowany w metamodelu UML zgodnym z MOF).
 +
 +XMI może zostać użyty także do zapisu aplikacji (np. Java, C++), komponentów (np. EJB), baz danych (np. CWM).
 +
 +XMI może definiować:​ [za: [[pl:​miw:​miw08_umlandardxtt:​notatki#​zrodla|1]]]
 +
 +    * reprezentację obiektów i atrybutów,
 +    * powiązania między obiektami (w tym samym pliku lub międzyplikowe),​
 +    * referencje do innych obiektów poprzez wykorzystanie identyfikatorów,​
 +    * wersjonowanie obiektów i ich definicji,
 +    * walidację dokumentów XMI przy pomocy DTD i XML Schema.
 +
 +> Należy podkreślić,​ że w obecnej postaci służy zapisowi modelu, a nie diagramów, ​
 +> gdyż nie determinuje postaci wizualnej wykraczającej poza formalną treść modelu. [ [[pl:​miw:​miw08_umlandardxtt:​notatki#​zrodla|2]] ]
 +
 +
 +===== Uproszczony przykład reprezentacji klasy =====
 +
 +Uproszczony przykład reprezentacji klasy zapisanej przy pomocy XMLa: [schemat za: [[pl:​miw:​miw08_umlandardxtt:​notatki#​zrodla|3]]]
 +
 +{{http://​student.agh.edu.pl/​~kkluza/​xmi/​przyklad1.png|Klasa w XMI}}
 +
 +Reprezentacja powyższej klasy w XMI wygenerowana przy użyciu StarUML:
 +<code xml>
 +<?xml version = "​1.0"​ encoding = "​UTF-8"?>​
 +<XMI xmi.version = "​1.1"​ xmlns:​UML="​href://​org.omg/​UML/​1.3">​
 +<​XMI.content>​
 +    <​UML:​Model xmi.id="​UMLModel"​ name="​Design Model">​
 +        <​UML:​Class xmi.id="​UMLClass"​ name="​Osoba"​ visibility="​public"​ namespace="​UMLModel">​
 +          <​UML:​Classifier.feature>​
 +            <​UML:​Attribute xmi.id="​UMLAttribute.6"​ name="​imie"​ owner="​UMLClass"/>​
 +            <​UML:​Attribute xmi.id="​UMLAttribute.7"​ name="​nazwisko"​ owner="​UMLClass"/>​
 +            <​UML:​Attribute xmi.id="​UMLAttribute.8"​ name="​pesel"​ owner="​UMLClass"/>​
 +          </​UML:​Classifier.feature>​
 +        </​UML:​Class>​
 +    </​UML:​Model>​
 +</​XMI.content>​
 +</​XMI>​
 +</​code>​
 +
 +
 +===== Przykład dwóch klas powiązanych asocjacją =====
 +
 +{{http://​student.agh.edu.pl/​~kkluza/​xmi/​przyklad2_asocjacja.png|2klasyZAsocjacja}}
 +
 +Przykład dokumentu XMI dla dwóch klas powiązanych asocjacją z zaznaczonymi rolami i licznością ​
 +(dokument wygenerowany przy użyciu StarUML):
 +
 +<code xml>
 +<?xml version = "​1.0"​ encoding = "​UTF-8"?>​
 +<XMI xmi.version = "​1.1"​ xmlns:​UML="​href://​org.omg/​UML/​1.3">​
 +<​XMI.header>​
 +  <​XMI.metamodel xmi.name = "​UML"​ xmi.version = "​1.3"/>​
 +</​XMI.header>​
 +<​XMI.content>​
 +<​UML:​Model xmi.id="​UMLProject.1">​
 +  <​UML:​Namespace.ownedElement>​
 +    <​UML:​Package xmi.id="​UMLPackage.2"​ name="​Package1"​ namespace="​UMLProject.1">​
 +      <​UML:​Namespace.ownedElement>​
 +
 +        <​UML:​Class xmi.id="​UMLClass.3"​ name="​Firma" ​
 +                   ​namespace="​UMLPackage.2"​ participant="​UMLAssociationEnd.6"/>​
 +        <​UML:​Class xmi.id="​UMLClass.4"​ name="​Osoba" ​
 +                   ​namespace="​UMLPackage.2"​ participant="​UMLAssociationEnd.7"/>​
 +
 +        <​UML:​Association xmi.id="​UMLAssociation.5"​ name=""​ namespace="​UMLPackage.2">​
 +          <​UML:​Association.connection>​
 +
 +            <​UML:​AssociationEnd xmi.id="​UMLAssociationEnd.6"​
 +                                name="​pracodawca"​ aggregation="​none"​ targetScope="​instance"​
 +                                visibility="​public"​ ordering="​unordered"​ isNavigable="​true"​
 +                                association="​UMLAssociation.5"​ type="​UMLClass.3">​
 +              <​UML:​AssociationEnd.multiplicity>​
 +                <​UML:​Multiplicity xmi.id="​X.8">​
 +                  <​UML:​Multiplicity.range>​
 +                    <​UML:​MultiplicityRange xmi.id="​X.9"​ lower="​1"​ upper="​-1"​
 +                                           ​multiplicity="​X.8"/>​
 +                  </​UML:​Multiplicity.range>​
 +                </​UML:​Multiplicity>​
 +              </​UML:​AssociationEnd.multiplicity>​
 +            </​UML:​AssociationEnd>​
 +
 +            <​UML:​AssociationEnd xmi.id="​UMLAssociationEnd.7"​
 +                                name="​pracownik"​ aggregation="​none"​ targetScope="​instance"​
 +                                visibility="​public"​ ordering="​unordered"​ isNavigable="​true"​
 +                                association="​UMLAssociation.5"​ type="​UMLClass.4">​
 +              <​UML:​AssociationEnd.multiplicity>​
 +                <​UML:​Multiplicity xmi.id="​X.10">​
 +                  <​UML:​Multiplicity.range>​
 +                    <​UML:​MultiplicityRange xmi.id="​X.11"​ lower="​-1"​ upper="​-1" ​
 +                                           ​multiplicity="​X.10"/>​
 +                  </​UML:​Multiplicity.range>​
 +                </​UML:​Multiplicity>​
 +              </​UML:​AssociationEnd.multiplicity>​
 +            </​UML:​AssociationEnd>​
 +
 +          </​UML:​Association.connection>​
 +        </​UML:​Association>​
 +
 +      </​UML:​Namespace.ownedElement>​
 +    </​UML:​Package>​
 +  </​UML:​Namespace.ownedElement>​
 +</​UML:​Model>​
 +</​XMI.content>​
 +</​XMI>​
 +</​code>​
 +
 +XMI jest ogólnoświatowym standardem zdefiniowanym normą: \\  ​
 +[[http://​www.iso.org/​iso/​iso_catalogue/​catalogue_tc/​catalogue_detail.htm?​csnumber=32622|ISO/​IEC 19503:2005 Information technology -- XML Metadata Interchange (XMI)]].
 +
 +=== Źródła ===
 +1. http://​www.omg.org/​docs/​formal/​03-05-02.pdf \\
 +2. http://​www.zsk.ict.pwr.wroc.pl/​zsk/​repository/​dydaktyka/​wzsr/​mda.pdf \\
 +3. http://​www.openmdx.org/​documents/​introduction/​htmlsingle/​openMDX_Introduction.html#​F-OMG-MDA-2 \\
 +
 +
 +
 +====== MetaObject Facility (MOF) ======
 +
 +MetaObject Facility (MOF) to specyfikacja definiująca zasady opisu języka modelowania (tzw. metamodel) dla wszystkich specyfikacji tworzonych przez Object Management Group (OMG). MOF sprawia, że wywodzące się z niej specyfikacje są kompatybilne ze sobą. Definiuje również standard przechowywania metamodeli oraz modeli.
 +
 +Poniższy diagram ukazuje relacje między modelem, metamodelem,​ a językiem [za [[pl:​miw:​miw08_umlandardxtt:​notatki#​zrodla1|2]]]:​
 +
 +{{http://​student.agh.edu.pl/​~kkluza/​xmi/​metamodel_model_jezyk.png|Metamodel,​ model a język}}
 +
 +\\ 
 +
 +> MOF umożliwia budowanie własnych języków modelowania specyficznych dla wybranej kategorii
 +> zastosowań lub definiowanie rozszerzeń do istniejących języków modelowania. Ponieważ zarówno
 +> same rozszerzenia,​ jak i ewentualne nowe języki są zgodne ze specyfikacją MOF, dlatego też stają się
 +> automatycznie dostępne do dalszego wykorzystania w systemach współpracujących z repozytorium modeli MOF. [ [[pl:​miw:​miw08_umlandardxtt:​notatki#​zrodla1|3]] ]
 +
 +
 +
 +
 +
 +===== Czterowarstwowa architektura metadanych =====
 +
 +Specyfikacja MOF została zaprojektowana jako najwyższa warstwa w hierarchii metamodeli OMG.
 +Hierarchia ta posiada 4 warstwy:
 +
 +    * M3 - warstwa meta-metamodelu,​
 +    * M2 - warstwa metamodelu,
 +    * M1 - warstwa modelu,
 +    * M0 - warstwa informacyjna.
 +
 +Każda warstwa reprezentuje różne poziomy danych lub meta danych. \\ 
 +
 +^ Warstwa w hierarchii: ^ Co zawiera warstwa: ^ Przykłady: [za [[pl:​miw:​miw08_umlandardxtt:​notatki#​zrodla1|3]]] ^
 +|  {{http://​student.agh.edu.pl/​~kkluza/​xmi/​m3.png|M3}} ​ | specyfikacja języka modelowania (metamodelu) | Meta-Object Facility (MOF) |
 +|  {{http://​student.agh.edu.pl/​~kkluza/​xmi/​m2.png|M2}} ​ | model metadanych (specyfikacja języka) | specyfikacja SQL, specyfikacja UML, specyfikacja XML |
 +|  {{http://​student.agh.edu.pl/​~kkluza/​xmi/​m1.png|M1}} ​ | metadane, czyli opis formatu i znaczenia danych | schemat bazy danych, model klas, definicja dokumentu XML (DTD) |
 +| {{http://​student.agh.edu.pl/​~kkluza/​xmi/​m0.png|M0}} | rzeczywiste dane, które chcemy opisać | dane w bazie danych, instancje obiektów, dokument XML |
 +
 +Przykład hierarchii dla książki [stworzony na podstawie przykładu z niemieckiej wikipedii: [[pl:​miw:​miw08_umlandardxtt:​notatki#​zrodla1|4]]]:​
 +
 +{{http://​student.agh.edu.pl/​~kkluza/​xmi/​example4layer.png|Przykład hierarchii warstw dla obiektu książki}}
 +
 +\\ 
 +Najwyższą warstwą, znajdującą się na najwyższym poziomie abstrakcji tej architektury,​ jest model specyfikacji języka modelowania MOF, czyli meta-metamodel.
 +
 +> Na tym poziomie można stworzyć repozytorium opisu języków modelowania.
 +> Repozytorium to umożliwia systemom wzajemne poznanie struktur i semantyk w celu nawiązania
 +> współpracy. Jeśli podczas modelowania systemu, wykorzystano język modelowania,​ którego opis
 +> umieszczono w repozytorium,​ wówczas inny system może poznać sposób opisu tego modelu, a co za
 +> tym idzie odczytać sam model w celu rozpoczęcia współdziałania. \\ 
 +> Celem istnienia repozytorium MOF jest zapewnienie systemom możliwości odkrycia i manipulowania
 +> metadanymi. Poprzez możliwość wymiany meta informacji uzyskuje się semantyczną wymianę danych,
 +> co prowadzi do łatwiejszej integracji systemów. Powstają już rozwiązania pozwalające na realizację
 +> dostępu, składowania i specyfikowania meta informacji. Jednym z nich jest Java API for Metadata (JMI). [ [[pl:​miw:​miw08_umlandardxtt:​notatki#​zrodla1|3]] ]
 +
 +Specyfikacja MOF posługuje się także dodatkowymi technikami specyfikowania. Gdyby chcieć je umieścić na diagramie hierarchii, należałoby dodać nową (wirtualną) warstwę, zawierającą dodatkowe techniki specyfikacji. Poniższy rysunek [za: [[pl:​miw:​miw08_umlandardxtt:​notatki#​zrodla|2]]] pokazuje zależności między MOF, a dodatkowymi technikami specyfikowania:​
 +
 +{{http://​student.agh.edu.pl/​~kkluza/​xmi/​MOFandOtherTechSpec.jpg|Zależności między MOF, a dodatkowymi technikami specyfikowania}}
 +
 +OMG zdefiniowało 2 warianty MOF:
 +
 +    * podstawowy - Essential MOF (EMOF),
 +    * pełny - Complete MOF (CMOF).
 +
 +\\ 
 +MOF jest ogólnoświatowym standardem zdefiniowanym normą: \\ 
 +[[http://​www.iso.org/​iso/​iso_catalogue/​catalogue_tc/​catalogue_detail.htm?​csnumber=32621|ISO/​IEC 19502:2005 Information technology -- Meta Object Facility (MOF)]].
 +
 +=== Źródła ===
 +1. http://​www.omg.org/​mof/​ \\ 
 +2. http://​essay.utwente.nl/​57286/​1/​scriptie_Overbeek.pdf \\ 
 +3. http://​adlejman.w.interia.pl/​mda.pdf \\ 
 +4. http://​de.wikipedia.org/​wiki/​Meta_Object_Facility \\ 
 +
 +
  
-FIXME 
pl/miw/miw08_umlandardxtt/notatki.1204025689.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0