Defining and Building Domain-Oriented Software Development ...

2 downloads 158 Views 74KB Size Report
problem, we defined the concept of Domain-Oriented Software Development ... In the following sections we present the definition and features of DOSDE.
Defining and Building Domain-Oriented Software Development Environments Káthia Oliveira1,2, Cátia Galotta1,3, Ana Regina Rocha1, Guilherme Travassos1,4, Crediné Menezes5 1

2

COPPE / Computer Science Department – Federal University of Rio de Janeiro Caixa Postal 68511 – Cep 21945-970 - Rio de Janeiro - RJ – Brazil Phone/Fax: 0055 21 5902552

Unit of Cardiology and Cardiovascular Surgery/Fundação Bahiana de Cardiologia– Brazil 3

4

5

IPqM – Brazilian Navy Research Institute – Brazil

ESEG/CS - University of Maryland at College Park – USA

UFES – Computer Science Department - Federal University of Espírito Santo – Brazil e-mail: {kathia, cgalotta, darocha, ght}@cos.ufrj.br

Abstract Developing software is a complex and time-consuming task. It is even more difficult when the software team is not familiar with the problem domain. The use of domain knowledge during software development can render this process easier and increase productivity. To address this problem, we defined the concept of Domain-Oriented Software Development Environment (DOSDE). Using the domain-knowledge embedded into it, DOSDE guides the software developers through the several phases of the software development process. Two features are essential in a DOSDE: having the domain-knowledge explicitly defined and using this knowledge to facilitate the software development. To apply this in real situations we defined two DOSDEs: &25',6, a DOSDE for cardiology, and 1(7812, a DOSDE for acoustic propagation. Key-words: domain oriented software development environments, ontology, domain theory, software development environments, CASE tools.

1. Introduction Software teams have hard times to develop software when they are not familiar with the problem domain. The most critical activity is probably the correct identification and description of what the software system must accomplish (requirements). We realized this while developing software during the last years for two different domains: cardiology, in a joint project with the Cardiology and Cardiovascular Surgery Unit of the Federal University of Bahia (UCCV/FBC), Brazil, and acoustic propagation for the Research Institute of Brazilian Navy. These experiences showed us that the crucial problem for software development in these domains is the lack of domain knowledge by the software team. Moreover, domain experts consider the process of knowledge acquisition and requirement elicitation boring and stressful in particular, because they need to explain basic concepts of the domain to the computer science personnel for each new software development project. This problem is made worse by the high turnover of the software teams, common in projects. It is also important to recognize that the quality of software development and the productivity of the software team can be improved by the use of a Software Development Environment (SDE). An SDE is a computational system that provides support for the construction, management and maintenance of software products. It automates a software development process that disciplines and organizes software development, making it easier to control software construction. Based on these two aspects – the need to understand the domain and the importance of an SDE – we propose to use domain-knowledge in an SDE to support the developers to build systems in non-familiar domains. We call this new class of Software Development Environments: Domain-Oriented Software Development Environment (DOSDE) [1]. A DOSDE uses the domain-knowledge to guide the software developers through the several phases of the software development process. This environment makes knowledge available about the domain in a symbolic representation by using domain ontologies. Specific domain activities, domainspecific tools and generic tools customized for the domain introduced into the software development environment allows for the usage of this knowledge during the software development process. To apply these ideas in real situations, we have defined and constructed two DOSDE: &25',6, a DOSDE for cardiology and, 1(7812, a DOSDE for acoustic propagation. In the following sections we present the definition and features of DOSDE. In section 2, we consider domain-knowledge, how it is defined and used in the software development. Based on these definitions, we describe, in section 3, the requirements and the infrastructure on top of which a DOSDE is built. In those sections we show examples from cardiology and acoustic propagation domains. Finally, we present some conclusions and future research directions.

2. Domain Theory and Ontologies Using domain-knowledge in software development is not an easy task. It is difficult to define exactly which knowledge is necessary and to do so considering only the domain itself, not the specific applications.

