{"id":686,"date":"2024-11-26T06:35:24","date_gmt":"2024-11-26T06:35:24","guid":{"rendered":"https:\/\/www.go-uml.com\/de\/?p=686"},"modified":"2024-11-26T06:35:37","modified_gmt":"2024-11-26T06:35:37","slug":"learning-uml-class-diagrams-by-example-miles-card-system","status":"publish","type":"post","link":"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/","title":{"rendered":"Learning UML Class Diagrams by Example: Miles Card System"},"content":{"rendered":"<p><a href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/uml-class-diagram-tutorial\/\">UML (Unified Modeling Language)<\/a> class diagrams are a type of static structure diagram that illustrates the structure of a system by showing its classes, attributes, operations, and the relationships between objects. Class diagrams are essential for understanding the blueprint of a system and are widely used in object-oriented design. In this article, we will learn about <a href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/what-is-class-diagram\/\">UML class diagrams<\/a> using a practical example: a miles card system. We will also explore why <a href=\"http:\/\/visual-paradigm.com\">Visual Paradigm<\/a> is one of the best<a href=\"https:\/\/www.visual-paradigm.com\/solution\/freeumltool\/\"> UML software tools<\/a> for developers.<\/p>\n<h3>Understanding the Miles Card System<\/h3>\n<p>The Figure below illustrates a class diagram for a miles card system. Let&#8217;s break down the key elements and concepts depicted in this diagram.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png\" \/><\/p>\n<h4>Key Elements of a Class Diagram<\/h4>\n<ol>\n<li><strong>Class<\/strong>:\n<ul>\n<li><strong>Definition<\/strong>: Represents a blueprint for creating objects, defining a set of attributes and operations that the objects will have.<\/li>\n<li><strong>Representation<\/strong>: A rectangle divided into three parts: the class name, attributes, and operations.<\/li>\n<li><strong>Example<\/strong>: Classes like &#8220;Card,&#8221; &#8220;MilesCard,&#8221; &#8220;Passenger,&#8221; and &#8220;MilesAccount.&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><strong>Abstract Class<\/strong>:\n<ul>\n<li><strong>Definition<\/strong>: Represents a class that cannot be instantiated on its own and is meant to be subclassed.<\/li>\n<li><strong>Representation<\/strong>: A class with the name in italics.<\/li>\n<li><strong>Example<\/strong>: The &#8220;Card&#8221; class is an abstract class.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Attribute<\/strong>:\n<ul>\n<li><strong>Definition<\/strong>: Represents a property or data field of a class.<\/li>\n<li><strong>Representation<\/strong>: Listed in the second compartment of the class rectangle.<\/li>\n<li><strong>Example<\/strong>: Attributes like\u00a0<code class=\"\">number<\/code>\u00a0in the &#8220;Card&#8221; class and\u00a0<code class=\"\">status<\/code>\u00a0in the &#8220;MilesCard&#8221; class.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Operation<\/strong>:\n<ul>\n<li><strong>Definition<\/strong>: Represents a method or function that a class can perform.<\/li>\n<li><strong>Representation<\/strong>: Listed in the third compartment of the class rectangle.<\/li>\n<li><strong>Example<\/strong>: Operations like\u00a0<code class=\"\">createMiles()<\/code>,\u00a0<code class=\"\">consumeMiles()<\/code>, and\u00a0<code class=\"\">cancelMiles()<\/code>\u00a0in the &#8220;Passenger&#8221; class.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Relationship<\/strong>:\n<ul>\n<li><strong>Definition<\/strong>: Represents how classes are associated with each other.<\/li>\n<li><strong>Types<\/strong>:\n<ul>\n<li><strong>Association<\/strong>: A general relationship between classes.<\/li>\n<li><strong>Composition<\/strong>: A strong form of aggregation where the lifecycle of the part is managed by the whole.<\/li>\n<li><strong>Inheritance<\/strong>: A relationship where one class inherits attributes and operations from another class.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Representation<\/strong>: Lines connecting classes with different symbols for different types of relationships.<\/li>\n<li><strong>Example<\/strong>: The composition relationship between &#8220;Passenger&#8221; and &#8220;MilesAccount.&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><strong>Multiplicity<\/strong>:\n<ul>\n<li><strong>Definition<\/strong>: Specifies the number of instances of one class that can be associated with a single instance of another class.<\/li>\n<li><strong>Representation<\/strong>: Numbers or ranges placed near the ends of association lines.<\/li>\n<li><strong>Example<\/strong>: The multiplicity\u00a0<code class=\"\">0..1<\/code>\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger&#8221; indicates that a &#8220;Passenger&#8221; can have zero or one &#8220;MilesCard.&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><strong>Role<\/strong>:\n<ul>\n<li><strong>Definition<\/strong>: Represents the part played by a class in a relationship.<\/li>\n<li><strong>Representation<\/strong>: Labels near the ends of association lines.<\/li>\n<li><strong>Example<\/strong>: The role\u00a0<code class=\"\">mc<\/code>\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger.&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><strong>User-Defined Constraint<\/strong>:\n<ul>\n<li><strong>Definition<\/strong>: Represents a custom constraint defined by the user.<\/li>\n<li><strong>Representation<\/strong>: Enclosed in curly braces\u00a0<code class=\"\">{}<\/code>.<\/li>\n<li><strong>Example<\/strong>: The user-defined constraint\u00a0<code class=\"\">{mc.number = ma.number}<\/code>\u00a0between &#8220;MilesCard&#8221; and &#8220;MilesAccount.&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><strong>UML Pre-Defined Constraint<\/strong>:\n<ul>\n<li><strong>Definition<\/strong>: Represents a pre-defined constraint in UML.<\/li>\n<li><strong>Representation<\/strong>: Enclosed in curly braces\u00a0<code class=\"\">{}<\/code>\u00a0with the keyword\u00a0<code class=\"\">XOR<\/code>.<\/li>\n<li><strong>Example<\/strong>: The UML pre-defined constraint\u00a0<code class=\"\">{owner is either a person or a company}<\/code>\u00a0between &#8220;MilesAccount&#8221; and &#8220;Person&#8221;\/&#8221;Company.&#8221;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Step-by-Step Walkthrough<\/h3>\n<p>Let&#8217;s walk through the miles card system step by step:<\/p>\n<ol>\n<li><strong>Abstract Class &#8220;Card&#8221;<\/strong>:\n<ul>\n<li>The &#8220;Card&#8221; class is an abstract class with an attribute\u00a0<code class=\"\">number<\/code>\u00a0of type\u00a0<code class=\"\">String<\/code>.<\/li>\n<li>It cannot be instantiated directly and serves as a base class for other card types.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Class &#8220;MilesCard&#8221;<\/strong>:\n<ul>\n<li>The &#8220;MilesCard&#8221; class inherits from the &#8220;Card&#8221; class.<\/li>\n<li>It has an attribute\u00a0<code class=\"\">status<\/code>\u00a0of type\u00a0<code class=\"\">String<\/code>.<\/li>\n<li>It has a multiplicity of\u00a0<code class=\"\">0..1<\/code>\u00a0with the &#8220;Passenger&#8221; class, indicating that a &#8220;Passenger&#8221; can have zero or one &#8220;MilesCard.&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><strong>Class &#8220;Passenger&#8221;<\/strong>:\n<ul>\n<li>The &#8220;Passenger&#8221; class has attributes\u00a0<code class=\"\">name<\/code>\u00a0of type\u00a0<code class=\"\">String<\/code>\u00a0and operations\u00a0<code class=\"\">createMiles()<\/code>,\u00a0<code class=\"\">consumeMiles()<\/code>, and\u00a0<code class=\"\">cancelMiles()<\/code>.<\/li>\n<li>It has a composition relationship with the &#8220;MilesAccount&#8221; class, indicating that a &#8220;Passenger&#8221; owns a &#8220;MilesAccount.&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><strong>Class &#8220;MilesAccount&#8221;<\/strong>:\n<ul>\n<li>The &#8220;MilesAccount&#8221; class has attributes\u00a0<code class=\"\">number<\/code>\u00a0of type\u00a0<code class=\"\">String<\/code>,\u00a0<code class=\"\">flightMiles<\/code>\u00a0of type\u00a0<code class=\"\">int<\/code>,\u00a0<code class=\"\">statusMiles<\/code>\u00a0of type\u00a0<code class=\"\">String<\/code>, and\u00a0<code class=\"\">status<\/code>\u00a0of type\u00a0<code class=\"\">String<\/code>.<\/li>\n<li>It has a UML pre-defined constraint\u00a0<code class=\"\">{owner is either a person or a company}<\/code>\u00a0with the &#8220;Person&#8221; and &#8220;Company&#8221; classes, indicating that the owner of a &#8220;MilesAccount&#8221; can be either a &#8220;Person&#8221; or a &#8220;Company.&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><strong>Classes &#8220;Person&#8221; and &#8220;Company&#8221;<\/strong>:\n<ul>\n<li>The &#8220;Person&#8221; and &#8220;Company&#8221; classes represent the possible owners of a &#8220;MilesAccount.&#8221;<\/li>\n<li>They are associated with the &#8220;MilesAccount&#8221; class through the\u00a0<code class=\"\">owner<\/code>\u00a0relationship.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Key Concepts Illustrated<\/h3>\n<ol>\n<li><strong>Inheritance<\/strong>:\n<ul>\n<li>The &#8220;MilesCard&#8221; class inherits from the &#8220;Card&#8221; class, demonstrating the concept of inheritance.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Composition<\/strong>:\n<ul>\n<li>The composition relationship between &#8220;Passenger&#8221; and &#8220;MilesAccount&#8221; shows that a &#8220;Passenger&#8221; owns a &#8220;MilesAccount.&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><strong>Multiplicity<\/strong>:\n<ul>\n<li>The multiplicity\u00a0<code class=\"\">0..1<\/code>\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger&#8221; indicates the possible number of instances of &#8220;MilesCard&#8221; associated with a &#8220;Passenger.&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><strong>Constraints<\/strong>:\n<ul>\n<li>The user-defined constraint\u00a0<code class=\"\">{mc.number = ma.number}<\/code>\u00a0ensures that the\u00a0<code class=\"\">number<\/code>\u00a0attribute of &#8220;MilesCard&#8221; matches the\u00a0<code class=\"\">number<\/code>\u00a0attribute of &#8220;MilesAccount.&#8221;<\/li>\n<li>The UML pre-defined constraint\u00a0<code class=\"\">{owner is either a person or a company}<\/code>\u00a0ensures that the owner of a &#8220;MilesAccount&#8221; is either a &#8220;Person&#8221; or a &#8220;Company.&#8221;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Why Visual Paradigm is One of the Best UML Software for Developers<\/h3>\n<p><a href=\"http:\/\/online.visual-paradigm.com\">Visual Paradigm<\/a> is a powerful and comprehensive <a href=\"https:\/\/online.visual-paradigm.com\/diagrams\/solutions\/free-class-diagram-tool\/\">UML modeling tool<\/a> that offers a wide range of features to support software development. Here are some reasons why Visual Paradigm stands out:<\/p>\n<ol>\n<li><strong>User-Friendly Interface<\/strong>:\n<ul>\n<li>Visual Paradigm provides an intuitive and easy-to-use interface, making it accessible for both beginners and experienced developers.<\/li>\n<li>Drag-and-drop functionality simplifies the creation and editing of UML diagrams.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Comprehensive UML Support<\/strong>:\n<ul>\n<li>Visual Paradigm supports all types of UML diagrams, including class diagrams, sequence diagrams, state diagrams, and more.<\/li>\n<li>Advanced features like code generation, reverse engineering, and model-driven development enhance the software development process.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Collaboration Tools<\/strong>:\n<ul>\n<li>Visual Paradigm offers robust collaboration features, allowing teams to work together on UML models in real-time.<\/li>\n<li>Integration with version control systems ensures that changes are tracked and managed efficiently.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Customization and Extensibility<\/strong>:\n<ul>\n<li>Visual Paradigm allows for extensive customization, including custom UML profiles and stereotypes.<\/li>\n<li>The tool can be extended with plugins and integrations to fit specific project needs.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Documentation and Reporting<\/strong>:\n<ul>\n<li>Visual Paradigm generates detailed documentation from UML models, making it easier to communicate design decisions and requirements.<\/li>\n<li>Customizable reports and diagrams can be exported in various formats (PDF, PNG, SVG, etc.).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Conclusion<\/h3>\n<p><a href=\"https:\/\/online.visual-paradigm.com\/diagrams\/tutorials\/class-diagram-tutorial\/\">UML class diagrams<\/a> are invaluable for understanding and designing the structure of a system by illustrating the classes, attributes, operations, and relationships between objects. By breaking down the miles card system example, we have seen how class diagrams can capture the blueprint of a system. This example demonstrates the practical application of class diagrams in real-world scenarios, making it easier to learn and apply UML in software development.<\/p>\n<p><a href=\"https:\/\/online.visual-paradigm.com\/diagrams\/features\/class-diagram-software\/\">Visual Paradigm<\/a> is one of<a href=\"https:\/\/online.visual-paradigm.com\/diagrams\/solutions\/free-online-uml-tool\/\"> the best UML software tools<\/a> for developers, offering a user-friendly interface, comprehensive UML support, collaboration tools, customization options, and robust documentation features. Whether you are a beginner or an experienced developer, Visual Paradigm provides the tools and features you need to master UML modeling and enhance your software development process. So, start practicing with more examples and explore the powerful features of Visual Paradigm to become proficient in UML class diagrams and<a href=\"https:\/\/www.visual-paradigm.com\/solution\/freeumltool\/\"> other UML diagrams<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>UML (Unified Modeling Language) class diagrams are a type of static structure diagram that illustrates the structure of a system by showing its classes, attributes, operations, and the relationships between objects. Class diagrams are essential for understanding the blueprint of a system and are widely used in object-oriented design. In this article, we will learn about UML class diagrams using a practical example: a miles card system. We will also explore why Visual Paradigm is one of the best UML software tools for developers. Understanding the Miles Card System The Figure below illustrates a class diagram for a miles card system. Let&#8217;s break down the key elements and concepts depicted in this diagram. Key Elements of a Class Diagram Class: Definition: Represents a blueprint for creating objects, defining a set of attributes and operations that the objects will have. Representation: A rectangle divided into three parts: the class name, attributes, and operations. Example: Classes like &#8220;Card,&#8221; &#8220;MilesCard,&#8221; &#8220;Passenger,&#8221; and &#8220;MilesAccount.&#8221; Abstract Class: Definition: Represents a class that cannot be instantiated on its own and is meant to be subclassed. Representation: A class with the name in italics. Example: The &#8220;Card&#8221; class is an abstract class. Attribute: Definition: Represents a property or data field of a class. Representation: Listed in the second compartment of the class rectangle. Example: Attributes like\u00a0number\u00a0in the &#8220;Card&#8221; class and\u00a0status\u00a0in the &#8220;MilesCard&#8221; class. Operation: Definition: Represents a method or function that a class can perform. Representation: Listed in the third compartment of the class rectangle. Example: Operations like\u00a0createMiles(),\u00a0consumeMiles(), and\u00a0cancelMiles()\u00a0in the &#8220;Passenger&#8221; class. Relationship: Definition: Represents how classes are associated with each other. Types: Association: A general relationship between classes. Composition: A strong form of aggregation where the lifecycle of the part is managed by the whole. Inheritance: A relationship where one class inherits attributes and operations from another class. Representation: Lines connecting classes with different symbols for different types of relationships. Example: The composition relationship between &#8220;Passenger&#8221; and &#8220;MilesAccount.&#8221; Multiplicity: Definition: Specifies the number of instances of one class that can be associated with a single instance of another class. Representation: Numbers or ranges placed near the ends of association lines. Example: The multiplicity\u00a00..1\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger&#8221; indicates that a &#8220;Passenger&#8221; can have zero or one &#8220;MilesCard.&#8221; Role: Definition: Represents the part played by a class in a relationship. Representation: Labels near the ends of association lines. Example: The role\u00a0mc\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger.&#8221; User-Defined Constraint: Definition: Represents a custom constraint defined by the user. Representation: Enclosed in curly braces\u00a0{}. Example: The user-defined constraint\u00a0{mc.number = ma.number}\u00a0between &#8220;MilesCard&#8221; and &#8220;MilesAccount.&#8221; UML Pre-Defined Constraint: Definition: Represents a pre-defined constraint in UML. Representation: Enclosed in curly braces\u00a0{}\u00a0with the keyword\u00a0XOR. Example: The UML pre-defined constraint\u00a0{owner is either a person or a company}\u00a0between &#8220;MilesAccount&#8221; and &#8220;Person&#8221;\/&#8221;Company.&#8221; Step-by-Step Walkthrough Let&#8217;s walk through the miles card system step by step: Abstract Class &#8220;Card&#8221;: The &#8220;Card&#8221; class is an abstract class with an attribute\u00a0number\u00a0of type\u00a0String. It cannot be instantiated directly and serves as a base class for other card types. Class &#8220;MilesCard&#8221;: The &#8220;MilesCard&#8221; class inherits from the &#8220;Card&#8221; class. It has an attribute\u00a0status\u00a0of type\u00a0String. It has a multiplicity of\u00a00..1\u00a0with the &#8220;Passenger&#8221; class, indicating that a &#8220;Passenger&#8221; can have zero or one &#8220;MilesCard.&#8221; Class &#8220;Passenger&#8221;: The &#8220;Passenger&#8221; class has attributes\u00a0name\u00a0of type\u00a0String\u00a0and operations\u00a0createMiles(),\u00a0consumeMiles(), and\u00a0cancelMiles(). It has a composition relationship with the &#8220;MilesAccount&#8221; class, indicating that a &#8220;Passenger&#8221; owns a &#8220;MilesAccount.&#8221; Class &#8220;MilesAccount&#8221;: The &#8220;MilesAccount&#8221; class has attributes\u00a0number\u00a0of type\u00a0String,\u00a0flightMiles\u00a0of type\u00a0int,\u00a0statusMiles\u00a0of type\u00a0String, and\u00a0status\u00a0of type\u00a0String. It has a UML pre-defined constraint\u00a0{owner is either a person or a company}\u00a0with the &#8220;Person&#8221; and &#8220;Company&#8221; classes, indicating that the owner of a &#8220;MilesAccount&#8221; can be either a &#8220;Person&#8221; or a &#8220;Company.&#8221; Classes &#8220;Person&#8221; and &#8220;Company&#8221;: The &#8220;Person&#8221; and &#8220;Company&#8221; classes represent the possible owners of a &#8220;MilesAccount.&#8221; They are associated with the &#8220;MilesAccount&#8221; class through the\u00a0owner\u00a0relationship. Key Concepts Illustrated Inheritance: The &#8220;MilesCard&#8221; class inherits from the &#8220;Card&#8221; class, demonstrating the concept of inheritance. Composition: The composition relationship between &#8220;Passenger&#8221; and &#8220;MilesAccount&#8221; shows that a &#8220;Passenger&#8221; owns a &#8220;MilesAccount.&#8221; Multiplicity: The multiplicity\u00a00..1\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger&#8221; indicates the possible number of instances of &#8220;MilesCard&#8221; associated with a &#8220;Passenger.&#8221; Constraints: The user-defined constraint\u00a0{mc.number = ma.number}\u00a0ensures that the\u00a0number\u00a0attribute of &#8220;MilesCard&#8221; matches the\u00a0number\u00a0attribute of &#8220;MilesAccount.&#8221; The UML pre-defined constraint\u00a0{owner is either a person or a company}\u00a0ensures that the owner of a &#8220;MilesAccount&#8221; is either a &#8220;Person&#8221; or a &#8220;Company.&#8221; Why Visual Paradigm is One of the Best UML Software for Developers Visual Paradigm is a powerful and comprehensive UML modeling tool that offers a wide range of features to support software development. Here are some reasons why Visual Paradigm stands out: User-Friendly Interface: Visual Paradigm provides an intuitive and easy-to-use interface, making it accessible for both beginners and experienced developers. Drag-and-drop functionality simplifies the creation and editing of UML diagrams. Comprehensive UML Support: Visual Paradigm supports all types of UML diagrams, including class diagrams, sequence diagrams, state diagrams, and more. Advanced features like code generation, reverse engineering, and model-driven development enhance the software development process. Collaboration Tools: Visual Paradigm offers robust collaboration features, allowing teams to work together on UML models in real-time. Integration with version control systems ensures that changes are tracked and managed efficiently. Customization and Extensibility: Visual Paradigm allows for extensive customization, including custom UML profiles and stereotypes. The tool can be extended with plugins and integrations to fit specific project needs. Documentation and Reporting: Visual Paradigm generates detailed documentation from UML models, making it easier to communicate design decisions and requirements. Customizable reports and diagrams can be exported in various formats (PDF, PNG, SVG, etc.). Conclusion UML class diagrams are invaluable for understanding and designing the structure of a system by illustrating the classes, attributes, operations, and relationships between objects. By breaking down the miles card system example, we have seen how class diagrams can capture the blueprint of a system. This example demonstrates the practical application of class diagrams in real-world scenarios, making it easier to learn and apply UML in software development. Visual Paradigm is one of the best UML software tools for developers, offering a user-friendly interface, comprehensive UML support,<\/p>\n","protected":false},"author":7,"featured_media":688,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"fifu_image_url":"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png","fifu_image_alt":"","footnotes":""},"categories":[16,14],"tags":[],"class_list":["post-686","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-class-diagram","category-free-uml-tool"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Learning UML Class Diagrams by Example: Miles Card System - Go UML Deutsch<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learning UML Class Diagrams by Example: Miles Card System - Go UML Deutsch\" \/>\n<meta property=\"og:description\" content=\"UML (Unified Modeling Language) class diagrams are a type of static structure diagram that illustrates the structure of a system by showing its classes, attributes, operations, and the relationships between objects. Class diagrams are essential for understanding the blueprint of a system and are widely used in object-oriented design. In this article, we will learn about UML class diagrams using a practical example: a miles card system. We will also explore why Visual Paradigm is one of the best UML software tools for developers. Understanding the Miles Card System The Figure below illustrates a class diagram for a miles card system. Let&#8217;s break down the key elements and concepts depicted in this diagram. Key Elements of a Class Diagram Class: Definition: Represents a blueprint for creating objects, defining a set of attributes and operations that the objects will have. Representation: A rectangle divided into three parts: the class name, attributes, and operations. Example: Classes like &#8220;Card,&#8221; &#8220;MilesCard,&#8221; &#8220;Passenger,&#8221; and &#8220;MilesAccount.&#8221; Abstract Class: Definition: Represents a class that cannot be instantiated on its own and is meant to be subclassed. Representation: A class with the name in italics. Example: The &#8220;Card&#8221; class is an abstract class. Attribute: Definition: Represents a property or data field of a class. Representation: Listed in the second compartment of the class rectangle. Example: Attributes like\u00a0number\u00a0in the &#8220;Card&#8221; class and\u00a0status\u00a0in the &#8220;MilesCard&#8221; class. Operation: Definition: Represents a method or function that a class can perform. Representation: Listed in the third compartment of the class rectangle. Example: Operations like\u00a0createMiles(),\u00a0consumeMiles(), and\u00a0cancelMiles()\u00a0in the &#8220;Passenger&#8221; class. Relationship: Definition: Represents how classes are associated with each other. Types: Association: A general relationship between classes. Composition: A strong form of aggregation where the lifecycle of the part is managed by the whole. Inheritance: A relationship where one class inherits attributes and operations from another class. Representation: Lines connecting classes with different symbols for different types of relationships. Example: The composition relationship between &#8220;Passenger&#8221; and &#8220;MilesAccount.&#8221; Multiplicity: Definition: Specifies the number of instances of one class that can be associated with a single instance of another class. Representation: Numbers or ranges placed near the ends of association lines. Example: The multiplicity\u00a00..1\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger&#8221; indicates that a &#8220;Passenger&#8221; can have zero or one &#8220;MilesCard.&#8221; Role: Definition: Represents the part played by a class in a relationship. Representation: Labels near the ends of association lines. Example: The role\u00a0mc\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger.&#8221; User-Defined Constraint: Definition: Represents a custom constraint defined by the user. Representation: Enclosed in curly braces\u00a0{}. Example: The user-defined constraint\u00a0{mc.number = ma.number}\u00a0between &#8220;MilesCard&#8221; and &#8220;MilesAccount.&#8221; UML Pre-Defined Constraint: Definition: Represents a pre-defined constraint in UML. Representation: Enclosed in curly braces\u00a0{}\u00a0with the keyword\u00a0XOR. Example: The UML pre-defined constraint\u00a0{owner is either a person or a company}\u00a0between &#8220;MilesAccount&#8221; and &#8220;Person&#8221;\/&#8221;Company.&#8221; Step-by-Step Walkthrough Let&#8217;s walk through the miles card system step by step: Abstract Class &#8220;Card&#8221;: The &#8220;Card&#8221; class is an abstract class with an attribute\u00a0number\u00a0of type\u00a0String. It cannot be instantiated directly and serves as a base class for other card types. Class &#8220;MilesCard&#8221;: The &#8220;MilesCard&#8221; class inherits from the &#8220;Card&#8221; class. It has an attribute\u00a0status\u00a0of type\u00a0String. It has a multiplicity of\u00a00..1\u00a0with the &#8220;Passenger&#8221; class, indicating that a &#8220;Passenger&#8221; can have zero or one &#8220;MilesCard.&#8221; Class &#8220;Passenger&#8221;: The &#8220;Passenger&#8221; class has attributes\u00a0name\u00a0of type\u00a0String\u00a0and operations\u00a0createMiles(),\u00a0consumeMiles(), and\u00a0cancelMiles(). It has a composition relationship with the &#8220;MilesAccount&#8221; class, indicating that a &#8220;Passenger&#8221; owns a &#8220;MilesAccount.&#8221; Class &#8220;MilesAccount&#8221;: The &#8220;MilesAccount&#8221; class has attributes\u00a0number\u00a0of type\u00a0String,\u00a0flightMiles\u00a0of type\u00a0int,\u00a0statusMiles\u00a0of type\u00a0String, and\u00a0status\u00a0of type\u00a0String. It has a UML pre-defined constraint\u00a0{owner is either a person or a company}\u00a0with the &#8220;Person&#8221; and &#8220;Company&#8221; classes, indicating that the owner of a &#8220;MilesAccount&#8221; can be either a &#8220;Person&#8221; or a &#8220;Company.&#8221; Classes &#8220;Person&#8221; and &#8220;Company&#8221;: The &#8220;Person&#8221; and &#8220;Company&#8221; classes represent the possible owners of a &#8220;MilesAccount.&#8221; They are associated with the &#8220;MilesAccount&#8221; class through the\u00a0owner\u00a0relationship. Key Concepts Illustrated Inheritance: The &#8220;MilesCard&#8221; class inherits from the &#8220;Card&#8221; class, demonstrating the concept of inheritance. Composition: The composition relationship between &#8220;Passenger&#8221; and &#8220;MilesAccount&#8221; shows that a &#8220;Passenger&#8221; owns a &#8220;MilesAccount.&#8221; Multiplicity: The multiplicity\u00a00..1\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger&#8221; indicates the possible number of instances of &#8220;MilesCard&#8221; associated with a &#8220;Passenger.&#8221; Constraints: The user-defined constraint\u00a0{mc.number = ma.number}\u00a0ensures that the\u00a0number\u00a0attribute of &#8220;MilesCard&#8221; matches the\u00a0number\u00a0attribute of &#8220;MilesAccount.&#8221; The UML pre-defined constraint\u00a0{owner is either a person or a company}\u00a0ensures that the owner of a &#8220;MilesAccount&#8221; is either a &#8220;Person&#8221; or a &#8220;Company.&#8221; Why Visual Paradigm is One of the Best UML Software for Developers Visual Paradigm is a powerful and comprehensive UML modeling tool that offers a wide range of features to support software development. Here are some reasons why Visual Paradigm stands out: User-Friendly Interface: Visual Paradigm provides an intuitive and easy-to-use interface, making it accessible for both beginners and experienced developers. Drag-and-drop functionality simplifies the creation and editing of UML diagrams. Comprehensive UML Support: Visual Paradigm supports all types of UML diagrams, including class diagrams, sequence diagrams, state diagrams, and more. Advanced features like code generation, reverse engineering, and model-driven development enhance the software development process. Collaboration Tools: Visual Paradigm offers robust collaboration features, allowing teams to work together on UML models in real-time. Integration with version control systems ensures that changes are tracked and managed efficiently. Customization and Extensibility: Visual Paradigm allows for extensive customization, including custom UML profiles and stereotypes. The tool can be extended with plugins and integrations to fit specific project needs. Documentation and Reporting: Visual Paradigm generates detailed documentation from UML models, making it easier to communicate design decisions and requirements. Customizable reports and diagrams can be exported in various formats (PDF, PNG, SVG, etc.). Conclusion UML class diagrams are invaluable for understanding and designing the structure of a system by illustrating the classes, attributes, operations, and relationships between objects. By breaking down the miles card system example, we have seen how class diagrams can capture the blueprint of a system. This example demonstrates the practical application of class diagrams in real-world scenarios, making it easier to learn and apply UML in software development. Visual Paradigm is one of the best UML software tools for developers, offering a user-friendly interface, comprehensive UML support,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/\" \/>\n<meta property=\"og:site_name\" content=\"Go UML Deutsch\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-26T06:35:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-26T06:35:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"curtis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/\",\"url\":\"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/\",\"name\":\"Learning UML Class Diagrams by Example: Miles Card System - Go UML Deutsch\",\"isPartOf\":{\"@id\":\"https:\/\/www.go-uml.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png\",\"datePublished\":\"2024-11-26T06:35:24+00:00\",\"dateModified\":\"2024-11-26T06:35:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.go-uml.com\/de\/#\/schema\/person\/fc1da26b1e963fc50ec2722b231a274b\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/#primaryimage\",\"url\":\"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png\",\"contentUrl\":\"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png\",\"width\":\"845\",\"height\":\"358\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.go-uml.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Learning UML Class Diagrams by Example: Miles Card System\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.go-uml.com\/de\/#website\",\"url\":\"https:\/\/www.go-uml.com\/de\/\",\"name\":\"Go UML Deutsch\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.go-uml.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.go-uml.com\/de\/#\/schema\/person\/fc1da26b1e963fc50ec2722b231a274b\",\"name\":\"curtis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.go-uml.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/48025789fc0776739935e63d9f629084?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/48025789fc0776739935e63d9f629084?s=96&d=mm&r=g\",\"caption\":\"curtis\"},\"url\":\"https:\/\/www.go-uml.com\/de\/author\/curtis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Learning UML Class Diagrams by Example: Miles Card System - Go UML Deutsch","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/","og_locale":"de_DE","og_type":"article","og_title":"Learning UML Class Diagrams by Example: Miles Card System - Go UML Deutsch","og_description":"UML (Unified Modeling Language) class diagrams are a type of static structure diagram that illustrates the structure of a system by showing its classes, attributes, operations, and the relationships between objects. Class diagrams are essential for understanding the blueprint of a system and are widely used in object-oriented design. In this article, we will learn about UML class diagrams using a practical example: a miles card system. We will also explore why Visual Paradigm is one of the best UML software tools for developers. Understanding the Miles Card System The Figure below illustrates a class diagram for a miles card system. Let&#8217;s break down the key elements and concepts depicted in this diagram. Key Elements of a Class Diagram Class: Definition: Represents a blueprint for creating objects, defining a set of attributes and operations that the objects will have. Representation: A rectangle divided into three parts: the class name, attributes, and operations. Example: Classes like &#8220;Card,&#8221; &#8220;MilesCard,&#8221; &#8220;Passenger,&#8221; and &#8220;MilesAccount.&#8221; Abstract Class: Definition: Represents a class that cannot be instantiated on its own and is meant to be subclassed. Representation: A class with the name in italics. Example: The &#8220;Card&#8221; class is an abstract class. Attribute: Definition: Represents a property or data field of a class. Representation: Listed in the second compartment of the class rectangle. Example: Attributes like\u00a0number\u00a0in the &#8220;Card&#8221; class and\u00a0status\u00a0in the &#8220;MilesCard&#8221; class. Operation: Definition: Represents a method or function that a class can perform. Representation: Listed in the third compartment of the class rectangle. Example: Operations like\u00a0createMiles(),\u00a0consumeMiles(), and\u00a0cancelMiles()\u00a0in the &#8220;Passenger&#8221; class. Relationship: Definition: Represents how classes are associated with each other. Types: Association: A general relationship between classes. Composition: A strong form of aggregation where the lifecycle of the part is managed by the whole. Inheritance: A relationship where one class inherits attributes and operations from another class. Representation: Lines connecting classes with different symbols for different types of relationships. Example: The composition relationship between &#8220;Passenger&#8221; and &#8220;MilesAccount.&#8221; Multiplicity: Definition: Specifies the number of instances of one class that can be associated with a single instance of another class. Representation: Numbers or ranges placed near the ends of association lines. Example: The multiplicity\u00a00..1\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger&#8221; indicates that a &#8220;Passenger&#8221; can have zero or one &#8220;MilesCard.&#8221; Role: Definition: Represents the part played by a class in a relationship. Representation: Labels near the ends of association lines. Example: The role\u00a0mc\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger.&#8221; User-Defined Constraint: Definition: Represents a custom constraint defined by the user. Representation: Enclosed in curly braces\u00a0{}. Example: The user-defined constraint\u00a0{mc.number = ma.number}\u00a0between &#8220;MilesCard&#8221; and &#8220;MilesAccount.&#8221; UML Pre-Defined Constraint: Definition: Represents a pre-defined constraint in UML. Representation: Enclosed in curly braces\u00a0{}\u00a0with the keyword\u00a0XOR. Example: The UML pre-defined constraint\u00a0{owner is either a person or a company}\u00a0between &#8220;MilesAccount&#8221; and &#8220;Person&#8221;\/&#8221;Company.&#8221; Step-by-Step Walkthrough Let&#8217;s walk through the miles card system step by step: Abstract Class &#8220;Card&#8221;: The &#8220;Card&#8221; class is an abstract class with an attribute\u00a0number\u00a0of type\u00a0String. It cannot be instantiated directly and serves as a base class for other card types. Class &#8220;MilesCard&#8221;: The &#8220;MilesCard&#8221; class inherits from the &#8220;Card&#8221; class. It has an attribute\u00a0status\u00a0of type\u00a0String. It has a multiplicity of\u00a00..1\u00a0with the &#8220;Passenger&#8221; class, indicating that a &#8220;Passenger&#8221; can have zero or one &#8220;MilesCard.&#8221; Class &#8220;Passenger&#8221;: The &#8220;Passenger&#8221; class has attributes\u00a0name\u00a0of type\u00a0String\u00a0and operations\u00a0createMiles(),\u00a0consumeMiles(), and\u00a0cancelMiles(). It has a composition relationship with the &#8220;MilesAccount&#8221; class, indicating that a &#8220;Passenger&#8221; owns a &#8220;MilesAccount.&#8221; Class &#8220;MilesAccount&#8221;: The &#8220;MilesAccount&#8221; class has attributes\u00a0number\u00a0of type\u00a0String,\u00a0flightMiles\u00a0of type\u00a0int,\u00a0statusMiles\u00a0of type\u00a0String, and\u00a0status\u00a0of type\u00a0String. It has a UML pre-defined constraint\u00a0{owner is either a person or a company}\u00a0with the &#8220;Person&#8221; and &#8220;Company&#8221; classes, indicating that the owner of a &#8220;MilesAccount&#8221; can be either a &#8220;Person&#8221; or a &#8220;Company.&#8221; Classes &#8220;Person&#8221; and &#8220;Company&#8221;: The &#8220;Person&#8221; and &#8220;Company&#8221; classes represent the possible owners of a &#8220;MilesAccount.&#8221; They are associated with the &#8220;MilesAccount&#8221; class through the\u00a0owner\u00a0relationship. Key Concepts Illustrated Inheritance: The &#8220;MilesCard&#8221; class inherits from the &#8220;Card&#8221; class, demonstrating the concept of inheritance. Composition: The composition relationship between &#8220;Passenger&#8221; and &#8220;MilesAccount&#8221; shows that a &#8220;Passenger&#8221; owns a &#8220;MilesAccount.&#8221; Multiplicity: The multiplicity\u00a00..1\u00a0between &#8220;MilesCard&#8221; and &#8220;Passenger&#8221; indicates the possible number of instances of &#8220;MilesCard&#8221; associated with a &#8220;Passenger.&#8221; Constraints: The user-defined constraint\u00a0{mc.number = ma.number}\u00a0ensures that the\u00a0number\u00a0attribute of &#8220;MilesCard&#8221; matches the\u00a0number\u00a0attribute of &#8220;MilesAccount.&#8221; The UML pre-defined constraint\u00a0{owner is either a person or a company}\u00a0ensures that the owner of a &#8220;MilesAccount&#8221; is either a &#8220;Person&#8221; or a &#8220;Company.&#8221; Why Visual Paradigm is One of the Best UML Software for Developers Visual Paradigm is a powerful and comprehensive UML modeling tool that offers a wide range of features to support software development. Here are some reasons why Visual Paradigm stands out: User-Friendly Interface: Visual Paradigm provides an intuitive and easy-to-use interface, making it accessible for both beginners and experienced developers. Drag-and-drop functionality simplifies the creation and editing of UML diagrams. Comprehensive UML Support: Visual Paradigm supports all types of UML diagrams, including class diagrams, sequence diagrams, state diagrams, and more. Advanced features like code generation, reverse engineering, and model-driven development enhance the software development process. Collaboration Tools: Visual Paradigm offers robust collaboration features, allowing teams to work together on UML models in real-time. Integration with version control systems ensures that changes are tracked and managed efficiently. Customization and Extensibility: Visual Paradigm allows for extensive customization, including custom UML profiles and stereotypes. The tool can be extended with plugins and integrations to fit specific project needs. Documentation and Reporting: Visual Paradigm generates detailed documentation from UML models, making it easier to communicate design decisions and requirements. Customizable reports and diagrams can be exported in various formats (PDF, PNG, SVG, etc.). Conclusion UML class diagrams are invaluable for understanding and designing the structure of a system by illustrating the classes, attributes, operations, and relationships between objects. By breaking down the miles card system example, we have seen how class diagrams can capture the blueprint of a system. This example demonstrates the practical application of class diagrams in real-world scenarios, making it easier to learn and apply UML in software development. Visual Paradigm is one of the best UML software tools for developers, offering a user-friendly interface, comprehensive UML support,","og_url":"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/","og_site_name":"Go UML Deutsch","article_published_time":"2024-11-26T06:35:24+00:00","article_modified_time":"2024-11-26T06:35:37+00:00","og_image":[{"url":"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png","type":"","width":"","height":""}],"author":"curtis","twitter_card":"summary_large_image","twitter_image":"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png","twitter_misc":{"Verfasst von":"curtis","Gesch\u00e4tzte Lesezeit":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/","url":"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/","name":"Learning UML Class Diagrams by Example: Miles Card System - Go UML Deutsch","isPartOf":{"@id":"https:\/\/www.go-uml.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/#primaryimage"},"image":{"@id":"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/#primaryimage"},"thumbnailUrl":"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png","datePublished":"2024-11-26T06:35:24+00:00","dateModified":"2024-11-26T06:35:37+00:00","author":{"@id":"https:\/\/www.go-uml.com\/de\/#\/schema\/person\/fc1da26b1e963fc50ec2722b231a274b"},"breadcrumb":{"@id":"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/#primaryimage","url":"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png","contentUrl":"https:\/\/circle.visual-paradigm.com\/wp-content\/uploads\/2017\/08\/Class-Diagram-Classes-and-packages-Constraints.png","width":"845","height":"358"},{"@type":"BreadcrumbList","@id":"https:\/\/www.go-uml.com\/de\/learning-uml-class-diagrams-by-example-miles-card-system\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.go-uml.com\/de\/"},{"@type":"ListItem","position":2,"name":"Learning UML Class Diagrams by Example: Miles Card System"}]},{"@type":"WebSite","@id":"https:\/\/www.go-uml.com\/de\/#website","url":"https:\/\/www.go-uml.com\/de\/","name":"Go UML Deutsch","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.go-uml.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/www.go-uml.com\/de\/#\/schema\/person\/fc1da26b1e963fc50ec2722b231a274b","name":"curtis","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.go-uml.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/48025789fc0776739935e63d9f629084?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/48025789fc0776739935e63d9f629084?s=96&d=mm&r=g","caption":"curtis"},"url":"https:\/\/www.go-uml.com\/de\/author\/curtis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.go-uml.com\/de\/wp-json\/wp\/v2\/posts\/686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.go-uml.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.go-uml.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.go-uml.com\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.go-uml.com\/de\/wp-json\/wp\/v2\/comments?post=686"}],"version-history":[{"count":2,"href":"https:\/\/www.go-uml.com\/de\/wp-json\/wp\/v2\/posts\/686\/revisions"}],"predecessor-version":[{"id":690,"href":"https:\/\/www.go-uml.com\/de\/wp-json\/wp\/v2\/posts\/686\/revisions\/690"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.go-uml.com\/de\/wp-json\/wp\/v2\/media\/688"}],"wp:attachment":[{"href":"https:\/\/www.go-uml.com\/de\/wp-json\/wp\/v2\/media?parent=686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.go-uml.com\/de\/wp-json\/wp\/v2\/categories?post=686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.go-uml.com\/de\/wp-json\/wp\/v2\/tags?post=686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}