• Keine Ergebnisse gefunden

Acknowledgements

2.1 Introduction

Together with the increased popularity of modeling, models of prac-tical use grow in size and complexity to the point where large mono-lithic models are difficult to comprehend and maintain. There is a need tosplitsuch large models into a set of dependent modules (a.k.a. sub-models), increasing the overall comprehensibility and allowing multiple distributed teams to focus on each sub-model separately. Earlier works, e.g., [58], suggest approaches for splitting models based on an analysis of strongly connected components, largely ignoring the semantics of

the split and the user intention for performing it. Other works require to fully annotate the model upfront [37], which allows reflecting the user intention precisely, but imposes a considerable effort on the user.

In this work, we propose an alternative, heuristic approach that allows splitting a model along functional concerns. The approach assumes that these functional concerns are explicitly specified by the user us-ing natural-language descriptions. These descriptions may be retrieved from existing requirements documents, system documentation, or tran-scripts of developer interviews. The proposed approach is inspired by feature location techniques [30, 93], which discover implementation ar-tifacts corresponding to a particular, user-defined, functionality.

In the core of our approach is an automated technique that employs information retrieval (IR)andmodel crawling. Given an input model and a set of its sub-model descriptions, the technique assigns each element to one of the specified sub-models, effectively producing a partition-ing. The technique is applicable to any model for which a split results in sub-models that satisfy the well-formedness constraints of the orig-inal one, e.g., UML Class models, EMF models and MOF-based meta-models.

The user can decide whether the list of sub-models describes a com-pleteor apartialsplit of the input model. In the former case, each input model element is assigned to exactly one sub-model, like in the exam-ple in Fig. 2.2, where the three sub-models “cover” the entire input model. In the latter case, when the complete set of the desired sub-models is unknown upfront, the technique produces assignments to known models only. The remaining elements are placed in a sub-model called “rest”. The user can inspect the “rest” sub-sub-model in order to discover remaining sub-models in an incremental and iterative fash-ion, until the desired level of completeness is achieved.

Considering the challenges outlined in Sec. 1.1.1, this approach allows us to address the issues arising from the use of monolithic models. We briefly revisit these issues and discuss how the technique helps to alle-viate them.

• Proneness to editing conflicts is an issue of monolithic models in state-of-the-art versioning control systems. As these systems op-erate in a file-based manner, frequent editing conflicts are ex-pected if two or more parties collaborate on the same monolithic model at the same time, leading to a manual effort to resolve these

2.1 Introduction 15

conflicts. Splitting a model in a set of sub-models, each being per-sisted in a separate file, helps to reduce this issue.

• Scattering and tangling refers to the situation that a diagram may inherit an inadequate organization of its associated model: Func-tionally related elements might be scattered across several dia-grams, while a diagram might be tangled with functionally unre-lated elements. By reorganizing the model into sub-models based on functional concerns, the proposed technique helps to establish models and diagrams that do not suffer from this issue.

• Diagram sizebecomes an issue when a diagram representation of a model becomes too large to be navigated and understood effi-ciently [110]. Splitting a model into multiple smaller sub-models helps to reduce the size of the involved models and the associ-ated diagrams. Additionally, the technique can be used to split a model into disjoint sets of model elements that are displayed in several diagrams, without changing the actual organization of the model.

We make the following contributions:

• We describe an automated model splitting technique that com-bines information retrieval and model crawling.

• We propose a computer-supported iterative process for model splitting.

• We introduce a tool implementing the automated technique, dis-cussing its design goals and implementation.

• We evaluate our approach on a set of benchmark case studies, in-cluding real-life UML and EMF models. Our results demonstrate that the proposed approach achieves high accuracy compared to the manually produced results and is able to assist the user in the iterative discovery of the desired sub-models.

The rest of the chapter is structured as follows. Sec. 2.2 gives a high-level overview of our approach. We describe the necessary preliminar-ies in Sec. 2.3, present a formal framework underpinning the approach in Sec. 2.4 and introduce its instantiation in the form of an automated algorithm in Sec. 2.5. We discuss tool support in Sec. 2.6. We report on the results of evaluating our approach in Sec. 2.7. We put our contribu-tion in the context of related work in Sec. 2.8 and conclude in Sec. 2.9.

Information Retrieval

Model Crawling Model

Element Assignment

Set of sub models Completeness

condition Set of textual descriptions

Model Splitting

Figure 2.1:An overview of model splitting.