1、A Generative Approach to Model Interpreter Evolution,Jing Zhang, Jeff Gray, and Yuehua Lin zhangj, gray, liny cis.uab.edu Dept. of Computer & Information Sciences University of Alabama at Birmingham http:/www.cis.uab.edu/softcom/,Evolution of models and interpreters in terms of meta-model changes,MM
2、: The changes made to the meta-models M: The changes reflected in the domain models I: The changes reflected in the model interpreters,Example: Old/New Metamodel and model,Example: Old/New Interpreter,CBuilderAtom *GetStartState( CBuilderModel *StateDiagram) CBuilderAtom *startstate = null; const CB
3、uilderAtomList *states = StateDiagram-GetAtoms(“State“); POSITION pos=states-GetHeadPosition(); while(pos) CBuilderAtom *st = states-GetNext(pos); CBuilderConnectionList *cons = st-GetInConnections(“Transition“); if ( cons = null ) if ( startstate = null) startstate = st; else ASSERT ( startstate !=
4、null ); return startstate; ,CBuilderAtom *GetStartState( CBuilderModel *StateDiagram) const CBuilderAtomList *startstates = StateDiagram-GetAtoms(“StartState“);ASSERT(startstates-GetCount()=1);CBuilderAtom *startstate = startstates-GetHead();return startstate; ,Technical Challenges,Lack of formally-
5、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 f
6、or 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),?,Model Interpreter Evolution Architecture (MIEA),DMS rewriting rules
7、 for evolving intepreter(1),rule ChangeName (id:identifier): expression_statement - expression_statement = “id - GetModels(“State“);“ - “id - GetModels(“StartState“);“.,Differences of names for any model entities, relationships and attributes,rule ChangeModelType (id:identifier): expression_statemen
8、t - expression_statement = “id - GetAtoms(“State”);” - “id - GetModels(“State”);”.,Differences of model types,DMS rewriting rules for evolving intepreter(2),rule ChangeAttrType (): declaration_statement - declaration _statement = “CString Text;” - “int Text;”.,DMS rewriting rules for evolving intepr
9、eter(3),Differences of attribute types,Conclusion,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 fid
10、elity 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,Questions ?,Thank You !,
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1