SaveUML System design
description
Transcript of SaveUML System design
![Page 1: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/1.jpg)
SaveUML System design
![Page 2: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/2.jpg)
System overview
Possible...
![Page 3: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/3.jpg)
What is SaveCCM? How does UML fit in?
• Component modeling language– embedded systems, security
– CBSE
– well formalised, Schema, IDE
• Motivation for introducing UML– Things that UML brings along
• Widely accepted (universal) standard• Huge possibilities and highly customizable• Component diagram (similarities with Save)
• Formal connection of UML and SaveCCM– UML extensibility mechanisms
![Page 4: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/4.jpg)
Customizing UML - I
• Model vs. metamodel– UML = Modeling language
– MOF = Metamodeling language
– UML is built on MOF
Why not create aSaveCCM metamodel?
![Page 5: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/5.jpg)
• UML conceptual overview
Customizing UML - II
UML Metamodel
![Page 6: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/6.jpg)
Customizing UML - III
• UML Profile ( finaly )– Concept of the profile
– Basic building elements • Stereotype
– new symbols with tagged values
and constraints included
• Tagged values– Name=value pairs, applicable to all model elements
– SaveCCM_PortType = {DATA, TRIGGER}
– SaveCCM_PortDirection = {IN, OUT}
• Constraints– Object Constraint Language (formal specification language)
– UML types, arithmetic, logical, conditional, relational expression evaluation
– (mostly) for modeling Save component behaviour (timed automatons),
read-compute-write model
![Page 7: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/7.jpg)
Method for defining the UML profile1. Defining the SaveCCM metamodel (abstract /concrete)
(mostly done in the SaveCCM language reference)
• Fundamental language constructs• Relationships• Constraints• Concrete syntax (visual, textual)• Semantics
ONLY STATIC!
2. Mapping the SaveCCM to the UML profile
For each domain concept : Select a base UML metaclass with the closest semantics
Verify that there is no conflicting constraintsIdentify need for possible specialization of the base UML metaclass
SaveUML deliverablesSaveUML Profile Reference documentSaveUML Profile Implementation ?Transformation library ?
Structural elements:
Component
Port
Assembly
Composite comp.?
Connections?
![Page 8: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/8.jpg)
Implementing the profile in Omondo
1. Creating a UML profile diagram (Omondo Profile designer)• UML Profile diagram• Create stereotypes and apply to metaclasses
2. Applying the stereotypes in a model (Omondo model designer)
• Include the profile• List of available stereotypes
![Page 9: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/9.jpg)
SaveUML Profile results
2. SaveUML Profile implementation• Customized standards conformance• Can be imported in Omondo for further modeling
3. SaveUML model files• Customized standards conformance• Well described schema (reverse eng. or direct)• Endpoint for transformation
SaveUML deliverablesSaveUML Profile Reference documentSaveUML Profile ImplementationTransformation library ?
1. SaveUML Profile Reference• Identified subset of the UML metamodel with well-formedness rules (OCL)• Standard elements (beyond UML elements – elements of profile)• Description of usage in natural language
What is the current status?
![Page 10: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/10.jpg)
Part 2 - Transformation library
vs.
![Page 11: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/11.jpg)
Transformation library (option 1)
• XSLT is used to transform one XML to the other
• Our library uses existing XSLT processor (Xalan)
• Transformation mapping is defined in XSL files
![Page 12: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/12.jpg)
• Transformation is done with Java code1. Library uses existin XML parser to read
input XML file(s), and creates a model of the diagram in memory
2. Based on that model, creates a transformed model
3. Writes down the new model to XML file(s)
Transformation library (option 2)
![Page 13: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/13.jpg)
Transformation library
• In both cases, the library implements the same, well defined, interface, so the resto of the project remains the same
• Option 1– Standard way of transforming XML– XML of our files is very complex, so the code could get messy– We are not completely familiar with it, unexpected problems
could set us back
• Option 2– Less chance of unexpected promlems– Hard-codeing the transformation is Java makes it harder to
modify later– This code could get messy to, so which one is better?
![Page 14: SaveUML System design](https://reader035.fdocuments.net/reader035/viewer/2022081519/56813ae4550346895da33e8a/html5/thumbnails/14.jpg)
The end (not quite )
Questions?