Possible inconsistency in class-scheme

In BmmClass we have to abstract functions: isPrimitive and isAbstract. They are declared optional, but in BmmEntity, where they are derived from, they are declared as mandatory.

I think this is not allowed and also unclear what is meant here, I think it would be better to make the functions mandatory too.

This is also in BmmType, where isAbstract is missing, but isPrimitive is mandatory. The missing isAbstract is not an error because it can be implemented in derived classes from BmmType (I did not check the scheme so far to see if this is done.), but for clarity, I would also have isAbstract abstracted in BmmType.

In fact, the only reason for existing of BmmEntity is those two functions, it is also possible to remove this class entirely. (it is more complex then needed this way)

Best regards
Bert Verhees

Yes you are right. The current model is a bit wrong because UML doesn’t support abstract features being redefined into functions and properties; only functions. In my Eiffel implementation you can do that, it’s very nice. But most other languages can’t do it, so I should fix that.

You can assume that these flags are optional in a BMM schema, and both default to False, and that there are matching functions in BMM_TYPE. I think BMM_ENTITY can be removed safely - you’ll soon find out. I’ll test in the model.

I’ll post a cleaned up version ASAP but the above should be enough to fix our implementation.

Would be nice, and maybe the multiple inheritance disappears also, because they both (bmmModule and BmmEntity) come into BMMClass.

I know that is not the goal, but for some developers, this might be a pleasant side issue

Yep - I got rid of the BMM_ENTITY class; it’s not useful in the model. See the latest version online. Thanks for the feedback.