140 likes | 236 Views
Explore the integration of UML and SaveCCM, customization potential, UML profiles, defining metamodels, and implementing profiles in Omondo for efficient system design in embedded systems and security.
E N D
Possible... System overview
Component modeling language • embedded systems, security • CBSE • well formalised, Schema, IDE What is SaveCCM? How does UML fit in? • 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
Model vs. metamodel • UML = Modeling language • MOF = Metamodeling language • UML is built on MOF Customizing UML - I • Why not create a • SaveCCM metamodel?
UML conceptual overview UML Metamodel Customizing UML - II
UML Profile ( finaly ) • Concept of the profile • Basic building elements • Stereotype • new symbols with tagged values and constraints included Customizing UML - III • 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
Defining the SaveCCM metamodel (abstract /concrete) • (mostly done in the SaveCCM language reference) • Fundamental language constructs • Relationships • Constraints • Concrete syntax (visual, textual) • Semantics Method for defining the UML profile Structural elements: Component Port Assembly Composite comp.? Connections? 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 constraints • Identify need for possible specialization of the base UML metaclass • SaveUML deliverables • SaveUML Profile Reference document • SaveUML Profile Implementation ? • Transformation library ?
Creating a UML profile diagram (Omondo Profile designer) • UML Profile diagram • Create stereotypes and apply to metaclasses Implementing the profile in Omondo • Applying the stereotypes in a model (Omondo model designer) • Include the profile • List of available stereotypes
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 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 What is the current status? • SaveUML deliverables • SaveUML Profile Reference document • SaveUML Profile Implementation • Transformation library ?
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
Transformation library (option 2) • Transformation is done with Java code • Library uses existin XML parser to read input XML file(s), and creates a model of the diagram in memory • Based on that model, creates a transformed model • Writes down the new model to XML file(s)
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?
The end (not quite ) Questions?