Looking at the current knowledge engineering research, we have identified that the best way to describe and organize this knowledge is to use domain ontologies. Ontology [2] is an explicit specification of a conceptualization, that is to say, an explicit specification of the objects, concepts and other entities that are assumed to exist in some area of interest and the relationships that hold among them. Basically, an ontology consists of concepts and relations, their definitions, properties and constraints expressed by axioms. Domain ontologies [3] express conceptualizations that are specific for particular domains. They place constraints on the structure and contents of domain knowledge. Working with ontologies has several benefits [3]. They can promote sharability of knowledge bases, knowledge organisation, interoperability among systems and facilitate the communication between experts and the knowledge engineers during the software development, since it establishes a common vocabulary and a semantic interpretation of terms. Domain ontology is the basis of the domain model, named Domain Theory, which will be used in a DOSDE. A domain theory uses a domain ontology and contains an identification of tasks mapped with the domain knowledge defined. These tasks represent activities that take place in specific domains, such as diagnosis, interpretation, etc. They are domain-independent (for example, there is diagnosis of diseases and diagnosis of machine failures) but are important to specify each software application, so this is useful for the understanding of what should be done and, therefore, for the software development. The first step to define the domain theory consists in defining the domain ontology. For this step we used a methodology which considers the following phases [4]: the definition of the purpose of the ontology, its conceptualization, formalization (or coding) and, finally, validation. In our case, the purpose for ontology to be defined is to help in software development. This means it should cover the main concepts of the domain, help to understand the domain and be useful in software development. Conceptualization is the longest phase and requires the definition of the concepts of the domain, a good description for each one, the minimum attributes that characterize the concepts, possible domain values and constraints. To make this activity more manageable and the domain model well organized, we have defined that a Domain Theory should be divided in sub-theories. Each sub-theory has a group of domain concepts and relations among them (i.e, the domain ontology) that have the same semantic context. The sub-theories between themselves have relations to compose the whole domain. Therefore, in the conceptualization phase it is important to define the scope of the domain theory and the sub-theories that characterize the domain. After that, each concept is defined and introduced in the right subtheory. Finally, the ontology is validated and formalized in the environment. The second step in the definition of the domain theory is the identification of the main tasks (i.e. activities) of the domain and their mapping with the sub-theories. It can be difficult to identify all possible tasks, but we consider important to consider, at least, the more typical ones. Figure 1 shows the domain theory for cardiology and figure 2 the domain theory for acoustic propagation.

Diagnosis Sub-Theory

Heart Anatomy Sub-Theory Anatomy

Physiology

Theraphy Sub-Theory

has

Diagnosis

has function

Theraphy

Syndromic

Anatomy Component

Clinic

Ethiologic

refers to

Pathology Sub-Theory

orinates in Myocardium

Artery

Vein

Valve

Interventionist

causes

Septum Cardiac condution system

Pathogenesis

Pathology manifests Evidence

Findings Sub-Theory

Test

Clinical Situation

Demography Data

Symptom

Visual Sign

Pulse

Abdomem

Tactile Sign

Edema

Sign

Past History

Auscultatory sign

Cardiac

Habitual Sound

Olfative Sign

Personal History

Invasive Test Family History

Non-invasive Test Eletric Ultrasound-based Radiation Signal-based test based test test

Laboratory test

Extra Habitual Sound

Figure 1- Concepts of Sub-theories for Cardiology

Sub-theory of Propagation Theory

Models

Subtheory of Acoustic Environment

SONAR

SOUND

emits/detects

LIQUID SURROUNDING

propagates through

Caustic Active Sonar

Emitted Sound

Passive Sonar

Transducing Element

Hydrophone

Sound Generated by the Sonar

Received Sound

Own Noise

Echo Excess

Shadow Zone

Layer

Noise

Mixed Layer

Seasonal Main Thermocline Thermocline

detects

Sea Life

Deep Isothermal Layer

influences

Surrounding Noise

Machines

Helix

Dome

Duct

Irradiated Noise Deep Sound Channel

Surface Duct Hydrodynamic

Convergence Zone

Towed Sonar

TARGET

Internal Duct

BOUNDARY

Surface

Solar Heating

Wind

Botton

Sea State

Composition

Sub-Bottom

Batimetria Composition

Figure 2 - Concepts and Sub-Theories for Acoustic Propagation

