P. Kapłański, Ontology-Aided Software Engineering, PhD Dissertation, 2012
This thesis is located between the fields of research on Artificial Intelligence (AI), Knowledge Representation and Reasoning (KRR), Computer-Aided Software Engineering (CASE) and Model Driven Engineering (MDE).
Software industry is knowledge oriented industry. Usually, the knowledge has form of source code, comments, as well as supporting specifications written in natural language. Unfortunately, written specifications prevent from automatic processing of knowledge therein. It is possible to process the knowledge with formal methods but, mainly due to the lack in education about supporting tools, it is very hard to implement in the organization.
The aim of this thesis is to prove that:
1) It is possible to define a Common, Object Oriented Language by using the Controlled Natural Language as a verbalization of Description Logic.
2) Introduced language is understandable for people and can be automatically processed by machines. It can also be used in many areas of software development where natural language is currently used.
3) The language can be used to aid the software production process with ontology engineering.
We consider here controlled subject of natural language called OASE-English (developped by the author). OASE-English is a verbalization of Description Logic, that is intended to deal with the software design. It is a formal language that can express knowledge about the computer program in a way that is accessible to a wide group of users (developers, testers, designers, end-users).
Description logic (the W3C OWL2 formalism) allows for the expression of certain important, static structures of the computer program (inference about the characteristics of these structures is computable and complete).
We show that static structures are common in software engineering (e.g. UML class diagrams, the structure of design patterns, certain requirements). Moreover we present how one can write contracts, whose consistency is being investigated in the runtime.
Besides the support for software development, we have discovered that it is possible to use OASE-Tools in terms of components of practical software solutions, that not originate from software engineering itself.
Keywords:PhD Dissertation, software engineering, description logic, ontology, controlled natural language, methodology, artificial intelligence, knowledge representation and reasoning, model driven engineering, CNL, AI, KRR, MDE, MDA, CASE, OASE.