
Hi all, I've been thinking about this ComputingService <- exposes -> Endpoints association and if it's possible to do it based on the UML diagrams contained in GFD1.47. (see figures on page 7, 22) I think the UML diagram doesn't clarify what happens to the association <- exposes -> with respect to inheritance when it comes to the specialized classes ComputingService,ComputingEndpoint. What we have is Service <- exposes -> Endpoints ComputingService <- exposes -> ComputingEndpoints Now if we could write this as a piece of object oriented pseudocode, we would have Class Service { // a list of exposed Endpoints Endpoint MyEndpoints } Class ComputingService extends Service { // a list of exposed ComputingEndpoints ComputingEndpoint MyComputingEndpoints } What happens with inheritance wrt <- exposes -> ? I think there can be two implementations for a ComputingService constructor: 1) ComputingService includes the <- exposes -> from Service, that is, an instance of ComputingService would have both MyEndpoints and MyComputingEndpoints: ComputingService( EndpointList someEndpoints , ComputingEndpointList someComputingEndpoints ) { this.MyEndpoints = someEndpoints; this.MyComputingEndpoints = someComputingEndpoints; } 2) ComputingService overrides the <- exposes -> from Service, that is an instance of ComputingService has ComputingService( ComputingEndpointList someComputingEndpoints ) { this.MyEndpoints = someComputingEndpoints } I favour the 1) as it makes possible to have Endpoints inside a ComputingService, that would give better readability and clarity to Endpoints which are NOT ComputingEndpoints. these two implementation are, in my opinion, both possible as UML does not really scope associations with inheritance. What do you think? Which one should we favour? I am really annoyed of calling ComputingEndpoint an Endpoint that has nothing to do with computing! Thanks for your answers, -- Florido Paganelli Lund University - Particle Physics ARC Middleware EMI Project