Domain model-driven software engineering: A method for discovery of dependency links

https://doi.org/10.1016/j.infsof.2012.06.004Get rights and content

Abstract

Context

Dependency management often suffers from labor intensity and complexity in creating and maintaining the dependency relations in practice. This is even more critical in a distributed development, in which developers are geographically distributed and a wide variety of tools is used. In those settings, different interpretations of software requirements or usage of different terminologies make it challenging to predict the change impact.

Objective

is (a) to describe a method facilitating change management in geographically distributed software engineering by effective discovery and establishment of dependency links using domain models; (b) to evaluate the effectiveness of the proposed method.

Method

A domain model, providing a common reference point, is used to manage development objects and to automatically support dependency discovery. We propose to associate (annotate) development objects with the concepts from the model. These associations are used to compute dependency among development objects, and are stepwise refined to direct dependency links (i.e. enabling product traceability). To evaluate the method, we conducted a laboratory-based randomized experiment on two real cases. Six participants were using an implemented prototype and two comparable tools to perform simulated tasks.

Results

In the paper we elaborate on the proposed method discussing its functional steps. Results from the experiment show that the method can be effectively used to assist in discovery of dependency links. Users have discovered on average fourteen percent more dependency links than by using the comparable tools.

Conclusions

The proposed method advocates the use of domain models throughout the whole development life-cycle and is apt to facilitate multi-site software engineering. The experimental study and results suggest that the method is effective in the discovery of dependencies among development objects.

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)

  • M. Aleksy et al.

    A pragmatic approach to traceability in model-driven development

    Lecture Notes in Informatics

    (2009)
  • N. Anquetil, B. Grammel, I. Galvao, J. Noppen, S.S. Khan, H. Arboleda, A. Rashid, A. Garcia, Traceability of model...
  • R. Baeza-Yates et al.

    Modern Information Retrieval

    (1999)
  • S. Brockmans, R. Volz, A. Eberhart, P. Loffler, Visual modeling of OWL DL ontologies using UML, in: S.A. McIlraith et...
  • M. Cataldo et al.

    Socio-technical congruence: a framework for assessing the impact of technical and work dependencies on software development productivity

  • P.P. Chen et al.

    Future Directions of Conceptual Modeling

  • J. Cleland-Huang et al.

    Best practices for automated traceability

    IEEE Computer

    (2007)
  • D.E. Damian et al.

    RE challenges in multi-site software development organizations

    Requirements Engineering

    (2003)
  • R. Domges et al.

    Adapting traceability environments to project-specific needs

    Communication of the ACM

    (1998)
  • E.W. Dijkstra

    A note on two problems in connextion with graphs

    Numerische Mathematik

    (1959)
  • A. Egyed et al.

    Supporting software understanding with automated requirements traceability

    Journal of Software Engineering and Knowledge Engineering

    (2005)
  • A. Egyed

    Tailoring Software Traceability to Value-Based Needs

  • J.A. Espinosa et al.

    Team knowledge and coordination in geographically distributed software development

    Journal of Management Information Systems

    (2007)
  • R.A. Falbo, F.B. Ruy and R.D. Moro, Using Ontologies to Add Semantics to a Software Engineering Environment, in:...
  • C. Fellbaum

    WordNet: An Electronic Lexical Database

    (1998)
  • N. Guarino

    Formal Ontology and Information Systems

  • T. Halpin

    Information Modeling and Relational Databases

    (2001)
  • H.-J. Happel et al.

    Applications of ontologies in collaborative software development

  • Cited by (0)

    View full text