Dear all!
I read with great interest the proposal for the FAMIX meta-model 3.0. Here are my two-cent comments. Please, bear in mind that I am a totally newbie when it comes to FAMIX :-)
First, some questions regarding the notation: what does it mean when an attribute is prefixed with a "/", like "/isRead" and "Access"?
Do I understand correctly that "sender: BehaviouralEntity -> outgoingInvocations" in "Access" means that "Access" defines an attribute named "sender" of type "BehaviouralEntity", pointed by the attribute "outgoingInvocations" of "BehaviouralEntity"?
Now, some thoughts :-)...
Why have an attribute "sourceAnchor" in "Entity", why not use a Decorator to add such "external" data?
The role/concept of the entity named "Association" is confusing with respect to "traditional" UML where an association is a relationship between two or more entities, why not categorise the sub-concepts of "Invocation", "Access", "Reference" as "MethodConstituent" or "BehaviouralEntityConstituent"?
The attribute "candidates" seems to me very much Smalltalk oriented :-) I agree it is more general but... ;-)
Why are modifiers in "NamedEntity" represented as String*, why not use classes?
Why is "Package" not a "ScopingEntity", at least in Java, with respect to modifiers, it seems to me that packages define a scope?
I understand the rationale for putting back references, such as "belongsTo" in "ScopableEntity" but it feels to me more an implementation choice to ease navigating the models rather than a true concept that must be represented in the models. (Also, it may make it harder to build models.)
Why is there a "GlobalVariable" entity?
Why don't the "BehaviouralEntity" have a "returnType"?
Cheers! Yann-Gael
PS. I join two pictures representing our PADL meta-model and other classes and their related DP for comparison :-)