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:36]
miw
pl:miw:miw08_umlandardxtt:notatki [2019/06/27 15:50] (aktualna)
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 =====
  
-Uproszczony przykład reprezentacji klasy zapisanej przy pomocy XMLa: [za: 3]+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: Reprezentacja powyższej klasy w XMI wygenerowana przy użyciu StarUML:
Linia 37: Linia 40:
         <​UML:​Class xmi.id="​UMLClass"​ name="​Osoba"​ visibility="​public"​ namespace="​UMLModel">​         <​UML:​Class xmi.id="​UMLClass"​ name="​Osoba"​ visibility="​public"​ namespace="​UMLModel">​
           <​UML:​Classifier.feature>​           <​UML:​Classifier.feature>​
-            <​UML:​Attribute xmi.id="​UMLAttribute.6"​ name="​imie"  +            <​UML:​Attribute xmi.id="​UMLAttribute.6"​ name="​imie"​ owner="​UMLClass"/>​ 
-                           ​visibility="​public" owner="​UMLClass"/>​ +            <​UML:​Attribute xmi.id="​UMLAttribute.7"​ name="​nazwisko"​ owner="​UMLClass"/>​ 
-            <​UML:​Attribute xmi.id="​UMLAttribute.7"​ name="​nazwisko"  +            <​UML:​Attribute xmi.id="​UMLAttribute.8"​ name="​pesel"​ owner="​UMLClass"/>​
-                           ​visibility="​public" owner="​UMLClass"/>​ +
-            <​UML:​Attribute xmi.id="​UMLAttribute.8"​ name="​pesel"  +
-                           ​visibility="​public" owner="​UMLClass"/>​+
           </​UML:​Classifier.feature>​           </​UML:​Classifier.feature>​
         </​UML:​Class>​         </​UML:​Class>​
Linia 49: Linia 49:
 </​XMI>​ </​XMI>​
 </​code>​ </​code>​
 +
  
 ===== Przykład dwóch klas powiązanych asocjacją ===== ===== Przykład dwóch klas powiązanych asocjacją =====
Linia 54: Linia 55:
 {{http://​student.agh.edu.pl/​~kkluza/​xmi/​przyklad2_asocjacja.png|2klasyZAsocjacja}} {{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ą) wygenerowanego ​przy użyciu StarUML:+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> <code xml>
Linia 67: Linia 69:
     <​UML:​Package xmi.id="​UMLPackage.2"​ name="​Package1"​ namespace="​UMLProject.1">​     <​UML:​Package xmi.id="​UMLPackage.2"​ name="​Package1"​ namespace="​UMLProject.1">​
       <​UML:​Namespace.ownedElement>​       <​UML:​Namespace.ownedElement>​
 +
         <​UML:​Class xmi.id="​UMLClass.3"​ name="​Firma" ​         <​UML:​Class xmi.id="​UMLClass.3"​ name="​Firma" ​
                    ​namespace="​UMLPackage.2"​ participant="​UMLAssociationEnd.6"/>​                    ​namespace="​UMLPackage.2"​ participant="​UMLAssociationEnd.6"/>​
         <​UML:​Class xmi.id="​UMLClass.4"​ name="​Osoba" ​         <​UML:​Class xmi.id="​UMLClass.4"​ name="​Osoba" ​
                    ​namespace="​UMLPackage.2"​ participant="​UMLAssociationEnd.7"/>​                    ​namespace="​UMLPackage.2"​ participant="​UMLAssociationEnd.7"/>​
-        ​<​UML:​Association xmi.id="​UMLAssociation.5"​ name="+ 
-                   ​visibility="​public" namespace="​UMLPackage.2">​+        ​<​UML:​Association xmi.id="​UMLAssociation.5"​ name=""​ namespace="​UMLPackage.2">​
           <​UML:​Association.connection>​           <​UML:​Association.connection>​
 +
             <​UML:​AssociationEnd xmi.id="​UMLAssociationEnd.6"​             <​UML:​AssociationEnd xmi.id="​UMLAssociationEnd.6"​
-                                name="​pracodawca" ​visibility="public" targetScope="​instance"​ +                                name="​pracodawca" ​aggregation="none" targetScope="​instance"​ 
-                                ​ordering="unordered" ​aggregation="none" isNavigable="​true"​+                                ​visibility="public" ​ordering="unordered" isNavigable="​true"​
                                 association="​UMLAssociation.5"​ type="​UMLClass.3">​                                 association="​UMLAssociation.5"​ type="​UMLClass.3">​
               <​UML:​AssociationEnd.multiplicity>​               <​UML:​AssociationEnd.multiplicity>​
Linia 87: Linia 91:
               </​UML:​AssociationEnd.multiplicity>​               </​UML:​AssociationEnd.multiplicity>​
             </​UML:​AssociationEnd>​             </​UML:​AssociationEnd>​
 +
             <​UML:​AssociationEnd xmi.id="​UMLAssociationEnd.7"​             <​UML:​AssociationEnd xmi.id="​UMLAssociationEnd.7"​
-                                name="​pracownik" ​visibility="public" targetScope="​instance"​ +                                name="​pracownik" ​aggregation="none" targetScope="​instance"​ 
-                                ​ordering="unordered" ​aggregation="none" isNavigable="​true"​+                                ​visibility="public" ​ordering="unordered" isNavigable="​true"​
                                 association="​UMLAssociation.5"​ type="​UMLClass.4">​                                 association="​UMLAssociation.5"​ type="​UMLClass.4">​
               <​UML:​AssociationEnd.multiplicity>​               <​UML:​AssociationEnd.multiplicity>​
Linia 100: Linia 105:
               </​UML:​AssociationEnd.multiplicity>​               </​UML:​AssociationEnd.multiplicity>​
             </​UML:​AssociationEnd>​             </​UML:​AssociationEnd>​
 +
           </​UML:​Association.connection>​           </​UML:​Association.connection>​
         </​UML:​Association>​         </​UML:​Association>​
 +
       </​UML:​Namespace.ownedElement>​       </​UML:​Namespace.ownedElement>​
     </​UML:​Package>​     </​UML:​Package>​
Linia 110: Linia 117:
 </​code>​ </​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 ===
Linia 115: Linia 124:
 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 \\ 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.1208194583.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