70 likes | 207 Views
Model Comparison:. A Key Challenge for Transformation Testing and Version Control in Model Driven Software Development. Yuehua Lin, Jing Zhang , Jeff Gray {liny, zhangj, gray}@cis.uab.edu http://www.cis.uab.edu/softcom/.
E N D
Model Comparison: A Key Challenge for Transformation Testing and Version Control in Model Driven Software Development Yuehua Lin, Jing Zhang, Jeff Gray {liny, zhangj, gray}@cis.uab.edu http://www.cis.uab.edu/softcom/ * This research is funded by the DARPA Information Exploitation Office (DARPA/IXO), under the Program Composition for Embedded Systems (PCES) program.
Two Challenges in MDSD • Lack of a mechanism for validating the correctness of model transformations • Problem: • Model transformation specifications can be erroneous • Proposed Solution: • Testing may be applied to model transformations • Current version control tools do not match the structural nature of models • Problem: • Need to archive the history of model changes • Proposed Solution: • Model-centric version control
Model-Centric Version Control • Change detection between versioned models • Visualization of differences • Storage and retrieval of versioned models • Merging of versioned models * Version 1.0 Version 2.0
Model Comparison • Calculate the mappings and differences between models. • In model transformation testing Model comparison is to compare the actual output model and the expected output model to find the errors in a model transformation specification. • In model-centric version control Model comparison is to compare versioned models to detect changes.
Issues toward Automation of Model Comparison • What properties of models need to be compared? • In modeling languages: a model consists of entities, associations, and attributes • Represent model differences: operational terms such as “create”, “delete”, “set/update”, etc • At which level to compare models? • Intermediate representation like XML, or underlying internal data structure? • What are effective algorithms? • Powerful or practical? general or specific? • How to visualize model differences? • Interpret the results (e.g. indicate various differences using coloring) • Support navigation of differences hierarchically
Questions? For publications, video demonstrations, and presentations, please see: http://www.gray-area.org/Research/C-SAW/