Ontological modeling for software application development

https://doi.org/10.1016/j.advengsoft.2004.08.003Get rights and content

Abstract

The analysis of application for software development is usually guided and, hence, constrained by concepts and constructs of structured and object-oriented programming languages. It produces an analysis model that bears no essential difference from a software design. Here, we introduce an ontological Weltanschauung in application analysis for understanding essentials and novelties, which are obscured in structured and object-oriented methods of application analysis. The ontological viewpoint is reified with a systemic framework, or simply an ontology, which can be related to software design. Thus, we can apply ontological analysis in software development.

Introduction

Prevalent methods of software engineering guide user requirements analysis with structured or object-oriented conceptual models, which were originated from programming languages [4], [13], [14], [19], [26]. They facilitate transforming an analysis model to a software design seamlessly and implementing it in a programming language smoothly. Their viewpoints for application analysis are not found on an ontology that studies real-world things. They restrict comprehension and innovation of essential properties and novel behaviours of real-world systems. The state of arts of application analysis is commented as follows.

Structured analysis pursues a software system that users want [26, p. 65]. It transforms user policy and project charter into a structured specification, which is represented with dataflow, entity-relationship, and state-transition diagrams. The diagrams are transformed into source code in structured programming.

The Object Modeling Technique (OMT) [19] applies object-oriented concepts throughout an entire software life cycle. Its fundamental concept is object, which combines data structure and behaviour. An analysis model in OMT uses an object model to organize objects and static relationships between the objects, a dynamic model to describe object interactions, and a functional model to specify data transformations. It can be easily transformed into an object-oriented design and implemented in an object-oriented language. The Booch method of object-oriented analysis and design [4] reflects the topology of object-oriented programming languages in organizing a software system. It identifies classes and class relationships such as inheritance and association. The use-case driven approach to object-oriented software engineering [13] builds a requirements model and an analysis model. The former model consists of a use-case model, a problem domain object model, and user interface descriptions. The use-case model is composed of use cases, which specify externally visible behaviors of the system. The analysis model distributes behaviors identified from use cases among interface, entity, and control objects. When working on an analysis model, the use-case driven approach analyzes one use case at a time. The Unified Process [14] collects all use cases that users need. It captures objects for a domain model and creates a glossary of candidate classes. It describes business processes with business entities and use cases, which are organized into object models and use-case models [14, p. 122]. It transforms the use-case models into an analysis model, which grows incrementally as use cases are analyzed.

The above-mentioned diagrams and analytic notions are induced from structured and object-oriented programming languages. They are used in software design as well. But, they are not expressive enough to reveal internal structures of real-world systems or account for creation, breakdown, and evolution of natural and engineering systems. Particularly, objects emerged as programming concepts. They were driven by programming considerations [22, p. 537].

The study of ontology in philosophy, dated back to Aristotle, deals with the a priori nature of reality [12, p. 626]. It handles perceptive questions of the kinds, structures, and properties of real-world things. The principles of ontology have been extended to business strategic plans such as enterprise modeling, e-commerce, meta-data standardization, agent-based knowledge sharing, etc. [25]. Ontology takes nothing for granted except logic and mathematics. It is different from systemics, which takes certain concepts such as property and time for granted [6]. Systemic ontology unifies systemics and ontology for conceptualizing all the real-world systems [5], [6].

Here, we introduce a framework based on systemic ontology to guide application analysis for software development. It helps identify and specify essential properties and novel behaviors of real-world systems. Based on the framework, we present an ontological approach to application analysis and show how an ontological analysis model produced with the approach can be used in software design. Thus, we integrate ontological modeling into software process.

This article is organized as follows. Section 2 introduces systemic ontology. We apply ontological notions to study the various aspects of real-world things and systems in Section 3, where an ontological framework of concepts and constructs is presented. In Section 4, we briefly describe how an ontological analysis model can be used in software design. The ontological approach to application analysis is compared with related works in Section 5. The article is concluded in Section 6.

Section snippets

A structural perspective of system

Structured and object-oriented methodologists use functions or objects to account for functionality and dynamics of applications. They seek functions or classes as building blocks for analysis models. In systemic ontology, a system is characterized by its composition, environment, and structure, which are based on part-of and act-upon relations [5], [6]. We now detail the systemic terms.

We use symbol Θ to denote the set of all things, abstract and concrete. The part-of relation xy between

An ontology for application analysis

Based on the above reformulation of the systemic ontology presented in Refs. [5], [6], we now present a framework of concepts and constructs, or simply an ontology, for analyzing applications in a software development process. The ontology supplements the existing methods of application analysis for creating ontological analysis models. We use a Web application presented in Ref. [20] to show that the ontology can be applied to improve the modeling of advanced Web applications, which involve

Software design for ontological analysis model

Here, we briefly describe how to use an ontological analysis model in object-oriented software design. The basic constructs for object-oriented design are object, which encapsulates data and behavior, and class, which defines objects and specifies inheritance.

Related works

The proposed ontology for application analysis is based on the systemic ontology presented in Bunge [5], [6]. The ontological principles and philosophical concepts in Refs. [5], [6] are not formal, detailed, or expressive enough for application analysis in software development. Particularly, the fundamental notion of an event in Bunge's systemic ontology is only a pair of states, which does not identify the event subject or a temporal interval during which the event happens. We extend the

Conclusion

The existing methods of application analysis for software development are based on structured or object-oriented concepts and constructs to abstract real-world systems. They build analysis models for structured or object-oriented design and programming. They may not easily expose some novel real-world scenarios such as system evolution and environmental interaction. Following Bunge's view that no idea can be fully understood unless it is embedded in some system [5], [6] and Wand's premise that

References (26)

  • N. Guarino

    Formal ontology, conceptual analysis and knowledge representation

    Int J Hum–Comput Stud

    (1995)
  • C. Welty et al.

    Supporting ontological analysis of taxonomic relationships

    Data Knowl Eng

    (2001)
  • K. Baclawski

    Extending UML to support ontology engineering for the semantic Web

    The fourth international conference on UML (UML Toronto, Canada

    (2001)
  • A.Z. Bar-On

    Ontological analysis: the classical model

    (1996)
  • L. Baresi et al.

    Assertions to better specify the Amazon bug

    (2002)
  • G. Booch

    Object-oriented analysis and design with applications

    (1994)
  • M. Bunge

    Treatise on basic philosophy

    (1977)
  • M. Bunge

    Treatise on basic philosophy

    (1979)
  • S. Cranefield et al.

    UML-based ontology modeling for software agents

    (2001)
  • S. Cranefield et al.

    UML as an ontology modeling language

    (1999)
  • D. Fensel

    Ontologies: a silver bullet for knowledge management and electronic commerce

    (2001)
  • A. Gangemi et al.

    Understanding top-level ontological distinctions

    In Proceedings of IJCAI workshop on ontologies and information sharing

    (2001)
  • Gómez-Pérez A. Ontological engineering. Tutorial on ontology engineering: IJCAI’99. [available at...
  • Cited by (4)

    View full text