3. Domain Oriented Software Development Environments Domain-Oriented Software Development Environment (DOSDE) is an SDE that supports the development of software systems in a specific domain considering the embedded knowledge of this domain to guide the software developers across the several phases of the software development process [1]. A DOSDE, like any other SDE, should have a repository that stores all the information related to the software project throughout its life cycle and a set of tools to support the technical and managerial activities involved. This new class of SDE requires two essential features: (a) having domain-knowledge and, (b) using this knowledge during the software development. To address these features, we have first defined the Domain Theory, described in the previous section, as a domain model that contains the knowledge to assist the software developers. Feature (b) implies that we need to create a specific activity in the software process that considers the study of the domain in the software process. To allow for its use during the software development (feature b), a specific DOSDE should meet the following requirements: (i) support domain investigation during software development using some adequate level of formalism; (ii) allow user (software developer) interaction with the problem domain; (iii) support the identification, access and use of domain-knowledge objects that are important for the activity to be done; and, (iv) support cooperative work between the domain experts (or users) and software developers as used in the environment the domain vocabulary defined in the theory. To construct the infrastructure for DOSDE we used the frameworks provided by TABA [5], a meta-environment developed at COPPE/UFRJ allowing for the creation (i.e. instantiation) of diverse SDE according to the requirements of different technologies. TABA allows software engineers to describe software development processes, methods, and build CASE tools needed by software developers to carry out the automated activities of the software development process. These elements are captured by TABA’s Instantiated Environment Model. To instantiate a DOSDE, that is, to allow for the creation of an SDE that considers the domain theory, a number of new requirements were included to TABA [5], such as: (i) assist in the definition of a domain theory; (ii) allow for building tools using this theory and to use them in the software development; (iii) allow the description of tasks; and, (iv) support the evolution of the domain theory as long as it is being used in software development and in new DOSDEs instantiated for the same particular domain. A Domain Theory editor was included in TABA to support requirement (i). This editor introduces the knowledge in TABA according to the architecture defined for knowledge servers [6]. To support feature (ii), we first create specific knowledge servers through the definition of a domain theory making available the domain knowledge in the environment. Then, we define a specific sub-activity, named domain investigation, to establish the use of the domain knowledge defined for a specific DOSDE. This activity is introduced in all software processes defined for a DOSDE. The descriptions of tasks (requirement (iii)) in this version is done by storing documents describing the purpose of the task, the main points that should be considered by the developers and references for the specific literature. For the last requirement (iv), we should consider the instantiation of the domain theory and the inclusion of new concepts. The instantiation will be supported by specific tools using the domain theory. The evolution of the

