Project M1: Automated Consistency Management and Change Propagation for Collections of Models

From SE Wiki
Jump to: navigation, search

Overview

In any kind of large-scale development, engineers are inevitably faced with large collections of inter-related models. The models may be at different levels of abstraction and originating from a variety of different sources. For example, the models may represent views from different stakeholders and organizations, or work artifacts developed by decentralized teams that are in different geographical sites. Alternatively, the models may represent different versions of the same component or feature built to capture evolving or variant requirements. These models often overlap in their semantic domains, as information about some concepts appears in multiple models. Thus, it is possible for models to become inconsistent at these points of overlap. In addition, models must conform to the constraints of the relationships between them, with non-conformance being considered as a model inconsistency. Automating consistency checking across and within models and providing automated user support for repairing inconsistencies are major challenges.

Planned steps and methods

We will identify notions of syntactic and semantic consistency for collections of inter-related models. These notions will be adapted for use in the context of the NECSIS Exemplars by capturing in our model-relationship notation domain- and process-specific information. We plan to create scalable automated techniques for checking consistency and study cases where inconsistency can be automatically repaired. To this end, we will define and compute the minimal repair actions required for bringing an inconsistent collection of models back to consistency and use these to support the model repair process. Repair actions that are determined to be mandatory represent changes that can be automatically propagated to models. We will develop mechanisms for propagating changes across a collection of heterogeneous models. We have had preliminary success in propagating changes between requirements and design models [CLN+09]. A fundamental question we must address is whether we can define change propagation globally across the collection of models in terms of local propagations between a model and its immediately related neighbours. This would enable us to develop more efficient algorithms and avoid the need for a unified meta-model across all model types of interest. For cases where multiple repair alternatives exist, we will develop strategies for comparing and prioritizing the actions, so that modellers can efficiently explore the available alternatives and choose an appropriate one for resolving the inconsistencies. We will investigate ways of expressing sets of alternative model changes compactly in order to increase the efficiency of working with such sets. In particular, we will explore the possibility of constructing repair models that can represent a set of repair variants as a single model. A repair model could allow the decision about which repair to make to be deferred since analyses could be done on the entire set simultaneously by reasoning with the repair model. Furthermore, analyzing the repair model may be more efficient than building the set of repairs and reasoning about each repair individually. Finally, a repair model may reduce the cognitive complexity of comprehending the set of repairs because it becomes easy to see how the different repairs are related and overlap.

We plan to develop prototype tools based on the research outlined above to improve the productivity of engineers concerned with consistency management and change propagation tasks. These tools will all be implemented within the model management toolkit (see Project M2). In particular, we will produce a highly scalable consistency checker based on our earlier prototype [SN8,SN07a] and augment it with domain-specific consistency definitions and techniques for inconsistency resolution and change propagation across collections of inter-related models.

Our solutions will be compatible with the philosophy of toleration of conflict and inconsistency [NE01]. Specifically, the solutions will not force modellers to propagate changes immediately or to maintain consistency at all times. Instead, the modellers will be able to work in the presence of conflicts and inconsistencies and deal with them at the time and manner of their choosing.

Advancement to the state of the art

Inconsistency detection has been studied for over a decade as a central activity in model-based development, and various techniques have been proposed for checking the consistency of requirements, design, and architecture models (see [Eg10] for a survey of some recent literature). Automated resolution of inconsistencies has been considered more recently, motivated by the growing complexity of models and the need to assist modellers with enumerating and exploring the resolution alternatives. A number of techniques already exist to this end, applying, for example, graph transformation [MV06] and logical reasoning [Eg07] for computing fixing actions. An important limitation of the existing approaches to inconsistency detection and resolution is that these approaches focus almost exclusively on the consistency of individual models and of relationships between pairs of models. However, consistency turns out to be a global notion because it is often the complex dependencies between multiple models that lead to unforeseen consistency violations. Detecting and resolving global inconsistencies in large collections of evolving, inter-related models is an open problem. Our previous work [SN07, SN08] provides a solution for detection of global inconsistencies in collections of homogeneous models (i.e., models expressed in the same notation), but generalizeable solutions for checking the global consistency of heterogeneous models do not exist. Addressing this gap is a major aspect of the research we seek to conduct. A second shortcoming in the existing literature is that it is mainly targeted at syntactic consistency (e.g., enforcement of types across multiple models). This enables modellers to uncover and resolve simple mistakes, but does not allow them to verify and maintain the intended semantic relationships (see Project M2) between the models. We will devise techniques that can enforce the wide range of semantic relationships that need to hold over heterogeneous model collections. Our work on change propagation is most closely related to the efforts on impact analysis [ELF08] and change propagation in the context of software-engineering models [BLO+06, CLN+09]. [ELF08] uses consistency rules to determine, as a change is made, which of the instances need to be re-evaluated. [BLO+06] explicitly enumerates the types of changes that can be made on a particular type of model and gives recipes of how to propagate each kind of change among a related collection of models. The latter work is limited to UML sequence diagrams and class diagrams. In developing our change propagation approach, we hope to adapt some of the work on repairing database inconsistencies [Wij05], which is more mature and formal than any existing work on software-engineering models.

