Object-oriented Design Ontology

Object-oriented Design Ontology

An object oriented design ontology is a hierarchical structure of design constructs. Possible constructs that may be included within an object oriented design ontology are:

  • Design patterns ;
  • Design principles;
  • Design heuristics, .

It also describes the various relations that may exist amongst these constructs. There may also be specific meta data attached to a construct.

The intention for this is to provide part of a larger ontology for programming and engineering. There are also a number of general design ontologies.

A design ontology could have a number of different uses:

  • Design Decision Support - for support when making design decisions, i.e. which pattern and accompanying principles to use for solving a particular problem.
  • Patterns Recognition In Code - an ontology could be used to identify particular patterns within existing code when carrying out maintenance or as part of code comprehension, see Web Of Patterns .
  • As a language agnostic way of structuring patterns possibly further in XML. This would allow the generation of patterns in particular languages much easier and could be used as an alternative to Pattern Languages which are relatively unstructured natural language descriptions of patterns.

A BlueJ extension currently exists to generate design pattern structures based on XML templates. This allows a user to generate a design pattern in a simplistic manner for a given domain, e.g. A Coffee Shop.

Some work has been done towards building relationships between patterns and classifying them:

Design Pattern Relationships and Classifications - http://www.ida.liu.se/~uweas/Lectures/DesignPatterns01/

There are a number of different design pattern families:

  • Basic Design Patterns
  • Enterprise Patterns
  • J2EE Design Patterns
  • Integration Patterns
  • Antipatterns

There are a number of different design principles:

  • Separation of concerns
  • Convention over configuration

Design heuristics have been looked at in many different disciplines, this includes:

  • Human Computer Interface
  • Object Oriented Design Heuristics
  • Language Specific, Effective Java

Previous research has looked at aligning patterns, anti-patterns and principles in a taxonomy. These are built and situated within a specific domain using qualitative interviews between groups of developers An Object Oriented Design Taxonomy

Read more about Object-oriented Design Ontology:  The Building-blocks of Object-oriented Design, External Links

Famous quotes containing the word design:

    Nowadays the host does not admit you to his hearth, but has got the mason to build one for yourself somewhere in his alley, and hospitality is the art of keeping you at the greatest distance. There is as much secrecy about the cooking as if he had a design to poison you.
    Henry David Thoreau (1817–1862)