{"id":10242,"date":"2023-06-29T08:45:24","date_gmt":"2023-06-28T23:45:24","guid":{"rendered":"https:\/\/www.sambuichi.jp\/?p=10242"},"modified":"2023-06-29T15:23:29","modified_gmt":"2023-06-29T06:23:29","slug":"the-multiplicity-of-the-attribute-in-iso-iec-19505-12012e-unified-modeling-language-omg-uml","status":"publish","type":"post","link":"https:\/\/www.sambuichi.jp\/?p=10242","title":{"rendered":"The multiplicity of the attribute in ISO\/IEC 19505-1:2012(E) Unified Modeling Language"},"content":{"rendered":"<p>Views: 23<\/p><div id=\"header\">\n<h1>The multiplicity of the attribute in ISO\/IEC 19505-1:2012(E) Unified Modeling Language (OMG UML)<\/h1>\n<div class=\"details\">\n<span id=\"author\" class=\"author\">[%hardbreaks]<\/span>\n<\/div>\n<div id=\"toc\" class=\"toc2\">\n<div id=\"toctitle\">Table of Contents<\/div>\n<ul class=\"sectlevel1\">\n<li><a href=\"#_classes_diagram\">1. Classes Diagram<\/a><\/li>\n<li><a href=\"#_the_multiplicity_of_the_attribute_default_in_uml\">2. The multiplicity of the attribute (default in UML)<\/a><\/li>\n<li><a href=\"#_the_multiplicity_of_the_attribute\">3. The multiplicity of the attribute (Example)<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div id=\"content_adoc\">\n<div id=\"preamble\">\n<div class=\"sectionbody\">\n<div class=\"paragraph data-line-7\">\n<p>Nobuyuki SAMBUICHI<\/p>\n<\/div>\n<div class=\"paragraph data-line-9\">\n<p><a href=\"https:\/\/www.iso.org\/committee\/5648297.html\" data-href=\"https:\/\/www.iso.org\/committee\/5648297.html\">ISO\/TC295 Audit data services<\/a>\/SG1 Semantic model Convener<\/p>\n<\/div>\n<div class=\"paragraph data-line-11\">\n<p>In the ISO\/IEC 19505-1:2012(E) Unified Modeling Language (OMG UML), the cardinality of an object class property is defined as the <strong>&#8220;multiplicity&#8221;<\/strong> of the attribute, allowing for <strong>multiple occurrences<\/strong> to be specified.<\/p>\n<\/div>\n<div class=\"paragraph data-line-13\">\n<p>Instead of ISO\/IEC 19763 Metamodel framework for interoperability (MFI), we have the option to use the ISO 19505 style text notation for our framework.<\/p>\n<\/div>\n<div class=\"paragraph data-line-15\">\n<p>The notation of MFI (ISO\/IEC 19763) is more concise compared to OMG UML (ISO\/IEC 19505).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1 data-line-17\">\n<h2 id=\"_classes_diagram\">1. Classes Diagram<\/h2>\n<div class=\"sectionbody\">\n<div class=\"quoteblock data-line-20\">\n<blockquote>\n<div class=\"imageblock data-line-22\">\n<div class=\"content\">\n<img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2023\/06\/Figure10.3.png\" alt=\"Figure10.3\" style=\"width:100%\">\n<\/div>\n<\/div>\n<div class=\"paragraph data-line-23\">\n<p><strong>10.3.1 Class<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-25\">\n<p><strong>Description<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-27\">\n<p>A class is a type that has objects as its instances.<\/p>\n<\/div>\n<div class=\"paragraph data-line-29\">\n<p><strong>Generalizations<\/strong><\/p>\n<\/div>\n<div class=\"ulist data-line-31\">\n<ul>\n<li class=\"data-line-31\">\n<p>\u201cType\u201d on page 96<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph data-line-33\">\n<p><strong>Attributes<\/strong><\/p>\n<\/div>\n<div class=\"ulist data-line-35\">\n<ul>\n<li class=\"data-line-35\">\n<p>isAbstract : Boolean<br \/>\nTrue when a class is abstract. The default value is false.<\/p>\n<\/li>\n<li class=\"data-line-38\">\n<p>ownedAttribute : Property [*]<br \/>\nThe attributes owned by a class. These do not include the inherited attributes. Attributes are represented by instances of Property<\/p>\n<\/li>\n<li class=\"data-line-41\">\n<p>ownedOperation : Operation [*]<br \/>\nThe operations owned by a class. These do not include the inherited operations.<\/p>\n<\/li>\n<li class=\"data-line-44\">\n<p>superClass : Class[*]<br \/>\nThe immediate superclasses of a class, from which the class inherits.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph data-line-47\">\n<p><strong>10.3.2 MultiplicityElement<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-49\">\n<p><strong>Description<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-51\">\n<p>Basic::MultiplicityElement reuses the definition from Abstractions::MultiplicityElement.<\/p>\n<\/div>\n<div class=\"paragraph data-line-53\">\n<p><strong>Generalizations<\/strong><\/p>\n<\/div>\n<div class=\"ulist data-line-55\">\n<ul>\n<li class=\"data-line-55\">\n<p>\u201cElement\u201d on page 95<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph data-line-57\">\n<p><strong>Description<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-59\">\n<p>Constructs::Relationship reuses the definition of Relationship from Abstractions::Relationships. It adds a specialization to Constructs::Element.<\/p>\n<\/div>\n<div class=\"paragraph data-line-61\">\n<p><strong>Generalizations<\/strong><\/p>\n<\/div>\n<div class=\"ulist data-line-63\">\n<ul>\n<li class=\"data-line-63\">\n<p>\u201cElement\u201d on page 95<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph data-line-65\">\n<p><strong>Attributes<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-67\">\n<p>No additional attributes<\/p>\n<\/div>\n<div class=\"paragraph data-line-69\">\n<p><strong>Associations<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-71\">\n<p>No additional associations<\/p>\n<\/div>\n<div class=\"paragraph data-line-73\">\n<p><strong>Constraints<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-75\">\n<p>No additional constraints<\/p>\n<\/div>\n<div class=\"paragraph data-line-77\">\n<p><strong>10.3.5 Property<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-79\">\n<p><strong>Description<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-81\">\n<p>A property is a typed element that represents an attribute of a class.<\/p>\n<\/div>\n<div class=\"paragraph data-line-83\">\n<p><strong>Generalizations<\/strong><\/p>\n<\/div>\n<div class=\"ulist data-line-85\">\n<ul>\n<li class=\"data-line-85\">\n<p>\u201cTypedElement\u201d on page 96<\/p>\n<\/li>\n<li class=\"data-line-87\">\n<p>\u201cTypedElement\u201d on page 96 &#8211; MultiplicityElement.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph data-line-89\">\n<p><strong>Attributes<\/strong><\/p>\n<\/div>\n<div class=\"ulist data-line-91\">\n<ul>\n<li class=\"data-line-91\">\n<p>class : Class [0..1]<br \/>\nThe class that owns the property, and of which the property is an attribute.<\/p>\n<\/li>\n<li class=\"data-line-94\">\n<p>default : String [0..1]<br \/>\nA string that is evaluated to give a default value for the attribute when an object of the owning class is instantiated.<\/p>\n<\/li>\n<li class=\"data-line-97\">\n<p>isComposite : Boolean<br \/>\nIf isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute. The default value is false.<\/p>\n<\/li>\n<li class=\"data-line-100\">\n<p>isDerived : Boolean<br \/>\nIf isDerived is true, the value of the attribute is derived from information elsewhere. The default value is false.<\/p>\n<\/li>\n<li class=\"data-line-103\">\n<p>isReadOnly : Boolean<br \/>\nIf isReadOnly is true, the attribute may not be written to after initialization. The default value is false.<\/p>\n<\/li>\n<li class=\"data-line-106\">\n<p>opposite : Property [0..1]<br \/>\nTwo attributes attr1 and attr2 of two objects o1 and o2 (which may be the same object) may be paired with each other so that o1.attr1 refers to o2 if and only if o2.attr2 refers to o1. In such a case attr1 is the opposite of attr2 and attr2 is the opposite of attr1.<\/p>\n<\/li>\n<li class=\"data-line-109\">\n<p>isID : Boolean<br \/>\nTrue indicates this property can be used to uniquely identify an instance of the containing Class. Default value is false<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/blockquote>\n<div class=\"attribution\">\n&#8212; ISO\/IEC 19505-1:2012(E) Information technology &#8211; Object Management Group Unified Modeling Language (OMG UML)<br \/>\n<cite>Infrastructure 10.3 Class Diagram<\/cite>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1 data-line-113\">\n<h2 id=\"_the_multiplicity_of_the_attribute_default_in_uml\">2. The multiplicity of the attribute (default in UML)<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph data-line-115\">\n<p>The multiplicity of the attribute is suppressed it <strong>defaults to \u20181\u2019<\/strong> (default in UML).<\/p>\n<\/div>\n<div class=\"quoteblock data-line-118\">\n<blockquote>\n<div class=\"paragraph data-line-120\">\n<p><strong>8.4.2 Attributes<\/strong><br \/>\nEach of the attributes of the class are enumerated together with a short explanation. The sub clause states if the attribute is derived, or if it is a specialization of another attribute. The <strong>multiplicity<\/strong> of the attribute is suppressed it <strong>defaults to \u20181\u2019<\/strong><br \/>\n(default in UML).<\/p>\n<\/div>\n<\/blockquote>\n<div class=\"attribution\">\n&#8212; ISO\/IEC 19505-1:2012(E) Information technology &#8211; Object Management Group Unified Modeling Language (OMG UML)<br \/>\n<cite>Infrastructure 8.4.2 Attributes<\/cite>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1 data-line-125\">\n<h2 id=\"_the_multiplicity_of_the_attribute\">3. The multiplicity of the attribute (Example)<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph data-line-127\">\n<p>The multiplicity of the attribute in quote 9.8.2 of the OpaqueExpression is defined as [0..*].<\/p>\n<\/div>\n<div class=\"quoteblock data-line-130\">\n<blockquote>\n<div class=\"imageblock data-line-132\">\n<div class=\"content\">\n<img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2023\/06\/Figure9.20.png\" alt=\"Figure9.20\" style=\"width:100%\">\n<\/div>\n<\/div>\n<div class=\"paragraph data-line-134\">\n<p><strong>9.8.1 Expression<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-136\">\n<p>An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.<\/p>\n<\/div>\n<div class=\"paragraph data-line-138\">\n<p><strong>Description<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-140\">\n<p>An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands that are value specifications.<\/p>\n<\/div>\n<div class=\"paragraph data-line-142\">\n<p><strong>Generalizations<\/strong><\/p>\n<\/div>\n<div class=\"ulist data-line-144\">\n<ul>\n<li class=\"data-line-144\">\n<p>\u201cValueSpecification\u201d on page 49<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph data-line-146\">\n<p><strong>Attributes<\/strong><\/p>\n<\/div>\n<div class=\"ulist data-line-148\">\n<ul>\n<li class=\"data-line-148\">\n<p>symbol: String [1]<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph data-line-150\">\n<p>The symbol associated with the node in the expression tree.<\/p>\n<\/div>\n<div class=\"paragraph data-line-152\">\n<p><strong>Associations<\/strong><\/p>\n<\/div>\n<div class=\"ulist data-line-154\">\n<ul>\n<li class=\"data-line-154\">\n<p>operand: ValueSpecification[*]<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph data-line-156\">\n<p>Specifies a sequence of operands. Subsets Element::ownedElement.<\/p>\n<\/div>\n<div class=\"paragraph data-line-158\">\n<p><strong>Constraints<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-160\">\n<p>No additional constraints<\/p>\n<\/div>\n<div class=\"paragraph data-line-162\">\n<p><strong>Semantics<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-164\">\n<p>An expression represents a node in an expression tree. If there is no operand, it represents a terminal node. If there are<br \/>\noperands, it represents an operator applied to those operands. In either case there is a symbol associated with the node.<br \/>\nThe interpretation of this symbol depends on the context of the expression.<\/p>\n<\/div>\n<div class=\"paragraph data-line-168\">\n<p><strong>9.8.2 OpaqueExpression<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-170\">\n<p>An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context.<\/p>\n<\/div>\n<div class=\"paragraph data-line-172\">\n<p><strong>Description<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-174\">\n<p>An opaque expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages.<\/p>\n<\/div>\n<div class=\"paragraph data-line-176\">\n<p>One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used.<\/p>\n<\/div>\n<div class=\"paragraph data-line-178\">\n<p><strong>Generalizations<\/strong><\/p>\n<\/div>\n<div class=\"ulist data-line-180\">\n<ul>\n<li class=\"data-line-180\">\n<p>\u201cValueSpecification\u201d on page 49<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph data-line-182\">\n<p><strong>Attributes<\/strong><\/p>\n<\/div>\n<div class=\"ulist data-line-184\">\n<ul>\n<li class=\"data-line-184\">\n<p>body: String [0..*] {nonunique, ordered}<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph data-line-186\">\n<p>The text of the expression, possibly in multiple languages.<\/p>\n<\/div>\n<div class=\"ulist data-line-188\">\n<ul>\n<li class=\"data-line-188\">\n<p>language: String [0..*] {ordered}<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph data-line-190\">\n<p>Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the language. If languages are unspecified, it might be implicit from the expression body or the context. Languages are matched to body strings by order.<\/p>\n<\/div>\n<div class=\"paragraph data-line-192\">\n<p><strong>Associations<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-194\">\n<p>No additional associations<\/p>\n<\/div>\n<div class=\"paragraph data-line-196\">\n<p><strong>Semantics<\/strong><\/p>\n<\/div>\n<div class=\"paragraph data-line-198\">\n<p>The expression body may consist of a sequence of text strings \u2013 each in a different language \u2013 representing alternative representations of the same content. When multiple language strings are provided, the language of each separate string is determined by its orresponding entry in the \u201clanguage\u201d attribute (by sequence order). The interpretation of the text strings is language specific. Languages are matched to body strings by order. If the languages are unspecified, it might be implicit from the expression bodies or the context.<\/p>\n<\/div>\n<div class=\"paragraph data-line-200\">\n<p>It is assumed that a linguistic analyzer for the specified languages will evaluate the bodies. The time at which the bodies will be evaluated is not specified.<\/p>\n<\/div>\n<\/blockquote>\n<div class=\"attribution\">\n&#8212; ISO\/IEC 19505-1:2012(E) Information technology &#8211; Object Management Group Unified Modeling Language (OMG UML)<br \/>\n<cite>Infrastructure 9.8.2 OpaqueExpression<\/cite>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"footer\">\n<div id=\"footer-text\">\nLast updated 2023-06-29 15:17:08 +0900\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Views: 23 The multiplicity of the attribute in ISO\/IEC 19505-1:2012(E) Unified Modeling Language (OMG UML) [%h [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":10217,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[69,30],"tags":[],"_links":{"self":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/10242"}],"collection":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10242"}],"version-history":[{"count":11,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/10242\/revisions"}],"predecessor-version":[{"id":10280,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/10242\/revisions\/10280"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/media\/10217"}],"wp:attachment":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}