Knowledge-Based Support for Object-Oriented Software Design and Synthesis: A Category Theoretic Approach

By Yujun, Zheng; Jinyun, Xue et al. | Journal of Digital Information Management, June 2007 | Go to article overview
Save to active project

Knowledge-Based Support for Object-Oriented Software Design and Synthesis: A Category Theoretic Approach

Yujun, Zheng, Jinyun, Xue, Qimin, Hu, Journal of Digital Information Management

ABSTRACT: To reuse previous knowledge of objectoriented design and adapt them to solve new problems, the collaboration relationships and the responsibility distribution among software objects need to be thoroughly understood and precisely formulated. The paper proposes a knowledge-based approach that employs category theoretic models to formalize and mechanize objectoriented software design and synthesis by focusing concern on reasoning about the interdependency relationships at different levels of abstraction and granularity. The major benefit of our approach is twofold: First, it provides an explicit semantics for formal object-oriented specifications, and therefore enables a high-level of reusability and dynamic adaptability. Second, it utilizes the ability of categorical computations to support automated software composition and refinement. A prototype tool that demonstrates the feasibility and effectiveness of our approach is also presented.

Categories and Subject Descriptors D. 2.4 [Software/Program Verification]; D 2.8 [Software Metrics] D.2.9 [Software Management]

General Terms

Software reliability, Software systems, Software quality and reliability

Keywords: Object oriented design, Automated software, Software quality, Software metrics

1. Introduction

One way to software reuse is to construct and use source code libraries, which heavily rely upon directory information and keyword/string search that is often cumbersome and problematic [18]. Subsequently, many knowledge-based systems (e.g., [4, 9, 24]) have been investigated for more sophisticated support mechanisms, which typically have a knowledge representation of reusable software components, and provide knowledge-based functions to query, browse and edit the components to meet user requirements. The advantages of using a knowledge-base approach include: semantic retrieval and proliferation, information aggregation and intelligent index for components, and use of classification and inheritance to support updates.

However, users of those software reuse systems generally face with both a terminological and a cognitive gap [14]. Focusing concern on providing a formal definition of basic object-oriented concepts by extending current ADT-based specification language such as Z [23], B [1], and Slang [7], some formal models (e.g., [8, 11, 17]) have been proposed to facilitate the representation, understanding and validation of object-oriented knowledge, but they still lack a mathematically precise semantics for reasoning about the collaboration relationships and responsibility distribution among software objects, which are recognized as key to effective design and reuse of object-oriented design (OOD) frameworks in current component-based software development.

As a "theory of functions", category theory offers a highly formalized language for object-oriented specifications, and is especially suited for focusing concern on reasoning about relations between objects. Also, it is sufficiently abstract that it can be applied to a wide range of different specification languages [26]. In this paper we present a knowledge-based approach that employs a category theoretic framework to model object-oriented software design and synthesis. This approach

* formally defines and represents the application domain knowledge with theory-based specifications at different levels of granularity;

* explicit models the similarities and variations among software components at different levels of abstraction;

* utilizes category theoretic computations to generate new software components out of existing ones automatically.

In consequence, our approach enables a high level of reusability and dynamic adaptability and features mechanizable specification composition, refinement and code generation. We also implement a prototype of a knowledge-based tool which has been successfully built into MISCE [27] to support object-oriented software development.

The rest of this article is only available to active members of Questia

Sign up now for a free, 1-day trial and receive full access to:

  • Questia's entire collection
  • Automatic bibliography creation
  • More helpful research tools like notes, citations, and highlights
  • Ad-free environment

Already a member? Log in now.

Notes for this article

Add a new note
If you are trying to select text to create highlights or citations, remember that you must now click or tap on the first word, and then click or tap on the last word.
Loading One moment ...
Project items
Cite this article

Cited article

Citations are available only to our active members.
Sign up now to cite pages or passages in MLA, APA and Chicago citation styles.

Cited article

Knowledge-Based Support for Object-Oriented Software Design and Synthesis: A Category Theoretic Approach


Text size Smaller Larger
Search within

Search within this article

Look up

Look up a word

  • Dictionary
  • Thesaurus
Please submit a word or phrase above.
Print this page

Print this page

Why can't I print more than one page at a time?

While we understand printed pages are helpful to our users, this limitation is necessary to help protect our publishers' copyrighted material and prevent its unlawful distribution. We are sorry for any inconvenience.
Full screen

matching results for page

Cited passage

Citations are available only to our active members.
Sign up now to cite pages or passages in MLA, APA and Chicago citation styles.

Cited passage

Welcome to the new Questia Reader

The Questia Reader has been updated to provide you with an even better online reading experience.  It is now 100% Responsive, which means you can read our books and articles on any sized device you wish.  All of your favorite tools like notes, highlights, and citations are still here, but the way you select text has been updated to be easier to use, especially on touchscreen devices.  Here's how:

1. Click or tap the first word you want to select.
2. Click or tap the last word you want to select.

OK, got it!

Thanks for trying Questia!

Please continue trying out our research tools, but please note, full functionality is available only to our active members.

Your work will be lost once you leave this Web page.

For full access in an ad-free environment, sign up now for a FREE, 1-day trial.

Already a member? Log in now.

Are you sure you want to delete this highlight?