Domain model-driven software engineering: A method for discovery of dependency links
Introduction
Organizations encounter a large number of stakeholders, and have broad geographical distribution alongside a wide variety of tools; cooperative and multi-site software engineering is the norm rather than the exception [11]. The output from a system’s development process ranges from information analysis and architecture to design and code. Thus, during software development, a collection of heterogeneous software artifacts, or so called ‘product fragments’ (i.e., requirements specification, design, code, test scenarios and documentation, etc.) is made.
Distributed development projects have special settings and needs. When groups of developers reside at different sites, different interpretations of product fragment specifications, software requirements or the use of different terminology can lead to incompatible product fragments [55]. Another problem here is the management of product fragment diversity, the discovery and maintenance of dependency links among the product fragments. Possibly, heterogeneous development environments make it difficult to integrate tools and establish traceability links [12]. Dependency management often suffers from an extensive effort and complexity of creating and maintaining the traces [14]. This complexity is a result of [15]: syntactic and semantic differences, informal/semi-formal languages (e.g., requirements, design), different stakeholders being in charge of different software artifacts, increasingly rapid pace of change, etc.
To solve the problem, we propose using domain models not only to guide the design of a software application, but also to actually access and manage the information produced during the software development. The domain model here is a shared conceptualization of a domain and can also be referred to as a domain model. A study by Cataldo et al. [7] found that “traditional software dependencies, such as syntactic relationships, tend to capture a relatively narrow view of product dependencies.” Therefore, we use a domain model as a conceptual and logical representation of a problem domain in software development [33], [47] to establish dependency links. In our method, associations of product fragments using concepts from the domain model constitute the base to calculate a semantic distance among the product fragments. The computed semantic distance is further used to assess the impact of change and establish dependency links among the product fragments.
The contribution of this paper is twofold. First, the method presented here was refined based on method acceptance tests reported in [48] and was applied in a prototype implementation. Second, effectiveness of the proposed method is evaluated and the results from laboratory-based randomized experiment [42] are analyzed.
The paper is structured as follows. In the next section, a problem boundary and the overall method are presented. Then the settings of the randomized experiment are discussed, followed by an analysis of its results. Later the proposed method is compared to related work. Finally, conclusions are summarized and future work is discussed.
Section snippets
Key concepts
Success in system development depends on effective human communication [45], which is sometimes a real challenge in multi-site projects. Early understanding and modeling of the problem domain is a key to managing large scale systems and projects [45]. Conceptual modeling is “the first step and one of the most important steps for application engineering” [9, p. 297]. Furthermore, the purpose of domain modeling is “to identify, model, construct, catalog, and disseminate a set of software
Experimental settings
Previously, we reported on potential adoption of the method [48]. Here we analyze its effectiveness and sensitivity with regards to user behavior. In the following subsections the experiment design (Fig. 3) is elaborated. We start with a discussion about participants and experimental preparation, then the experimental materials and cases used are discussed and exemplified.
Analysis of results
On average, the subjects used three and a half hours to perform the task. Approximately three-fifths of the time was spent to study the experimental materials. Analysis of the log showed that on average a fragment had 3.8 (in case 1) and 2.5 (in case 2) directly linked fragments. Similarly, a fragment had been associated with 3.3 (in case 1) and 3.1 (in case 2) concepts on average (see Table 2). These parameters are similar; therefore, the used time is comparable.
Comparison to related work
Related work comes from two main areas: first, model usage in software engineering in general and for dependency links establishment in particular; and second, approaches to dependency management, i.e. product traceability that are not based on models.
Conclusions and future work
The paper has advocated domain model-driven software engineering, where a domain model is used by the development team as a common information space for geographically distributed developers. The proposed method addresses one of the challenges inherent in distributed software development, i.e. dependency management. The effectiveness of the proposed method and its implementation have been evaluated in this paper. The main contribution of this paper is to give a presentation of the refined and
References (57)
- et al.
Design-code traceability recovery: selecting the basic linkage properties
Science of Computer Programming
(2001) - et al.
Automated traceability analysis for UML model refinements
Information and Software Technology
(2009) - et al.
Traceability between models and texts through terminology
Data and Knowledge Engineering
(2001) Concept similarity in formal concept analysis: an information content approach
Knowledge-Based Systems
(2008)- et al.
Traceability-centric model-driven object-oriented engineering
Information and Software Technology
(2010) - et al.
Semantic clustering: identifying topics in source code
Information and Software Technology
(2007) - et al.
Rule-based generation of requirements traceability relations
Journal of Systems and Software
(2004) - et al.
An information retrieval approach to ontology mapping
Data & Knowledge Engineering
(2006) An integration centric approach for the coordination of distributed software development projects
Information and Software Technology
(2006)- et al.
Ontology-based multi-site software development methodology and tools
Journal of Systems Architecture
(2006)