Use of ontologies in software development environments

15Citations
Citations of this article
12Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Software development is a knowledge-intensive business. Different kinds of knowledge are important for software practitioners to support their activities in software organizations, such as that knowledge about the domain for which software is being developed, new technologies, local practices and policies, who knows what in the organization, guidelines, best practices, and previous experiences with techniques, methods and the software process [43]. We have observed this while developing software within different organizations for different domains such as cardiology [32, 33], acoustic propagation [31] and telecommunications [25]. These experiences had shown that a risky situation for the software systems development was the lack of domain knowledge by the software developers. Users usually consider the process of knowledge acquisition and requirements elicitation to be boring and stressful because they need to explain the same basic domain concepts to the computer science personnel for each new software project development. When a software developer starts to work on a software project under development, s-he must understand not only the software products already built, but also, and prior to this, the domain itself. While learning about the domain, the software developers usually have to understand the tasks or activities that are implicitly associated with the concepts of that domain. Those tasks are directly related to the problem that the software system being developed intends to solve. It can get worse when there is a high turnover of software developers in the software project. This basic development scenario, which describes a concrete reality concerned with the building of software projects lacking domain and task knowledge, motivated the investigation of feasible approaches to support the use of such knowledge throughout the software development process. A software development environment (SDE) [1, 15] has already been built for each of the software projects previously mentioned. However, these environments, despite the fact that they were supporting the software development activities by providing integrated case tools, guidance to the software process and common repositories to the development teams, had not provided any kind of knowledge regarding the domain and related tasks. To address this problem we decided to extend this traditional notion of the SDE by introducing into it domain and task knowledge to guide the software developers through the several software development phases [33], which gave rise to the concept of: the Domain Oriented Software Development Environment (DOSDE). After the definition, building and use of DOSDEs within different domains [31, 35, 34, 32] it become possible to observe that besides domain and task knowledge, other kinds of knowledge are also necessary and can be useful during a software project. They include knowledge about the organization itself, and data and experience obtained on previous software development projects within the organization. Another aspect observed was the importance of identifying key personnel in the organization who have the specific knowledge for an activity to be carried out during a software project, as latter highlighted by [43]. Using the DOSDE perspective, having an organizational model, looking at its structure, its processes, and the distribution of knowledge and skills throughout this structure and these processes, could help support such issues. Then, going one step further, the idea of DOSDE was broadened to include an Enterprise-Oriented Software Development Environment (EOSDE). Ontologies represent one of the basic building blocks for DOSDE's and EOSDE's infrastructure. To support the definition and to build the environment's infrastructure, different kinds of ontologies have been used. Although there are different definitions for ontology, that being used in this context is the traditional one proposed by Gruber [19]: "ontology is an explicit specification of a conceptualization". Basically, ontology consists of concepts and relations, their definitions, properties and constraints expressed by axioms [7]. This chapter describes our experience of building SDEs supported by the use of ontologies. So far, the information presented in this chapter intends to build a concise compilation of some research results that have been individually presented in [33, 31, 35, 34, 32, 60, 44, 53, 52, 54]. The intention is to group all these results to give the whole perspective regarding the use of ontologies in the context of real SDEs, which are currently being used by several software organizations in Brazil to support their software development processes. In the following sections we first briefly present SDEs and introduce DOSDE as an extension of them (Sect. 10.2). Then, in Sect. 10.3, we present the features of a DOSDE showing examples from DOSDEs developed for cardiology and acoustic propagation domains. In Sect. 10.4, we present the evolution from DOSDE to EOSDE. Sect. 10.5 describes the EOSDE infrastructure. In Sect. 10.6, we briefly describe the implementation of tools in DOSDE and EOSDE built using the defined ontology. Finally, in Sect. 10.7, we present our conclusions and ongoing work. © 2006 Springer-Verlag Berlin Heidelberg.

Cite

CITATION STYLE

APA

De Oliveira, K. M., Villela, K., Rocha, A. R., & Travassos, G. H. (2006). Use of ontologies in software development environments. In Ontologies for Software Engineering and Software Technology (pp. 275–309). Springer Berlin Heidelberg. https://doi.org/10.1007/3-540-34518-3_10

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free