Ideas for Model Evolution
Version 1 (Shiraz Memon, 11/06/2012 01:20 PM)
1 | 1 | Shiraz Memon | h1. Ideas for Model Evolution |
---|---|---|---|
2 | 1 | Shiraz Memon | |
3 | 1 | Shiraz Memon | Ideas for evolving GLUE 2.0 Conceptual Model |
4 | 1 | Shiraz Memon | The discussion will start after a relevant implementation experience of GLUE 2.0. We can envision that this will not happen before Jun 2010. Meanwhile, we collect ideas in this page |
5 | 1 | Shiraz Memon | * From the theoretical point of view, you can not imply that pointing to a class you have access to its subclasses, but just to its superclasses because of the definition of inheritance in the object oriented programming. So I would propose two solutions here depending on what you wanted to describe: |
6 | 1 | Shiraz Memon | ** Inheritance is a way to form new classes (instances of which are called objects) using classes that have already been defined. The inheritance concept was invented in 1967 for Simula (http://heim.ifi.uio.no/~kristen/FORSKNINGSDOK_MAPPE/F_OO_start.html). |
7 | 1 | Shiraz Memon | ** Solution: Taking all "inherited association" ends from subclasses out from the Inherited Association End list. |
8 | 1 | Shiraz Memon | ** Sergio: alwasys focus on the fact we are using UML Class Diagram for the conceptual model; in the UML class diagram, when a class is specialized by another class, it will inherit all the attributes *and relationships*; therefore this is consistent with the adopted modeling language |
9 | 1 | Shiraz Memon | *** I got your point, there are two possible solutions: |
10 | 1 | Shiraz Memon | *** remove them |
11 | 1 | Shiraz Memon | *** add one more section for "implied assocation ends" or similar; it could be useful for implementors to verify that all associations are taken when designing the mapping, especially for not powerful data models such is LDAP |
12 | 1 | Shiraz Memon | ** Final: OK. Will be removed, unless the majority prefer the second option. |
13 | 1 | Shiraz Memon | * Try to restrict the uses of Multivalue attributes if they are not very used so they can be used as Extensions |
14 | 1 | Shiraz Memon | ** Entity class: The "OtherInfo" attribute could be replaced by the use of Extensions, because that is what they are meant for |
15 | 1 | Shiraz Memon | ** ComputingActivity class: The "OtherMessages" attribute could be replaced by the use of Extensions, because that is what they are meant for. |
16 | 1 | Shiraz Memon | ** In the AdminDomain entity (page 11), the AdminDomain relationship is defined two times. This is because you want to specify both ends. I think both ends should be named for consistency. As simple as "end1" and "end2" or something similiar. |
17 | 1 | Shiraz Memon | ** This improvement could be made also in: Service (page 13) |
18 | 1 | Shiraz Memon | ** Sergio: the semantics of each end is different, this should be represented somewhat; for the AdminDomain, if you look at the description, you can read it; for the Service, the association is directed; the same issue applies; we need probably to clean the way this difference is described in the table; in the UML it is possible to label the association ends; need to clean this |
19 | 1 | Shiraz Memon | * In Contact (page 10), two relations are specified: Service and Domain, and both are zero to many. What you really meant is that a Contact should be related minimum to either a Service or a Domain, but that couldn't be specified in UML. Possible solutions: |
20 | 1 | Shiraz Memon | ** Make two children of Contact: ServiceContact and DomainContact. ServiceContact will have a relation to Service one to many. DomainContact will have a relation to Domain one to many. |