References

[AHL+09] Adam Antonik, Michael Huth, Kim Guldstrand Larsen, Ulrik Nyman, and Andrzej Wasowski. Exptime-complete decision problems for modal and mixed specifications. Electr. Notes Theor. Comput. Sci., 242(1):19--33, 2009.

[BKLS09] Nikola Benes, Jan Kretnsky, Kim Guldstrand Larsen, and Jiri Srba. Checking thorough refinement on modal transition systems is Exptime-complete. In ICTAC, pages 112--126, 2009.

[Ber03] Bernstein, P.: Applying Model Management to Classical Meta Data Problems. In Proc. Conf. on Innovative Database Research, pp. 209-220, 2003.

[BCE+06] G. Brunet, M. Chechik, S. Easterbrook, S. Nejati, N. Niu, M. Sabetzadeh. A Manifesto for Model Merging. In Proceedings of ICSE’06 International Workshop on Global Integrated Model Management (GAMMA'06), May 2006.

[BLO+06] L.C. Briand, Y. Labiche, L. O'Sullivan, and MM Sówka. Automated impact analysisof UML models. Journal of Systems and Software, 79(3):339--352, 2006.

[CLN+09] M. Chechik, W. Lai, S. Nejati, J. Cabot, Z. Diskin, S. Easterbrook, M. Sabetzadeh, R. Salay. Relationship-Based Change Propagation: A Case Study. In Proceedings of ICSE’09 International Workshop on Modeling in Software Engineering, 2009.

[DBV06] Del Fabro, M., Bezivin, J. and Valduriez, P.:Weaving models with the Eclipse AMW plugin. In Proc. of Eclipse Modeling Symposium, Eclipse Summit Europe (2006).

[Eg07] A. Egyed. "Fixing Inconsistencies in UML Design Models". In Proceedings of 29th International Conference on Software Engineering (ICSE’07), pages 297-301, Minneapolis, MN, USA, May 2007.

[Eg10] A. Egyed. "Automatically Detecting and Tracking Inconsistencies in Software Design Models". In IEEE Transactions on Software Engineering, Preprint, March 2010.

[ELF08] A. Egyed, E. Letier, and A. Finkelstein. Generating and Evaluating Choices for Fixing Inconsistencies in UML Design Models. In Proceedings of ASE'08, pages 99--108. IEEE Computer Society, 2008.

[EMP10] The Eclipse Modeling Platform whitepaper. http://wiki.eclipse.org/images/7/7e/Modeling_Platform_v1_-_Feb_17.pdf, 2010.

[FBDCU10] D. Fischbein, G. Brunet, N D’Ippolito, M. Chechik, S. Uchitel. Weak Alphabet Merging of Partial Behaviour Models. ACM Transactions on Software Engineering and Methodology (TOSEM), 2010, 49 pages. In press.

[JVB+10] Jouault, F., Vanhooff, B., Brunelière, H., Doux, G., Berbers, Y., and Bezivin, J.: Inter- DSL Traceability and Navigability Support by Combining Megamodeling and Model Weaving. Special Track on the Coordination Models, Languages and Applications at SAC 2010, March 2010.

[KMS05] H. Kagdi, J. Maletic, A. Sutton, Context-free slicing of UML class models. In Proceedings of 21st IEEE International Conference on Software Maintenance (ICSM'05), 2005, pp. 635–638.

[KPP08] Kolovos, D.S. and Paige, R.F. and Polack, F.A.C.: Novel features in languages of the epsilon model management platform. In Proceedings of the 2008 international workshop on Models in software engineering, pp. 69—73, 2008.

[KS03] Kalfoglou, Y. and Schorlemmer, M.: Ontology mapping: the state of the art. The Knowledge Engineering Review 18(1) pp. 1-31. 2003

[KSH+03] B. Korel, I. Singh, L. Ho Tahat, B. Vaysburg, Slicing of state-based models. In Proceedings of 19th International Conference on Software Maintenance (ICSM'03), 2003, pp. 34–43.

[LT88] Kim Guldstrand Larsen and Bent Thomsen. A modal process logic. In Proceedings of the 5th Annual IEEE Symposium on Logic in Computer Science (LICS'88), pages 203--210, 1988.

[MMW02] Mens, K., Mens, T. and Wermelinger, M.: Maintaining software through intentional source-code views. In proc. of the 14th International Conference on Software engineering and knowledge engineering (2002)

[MV06] T. Mens, R. Van Der Straeten, M. D'Hondt. "Detecting and Resolving Model Inconsistencies Using Transformation Dependency Analysis". In Proceedings of 9th International Conference on Model Driven Engineering Languages and Systems (MoDELS’06), pages 200-214, Genova, Italy, October 2006.

[Mug10] Muggleton, S.H.: webpage on Inductive Logic Programming. http://www.doc.ic.ac.uk/~shm/ilp.html (2010).

[NE01] B. Nuseibeh, S. Easterbrook, and A. Russo. "Making Inconsistency Respectable in Software Development". The Journal of Systems and Software, 58(2):171-180, 2001.

[NKF94] Nuseibeh, B., Kramer J. and Finkelstein, A. : A Framework for Expressing the Relationships Between Multiple Views in Requirements Specifications. IEEE Transactions on Software Engineering, vol. 20, no. 10, pp. 760--773 (1994)

[OMG10] Software Process Engineering Metamodel V2.0 specification. Object Management Group. July 2010.

[SCW+10] A. Shaikh, R. Clarisó, U. Wiil, N. Memon, Verification-driven slicing of UML/OCL models,. In Proceedings of 25th IEEE/ACM International Conference on Automated Software Engineering (ASE'10), 2010, pp. 185-194.

[SE05] Sabetzadeh, M. and Easterbrook, S.: An Algebraic Framework for Merging Incomplete and Inconsistent Views. 13th IEEE RE Conference, Paris, France, 2005.

[SN07] M. Sabetzadeh, S. Nejati, S. Liaskos, S. Easterbrook, M. Chechik. "Consistency Checking of Conceptual Models via Model Merging". In Proceedings of 15th IEEE International Requirements Engineering Conference (RE’07), pages 221-230, New Delhi, India, October 2007.

[SN08] M. Sabetzadeh, S. Nejati, S. Easterbrook, M. Chechik. "Global Consistency Checking of Distributed Models with TReMer+". In Proceedings of 30th International Conference on Software Engineering (ICSE’08), pages 815-818, Leipzig, Germany, May 2008. Formal Research Demonstration.

[SC07] R. Salay, M. Chechik, S. Easterbrook, Z. Diskin, S. Nejati, M. Sabetzadeh, P. McCormick, P. Viriyakattiyaporn. An Eclipse-Based Model Management Framework. In Proceedings of OOPSLA'07 Workshop on Eclipse Technology, November 2007.

[SME09] Salay, R., Mylopoulos, J., Easterbrook, S.M.: Using Macromodels to Manage Collections of Related Models. In Proc. CAiSE 2009, pp. 141--155 (2009).

[SM09] Salay, R., Mylopoulos, J.: Improving Model Quality Using Diagram Coverage Criteria. In Proc. CAiSE 2009, pp. 186--200 (2009).

[SM10] Salay, R., Mylopoulos, J.:The Model Role Level – A Vision. To appear in ER 2010 (2010).

[Wei81] M. Weiser, Program slicing, in: Proceedings of the 5th International Conference on Software Engineering (ICSE'81), 1981, pp. 439–449.

[Wij05] J. Wijsen: Database Repairing using Updates. ACM Transactions on Database Systems, 30(3):722--768, 2005.