[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(FC-Devel) Concept Oriented Design

Hi All!

I have a radical idea regarding CASE.
You probably won't share my vision :) but I will try anyway.

I think we should develop a new design methodology.
I am working for two and a half years with Object Oriented  methodology
and I find it to be a good methodology, but there are problems with OO.
If you have good design and good objects with good interfaces its very nice to
use OO design, but if for example you want to change interface for some objects
it can be a big task if you have a big project.
So, I will try to propose a more flexible methodology which OO is a particular case.

As I see it when we describe our computer projects we actually connect Concepts.
(e.g. inheritance is a concept and the class Observable in Java is concept, also
Design Patterns in OOD are concepts)
The methodology I want to develop should be called : Concept Oriented Design (COD)

We should develop tools to define concepts and manipulate them.
I think that static diagrams are suitable for concept definition.
The main thing that defines a concept is its connections to other concepts and
this connections are well represented in static diagrams.

A CASE tool should be a tool that enables the user to manipulate concepts.
Any such tool should come with a basic set of static diagrams (defining a basic
set of concepts and connections) and the user can add concepts and connections by
defining more static diagrams.

Also we should develop tools for translating between sets of concepts (e.g. code
generation is actually translation between design concepts and specific language

Another set of tools we should develop is tools for manipulating concepts. when
you try to manipulate concepts there are certain consistency rules that the CASE
software should help you use.

I have written some code in C++ that tries to implement some of these ideas.
If there is an interest I will publish it on the mailing list.

Chen Ofek