Title: A Generative Approach to Model Interpreter Evolution
1A Generative Approach to Model Interpreter
Evolution
- Jing Zhang, Jeff Gray, and Yuehua Lin
- zhangj, gray, liny _at_ cis.uab.eduDept. of
Computer Information Sciences - University of Alabama at Birmingham
- http//www.cis.uab.edu/softcom/
2Evolution of models and interpreters in terms of
meta-model changes
?MM The changes made to the meta-models ?M The
changes reflected in the domain models ?I The
changes reflected in the model interpreters
3Example Old/New Metamodel and model
4Example Old/New Interpreter
CBuilderAtom GetStartState(
CBuilderModel StateDiagram)
CBuilderAtom startstate null const
CBuilderAtomList states
StateDiagram-gtGetAtoms("State") POSITION
posstates-gtGetHeadPosition() while(pos)
CBuilderAtom st
states-gtGetNext(pos)
CBuilderConnectionList cons
st-gtGetInConnections("Transition")
if ( cons null ) if (
startstate null)
startstate st else
ltltERROR more than one state
has no InConnectionsgtgt ASSERT (
startstate !null ) return startstate
CBuilderAtom GetStartState(
CBuilderModel StateDiagram) const
CBuilderAtomList startstates
StateDiagram-gtGetAtoms("StartState")
ASSERT(startstates-gtGetCount()1)
CBuilderAtom startstate
startstates-gtGetHead()
return startstate
5Technical Challenges
- Lack of formally-written model interpreter
- Different developers may program interpreters in
various ways - Hard to maintain and evolve such subjective
realizations of model interpreters - Lack of formal specification for metamodel
transformation - Metamodel transformation specifications must
include the entire knowledge for the underlying
interpreter evolution - ?MM ?I
- Lack of support for parsing and invasively
transforming program source code from
higher-level models.
?
- Utilize a mature program transformation engine
The Design Maintenance System (DMS)
6Model Interpreter Evolution Architecture (MIEA)
7DMS rewriting rules for evolving intepreter(1)
- Differences of names for any model entities,
relationships and attributes
rule ChangeName (ididentifier)
expression_statement -gt expression_statement
"\id -gt GetModels(\State\")" -gt "\id -gt
GetModels(\StartState\")".
8DMS rewriting rules for evolving intepreter(2)
- Differences of model types
rule ChangeModelType (ididentifier)
expression_statement -gt expression_statement
\id -gt GetAtoms(\State\) -gt \id -gt
GetModels(\State\).
9DMS rewriting rules for evolving intepreter(3)
- Differences of attribute types
rule ChangeAttrType ()
declaration_statement -gt declaration _statement
CString State_Text
-gt int State_Text.
10Conclusion
- Ideal Goal
- Support the (semi)-automation of model
interpreter evolution in terms of metamodel
changes and modeling API changes - Proposed Solution
- Model Interpreter Evolution Architecture
- Obstacles
- Informal model interpreter
- Hard to maintain the fidelity mapping of
high-level abstract models to the low-level
source code - Possible solution approaches to be investigated
- Attach program rewriting rules to the existing
model transformation specification - Develop a new high-level specification for model
transformation that can generate the rewriting
rules - Investigate an intelligent model comparison
technique to generate the rules through human
interactions
11Thank You !!
Questions ??