extremo - automated modelling assistance by integrating...
TRANSCRIPT
Extremo
ExtremoAutomated modelling assistance by integrating heterogeneous
information sources
. A. Mora Segura1 J. de Lara1
P. Neubauer2 M. Wimmer2
1Modelling and Software Engineering Research GroupUniversidad Autonoma de Madrid
2CDL-MINT, Business Informatics GroupTU Wien
2018
Extremo
Table of Contents
1 Motivation
2 What is already done...ArchitectureTool Support
3 What we are currently doing...
Extremo
Motivation
Looking for a way to reuse existing knowledge
Model-Driven Engineering (MDE) uses models as its main assets inthe software development process.High quality models are pivotal for the success of MDE.Nevertheless, they are mostly built in an unassisted way, with nomechanisms for reusing existing knowledge.
Extremo
Motivation
Metamodelling expert vs Domain Expert
Figure: Motivation: Filling the gap between being a metamodellingexpert and a domain expert
Extremo
Motivation
Overview
We propose an extensible approach to provide assistance duringthe modelling process.
Technological
spacesAssistant Eclipse Infraestructure
Repository Set
Heterogeneous
information sources
Descriptor
(OWL, Ecore, RDF
schema, XSD…)
Description
(OWL, XMI, RDF
instances, XML…)
<<conforms_to>>
Query
Facility
Constraint
Facility
Visualization
support
(for repositories,
queries and
constraints)
Assistant
manager
Integration with a
modelling tool
Working schema
Modelling tool
1
2
4
53
Figure: Overview of the approach
Extremo
Motivation
Our approach is useful...
As support for the development of new domain meta-models.This way, domain concepts and vocabulary can be sought inexternal sources such as XML documents or ontologies.
To create models for a particular domain. In this case, modelelements conforming to the same or similar meta-model canbe incorporated into the model being built.
To design a “concept” meta-model [1]. A concept is aminimal meta-model that gathers the core primitives within adomain, e.g., for workflow languages.
Extremo
Motivation
Our approach is useful...
To aggregate multiple existing models into a model-basedproduct line [2, 3]. In this approach, a description of thespace of possible features of a software system is created,typically through a feature model. The choice of featuresimplies the selection of a software model variant. This way,there is a need for understanding an existing family of modelsand to describe their variability.
To detect “bad smells” [4] or signs of bad modellingpractices [5] in a set of resources.
Extremo
What is already done...
Architecture
Architecture
AssistantManager
<<Data Model>>Core
Ecore Assistant
Ontologies Assistant
XML AssistantRepository
Manager
Query Facility
Constraint Interpreter Facility
contributes to
<<Eclipse Plugin Infraestructure>>
UI
controls
communicateswith
<<neoEMF>>Model
persistence
assistant
search
constraintinterpreter
contributes to
contributes to ConstraintInterpreter
Simple SearchConfiguration
…
Figure: Architecture of the proposal
Extremo
What is already done...
Architecture
Architecture
Ontologies
Repositorymanager
Queryfacility
Core
ConstraintInterpreter facility
Ecore
RegexDataProperty
assistant search constraintinterpreter
XMLText
MetaDepth
XMLAssistant
SemanticNodeSearch
OclConstraintInterpreter
…
… …
Figure: Architecture of the Core component
Extremo
What is already done...
Architecture
Architecture
<< ViewPart>>Repository
UI
<< ViewPart>>Constraint Results
sorter / filter
Core
<< ViewPart>>Search Results
<< ViewPart>>ResourceExplorer
Zest
action drag & drop
:configurations
:RepositoryManager:SearchResult
<< WizardDialog >>Search
:ConstraintResult
<< Menu >>CompositeQuery
:SearchResult
Figure: Architecture of the UI component
Extremo
What is already done...
Architecture
The ingredients of a modelling assistanceThe handling of heterogeneous sources through a common data model
* resources
DataPropertyvalue : Stringtype : Type
ObjectProperty
NamedElementname : String
properties *
*
*resourceElements
SemanticNode
supers *
Resourceuri : String
1 range
Repositoryname : StringprojectPath: String
abstract : boolean
subs *
* describes* descriptors
RepositoryManager
lowerBound : intupperBound : int
* repositories
type : Stringname : Stringbody : String
*constraints
«enumeration»Type
stringintbooleanfloatdouble
key : Stringvalue : String
ResourceElement* metadata
inverseOf0..1
Generalization relations
Instancesrelations
Properties
Multilevelagnostic
Technology-specificdetails thatdo not fit into thecommondata model
Figure: The common data model
Extremo
What is already done...
Architecture
The ingredients of a modelling assistanceThe uniform support for queries
filterBy : DataModelType
0..* results{ordered, redefines
results}
<<extensible>>Service
0..* configurations
SearchConfiguration
name: String
CompositeSearchConfigurationtype: ConnectionType
«enumeration»ConnectionType
orandnot
RepositoryManager
results 0..*
0..* values
«enumeration»DataModelType
ResourceSemanticNodeDataPropertyObjectProperty
{ordered}
boolean matches(expression: String, value: String)
name: StringfilterBy: Type <<from dataModel>>
GroupedSearchResult
SemanticGroup0..* groups
«from dataModel»NamedElement
0..* elements
applyOnE
lements
0..*
AtomicSearchResult
0..* elements
SearchResult0..1 calls
0..*services
0..* children
«extensible»PredicateBasedSearch
«extensible»CustomSearch
SimpleSearchConfiguration
init(inputs: SearchParamValue[*])boolean matches(n: NamedElement)
search(result: SearchResult)
0..*options
PrimitiveTypeParam
type : Type <<from dataModel>>
ModelTypeParam
SearchParam
id : Stringname : String
SearchParamValue
value : String
PrimitiveTypeParamValue
value : String
ModelTypeParamValue
«from dataModel»NamedElement
1 value
type : DataModelType 1 option
1 option
inputSearchResults 0..*
configuration 1
Iteration performed internally(driven by the engine)
Iteration performedexternally (driven bythe user code)
Extensibleapproach
Parametrizedqueries
Figure: Meta-model of our extensible query mechanism
Extremo
What is already done...
Architecture
The ingredients of a modelling assistanceThe managing of constraints
type: Stringname: Stringbody: String
RepositoryManager
* constInterpreters«extensible»
ConstraintInterpretertype: String
Constraint
«from dataModel»NamedElement
name : String 1 appliedTo boolean eval(c: Constraint, n: NamedElement)
* constraints
ConstraintResult
1 constraint
* unsat
evaluations
«from dataModel»Resource
0..1 context
*
* evals
JavaObject1 trace
Figure: Meta-model of the extensible constraint handling mechanism
Extremo
What is already done...
Tool Support
ExtremoAutomated modelling assistance by integrating heterogeneous information sources
Computer Languages, Systems and Structures. Volume 53, 2018,Pages 90-120, ISSN 1477-8424
UI
Figure: Extremo in Action: Search Wizard Dialog and views
Extremo
What is already done...
Tool Support
Preliminary evaluation (DONE)
RQ1: How useful is Extremo to solve practical problemsin Language Engineering? Two demonstration cases. Inboth of them, Extremo was used to support the developmentof complete DSL implementations for process modelling in theimmigration domain and modelling of production systems.
RQ2: How capable is Extremo to represent informationcoming from different technological spaces? An analyticalevaluation to assess how well Extremo’s data model covers thespace of possible information description approaches.
RQ3: How integrable is Extremo? One of the salientfeatures in Extremo is the possibility of integrating it withthird-party tools. Having already successfully integrated anumber of tools with Extremo, we intend to assess the reachand limitations of the integration mechanism.
Extremo
What we are currently doing...
Present work (TO-DO)
Improve the performance of the tool in order to importand query bigger models, using a design for the importers toallow some levels of concurrency.
A study with users. Evaluate the perceived usefulness ofExtremo by engineers in order to perform different modellingtasks (e.g., construct or modify a model). Compare thequality of the resulting models, and the effectivenes of themodelling task, with respect to not using assistance.
Extremo
What we are currently doing...
J. S. Cuadrado, E. Guerra, J. de Lara, A component model formodel transformations, IEEE Transactions on SoftwareEngineering 40 (11) (2014) 1042–1060.
K. Czarnecki, M. Antkiewicz, Mapping features to models: Atemplate approach based on superimposed variants, in: GPCE,Springer-Verlag, Berlin, Heidelberg, 2005, pp. 422–437.
A. Polzer, D. Merschen, G. Botterweck, A. Pleuss, J. Thomas,B. Hedenetz, S. Kowalewski, Managing complexity andvariability of a model-based embedded software product line,Innovations in Systems and Software Engineering 8 (1) (2012)35–49.
N. Moha, Y. Gueheneuc, L. Duchien, A. L. Meur, DECOR: Amethod for the specification and detection of code and designsmells, IEEE Trans. Software Eng. 36 (1) (2010) 20–36.
Extremo
What we are currently doing...
D. Aguilera, C. Gomez, A. Olive, Enforcement of conceptualschema quality issues in current integrated developmentenvironments, in: Proc. CAiSE, Vol. 7908 of Lecture Notes inComputer Science, Springer, 2013, pp. 626–640.