What is the type of an InstanceValue whose InstanceSpecification has multiple classifiers?












2















As far as I understood, a UML InstanceValue is a value defined by a separate InstanceSpecification. In addition, InstanceValue specializes ValueSpecification and hence TypedElement, which means an InstanceValue must have a type.



However, an InstanceSpecification may have multiple classifiers in its classifier association.



My question: what is the type of an InstanceValue whose InstanceSpecification has multiple classifiers?





EDIT (23/11): There is indeed the following sentence in section 9.8.3 of the spec:




If the InstanceSpecification has one or more classifiers, then the type of the ValueSpecification must conform to at least one of those classifiers.




So should one simply pick any of the classifiers to put as a type? Even if it means possibly "hiding" many aspects of the instance?










share|improve this question

























  • Why do you need to understand the UML specification jargon of "InstanceSpecification" and "InstanceValue"? This jargon is only used by UML committee members, but not by real developers/modelers.

    – Gerd Wagner
    Nov 27 '18 at 7:36











  • If you want to automatically/programmatically analyze UML models, it is crucial to master its syntax and the semantics of each syntactic concept. A wide range of industries nowadays process UML models in such a way, for instance to generate code stubs or test cases in a systematic way.

    – Gwendal
    Nov 28 '18 at 8:33
















2















As far as I understood, a UML InstanceValue is a value defined by a separate InstanceSpecification. In addition, InstanceValue specializes ValueSpecification and hence TypedElement, which means an InstanceValue must have a type.



However, an InstanceSpecification may have multiple classifiers in its classifier association.



My question: what is the type of an InstanceValue whose InstanceSpecification has multiple classifiers?





EDIT (23/11): There is indeed the following sentence in section 9.8.3 of the spec:




If the InstanceSpecification has one or more classifiers, then the type of the ValueSpecification must conform to at least one of those classifiers.




So should one simply pick any of the classifiers to put as a type? Even if it means possibly "hiding" many aspects of the instance?










share|improve this question

























  • Why do you need to understand the UML specification jargon of "InstanceSpecification" and "InstanceValue"? This jargon is only used by UML committee members, but not by real developers/modelers.

    – Gerd Wagner
    Nov 27 '18 at 7:36











  • If you want to automatically/programmatically analyze UML models, it is crucial to master its syntax and the semantics of each syntactic concept. A wide range of industries nowadays process UML models in such a way, for instance to generate code stubs or test cases in a systematic way.

    – Gwendal
    Nov 28 '18 at 8:33














2












2








2








As far as I understood, a UML InstanceValue is a value defined by a separate InstanceSpecification. In addition, InstanceValue specializes ValueSpecification and hence TypedElement, which means an InstanceValue must have a type.



However, an InstanceSpecification may have multiple classifiers in its classifier association.



My question: what is the type of an InstanceValue whose InstanceSpecification has multiple classifiers?





EDIT (23/11): There is indeed the following sentence in section 9.8.3 of the spec:




If the InstanceSpecification has one or more classifiers, then the type of the ValueSpecification must conform to at least one of those classifiers.




So should one simply pick any of the classifiers to put as a type? Even if it means possibly "hiding" many aspects of the instance?










share|improve this question
















As far as I understood, a UML InstanceValue is a value defined by a separate InstanceSpecification. In addition, InstanceValue specializes ValueSpecification and hence TypedElement, which means an InstanceValue must have a type.



However, an InstanceSpecification may have multiple classifiers in its classifier association.



My question: what is the type of an InstanceValue whose InstanceSpecification has multiple classifiers?





EDIT (23/11): There is indeed the following sentence in section 9.8.3 of the spec:




If the InstanceSpecification has one or more classifiers, then the type of the ValueSpecification must conform to at least one of those classifiers.




So should one simply pick any of the classifiers to put as a type? Even if it means possibly "hiding" many aspects of the instance?







uml






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 23 '18 at 13:06







Gwendal

















