Efficient analysis and transformation of inter-related models critically depends on the ability to identify and extract model slices that are relevant to the development task at hand, while accounting for the complex relationships between the models. For example, in a large system, to verify that a given requirement is indeed satisfied by the system’s design, it is often necessary to extract slices of multiple inter-related design models (e.g. class, state, sequence, activity diagrams) that contribute to the satisfaction of the requirement. In addition, slicing is a prerequisite for the use of model operations because an operation typically takes only a part of a model collection as input. For human-centric tasks such as inspections, slicing helps reduce cognitive load, thus improving comprehension and further making it less likely that important issues will be missed. For automated tasks such as inconsistency detection and resolution (see Project M1), slicing can lead to substantial improvements in scalability by reducing the size of the state space, thus making computationally-expensive techniques such as search applicable to large systems.
Our research on slicing of model collections will build directly on the notions of model relationships identified and formalized in Project M2. We are going to augment these relationships with domain-specific information to remove ambiguities in the relations and to deduce finer-grained relations between model elements. These augmented relationships will then be used for devising formal algorithms to automatically extract minimized slices of a collection of models relevant to a particular task. Slices of model collections are often subject to various quality criteria. In particular, (1) the slices have to be consistent with the source models, e.g., for behavioural models, the temporal ordering of actions in the source models should be preserved by the slices; (2) the slices have to be consistent with one another, e.g. a UML sequence diagram slice cannot refer to class methods that do not appear in the corresponding UML class diagram slice; (3) the slices have to include sufficient information from the original (non-sliced) models to enable conclusive analysis and eliminate the need to referring back to the original models for verification and validation tasks. Elaborating these quality criteria and ensuring that they are met by our slicing algorithms will be an integral part of our research.
Most of the existing work on slicing is concerned with program code. In this context, slicing is used primarily as an aid for debugging, motivated by the observation that a slice corresponds to the mental abstractions that developers make while debugging [Wei81]. More recently, slicing has been studied for models as well, and various model slicing techniques have been proposed, e.g. [KSH+03] provides a technique for the slicing of state-based models using dependence analysis, and [KMS05, SCW+10] techniques for slicing UML class models based on constraint annotations in the models. These approaches focus exclusively on slicing of individual models and do not address slicing of model collections which will be the focus of the research we propose here.
[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.
[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.
[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.
[Wei81] M. Weiser, Program slicing, in: Proceedings of the 5th International Conference on Software Engineering (ICSE'81), 1981, pp. 439–449.