Ontology-Based Software Development Techniques
by Motoshi Saeki
An on-going research project at the Tokyo Institute of Technology is looking at supporting software-requirements elicitation and composing software from re-usable architectures, frameworks, components and software packages. The relevant techniques are developed through the use of ontology and its reasoning mechanism so as to maintain semantic consistency.
The first steps in software development processes are requirements analysis and design phases. Software engineers can have a great effect during these steps on the quality of the software produced and on its development cost. Recently, it has become less common to develop new software from scratch. Instead, software is developed by adapting and/or combining existing re-usable software architectures, components such as COTS, frameworks such as Struts and Turbine, and software packages such as ERP and CRM (in this article, we describe these as re-usable parts). In this situation, software engineers need to have sufficient knowledge and skills to employ these re-usable parts correctly and effectively. In particular, the engineers working for requirements analysis and design must be able to select and adapt existing re-usable software parts according to customers' requirements.
Several techniques have been studied and developed for eliciting requirements from the customers and prioritising the applicable re-usable parts selected from these.. However, these techniques cannot deal with possible ambiguities in customer requirements. Consequently, these applications often elicit different requirements from those the customers truly want, and select re-usable parts that are semantically wrong, even if the requirements could be correctly elicited. This leads to the development of software that does not meet the customers requirements.
In this research, we focus on semantic processing of requirements and re-usable parts by using ontology techniques. We are developing techniques that enable us to elicit semantically correct requirements and to select the implementation structures that are semantically suitable for those requirements. We have an ontology system whose concrete structure is the thesaurus of domain-specific words for each problem domain. In our new methodology, requirements are elicited based on the ontology, or more concretely, the ontology system guides the analysts' activities to elicit requirements. As a result, the meaning of the elicited requirements can be represented with a set of relevant words included in the ontology system. Re-usable parts are also semantically related to the words in the ontology system; that is, the meaning of each re-usable part is provided by the ontology system. Consequently, we have a kind of database of re-usable parts, including their semantic information. The selection of re-usable parts is performed by means of word matching in the ontology system. The re-usable parts are then adapted so as to satisfy the requirements and are integrated into a final product.
Our ontology system has two layers; one for requirements elicitation and the other for re-usable parts. By establishing relationships between the two layers, the ontology system can play a role in bridging gaps between a requirements specification and an architectural design at a semantic level.
The following scenario and Figure 1 illustrate the basic idea. An analyst elicits requirements by exploring and using the relevant vocabularies in the ontology as examples. Suppose that he adopts an ontological concept (vocabulary) A, which relates to concept B that connects to re-usable parts such as Struts. He can also write a specification document by using a fragment of requirements specifications (such as a sample sentence using vocabulary A). The strength of the relationship to B then suggests that he can compose the final product using Struts.
To (partially) automate the construction of the ontology system for each problem domain, we explore the application of natural language processing for extracting domain-specific words from documents on the Internet. Our research project consists of three sub-projects: (i) constructing the ontology on a problem domain by processing natural language texts describing the domain and by mining them into common vocabularies as domain-specific concepts; (ii) extending the existing requirements-elicitation techniques such as Goal-Oriented Analysis and Scenario Analysis so that they can be guided by the constructed ontology system; and (iii) developing the techniques to select the semantically suitable re-usable parts and adapt them in a semantically consistent manner. These techniques and their supporting tools allow novice engineers to easily perform requirements elicitation, design and implementation through the adaptation and integration of re-usable parts. Since the meanings of both the requirements and the implementation structures are represented by a unified ontology system, we can measure semantic relationships between them by analysing the relevant ontology structures, thereby determining the achievability of the requirements based on the selected implementation structure.
This project is currently in its first stage, and we have recently established the techniques to process natural language texts describing business-processing domains, and to extract common vocabularies and their relationships as a thesaurus. We are now tailoring a practical ontology system and developing a reasoning mechanism on the ontology system.
Motoshi Saeki, Tokyo Institute of Technology, Japan