asked Nov 22 '18 at 12:44









GwendalGwendal

1428




1428













  • Why do you need to understand the UML specification jargon of "InstanceSpecification" and "InstanceValue"? This jargon is only used by UML committee members, but not by real developers/modelers.

    – Gerd Wagner
    Nov 27 '18 at 7:36











  • If you want to automatically/programmatically analyze UML models, it is crucial to master its syntax and the semantics of each syntactic concept. A wide range of industries nowadays process UML models in such a way, for instance to generate code stubs or test cases in a systematic way.

    – Gwendal
    Nov 28 '18 at 8:33



















  • Why do you need to understand the UML specification jargon of "InstanceSpecification" and "InstanceValue"? This jargon is only used by UML committee members, but not by real developers/modelers.

    – Gerd Wagner
    Nov 27 '18 at 7:36











  • If you want to automatically/programmatically analyze UML models, it is crucial to master its syntax and the semantics of each syntactic concept. A wide range of industries nowadays process UML models in such a way, for instance to generate code stubs or test cases in a systematic way.

    – Gwendal
    Nov 28 '18 at 8:33

















Why do you need to understand the UML specification jargon of "InstanceSpecification" and "InstanceValue"? This jargon is only used by UML committee members, but not by real developers/modelers.

– Gerd Wagner
Nov 27 '18 at 7:36





Why do you need to understand the UML specification jargon of "InstanceSpecification" and "InstanceValue"? This jargon is only used by UML committee members, but not by real developers/modelers.

– Gerd Wagner
Nov 27 '18 at 7:36













If you want to automatically/programmatically analyze UML models, it is crucial to master its syntax and the semantics of each syntactic concept. A wide range of industries nowadays process UML models in such a way, for instance to generate code stubs or test cases in a systematic way.

– Gwendal
Nov 28 '18 at 8:33





If you want to automatically/programmatically analyze UML models, it is crucial to master its syntax and the semantics of each syntactic concept. A wide range of industries nowadays process UML models in such a way, for instance to generate code stubs or test cases in a systematic way.

– Gwendal
Nov 28 '18 at 8:33












2 Answers
2






active

oldest

votes


















1














Regarding section 9.9.xx of UML 2.5.1, it seems that you do not have real constraint.



But when reading section 9.8.3, I understood that the InstanceValue "type" must be conform to at least one InstanceSpecification "classifiers".



In one hand if the InstanceValue "type" is not conform to any InstanceSpecification "classifiers", the model is obviously wrong. In the other hand InstanceValue "type" might be conform to many InstanceSpecification "classifiers" but it should be an issue, am I right?






share|improve this answer
























  • thanks for the answer! I've edited my question slightly based on your comments

    – Gwendal
    Nov 23 '18 at 13:06



















0















So should one simply pick any of the classifiers to put as a type? Even if it means possibly "hiding" many aspects of the instance?




Slots represent actual properties of the classifiers. Imagine the following example:



class Label {
public String name;
}

class Identity {
public Label label;
public Integer number;
}

class Product extends Identity {
public String brand;
}


And then you are e.g. modeling only the identity aspect. So in the classifiers you specify Identity (even though it is an instance of a Product).



enter image description here



Then you can only have Slots for properties provided from those classifiers, which in this examples means only the label and number properties. Of course you don't need to model all of them, but you cannot add new slots that do not have a corresponding property in the classifiers.



enter image description here



In other words, you are not "picking" what classifier to use. It is the other way around. The classifiers and their properties specify what Slots you can have.






