[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: (FC-Devel) [Re: Concept Oriented Design ] + results of tool evaluation
Hi
Dr. Thomas Fricke wrote:
> > I don't mean diagrams in the graphical sense but more as a model for
> > concept definition
> >
> I do not insist on Corba, however I strongly recommend an architecture
> consisting of different layers. Our requirements here need a
> distributed repository, which could reside in a free distributed DB.
I agree to the different layers, but I think our system should be able to run
also without Corba.
> > > in my humble opinion it could look like
> > >
> > > collectionOfConceptualGraphs{
> > > conceptualGraphs(class1, class2, role1, role2)
> > >
> > > }
> >
> > In my humble opinion conceptual graphs should be talking about concepts. so
> > "class1","class2","role1","role2" are actuallyconcepts.
> > I would prefer something like:
> > CG {
> > addConceptualConnection(Concept c1,Concept c2,Concept role1,Concept
> > role2)
> > }
> >
>
> You are right. The abused the class term. A class is an instance of
> several
> roles (subclass, superclass) in the inheritance concept.
>
> > This gives the possibility to use role1 as a concept in another connection
> > and creating complex design patterns.
> > For example:
> >
> > cg.addConceptualConnection(myModel,myView,Model,View)
> > cg.addConceptualConnection(Model,usageCount,subClass,superClass)
> >
I have one more thought about the interface:Until now we have captured the idea
of a connection which has two roles. but if we want to be general
we have to think of connection with more than two roles.
For example: Model,View Controler is a Design Pattern which connects three
concepts.
So, we have, at least, two alternatives:
1. Add interface like cg.addConceptualConnection(list<Concept> concepts,
list<Concept> roles)
2. Regard the connection as a concept of its own. every Concept will have a list
of ports that other concepts
can attach to them. every port some specific role.
For example: inheritance will be a concept. it will have two ports : one is
subClass and the other is superClass.
now the interface will be : cg.connect(Concept c1,Concept c2,Concept p) -->
connect c1 to c2 though port p.
and cg.definePort(Concept c, Concept p) --> define port p for concept c.
example : cg.definePort(inheritance,subClass);
cg.definePort(inheritance,superClass);
cg.connect(Integer,inheritance,subClass);
cg.connect(Number,inheritance,superClass);
(this is equivalent to your exmaple)
I hope you understand what I mean.
I think that alternative 2 is more clean.
> No I would like to read more about this approach. Do you have some
> refererences
> for the beginner?
I am not sure to which approach do you refer.
> I would like to hear the opinion of all people who would like to
> participate,
> otherwise I get the impression of being alone with Chen Ofek.
I agree.
bye
chen