===== Strategies for Incremental Inconsistency Resolution. ===== ==== Research Context ==== **Inconsistency management** has been defined in Finkelstein //et al.// [1] as //the process by which inconsistencies between software models are handled so as to support the goals of the stakeholders concerned//. In our opinion, software models include UML models, models expressed in a Domain-specific modelling language (DSML) but also code expressed in a certain programming language. Examples of situations in which inconsistencies can arise are: in a UML model, between different UML diagrams, between the design of an application and the application code or within the application code. Violations of standards or constraints by code or design are also examples of inconsistencies. The **process of inconsistency management** includes activities for detecting, diagnosing, and handling inconsistencies. **Handling inconsistencies** is the most difficult part. This activity is concerned with the questions of //how to deal with inconsistencies//, //what are the impacts and consequences of specific ways of dealing with inconsistencies//, and //when to deal with inconsistencies// [2]. The central idea of inconsistency management is to tolerate inconsistencies, i.e., it is allowed to ignore or differ inconsistencies in the resolution activity. Different **handling strategies** exist. However most of the techniques expect the stakeholders to define and select handling actions by evaluating the inconsistencies, and execute these actions. For a description of these strategies we refer to [2]. The subject of this thesis is to define a set of strategies that apply to general, domain-independent consistencies. These strategies need to be aware of the possible dependencies between resolutions. Different resolution actions for the same inconsistency can conflict or applying a certain resolution action can prohibit the application of another resolution action. In [3] an analysis of a set of inconsistency resolutions has been carried out. ==== Objective and Activities of the Thesis and Apprenticeship ==== The objective of the thesis is to define a set of inconsistency resolution strategies, to validate these strategies and classify them by their possible impact on the resolution process, the application, etc. The apprenticeship and thesis activities are: - give an overview of the current possible resolution strategies in inconsistency management and their shortcomings - define a set of strategies that apply to a range of application domains and general inconsistency rules. These definitions can be based on strategies known in other research areas like rule-based systems, data-base systems, etc. (contact the advisor of this thesis for more information) - implement these strategies in the RACOoN tool (which is an inconsistency detection tool developed at SSEL) - classify the defined strategies according to their impact on the inconsistency resolution process and on the application development, ... ==== References ==== [1]Finkelstein, A., Spanoudakis, G. and Till, D. Managing interference. Joint proceedings of second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops. ACM Press. 1996.\\ [2] George Spanoudakis and Andrea Zisman. Inconsistency management in software engineering: Survey and open research issues. In Chang S. K., editor, Handbook of Software Engineering and Knowledge Engineering, volume 1, pages 329–380. World Scientific Publishing Co., 2001.\\ [3] Mens, T., Van Der Straeten, R., D’Hondt, M.: Detecting and resolving model inconsistencies using transformation dependency analysis. In Nierstrasz, O., Whittle, J., Harel, D., Reggio, G., eds.: Proceedings MoDELS/UML 2006. Volume 4199 of LNCS., Springer-Verlag (2006)