concepts of the domain theory is still an open question in our research. We are considering that this activity will be done manually by software developers, and that it consists only of inclusion of new concepts but not of changes in those already defined. In this way, the software applications already built will keep their integrity. With this extension, it is possible to introduce a Domain Theory, integrate the domainspecific tools to be used in each software development phase and, therefore, build a DOSDE for an specific domain. The instantiation of a DOSDE according TABA's infrastructure is based on the definition of a domain theory and a software process. The domain theory of figure 1 was used to define &25',6, a DOSDE for Cardiology to be used at UCCV/FBC and the domain theory of figure 2 to instantiate 1(7812, a DOSDE for acoustic propagation to be used at the Brazilian Navy Research Institute (IPqM). The software processes used to instantiate those DOSDE were defined taking into account the international standard of software process (ISO/IEC 12207 [7]), the introduction of domain orientation in the software process and several software practices already in use in the organization (such as test with real cases and prototyping used in UCCV/FBC and contract definition and mathematics research used at IPqM). For each organization, we have defined a standard process, which describes the fundamental elements expected to be incorporated into any defined process of the organization [8]. Using the standard process, several software processes may be specialized considering the features of each kind of software (such as knowledge-based systems, object-oriented systems, etc.). In each specialization, the activities are organized according to a life cycle model suitable to that kind of software. The activities of the standard process are refined into more detailed ones, and new activities may be introduced. Methods, techniques and tools are also defined for each activity. To be used in a specific software project, the suitable specialized software process is instantiated to fit the particularities of the project such as complexity, size, schedule, and expected service life of the product. Figure 3 summarizes this approach and shows its several steps from the definition of the standard software processes to the specific ones that will be effectively used for a project. After the definition of the domain theory and the software process, the next step is to build a DOSDE is to integrate domain specific tools. These tools may be specifically developed for a DOSDE or customized for the domain from generic tools. These tools differ from more classical ones because they use the vocabulary of the domain or domain-specific information about the domain. We built, for instance, for &25',6, a specific knowledge editor to assist in the knowledge acquisition process considering the cardiology domain: KED, a Knowledge EDitor for cardiology specific for the diagnosis task. The tool inquires information about cases to the cardiologist considering the concepts of the domain theory. The cardiologists provide justification for the diagnosis of each case. These justifications are simple diagnostic associations, which are generalized by the toll as long as the cardiologists introduce new associations. In the end, the software developers find available some general rules for the diagnosis of specific pathology to use in future interviews for knowledge acquisition.

definition

ISO, organization activities and domain activity

Kind of software, life cycle, methods, tools

Standard SP

specialization

Specialized SP

Specialized SP

...

Specialized SP-

instantiation Particularities for the project

SP – Project 1

SP – Project 1

...

SP – Project 1

Figure 3: Domain-Oriented Software Process Another tool developed for &25',6 was 48$/&25',6 defined to assist in the quality requirements elicitation48$/&25',6 considers ISO 9126 [9], specific quality attributes for medical software and uses fuzzy logic to deal with the uncertainty of this process. In this way quality attributes are enhanced considering the differences in the opinion of cardiologists, nurses, administration staff and computer science personnel. For 1(7812, a specific browser for the Domain Theory of acoustic propagation was developed. With this tool the software developer can learn about the domain by looking for concepts, their relations, where they are used and which kind of tasks can consider them. This browser is integrated in the environment and is used in the domain investigation activity defined in the software process.

4. Conclusion Not understanding the problem domain is a recurring problem for the software developers. We argue that productivity is strongly influenced by the extent to which the designers know the domain and, therefore, software development environments will be more effective if they take domain knowledge into account. Based on this idea, we have proposed DOSDEs – DomainOriented Software Development Environments – considering the infrastructure of a metaenvironment commonly used by our group. In this paper, we present the definition and construction of DOSDE for two domains: cardiology and acoustic propagation. Those two experiences are the first step to attest the validity of these ideas. Now we are working in the definition and construction of new tools to be integrated into a specific DOSDE, such as tools to assist in the software modeling activity, and to assist in the software product evaluation, according to specific software quality attributes.

Acknowledgments We thank Dr. Alvaro Rabelo, Dr. Antonio Ximenes, Professors Crediné Menezes, Stan Matwin and Ricardo Falbo for their valuable contributions to this work. We also acknowledge CNPq, the

financial support from Brazilian Government for this project, and CAPES, Brazil partially support for Prof. Guilherme H. Travassos while visiting the ESEG at UMCP.

References [1] K.Oliveira, A.R. Rocha, G.H.Travassos, C.S.Menezes: Using Domain-Knowledge in Software Development Environment for Cardiology; Proceedings of the eleventh Conference on Software engineering and Knowledge Engineering, pp. 180-186, Kaiserslautern, Germany, June 1999. [2] T.R. Gruber: Toward Principles for the Design of Ontologies used for Knowledge Sharing; International Journal Human-Computer Studies, 43: 907-928, 1995. [3] M.Uschold, M. Gruninger: Ontologies: principles, method and applications; The Knowledge Engineering Review, 11(2):93-136, 1996. [4] A.Gómez-Pérez, M. Fernandez, A.J. Vicente: Toward a Method to Conceptualize Domain Ontologies; Proceedings of Workshop on Ontological Engineering/ECAI; Budapest, Hungary, August 1996. [5] A.R. Rocha, T.C. Aguiar, J.M. Souza. Taba: A Heuristic Workstation for Software development. Proceedings of COMPEURO, Tel Aviv, Israel, May 1990. [6] R.Falbo, C.Menezes, A.R. Rocha: Using Knowledge Servers to Promote Knowledge Integration in Software Engineering Environments; Proceedings of the eleventh Conference on Software engineering and Knowledge Engineering, pp. 170-174, Kaiserslautern, Germany, June 1999. [7] ISO/IEC 12207: Information technology - Software Life Cycle Processes, International Standard Organization, 1995. [8] K. E Emam, J. Drouin, W. Melo: SPICE – The Theory and Practice of Software Process Improvement and Capability Determination; IEEE Computer Society Press, 1998. [9] ISO/IEC 9126: Information Technology Software Product Evaluation Quality Characteristics and Guidelines, 1991.

Suggest Documents