share|improve this answer
























  • Thanks for the answer! However I think it might be slightly out the scope of my question, as I was simply questioning the "type" attribute of an InstanceValue (section 9.9.10 of the spec, where it does say that its content is given by a separate InstanceSpecification element), while here you talk about InstanceSpecifications (section 9.9.9 of the spec) and the slots they may or may not contain. Moreover I think what you say is incorrect: an InstanceSpecification can have mutliple classifiers, which means it can have slots defined by multiple classifiers.

    – Gwendal
    Nov 28 '18 at 8:30











  • But the InstanceValue is associated with a Slot (contained within the "parent" InstanceSpecification), and the Slot determines the type of it. I've never claimed that InstanceSpecification cannot have multiple classifiers. I've only stated that you cannot have Slots for properties that are not in one of the classifiers.

    – Peter Uhnak
    Nov 28 '18 at 16:55











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53431324%2fwhat-is-the-type-of-an-instancevalue-whose-instancespecification-has-multiple-cl%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














Regarding section 9.9.xx of UML 2.5.1, it seems that you do not have real constraint.



But when reading section 9.8.3, I understood that the InstanceValue "type" must be conform to at least one InstanceSpecification "classifiers".



In one hand if the InstanceValue "type" is not conform to any InstanceSpecification "classifiers", the model is obviously wrong. In the other hand InstanceValue "type" might be conform to many InstanceSpecification "classifiers" but it should be an issue, am I right?






share|improve this answer
























  • thanks for the answer! I've edited my question slightly based on your comments

    – Gwendal
    Nov 23 '18 at 13:06
















1














Regarding section 9.9.xx of UML 2.5.1, it seems that you do not have real constraint.



But when reading section 9.8.3, I understood that the InstanceValue "type" must be conform to at least one InstanceSpecification "classifiers".



In one hand if the InstanceValue "type" is not conform to any InstanceSpecification "classifiers", the model is obviously wrong. In the other hand InstanceValue "type" might be conform to many InstanceSpecification "classifiers" but it should be an issue, am I right?






share|improve this answer
























  • thanks for the answer! I've edited my question slightly based on your comments

    – Gwendal
    Nov 23 '18 at 13:06














1












1








1







Regarding section 9.9.xx of UML 2.5.1, it seems that you do not have real constraint.



But when reading section 9.8.3, I understood that the InstanceValue "type" must be conform to at least one InstanceSpecification "classifiers".



In one hand if the InstanceValue "type" is not conform to any InstanceSpecification "classifiers", the model is obviously wrong. In the other hand InstanceValue "type" might be conform to many InstanceSpecification "classifiers" but it should be an issue, am I right?






share|improve this answer













Regarding section 9.9.xx of UML 2.5.1, it seems that you do not have real constraint.



But when reading section 9.8.3, I understood that the InstanceValue "type" must be conform to at least one InstanceSpecification "classifiers".



In one hand if the InstanceValue "type" is not conform to any InstanceSpecification "classifiers", the model is obviously wrong. In the other hand InstanceValue "type" might be conform to many InstanceSpecification "classifiers" but it should be an issue, am I right?







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 22 '18 at 13:51









Red BeardRed Beard

2,7781816




2,7781816













  • thanks for the answer! I've edited my question slightly based on your comments

    – Gwendal
    Nov 23 '18 at 13:06



















  • thanks for the answer! I've edited my question slightly based on your comments

    – Gwendal
    Nov 23 '18 at 13:06

















thanks for the answer! I've edited my question slightly based on your comments

– Gwendal
Nov 23 '18 at 13:06





thanks for the answer! I've edited my question slightly based on your comments

– Gwendal
Nov 23 '18 at 13:06













0















So should one simply pick any of the classifiers to put as a type? Even if it means possibly "hiding" many aspects of the instance?




Slots represent actual properties of the classifiers. Imagine the following example:



class Label {
public String name;
}

class Identity {
public Label label;
public Integer number;
}

class Product extends Identity {
public String brand;
}


And then you are e.g. modeling only the identity aspect. So in the classifiers you specify Identity (even though it is an instance of a Product).



enter image description here



Then you can only have Slots for properties provided from those classifiers, which in this examples means only the label and number properties. Of course you don't need to model all of them, but you cannot add new slots that do not have a corresponding property in the classifiers.



enter image description here



