View
4
Download
0
Category
Preview:
Citation preview
XMI - Case-Tool unabhängiges Modellieren -Wunschtraum oder bald Realität
XCC Software Architecture Days11. Juni 1999
Kloster Eberbach / Wiesbaden
Mario Jeckle
Mario JeckleDaimlerChrysler Research,FT3/EK2
XMI within thefamily of XMLlanguages
eXtensible Markup Language (XML)XH
TML
MathM
L
RDF
SMIL
XMI
P3P
PICS
HTM
LD
okument
Mathem
atischerAusdruck
Multim
ediaAppliKation
Eigenschaften von Web-Dokumenten, Bildern, etc.
Auszeichnungs-Sprachen und andereFormalismen in XML-Syntax
Mario JeckleDaimlerChrysler Research,FT3/EK3
TOC
Motivation
Heterogenität als Herausforderung
Lösungsansatz: Stream-based Model Interchange
Ziele von SMIF
Object Management Architecture
OMG’s four layer Metamodel Architecture
Beispiele
CASE-Tool unabhängiges Modellieren?
Mario JeckleDaimlerChrysler Research,FT3/EK4
ChallengedbyHeterogeneity
Modellierungssprache
UML
OML
(E)ER
OORAM
IA
E3R
ORM
...
Verteilung
WAN
WWW
MANLAN
lokal
Modellierungmethode
Objectory
RUP
Catalysis
Fact-oriented
V-Modell
Implementierungssprache
C
C++ ObjectiveC
SmallTalk Eiffel
DelphiVisualBasic
Java
Implementierungsumgebung
Visual C++
VisualAge
ParkPlace
ProblemProjekt
Mario JeckleDaimlerChrysler Research,FT3/EK5
Conjunctionof differentmodelinglanguages (metamodels) andmodeling tools
heterogen
Werkzeug-landschaft
Modellierungssprache(Meta-Modell)
homogen
homogen heterogen
kompatibel
kompatibel
T1 M21
T1
M21
M22
T1
M21
M22
T1
T2
M21
M22
T1
T2
M21
M21
M22
T1
T2
M21
T1
T2
M21
M22
T1
T2
T1
T2
M21
M22
Mario JeckleDaimlerChrysler Research,FT3/EK6
Assessing theinteractionscenarios
heterogen
Werkzeug-landschaft
Modellierungssprache(Meta-Modell)
homogen
homogen heterogen
kompatibel
kompatibel
T1
T2
M21
M22
SMIFSMIF
SMIF
SMIFSMIF
SMIF
Mario JeckleDaimlerChrysler Research,FT3/EK7
SMIF RFP
Addressedsubject Areas
Ziele •Herstellerunabhängiges Transferformat•Instriestandard-Formatfestlegung•generisches Format•Modellaustausch
•MOF-basierter Modelle•UML•Work-Flow Management Facility•Business Objects Facility
Lösung für •Transferspezifikation•MOF basierter Modelle•CDIF codierter Modelle•STEP/EXPRESS Modelle
•Metamodell-Versionierung
Umsetzung: •Web-Technologien (W3-Standards)•XML liefert Syntax und Encoding Standard
•MOF liefert Metadaten Definition
XMI ist eine Sprache der XML-Familie
Mario JeckleDaimlerChrysler Research,FT3/EK8
OMG‘sStream-basedModelInterchange(SMIF)
The ObjectManagementArchitecture (OMA)
Object Request Broker & Internet
Object Services
Tools & Repositories
Repository Common Facility
MOF SMIF UML
APIs APIs
Mario JeckleDaimlerChrysler Research,FT3/EK9
Four layerMetamodelArchitecture
M0
M1
M2
M3+
Ausprägungen
Modell
Meta-Modell
Meta-Meta-Modell
Max Muster : Person
Person
«instanceOf»
Class
Person
«instanceOf»
MetaClass
Class
«instanceOf»«instanceOf»
Mario JeckleDaimlerChrysler Research,FT3/EK10
XMI within thefour layerMetamodelArchitecture
M0
M1
M2
M3+
Instances
Model
UML & otherMeta Models
Meta Object FacilitiesMeta Meta Model
MOF asXML DTD
UML & othersas XML DTDs
MOFMetaModels asXML Documents
UML & otherModels as XML
Documents
Mario JeckleDaimlerChrysler Research,FT3/EK11
TheUML Metamodel
(Core-Package
Relationships)
Mario JeckleDaimlerChrysler Research,FT3/EK12
Meta ObjectFacilities
(Model Package)
Mario JeckleDaimlerChrysler Research,FT3/EK13
XML MetadataInterchange byExample
(UML Model)
SimpleModel
Class1
attribute1 : Class1
Mario JeckleDaimlerChrysler Research,FT3/EK14
As a Metamodelbased on MOFUML ObjectDiagram
SimpleModel: Modelname = SimpleModelvisibility = public...
Class1 : Classname = Class1...
attribute1 : Attributename = attribute1multiplicity = ( {1, 1} )...
ownedElement
feature
type Class1 : DataTypename = Class1...
SimpleModel
Class1
attribute1 : Class1
Mario JeckleDaimlerChrysler Research,FT3/EK15
XML MetadataInterchange byExample
(XMI Code Part I)
<?xml version = "1.0"?><!DOCTYPE XMI SYSTEM "uml.dtd"><XMI xmi.version="1.0"> <XMI.header> <XMI.metamodel xmi.name="uml" xmi.version="1.1"/> </XMI.header> <XMI.content> <Model_Management.Model xmi.id="i00000001"> <Foundation.Core.ModelElement.name> SimpleModel </Foundation.Core.ModelElement.name> <Foundation.Core.ModelElement.visibility xmi.value="public"/> <Foundation.Core.GeneralizableElement.isRoot xmi.value="true"/> <Foundation.Core.GeneralizableElement.isLeaf xmi.value="true"/> <Foundation.Core.GeneralizableElement.isAbstract xmi.value="false"/> <Foundation.Core.Namespace.ownedElement> <Foundation.Core.Class xmi.id="i00000002"> <Foundation.Core.ModelElement.name> class1 </Foundation.Core.ModelElement.name> <Foundation.Core.ModelElement.visibility xmi.value="public"/> <Foundation.Core.GeneralizableElement.isRoot xmi.value="true"/> <Foundation.Core.GeneralizableElement.isLeaf xmi.value="true"/> <Foundation.Core.GeneralizableElement.isAbstract xmi.value="false"/> <Foundation.Core.Class.isActive xmi.value="true"/> <Foundation.Core.Classifier.feature> <Foundation.Core.Attribute xmi.id="i00000003"> <Foundation.Core.ModelElement.name> attribute1 </Foundation.Core.ModelElement.name>
SimpleModel
Class1
attribute1 : Class1
Mario JeckleDaimlerChrysler Research,FT3/EK16
XML MetadataInterchange byExample
(XMI Code Part II)
<Foundation.Core.ModelElement.visibility xmi.value="public"/> <Foundation.Core.Feature.ownerScope xmi.value="instance"/> <Foundation.Core.StructuralFeature.multiplicity> 1 </Foundation.Core.StructuralFeature.multiplicity> <Foundation.Core.StructuralFeature.changeable xmi.value="none"/> <Foundation.Core.StructuralFeature.targetScope xmi.value="instance"/> <Foundation.Core.Attribute.initialValue> <Foundation.Data_Types.Expression> <Foundation.Data_Types.Expression.language> </Foundation.Data_Types.Expression.language> <Foundation.Data_Types.Expression.body> 0 </Foundation.Data_Types.Expression.body> </Foundation.Data_Types.Expression> </Foundation.Core.Attribute.initialValue> <Foundation.Core.StructuralFeature.type> <Foundation.Core.DataType xmi.idref = "i00000004"/> </Foundation.Core.StructuralFeature.type> </Foundation.Core.Attribute> </Foundation.Core.Classifier.feature> </Foundation.Core.Class> <Foundation.Core.DataType xmi.id="i00000004"> <Foundation.Core.ModelElement.name> Class1 </Foundation.Core.ModelElement.name> <Foundation.Core.ModelElement.visibility xmi.value="public"/> <Foundation.Core.GeneralizableElement.isRoot xmi.value="true"/> <Foundation.Core.GeneralizableElement.isLeaf xmi.value="true"/> <Foundation.Core.GeneralizableElement.isAbstract xmi.value="false"/> </Foundation.Core.DataType> </Foundation.Core.Namespace.ownedElement> </Model_Management.Model> </XMI.content></XMI>
SimpleModel
Class1
attribute1 : Class1
Mario JeckleDaimlerChrysler Research,FT3/EK17
Example:An industryproject applyingthe OMGstandards UMLand XMI
Visual Round-Trip CustomizingVisual Round-Trip Customizing
Dokumentation{abstract}
AuftragsdokumentationAbteilungEingangsdatumIst-End TerminSoll-End TerminVeranlasser
Teiledokumentation
Datenformat
Ersteller/Eigentümer : StringKommentar : StringTitel : StringÄnderungsstand : Date
Änderungsdokumentation
KEM-Nr. : StringLaufende-Nr : NumberÄnderungsbeginn : Date
Gesamtauftrag
Teil-Auftrag
Teilauftrags-Nr
Konturgebende ÄnderungÄnderungstyp : String
Gießtechnische Änderung Simulationsauftrag
SimulationsdokumentationDateneingang : DateMAGMA-Projektname : StringMAGMA-Version : String
Simulationstyp
Simulationstyp : String
Mitarbeiter
Name : String
AbteilungBezeichnung : String
Versioniertes 2D/3D Dokument
Gieß- und Formwerkzeug Maschine
Maschinentyp : String
Werkzeug/Betriebsmittel
Anzahl Schieber : NumberStand : Timestamp
RohteilPP-Nr : String
ProduktivwerkzeugF-Nr. : Set of StringForm-Nr. : String
Datenformatdatentyp
Datentyp
Rahmen/Einsatz
FertigteilBenennung : String
Bauteil
Bauteil-Nr : set of StringBenennung : StringEinzelteil-Klasse : StringSoll-End-Termin : DateStand : set of TimestampStart-TerminStatus : StringWerkstoff : StringWärmebehandlungsvorschrift : BooleanÄnderunsart : set of String
Baugruppe
Benennung : String
Lage
X-Koordinate : RealY-Koordinate : RealZ-Koordinate : Real
WerkzeugänderungÄnderungsart : String
Zusammenbau
Konturgebende ÄnderungÄnderungstyp : String
Teil Nr
Baureihe : NumberKennbuchstabe : Char(1)Position in Stückliste : NumberTeil-Kennung : NumberÄnderungsindex : Number
Teil RevisionStand : TimeStamp
ÄnderungsstandÄnderungsstand : String
Werkzeugzusammenbau
Bauteil
Bauteil-Nr : set of StringBenennung : StringEinzelteil-Klasse : StringSoll-End-Termin : DateStand : set of TimestampStart-TerminStatus : StringWerkstoff : StringWärmebehandlungsvorschrift : BooleanÄnderunsart : set of String
Baugruppe
Benennung : String
Zusammenbau
Einfachteil
Breite : RealDurchmesser : RealGewindemaß : RealHöhe : RealLänge : RealSchlüsselweite : RealTyp : Real
KokilleKernformwerkzeug
Kernbezeichnung : String
Abgratwerkzeug
F6-Nr : String
Produktivwerkzeug
F-Nr. : Set of StringForm-Nr. : String
StandardwerkzeugWerkzeugtyp : String
Werkzeugzusammenbau
Betriebsnormteil
Betriebsnorm : String
Betriebsnormteil Ausführung
Ausführung : String
Kaufteil
DIN-Teil
Benennung : StringNorm : String
Lieferant
Name : String
ElektrodeVersuchs- und Einzelteil
Beschreibung : Stringzugrundeliegendes Urmodell : String
Gießhalbzeug
Gießeinzelteil
Teil Nr
Baureihe : NumberKennbuchstabe : Char(1)Position in Stückliste : NumberTeil-Kennung : NumberÄnderungsindex : Number
Teil RevisionStand : TimeStamp
ÄnderungsstandÄnderungsstand : String
Gießtechnische ÄnderungSimulationsauftrag
Teil-AuftragTeilauftrags-Nr
Kern Nr. Änderungsindex
Änderungsindex : Number
0..1
1
10..1
0..1
0..1
1..*1..*
SimulationsprojektabschnittBeginn : DateEnde : Date
1..*
1 Ergebnis-Dokumentation
*
1Ansprechpartner
1
*
0..1
0..1
entstandenaus
Grundlagefür
1
1..*
bestehtaus
1..*
*
Aufspannplan* 0..1
1..*
*
Zuordnung Rohteil/Produktivwerkzeug
Verwendung : String
1..*
1
1
1..*
1
1..*
1
1..*
1
1..*
1
1..*
1
1..*
1
*
1 1..*
0..1
0..1
ersetzt
wird ersetzt
* 1..*
Verwendung Bauteil1 1..*
0..1
1
0..1
0..1
ersetzt
ersetztdurch
1
*
verwendet1
0..1
0..1 0..1ersetzt wird ersetzt
1
0..1
1..*
1..*
Teil ID10..1
0..1
*
1..*
Rahmen
1..*
Einsatz
1..*
0..1
Verwendung Baugruppe
1..*
1
1..*
*
benötigt
1..* 1..*
Werkzeugsatz Kokille
*
1..*
1..*
1..*
Werkzeugsatz Druckguß
*
1..*
* 1..*
*
*
0..1
0..1
ist
ist
1..* *
1..* ***
dientfür
entstehtaus
*
*
1..*
1..*Teil ID
1
0..1
1..*0..11..*
1..*
1
1
0..1 *
dientfür
entstehtaus
1
0..1
1..*1..*
Kern ID
1..*1
Problemstellung:
•Forward-Engineering: automatische Generierung von Customizingcode für Standardsystem
•Reverse-Engineering: Wiedergewinnung bestehender Customizinganteile
Mario JeckleDaimlerChrysler Research,FT3/EK18
Architecture ofthe proposedsolution
Metaphase
Repository
MODeL
MODeL-Compiler
Schema-Extraktor
Schema-Dump
CASE-Tool
API
XMISD -> XMIProzessor
XMI-Interface
XMI -> MODeLProzessor
Forward-Engineering
Reverse-Engineering
Mario JeckleDaimlerChrysler Research,FT3/EK19
XMI demoand proof ofconcept
(in cooperationwith XMI partners)
IBMVisualAge
SelectOracleRepository
RoseDTDGen
EnterpriseOracleDesigner
VATCWeb
Sphere VA Java
XMIXMI
UnisysUREP
MOFDTDGen
RationalRose Unisys
IntegratePlus
Non-XMIRepositories
XMI XMI XMI
XMI
XMI XMI
XMI XMI
XMIXMI XMI XMI
XMI
Mario JeckleDaimlerChrysler Research,FT3/EK20
UsageScenarios
MOF Model
Metamodel
Model
DTD
XML
gemäß XMIGenerierungsprinzipienerzeugt
gemäß XMIGenerierungsprinzipienerzeugt
konform zu
konform zu konform zu
XMI ist CASE-Tool unabhängiges Modellieren, aber auch...•Einsatz als Modellaustauschformat
•Eindeutige textuelle Beschreibung von (Meta-)Modellen
•Toolunabhängige Code-Generierung
•Metriken
•Pattern Libraries
•Modellvalidierung
Mario JeckleDaimlerChrysler Research,FT3/EK21
Results andEvaluation
+ Breite Industrieunterstützung
UnisysIBMDSTCOraclePlatinum TechnologyFujitsuSofteamRecerca InformaticaDaimlerChrysler
Cayenne SoftwareGenesis DevelopmentInline SoftwareRational SoftwareSelect SoftwareSprint CommunicationsSybaseXeroxMCI SystemhouseBoeingArdentAviatisICONIXIntegrated SystemsVerilogTelefonica I+DUniversitat Politecnica de CatalunyaNCRNihonNTT
Mario JeckleDaimlerChrysler Research,FT3/EK22
Results andEvaluation
+ Breite Industrieunterstützung
+ Web-Technologie (W3-Standardfamilie)
+ Weiterführende Ansätze: Delta-InterchangeMetamodellversionierung
Mario JeckleDaimlerChrysler Research,FT3/EK23
Results andEvaluation
+ Gute Skalierbarkeit
+ Breite Industrieunterstützung
+ Web-Technologie (W3-Standardfamilie)
+ Weiterführende Ansätze: Delta-InterchangeMetamodellversionierung
Mario JeckleDaimlerChrysler Research,FT3/EK24
Results andEvaluation
- fehlende Human-readability (eigener RFP)
- Größe des XMI-Streams
+ Gute Skalierbarkeit
+ Breite Industrieunterstützung
+ Web-Technologie (W3-Standardfamilie)
+ Weiterführende Ansätze: Delta-InterchangeMetamodellversionierung
Mario JeckleDaimlerChrysler Research,FT3/EK25
ReferencesMeta Object Facility (MOF): OMG Document ad/97-08-14
Bruce McLean: Evaluation Report OMG OA&DTF RFP3 Stream-based Model Interchange Format (SMIF), OMG A&D-TF
Revised Joint-Submission:XMI Partners: XML Metadata Interchange, OMG-Dokument ad/98-10-05
WWW:•http://www.software.ibm.com/ad/features/xmi.html•http://www.omg.org•http://www.krumbach.de/home/jeckle
Recommended