Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_umlandardxtt:notatki [2008/04/14 19:14]
miw
pl:miw:miw08_umlandardxtt:notatki [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 FIXME  FIXME 
-====== Brudnopis ======+======= Brudnopis ​=======
  
-==== XML Metadata Interchange (XMI) ====+====== XML Metadata Interchange (XMI) ======
  
 XML Metadata Interchange (XMI) to standard dla wymiany metadanych przy użyciu XMLa. XML Metadata Interchange (XMI) to standard dla wymiany metadanych przy użyciu XMLa.
Linia 14: Linia 14:
 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 zostać użyty także do zapisu aplikacji (np. Java, C++), komponentów (np. EJB), baz danych (np. CWM).
  
-XMI może definiować:​ [za: 1]+XMI może definiować:​ [za: [[pl:​miw:​miw08_umlandardxtt:​notatki#​zrodla|1]]]
  
     * reprezentację obiektów i atrybutów,     * reprezentację obiektów i atrybutów,
Linia 23: Linia 23:
  
 > Należy podkreślić,​ że w obecnej postaci służy zapisowi modelu, a nie diagramów, ​ > 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. [2]+> 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 === === Źródła ===
-1. http://​www.omg.org/​docs/​formal/​03-05-02.pdf +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+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 \\  
 + 
  
pl/miw/miw08_umlandardxtt/notatki.1208193284.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