In other words, you are not "picking" what classifier to use. It is the other way around. The classifiers and their properties specify what Slots you can have.






share|improve this answer
























  • Thanks for the answer! However I think it might be slightly out the scope of my question, as I was simply questioning the "type" attribute of an InstanceValue (section 9.9.10 of the spec, where it does say that its content is given by a separate InstanceSpecification element), while here you talk about InstanceSpecifications (section 9.9.9 of the spec) and the slots they may or may not contain. Moreover I think what you say is incorrect: an InstanceSpecification can have mutliple classifiers, which means it can have slots defined by multiple classifiers.

    – Gwendal
    Nov 28 '18 at 8:30











  • But the InstanceValue is associated with a Slot (contained within the "parent" InstanceSpecification), and the Slot determines the type of it. I've never claimed that InstanceSpecification cannot have multiple classifiers. I've only stated that you cannot have Slots for properties that are not in one of the classifiers.

    – Peter Uhnak
    Nov 28 '18 at 16:55
















0















So should one simply pick any of the classifiers to put as a type? Even if it means possibly "hiding" many aspects of the instance?




Slots represent actual properties of the classifiers. Imagine the following example:



class Label {
public String name;
}

class Identity {
public Label label;
public Integer number;
}

class Product extends Identity {
public String brand;
}


And then you are e.g. modeling only the identity aspect. So in the classifiers you specify Identity (even though it is an instance of a Product).



enter image description here



Then you can only have Slots for properties provided from those classifiers, which in this examples means only the label and number properties. Of course you don't need to model all of them, but you cannot add new slots that do not have a corresponding property in the classifiers.



enter image description here



In other words, you are not "picking" what classifier to use. It is the other way around. The classifiers and their properties specify what Slots you can have.






share|improve this answer
























  • Thanks for the answer! However I think it might be slightly out the scope of my question, as I was simply questioning the "type" attribute of an InstanceValue (section 9.9.10 of the spec, where it does say that its content is given by a separate InstanceSpecification element), while here you talk about InstanceSpecifications (section 9.9.9 of the spec) and the slots they may or may not contain. Moreover I think what you say is incorrect: an InstanceSpecification can have mutliple classifiers, which means it can have slots defined by multiple classifiers.

    – Gwendal
    Nov 28 '18 at 8:30











  • But the InstanceValue is associated with a Slot (contained within the "parent" InstanceSpecification), and the Slot determines the type of it. I've never claimed that InstanceSpecification cannot have multiple classifiers. I've only stated that you cannot have Slots for properties that are not in one of the classifiers.

    – Peter Uhnak
    Nov 28 '18 at 16:55














0












0








0








So should one simply pick any of the classifiers to put as a type? Even if it means possibly "hiding" many aspects of the instance?




Slots represent actual properties of the classifiers. Imagine the following example:



class Label {
public String name;
}

class Identity {
public Label label;
public Integer number;
}

class Product extends Identity {
public String brand;
}


And then you are e.g. modeling only the identity aspect. So in the classifiers you specify Identity (even though it is an instance of a Product).



enter image description here



Then you can only have Slots for properties provided from those classifiers, which in this examples means only the label and number properties. Of course you don't need to model all of them, but you cannot add new slots that do not have a corresponding property in the classifiers.



enter image description here



In other words, you are not "picking" what classifier to use. It is the other way around. The classifiers and their properties specify what Slots you can have.






share|improve this answer














So should one simply pick any of the classifiers to put as a type? Even if it means possibly "hiding" many aspects of the instance?




Slots represent actual properties of the classifiers. Imagine the following example:



class Label {
public String name;
}

class Identity {
public Label label;
public Integer number;
}

class Product extends Identity {
public String brand;
}


And then you are e.g. modeling only the identity aspect. So in the classifiers you specify Identity (even though it is an instance of a Product).



enter image description here



Then you can only have Slots for properties provided from those classifiers, which in this examples means only the label and number properties. Of course you don't need to model all of them, but you cannot add new slots that do not have a corresponding property in the classifiers.



enter image description here



In other words, you are not "picking" what classifier to use. It is the other way around. The classifiers and their properties specify what Slots you can have.







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 25 '18 at 17:29









Peter UhnakPeter Uhnak

5,94732238




5,94732238













  • Thanks for the answer! However I think it might be slightly out the scope of my question, as I was simply questioning the "type" attribute of an InstanceValue (section 9.9.10 of the spec, where it does say that its content is given by a separate InstanceSpecification element), while here you talk about InstanceSpecifications (section 9.9.9 of the spec) and the slots they may or may not contain. Moreover I think what you say is incorrect: an InstanceSpecification can have mutliple classifiers, which means it can have slots defined by multiple classifiers.

    – Gwendal
    Nov 28 '18 at 8:30











  • But the InstanceValue is associated with a Slot (contained within the "parent" InstanceSpecification), and the Slot determines the type of it. I've never claimed that InstanceSpecification cannot have multiple classifiers. I've only stated that you cannot have Slots for properties that are not in one of the classifiers.

    – Peter Uhnak
    Nov 28 '18 at 16:55



















  • Thanks for the answer! However I think it might be slightly out the scope of my question, as I was simply questioning the "type" attribute of an InstanceValue (section 9.9.10 of the spec, where it does say that its content is given by a separate InstanceSpecification element), while here you talk about InstanceSpecifications (section 9.9.9 of the spec) and the slots they may or may not contain. Moreover I think what you say is incorrect: an InstanceSpecification can have mutliple classifiers, which means it can have slots defined by multiple classifiers.

    – Gwendal
    Nov 28 '18 at 8:30











  • But the InstanceValue is associated with a Slot (contained within the "parent" InstanceSpecification), and the Slot determines the type of it. I've never claimed that InstanceSpecification cannot have multiple classifiers. I've only stated that you cannot have Slots for properties that are not in one of the classifiers.

    – Peter Uhnak
    Nov 28 '18 at 16:55

















Thanks for the answer! However I think it might be slightly out the scope of my question, as I was simply questioning the "type" attribute of an InstanceValue (section 9.9.10 of the spec, where it does say that its content is given by a separate InstanceSpecification element), while here you talk about InstanceSpecifications (section 9.9.9 of the spec) and the slots they may or may not contain. Moreover I think what you say is incorrect: an InstanceSpecification can have mutliple classifiers, which means it can have slots defined by multiple classifiers.

– Gwendal
Nov 28 '18 at 8:30





Thanks for the answer! However I think it might be slightly out the scope of my question, as I was simply questioning the "type" attribute of an InstanceValue (section 9.9.10 of the spec, where it does say that its content is given by a separate InstanceSpecification element), while here you talk about InstanceSpecifications (section 9.9.9 of the spec) and the slots they may or may not contain. Moreover I think what you say is incorrect: an InstanceSpecification can have mutliple classifiers, which means it can have slots defined by multiple classifiers.

– Gwendal
Nov 28 '18 at 8:30













But the InstanceValue is associated with a Slot (contained within the "parent" InstanceSpecification), and the Slot determines the type of it. I've never claimed that InstanceSpecification cannot have multiple classifiers. I've only stated that you cannot have Slots for properties that are not in one of the classifiers.

– Peter Uhnak
Nov 28 '18 at 16:55





But the InstanceValue is associated with a Slot (contained within the "parent" InstanceSpecification), and the Slot determines the type of it. I've never claimed that InstanceSpecification cannot have multiple classifiers. I've only stated that you cannot have Slots for properties that are not in one of the classifiers.

– Peter Uhnak
Nov 28 '18 at 16:55


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53431324%2fwhat-is-the-type-of-an-instancevalue-whose-instancespecification-has-multiple-cl%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

MongoDB - Not Authorized To Execute Command

How to fix TextFormField cause rebuild widget in Flutter

in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith