{"id":10509,"date":"2026-05-21T15:55:49","date_gmt":"2026-05-21T07:55:49","guid":{"rendered":"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/"},"modified":"2026-05-30T16:06:34","modified_gmt":"2026-05-30T08:06:34","slug":"mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml","status":"publish","type":"post","link":"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/","title":{"rendered":"Die Beherrschung von UML-Klassendiagrammen: Eine praktische Fallstudie im Systemdesign mit PlantUML"},"content":{"rendered":"<h2 data-nodeid=\"111\"><strong data-nodeid=\"293\">Einf\u00fchrung<\/strong><\/h2>\n<p data-nodeid=\"112\">In der heutigen komplexen Softwareentwicklungswelt sind klare Kommunikation und pr\u00e4zises Systemmodellieren entscheidend f\u00fcr den Projekterfolg. Zu den m\u00e4chtigsten Werkzeugen in einem Softwarearchitekten-Toolkit geh\u00f6rt das\u00a0<strong data-nodeid=\"303\">UML-Klassendiagramm<\/strong>\u2014eine visuelle Sprache, die die L\u00fccke zwischen abstrakten Anforderungen und konkreter Implementierung schlie\u00dft.<\/p>\n<p data-nodeid=\"113\">Diese Fallstudie untersucht, wie Klassendiagramme die Grundlage der objektorientierten Gestaltung bilden, wodurch Teams die statische Systemstruktur modellieren, Beziehungen zwischen Entit\u00e4ten definieren und klare Vertr\u00e4ge f\u00fcr die Entwicklung festlegen k\u00f6nnen. Anhand eines praktischen Beispiels eines E-Commerce-System zur Auftragsverwaltung zeigen wir, wie Klassendiagramme schrittweise anhand dreier Entwicklungsansichten \u2013 konzeptionell, spezifiziert und implementiert \u2013 verfeinert werden k\u00f6nnen, wobei\u00a0<strong data-nodeid=\"311\">PlantUML<\/strong>\u00a0zur Ausf\u00fchrungsf\u00e4higen, versionskontrollierten Dokumentation eingesetzt wird.<\/p>\n<p data-nodeid=\"114\">Unabh\u00e4ngig davon, ob Sie ein Business Analyst sind, der Dom\u00e4nenkonzepte modelliert, ein Entwickler, der APIs entwirft, oder ein Teamleiter, der die architektonische Konsistenz sicherstellt: Dieser Leitfaden liefert praktische Erkenntnisse zur Erstellung von Klassendiagrammen, die Klarheit schaffen, Mehrdeutigkeit reduzieren und die Lieferung beschleunigen.<\/p>\n<hr data-nodeid=\"115\"\/>\n<h2 data-nodeid=\"116\"><strong data-nodeid=\"318\">Verst\u00e4ndnis von Klassendiagrammen: Zusammenfassung der Kernkonzepte<\/strong><\/h2>\n<p data-nodeid=\"117\"><em data-nodeid=\"322\">(Zusammengefasst aus grundlegenden Kenntnissen)<\/em><\/p>\n<p data-nodeid=\"118\">Ein\u00a0<strong data-nodeid=\"328\">Klassendiagramm<\/strong>\u00a0in UML ist ein statisches Strukturdiagramm, das visualisiert:<\/p>\n<ul data-nodeid=\"119\">\n<li data-nodeid=\"120\">\n<p data-nodeid=\"121\"><strong data-nodeid=\"333\">Klassen<\/strong>: Baupl\u00e4ne, die Objekte mit Attributen (Zustand) und Operationen (Verhalten) definieren<\/p>\n<\/li>\n<li data-nodeid=\"122\">\n<p data-nodeid=\"123\"><strong data-nodeid=\"338\">Beziehungen<\/strong>: Vererbung, Assoziation, Aggregation, Komposition und Abh\u00e4ngigkeit<\/p>\n<\/li>\n<li data-nodeid=\"124\">\n<p data-nodeid=\"125\"><strong data-nodeid=\"357\">Einschr\u00e4nkungen<\/strong>: Sichtbarkeit (<code data-backticks=\"1\" data-nodeid=\"343\">+<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"345\">-<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"347\">#<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"349\">~<\/code>), Vielfachheit (<code data-backticks=\"1\" data-nodeid=\"351\">1<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"353\">0..*<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"355\">1..5<\/code>), und Durchg\u00e4ngigkeit<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"126\"><strong data-nodeid=\"361\">Wichtige Notationselemente<\/p>\n<p><\/strong><\/h3>\n<p id=\"UHnOxfB\"><img alt=\"\" class=\"alignnone size-full wp-image-24654\" decoding=\"async\" height=\"184\" loading=\"lazy\" sizes=\"auto, (max-width: 424px) 100vw, 424px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8.png 424w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8-300x130.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8-150x65.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8-400x174.png 400w\" width=\"424\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:HOwn2W8n44JxGFvXonFr1r9TONELWlx0cWqIsCjYiZaGyT_TO64ppBoPOkQcMBMlx5raR0tEbLA5jtS0Hnb-eG1NhRay_ko4cW8C7MmVaMDdIpTHv6bdbVGx_qeaMZIjKpO9SAb2FUe1dleAa8lQU9DCtdsycrCXk_85\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:HOwn2W8n44JxGFvXonFr1r9TONELWlx0cWqIsCjYiZaGyT_TO64ppBoPOkQcMBMlx5raR0tEbLA5jtS0Hnb-eG1NhRay_ko4cW8C7MmVaMDdIpTHv6bdbVGx_qeaMZIjKpO9SAb2FUe1dleAa8lQU9DCtdsycrCXk_85\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"127\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Order {\r\n  -orderId: String\r\n  -orderDate: Date\r\n  +calculateTotal(): Double\r\n  +addItem(item: Product, qty: int): void\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:HOwn2W8n44JxGFvXonFr1r9TONELWlx0cWqIsCjYiZaGyT_TO64ppBoPOkQcMBMlx5raR0tEbLA5jtS0Hnb-eG1NhRay_ko4cW8C7MmVaMDdIpTHv6bdbVGx_qeaMZIjKpO9SAb2FUe1dleAa8lQU9DCtdsycrCXk_85\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:HOwn2W8n44JxGFvXonFr1r9TONELWlx0cWqIsCjYiZaGyT_TO64ppBoPOkQcMBMlx5raR0tEbLA5jtS0Hnb-eG1NhRay_ko4cW8C7MmVaMDdIpTHv6bdbVGx_qeaMZIjKpO9SAb2FUe1dleAa8lQU9DCtdsycrCXk_85\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"128\"><strong data-nodeid=\"365\">Schnellreferenz zu Beziehungstypen<\/strong><\/h3>\n<table data-nodeid=\"130\">\n<thead data-nodeid=\"131\">\n<tr data-nodeid=\"132\">\n<th data-nodeid=\"134\">Typ<\/th>\n<th data-nodeid=\"135\">Symbol<\/th>\n<th data-nodeid=\"136\">Bedeutung<\/th>\n<th data-nodeid=\"137\">Beispiel<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"142\">\n<tr data-nodeid=\"143\">\n<td data-nodeid=\"144\"><strong data-nodeid=\"373\">Vererbung<\/strong><\/td>\n<td data-nodeid=\"145\">`\u2013<\/td>\n<td data-nodeid=\"146\">&gt;`<\/td>\n<td data-nodeid=\"147\">\u201eist-ein\u201c<\/td>\n<\/tr>\n<tr data-nodeid=\"150\">\n<td data-nodeid=\"151\"><strong data-nodeid=\"384\">Assoziation<\/strong><\/td>\n<td data-nodeid=\"152\"><code data-backticks=\"1\" data-nodeid=\"385\">--<\/code><\/td>\n<td data-nodeid=\"153\">Strukturelle Verbindung<\/td>\n<td data-nodeid=\"154\"><code data-backticks=\"1\" data-nodeid=\"387\">Bestellung -- Kunde<\/code><\/td>\n<\/tr>\n<tr data-nodeid=\"155\">\n<td data-nodeid=\"156\"><strong data-nodeid=\"391\">Aggregation<\/strong><\/td>\n<td data-nodeid=\"157\"><code data-backticks=\"1\" data-nodeid=\"392\">o--<\/code><\/td>\n<td data-nodeid=\"158\">\u201ebesitzt-ein\u201c (schwach)<\/td>\n<td data-nodeid=\"159\"><code data-backticks=\"1\" data-nodeid=\"397\">Lager o-- Produkt<\/code><\/td>\n<\/tr>\n<tr data-nodeid=\"160\">\n<td data-nodeid=\"161\"><strong data-nodeid=\"401\">Komposition<\/strong><\/td>\n<td data-nodeid=\"162\"><code data-backticks=\"1\" data-nodeid=\"402\">*--<\/code><\/td>\n<td data-nodeid=\"163\">\u201ebesitzt-ein\u201c (stark)<\/td>\n<td data-nodeid=\"164\"><code data-backticks=\"1\" data-nodeid=\"407\">Bestellung *-- Bestellposition<\/code><\/td>\n<\/tr>\n<tr data-nodeid=\"165\">\n<td data-nodeid=\"166\"><strong data-nodeid=\"411\">Abh\u00e4ngigkeit<\/strong><\/td>\n<td data-nodeid=\"167\"><code data-backticks=\"1\" data-nodeid=\"412\">..&gt;<\/code><\/td>\n<td data-nodeid=\"168\">\u201euses\u201c (vor\u00fcbergehend)<\/td>\n<td data-nodeid=\"169\"><code data-backticks=\"1\" data-nodeid=\"417\">PaymentService ..&gt; Logger<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"170\"\/>\n<h2 data-nodeid=\"171\"><strong data-nodeid=\"421\">Fallstudie: E-Commerce-Bestellverwaltungssystem<\/strong><\/h2>\n<h3 data-nodeid=\"172\"><strong data-nodeid=\"425\">Gesch\u00e4ftsanforderungen<\/strong><\/h3>\n<p data-nodeid=\"173\">Ein Online-H\u00e4ndler ben\u00f6tigt ein System, das:<\/p>\n<ol data-nodeid=\"174\">\n<li data-nodeid=\"175\">\n<p data-nodeid=\"176\">Kunden, Produkte und Bestellungen verwalten<\/p>\n<\/li>\n<li data-nodeid=\"177\">\n<p data-nodeid=\"178\">Bestellpositionen mit Mengen und Preisen unterst\u00fctzen<\/p>\n<\/li>\n<li data-nodeid=\"179\">\n<p data-nodeid=\"180\">Mehrere Zahlungsmethoden verarbeiten<\/p>\n<\/li>\n<li data-nodeid=\"181\">\n<p data-nodeid=\"182\">Bestellstatus \u00fcber einen Lebenszyklus verfolgen<\/p>\n<\/li>\n<li data-nodeid=\"183\">\n<p data-nodeid=\"184\">Erlauben, dass Produkte Kategorien zugeordnet werden<\/p>\n<\/li>\n<li data-nodeid=\"185\">\n<p data-nodeid=\"186\">Gast-Kasse unterst\u00fctzen (optionale Kundenzuordnung)<\/p>\n<\/li>\n<\/ol>\n<h3 data-nodeid=\"187\"><strong data-nodeid=\"436\">Phase 1: Konzeptuelles Modell (Dom\u00e4nenperspektive)<\/strong><\/h3>\n<p data-nodeid=\"188\"><em data-nodeid=\"440\">Sprachunabh\u00e4ngig, fokussiert auf realweltliche Konzepte<\/em><\/p>\n<\/p>\n<p id=\"AjOBHwj\"><img alt=\"\" class=\"alignnone size-full wp-image-24655\" decoding=\"async\" height=\"688\" loading=\"lazy\" sizes=\"auto, (max-width: 865px) 100vw, 865px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb958147eb.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb958147eb.png 865w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb958147eb-300x239.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb958147eb-768x611.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb958147eb-150x119.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb958147eb-400x318.png 400w\" width=\"865\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:VLDDJyCm3BrNwd-mUa526cBN7X3Jne730F4FtCHiaV95uXmcn7_7QJj61U9KEtb-VdvExpDZuk9isx1XIx0DNb7aWXRsGPFjuM6r3SvHKWIxuD3ujcaRPJ5ds9RCGQxWesq0F3ggNnAGhK4-cXYDFsoqJfHpstnUIbzIq4Nnib9JLib4Di7NTC1CByaeMbHkaUaGqkcVqX_evwJF-a8DdueRA7sdEo4RfJ9ooJNYm6WtBXJFluaUcTn4zbxGYsEd6XTlUDOfJ6KOAPRJuicHdwUDKx8dFWOzjapeCwgg_N4ymBczN1b7eit5cUuANibYHLPpHV3t2hfr1wiLTBStDzVTF7OFqQAY37TjCvrKr7M5hI-mSQWULF0isnt1v-tyGJgZCKR2bC7u1Nu2ZWswowPw6CW6VyZYxbBBHShPeXuoiRn43SEfOjl61oP8vd1a26-JY6hDnizJ9eholAGs0uAQ_RWQbnbBKaTvHIAJApbw_TFjjY4vgForpxqayYTy0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:VLD1JkGm4Bn7oXzQkQo4D0YkEI3OWGD2i1puW6CtiKLi1xijDBFQt_26_S1yRDjEmcm4uf9qszNLLTt9PIGHADcXhiZGW73dtHv7IZWC6E7UAmvQkDbilRKO96wklJsyEwohkfA3Y16sAPBdE_XTLm1EMCnljC8CEOZQZADn_PLI0MEigp_7qiVWLPAqhbGOPJ0Z6Uzosec8Zy58N5Lk1M7lm-wRql_Glu9QzFaSFYJROVX8hvciI2L1AUQ8F8dXolhaw3FHBQ6To5wJS3osNOwJCpJhPARK5OgrMx6pw6QtuvJS8sclIiiWN1GoQxyj1s9kprV68ckpuqpt0txYtg1EhaSs-h60vho1pGQQizFJasOstR8hNY61wE2YhgR333p9oFCZihXgWJNfmplZ6RoivmlU1HsYr6ZOb76hYWbQMZJ7PRNGepxy3GJxj5Pp5BDCgOKt4nJBxdcfUl0neWELWjIvigwS9uHWUatWdoTHULOtnY6FfvZc-IpkbU5FMwHdqKKZTPago-Ol_2uvnSJyB9YdieMNl0LGWXcHBtAhtFAI4_vL_W40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"189\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle Konzeptuelles Modell: E-Commerce-Dom\u00e4ne\r\n\r\nclass Customer {\r\n  name\r\n  email\r\n  shippingAddress\r\n}\r\n\r\nclass Product {\r\n  name\r\n  description\r\n  basePrice\r\n}\r\n\r\nclass Category {\r\n  name\r\n  description\r\n}\r\n\r\nclass Order {\r\n  orderNumber\r\n  orderDate\r\n  status\r\n  totalAmount\r\n}\r\n\r\nclass OrderItem {\r\n  quantity\r\n  unitPrice\r\n  subtotal\r\n}\r\n\r\nclass Payment {\r\n  paymentMethod\r\n  transactionId\r\n  amount\r\n  timestamp\r\n}\r\n\r\n' Beziehungen\r\nCustomer \"1\" -- \"0..*\" Order : stellt ab &gt;\r\nOrder \"1\" *-- \"1..*\" OrderItem : enth\u00e4lt &gt;\r\nProduct \"1\" -- \"0..*\" OrderItem : erscheint in &gt;\r\nProduct \"0..*\" -- \"1\" Category : geh\u00f6rt zu &gt;\r\nOrder \"1\" -- \"1..*\" Payment : wird abgeschlossen durch &gt;\r\n\r\nnote right of Order\r\n  Eine Bestellung stellt die Kaufabsicht\r\n  eines Kunden und die Transaktion dar\r\nend note\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:VLD1JkGm4Bn7oXzQkQo4D0YkEI3OWGD2i1puW6CtiKLi1xijDBFQt_26_S1yRDjEmcm4uf9qszNLLTt9PIGHADcXhiZGW73dtHv7IZWC6E7UAmvQkDbilRKO96wklJsyEwohkfA3Y16sAPBdE_XTLm1EMCnljC8CEOZQZADn_PLI0MEigp_7qiVWLPAqhbGOPJ0Z6Uzosec8Zy58N5Lk1M7lm-wRql_Glu9QzFaSFYJROVX8hvciI2L1AUQ8F8dXolhaw3FHBQ6To5wJS3osNOwJCpJhPARK5OgrMx6pw6QtuvJS8sclIiiWN1GoQxyj1s9kprV68ckpuqpt0txYtg1EhaSs-h60vho1pGQQizFJasOstR8hNY61wE2YhgR333p9oFCZihXgWJNfmplZ6RoivmlU1HsYr6ZOb76hYWbQMZJ7PRNGepxy3GJxj5Pp5BDCgOKt4nJBxdcfUl0neWELWjIvigwS9uHWUatWdoTHULOtnY6FfvZc-IpkbU5FMwHdqKKZTPago-Ol_2uvnSJyB9YdieMNl0LGWXcHBtAhtFAI4_vL_W40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:VLDDJyCm3BrNwd-mUa526cBN7X3Jne730F4FtCHiaV95uXmcn7_7QJj61U9KEtb-VdvExpDZuk9isx1XIx0DNb7aWXRsGPFjuM6r3SvHKWIxuD3ujcaRPJ5ds9RCGQxWesq0F3ggNnAGhK4-cXYDFsoqJfHpstnUIbzIq4Nnib9JLib4Di7NTC1CByaeMbHkaUaGqkcVqX_evwJF-a8DdueRA7sdEo4RfJ9ooJNYm6WtBXJFluaUcTn4zbxGYsEd6XTlUDOfJ6KOAPRJuicHdwUDKx8dFWOzjapeCwgg_N4ymBczN1b7eit5cUuANibYHLPpHV3t2hfr1wiLTBStDzVTF7OFqQAY37TjCvrKr7M5hI-mSQWULF0isnt1v-tyGJgZCKR2bC7u1Nu2ZWswowPw6CW6VyZYxbBBHShPeXuoiRn43SEfOjl61oP8vd1a26-JY6hDnizJ9eholAGs0uAQ_RWQbnbBKaTvHIAJApbw_TFjjY4vgForpxqayYTy0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"190\"><strong data-nodeid=\"444\">Wichtige Gestaltungsentscheidungen:<\/strong><\/p>\n<ul data-nodeid=\"191\">\n<li data-nodeid=\"192\">\n<p data-nodeid=\"193\">Zusammensetzung (<code data-backticks=\"1\" data-nodeid=\"446\">*--<\/code>) zwischen\u00a0<code data-backticks=\"1\" data-nodeid=\"448\">Bestellung<\/code>\u00a0und\u00a0<code data-backticks=\"1\" data-nodeid=\"450\">Bestellposition<\/code>: Positionen k\u00f6nnen nicht ohne eine Bestellung existieren<\/p>\n<\/li>\n<li data-nodeid=\"194\">\n<p data-nodeid=\"195\">Assoziation zwischen\u00a0<code data-backticks=\"1\" data-nodeid=\"453\">Produkt<\/code>\u00a0und\u00a0<code data-backticks=\"1\" data-nodeid=\"455\">Kategorie<\/code>: Produkte k\u00f6nnen neu kategorisiert werden<\/p>\n<\/li>\n<li data-nodeid=\"196\">\n<p data-nodeid=\"197\">Vielfachheit\u00a0<code data-backticks=\"1\" data-nodeid=\"458\">0..*<\/code>\u00a0f\u00fcr Kundenbestellung: Unterst\u00fctzt Gastbestellung<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"198\"\/>\n<h3 data-nodeid=\"199\"><strong data-nodeid=\"463\">Phase 2: Spezifikationsmodell (Schnittstellenperspektive)<\/strong><\/h3>\n<p data-nodeid=\"200\"><em data-nodeid=\"467\">Fokus auf Softwarevertr\u00e4ge, Verbergen von Implementierungsdetails<\/em><\/p>\n<\/p>\n<p id=\"fNvtqQK\"><img alt=\"\" class=\"alignnone size-full wp-image-24656\" decoding=\"async\" height=\"436\" loading=\"lazy\" sizes=\"auto, (max-width: 1632px) 100vw, 1632px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9a2b0b04.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9a2b0b04.png 1632w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9a2b0b04-300x80.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9a2b0b04-1030x275.png 1030w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9a2b0b04-768x205.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9a2b0b04-1536x410.png 1536w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9a2b0b04-150x40.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9a2b0b04-400x107.png 400w\" width=\"1632\"\/><\/p>\n<p data-nodeid=\"200\"><em data-nodeid=\"467\">\u00a0<\/em><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:TLHBRkCm3DqRy1suQu89SW1Z47I0R0nCqIBf1LIPJeJAb4UY0XZ5t7resSuaZhipoSV7tvEV0olFiR5vneOjmh55RMgZ5Hj7yE8gj0KSqL-CHYY9qTTAOyYpF3EJ1UMhhz1FgAyy0_YXFIh655Zf6DWrwCjAkDWREct0C3QXWDycyC-4AiMnVt_ThGj8jdmdeXFomE8IwaennyMscWeUMN4CyuGDXEGVymQGi7muPr7HqBMoEjg9vzsniWjrNnnXbsT_PrjuKrs3n6_UoOQ2y-Ccsi4UeuzTjKDWZwoCbUv6eCorlXe73D5oelDOHwecDlQAWjBzjMuvLUCYyTYfq1nIqiGoRxoaYt0vtyrEU4Rz-UiYNQaFOmrtAncbYfflA_s9YaGwNG52EDkcno24s5zsuHgt2ZWaP19TZzuz4Cbdm1lKmbKkpbJZRDgg4Axo6CUPPGmZFYWpkRyLPufoBukh2iIneAl7HaQA_wAutsJotYrpK3KP4PJSv5vrJx375gb2qgP_ZVSlSBlTBHorW1Wmm6uH_Q3T0hIJZHcIn_1DqdM_1NZaw2dXyemSevoFPRFWwlk_Gp_K7cj3Gifdb28a4jOCjTHC5u96aJfXtyssHvTDQvELxXuatC55-GvMZT7UXO5t0uqZ9o8zRm1PRzTv9kk1lfM-fMSnv2_t3m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:TLHBZjim3DqRy1suQuAcEO1H13D5DW4wc44ow5wsQPkmB0KIdK5Iz3OzGrUpoyLAAyu_NbdyFJq-qdhoh1otZOuZ9jO8gpNkgA1QCLdZ6vkZrWdC2OtdRwkiCiJiMPneuYYEo32wGcK8YrUNerkXsv1Ol-C8u6lcK366mAXkJOvcaIUmOaUcd00nDZw1d-JvUyXPY6F-_ZeR9n1iEGUO4lc0aMAukZMbFmFTPhVh_7ZfYXMt_d7P17o8zjM7LC5AhTMep86_qbchZsZlbfKUvF1Y3MxZwC-DAczgsw3XDsSpzDwwNfdrmUwZGmntgWg-75cH5gfzlhGwFXbBzAtcWEgm49MFeEoKyQeEWxn4JL4YPSzOS9QXwWXpsy32R0JCkktDQ2lCwkUDq58fQUBjI5hAsvelRn8Q9IOWQ3V2ElI2Xjt01yTpkHxBa1zsigkPtS79qUD5rk2ODfRolibCA-zFkzFtzR0kH6uNE3W7TxXVNAyQlj8x-1zitZsd7kcyCDVg1kzPu60YcGg9_TeX-UkL_0BFQRN_QqegQqdf_jxhFtOwdJqOjWY6xWEbSuRPmvAx1K-WjjRbP0ZTGD59ymHAIXbshTj_PdMN74V6CifqcMq3jhX-LxekvrZqs38E-2K7KHUA_QU3d11-d0VOKLUQvJWDXH9TD6kD7Ly14By0rFj_niXteno9KqwZ5wgTzOSR9vsALXQyWjP_JCTn9690nx7Z-YI6F9x_0G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"201\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle Spezifikationsmodell: Dienst-Schnittstellen\r\n\r\ninterface IOrderService {\r\n  +createOrder(kundenId: String, items: List&lt;OrderItemDTO&gt;): OrderDTO\r\n  +getOrder(bestellungsId: String): OrderDTO\r\n  +updateOrderStatus(bestellungsId: String, status: OrderStatus): boolean\r\n  +calculateOrderTotal(bestellungsId: String): Money\r\n}\r\n\r\ninterface IPaymentProcessor {\r\n  +processPayment(bestellungsId: String, zahlungsdetails: PaymentDTO): PaymentResult\r\n  +refundPayment(transaktionsId: String, betrag: Money): RefundResult\r\n}\r\n\r\ninterface IInventoryService {\r\n  +checkAvailability(produktId: String, menge: int): boolean\r\n  +reserveItems(bestellungsId: String, items: List&lt;ReservationItem&gt;): boolean\r\n  +releaseReservation(bestellungsId: String): void\r\n}\r\n\r\nclass OrderDTO {\r\n  +bestellungsId: String\r\n  +kundenId: String\r\n  +items: List&lt;OrderItemDTO&gt;\r\n  +gesamtbetrag: Money\r\n  +status: OrderStatus\r\n}\r\n\r\nclass OrderItemDTO {\r\n  +produktId: String\r\n  +menge: int\r\n  +einheitspreis: Money\r\n}\r\n\r\n' Abh\u00e4ngigkeiten\r\nIOrderService ..&gt; IInventoryService : verwendet &gt;\r\nIOrderService ..&gt; IPaymentProcessor : koordiniert &gt;\r\nIOrderService ..&gt; OrderDTO : gibt zur\u00fcck &gt;\r\n\r\nnote bottom of IOrderService\r\n  Definiert den Vertrag f\u00fcr die Bestellungsverwaltung.\r\n  Die Implementierungen k\u00f6nnen variieren (Mikroservice, Monolith usw.)\r\nend note\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:TLHBZjim3DqRy1suQuAcEO1H13D5DW4wc44ow5wsQPkmB0KIdK5Iz3OzGrUpoyLAAyu_NbdyFJq-qdhoh1otZOuZ9jO8gpNkgA1QCLdZ6vkZrWdC2OtdRwkiCiJiMPneuYYEo32wGcK8YrUNerkXsv1Ol-C8u6lcK366mAXkJOvcaIUmOaUcd00nDZw1d-JvUyXPY6F-_ZeR9n1iEGUO4lc0aMAukZMbFmFTPhVh_7ZfYXMt_d7P17o8zjM7LC5AhTMep86_qbchZsZlbfKUvF1Y3MxZwC-DAczgsw3XDsSpzDwwNfdrmUwZGmntgWg-75cH5gfzlhGwFXbBzAtcWEgm49MFeEoKyQeEWxn4JL4YPSzOS9QXwWXpsy32R0JCkktDQ2lCwkUDq58fQUBjI5hAsvelRn8Q9IOWQ3V2ElI2Xjt01yTpkHxBa1zsigkPtS79qUD5rk2ODfRolibCA-zFkzFtzR0kH6uNE3W7TxXVNAyQlj8x-1zitZsd7kcyCDVg1kzPu60YcGg9_TeX-UkL_0BFQRN_QqegQqdf_jxhFtOwdJqOjWY6xWEbSuRPmvAx1K-WjjRbP0ZTGD59ymHAIXbshTj_PdMN74V6CifqcMq3jhX-LxekvrZqs38E-2K7KHUA_QU3d11-d0VOKLUQvJWDXH9TD6kD7Ly14By0rFj_niXteno9KqwZ5wgTzOSR9vsALXQyWjP_JCTn9690nx7Z-YI6F9x_0G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:TLHBRkCm3DqRy1suQu89SW1Z47I0R0nCqIBf1LIPJeJAb4UY0XZ5t7resSuaZhipoSV7tvEV0olFiR5vneOjmh55RMgZ5Hj7yE8gj0KSqL-CHYY9qTTAOyYpF3EJ1UMhhz1FgAyy0_YXFIh655Zf6DWrwCjAkDWREct0C3QXWDycyC-4AiMnVt_ThGj8jdmdeXFomE8IwaennyMscWeUMN4CyuGDXEGVymQGi7muPr7HqBMoEjg9vzsniWjrNnnXbsT_PrjuKrs3n6_UoOQ2y-Ccsi4UeuzTjKDWZwoCbUv6eCorlXe73D5oelDOHwecDlQAWjBzjMuvLUCYyTYfq1nIqiGoRxoaYt0vtyrEU4Rz-UiYNQaFOmrtAncbYfflA_s9YaGwNG52EDkcno24s5zsuHgt2ZWaP19TZzuz4Cbdm1lKmbKkpbJZRDgg4Axo6CUPPGmZFYWpkRyLPufoBukh2iIneAl7HaQA_wAutsJotYrpK3KP4PJSv5vrJx375gb2qgP_ZVSlSBlTBHorW1Wmm6uH_Q3T0hIJZHcIn_1DqdM_1NZaw2dXyemSevoFPRFWwlk_Gp_K7cj3Gifdb28a4jOCjTHC5u96aJfXtyssHvTDQvELxXuatC55-GvMZT7UXO5t0uqZ9o8zRm1PRzTv9kk1lfM-fMSnv2_t3m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"202\"><strong data-nodeid=\"471\">Architektonische Vorteile:<\/strong><\/p>\n<ul data-nodeid=\"203\">\n<li data-nodeid=\"204\">\n<p data-nodeid=\"205\">Schnittstellen-Segregation erm\u00f6glicht unabh\u00e4ngige Bereitstellung<\/p>\n<\/li>\n<li data-nodeid=\"206\">\n<p data-nodeid=\"207\">DTOs trennen interne Modelle von API-Vertr\u00e4gen<\/p>\n<\/li>\n<li data-nodeid=\"208\">\n<p data-nodeid=\"209\">Abh\u00e4ngigkeiten zeigen deutlich die Dienstgrenzen f\u00fcr Mikroservices<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"210\"\/>\n<h3 data-nodeid=\"211\"><strong data-nodeid=\"478\">Phase 3: Implementierungsmodell (Code-Perspektive)<\/strong><\/h3>\n<p data-nodeid=\"212\"><em data-nodeid=\"482\">Technologie-spezifische Details f\u00fcr Java\/Spring Boot-Implementierung<\/em><\/p>\n<p id=\"ZSqOdQO\"><img alt=\"\" class=\"alignnone size-full wp-image-24657\" decoding=\"async\" height=\"959\" loading=\"lazy\" sizes=\"auto, (max-width: 1738px) 100vw, 1738px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9e55e69a.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9e55e69a.png 1738w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9e55e69a-300x166.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9e55e69a-1030x568.png 1030w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9e55e69a-768x424.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9e55e69a-1536x848.png 1536w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9e55e69a-150x83.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9e55e69a-400x221.png 400w\" width=\"1738\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:TLLBRzf04BuZyHz6kTG9uAfNgur2WBQk2450Ufzu9x2AxNNsGOIg_FVEsklmIYwBvptppOCROr5RL-JTZfKs9qYBAgU2IejMgXBkbA0yWJ-unQ_BIijo3RTAMHZbQ0oPRgVRgJ1xnZL1fegO-2b8PnGhBKZ7x4VQ7VphTW0oRmBtdjym00OtgO1QCnK9F3oauvP_X-LkfUvBTkkCLUmpWL7uQdLOkb9UCShGP2Zent0wlGHfgJ09JAMnt-jeAJEkWr4TR8oMM45bcFlFbImeY1aDwzYujblMH91OPJ4V5igLDe5RkHvJ9WlC6sdpzb087okgj18kOxrvyz675xjBG9RsCe6jaYBeS_pCvJu3xpowF7VSAr0_3yro8wkAH7HW_kQV4rXzy2DeFHIV8rjZ4MezbvuM4JHU7DOzhSi9F5TAEzSoeq-HMPDTkaVxSPdlfL3fYaFesrhcazaudVrgYD7zx6Uwk9k4WfQ_q_cy9SQJQVfticZ9qN0scaod3SbHtZuVrmftVkXZGthBXHnExBmHBGyb7ggXi-fLQX8GZ7zn9r-HaPaVqUVwDV0BgfIHLkbTQC6USGGTzo4ZOuBFw6XR-Y2iUe-te1T7ni_OEyDKgZJjS6ynbu9p2j8nMPIvYJvsiH_JWQkyLPrZYqNTdjDSskKvKlfeP7boI3yXWtcCL8jjBzkWNbE4P-lMXmmr1npn6_Bd02kDfS7C7omksULXBdkQdbmf8hiN-sINrf-nFfnxPrUBscJlfPsQBop9wvDeU1VvA3HtxEBR1LmD1lmRnrSN1rkO-Fcg--clw7Mh7yVNf_EKWA2AIc6WKJmH7rYqAF7gjKVQm5QYj-fsIcK9j5nlBAYdVIQ-Y9j9SuQnPANchXTO6R0AkBFuY8Q0VtAAlVPeVqnv8utJP9gR2XLfmrSLNgNTD4FC1fmw-DW-Xnic-B_aFm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:TLNDRjf04BuZyGwZN4f-SDMhrKOXG5Et946GzD3RuXtC2dlNtHqJaIflqyVeBI_MMVy49v2Bazdv_-QRuSAHi5HaQRT3YbA4ACjJp52JGblen6L6Ofg6y5rinCTvRfLEuD8Owlz8XNEekvrk9nVnMYG8iSa2v4-6DiR0M8asy95e2t-w7O3Oky2jVwyU0FeNaOG5Ek8aFbqaGxY_ZqQDzbhexPsvrGZhGaiCOLWuCfoWCM3LdV5MlLYuM4ZyCfXCZa4HPYw4YNBqkKmOySDvxLJdau8RPniJYtGa2EzKXhK5eq85-vUkyrAeDGawaT42oOeaX4kLZ31McKWhTVKz5LBwVBtS6bciAOIf_oUcCs1a4-v2QJeEOMEKh3suXBX8VH66HDextWzzcWcx7hZvIkKvobxB_Sb_tk3hqx_2cAUirfXg-nw-ko7KRU-Rl6sdjjZrL3-WqYjKv7ABohqBKe8qBnPqkD-Ndb0NMNiCJLFJySqekhcgXE7jpTTeTZsksvf_YwRJHXYD9z7FyQmHXuERuNWogKJEylG-WNEnzOiGEBGR5MERmzDADMzhF5Q3Wio3iYZXKQnAGYSyqmUn3HkNgqhUTsWjWSNSE4N6RkjHp5uUNY78yuZHkJfoxy0QdO4ayv9xXhyBjZbkFRZSQDUmVYDInKk1jNQ495JgUeT3xCZRBtBlLLRQ05FEwd15pMwzCZr4PoOKsgLWV5zZry1z6g-4JR2tlundi6Q--siXhApRu0ntLcWdOb96S-T5MlFrrEAIZqkFIlNQgyjov-IltHdin-TOiz9d5wQXqWUun4U5A-xP7yVgs1rzEeAJVf__1i79KMj3G_XLy3tXvXpI8_l0UUCJ1ETlQHR2wlclJWZ4Wj7ItlQDHSkf0OiNitNI2Px_BJZwkQzL6qAmAbaHcEMkAj_EnRYys_s1PYFX8G6cAP-HOWd-Lkg5q6iI2vukSZa9BbGgaGBlEzmTOYZdJ-1Kl4BBRFJBCwXE4MIA6Ao68P2ZTNokkKZK70Ur15-WB_I21VwD-Wy0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"213\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle Implementierungsmodell: Java\/Spring Boot-Klassen\r\n\r\npackage com.ecommerce.order.entity {\r\n  class Order {\r\n    -@Id bestellungsId: UUID\r\n    -@ManyToOne kunde: Customer\r\n    -@OneToMany(cascade=ALL) items: List&lt;OrderItem&gt;\r\n    -bestelldatum: LocalDateTime\r\n    -status: OrderStatus\r\n    -gesamtbetrag: BigDecimal\r\n    \r\n    +addItem(produkt: Product, menge: int): void\r\n    +calculateTotal(): BigDecimal\r\n    +markAsShipped(): void\r\n  }\r\n  \r\n  class OrderItem {\r\n    -@Id artikelnr: UUID\r\n    -@ManyToOne bestellung: Order\r\n    -@ManyToOne produkt: Product\r\n    -menge: int\r\n    -einheitspreis: BigDecimal\r\n    \r\n    +getSubtotal(): BigDecimal\r\n  }\r\n  \r\n  enum OrderStatus {\r\n    PENDING\r\n    CONFIRMED\r\n    SHIPPED\r\n    DELIVERED\r\n    CANCELLED\r\n  }\r\n}\r\n\r\npackage com.ecommerce.payment.service {\r\n  class PaymentService {\r\n    -@Autowired zahlungsgateway: PaymentGateway\r\n    -@Autowired bestellungsrepository: OrderRepository\r\n    \r\n    +processPayment(bestellungsId: UUID, dto: PaymentRequest): PaymentResponse\r\n    -validatePaymentDetails(dto: PaymentRequest): void\r\n    -updateOrderPaymentStatus(bestellungsId: UUID, status: PaymentStatus): void\r\n  }\r\n  \r\n  interface PaymentGateway {\r\n    +charge(betrag: BigDecimal, karte: CardDetails): TransactionResult\r\n    +refund(transaktionsId: String, betrag: BigDecimal): RefundResult\r\n  }\r\n}\r\n\r\n' Beziehungen\r\nOrder \"1\" *-- \"1..*\" OrderItem : Zusammensetzung &gt;\r\nOrder ..&gt; PaymentService : h\u00e4ngt ab von &gt;\r\nPaymentService ..&gt; PaymentGateway : implementiert \u00fcber &gt;\r\n\r\nnote right of OrderItem\r\n  @Entity-Annotation wird auf Datenbanktabelle abgebildet.\r\n  Cascade=ALL stellt sicher, dass Artikel mit Bestellung persistieren.\r\nend note\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:TLNDRjf04BuZyGwZN4f-SDMhrKOXG5Et946GzD3RuXtC2dlNtHqJaIflqyVeBI_MMVy49v2Bazdv_-QRuSAHi5HaQRT3YbA4ACjJp52JGblen6L6Ofg6y5rinCTvRfLEuD8Owlz8XNEekvrk9nVnMYG8iSa2v4-6DiR0M8asy95e2t-w7O3Oky2jVwyU0FeNaOG5Ek8aFbqaGxY_ZqQDzbhexPsvrGZhGaiCOLWuCfoWCM3LdV5MlLYuM4ZyCfXCZa4HPYw4YNBqkKmOySDvxLJdau8RPniJYtGa2EzKXhK5eq85-vUkyrAeDGawaT42oOeaX4kLZ31McKWhTVKz5LBwVBtS6bciAOIf_oUcCs1a4-v2QJeEOMEKh3suXBX8VH66HDextWzzcWcx7hZvIkKvobxB_Sb_tk3hqx_2cAUirfXg-nw-ko7KRU-Rl6sdjjZrL3-WqYjKv7ABohqBKe8qBnPqkD-Ndb0NMNiCJLFJySqekhcgXE7jpTTeTZsksvf_YwRJHXYD9z7FyQmHXuERuNWogKJEylG-WNEnzOiGEBGR5MERmzDADMzhF5Q3Wio3iYZXKQnAGYSyqmUn3HkNgqhUTsWjWSNSE4N6RkjHp5uUNY78yuZHkJfoxy0QdO4ayv9xXhyBjZbkFRZSQDUmVYDInKk1jNQ495JgUeT3xCZRBtBlLLRQ05FEwd15pMwzCZr4PoOKsgLWV5zZry1z6g-4JR2tlundi6Q--siXhApRu0ntLcWdOb96S-T5MlFrrEAIZqkFIlNQgyjov-IltHdin-TOiz9d5wQXqWUun4U5A-xP7yVgs1rzEeAJVf__1i79KMj3G_XLy3tXvXpI8_l0UUCJ1ETlQHR2wlclJWZ4Wj7ItlQDHSkf0OiNitNI2Px_BJZwkQzL6qAmAbaHcEMkAj_EnRYys_s1PYFX8G6cAP-HOWd-Lkg5q6iI2vukSZa9BbGgaGBlEzmTOYZdJ-1Kl4BBRFJBCwXE4MIA6Ao68P2ZTNokkKZK70Ur15-WB_I21VwD-Wy0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:TLLBRzf04BuZyHz6kTG9uAfNgur2WBQk2450Ufzu9x2AxNNsGOIg_FVEsklmIYwBvptppOCROr5RL-JTZfKs9qYBAgU2IejMgXBkbA0yWJ-unQ_BIijo3RTAMHZbQ0oPRgVRgJ1xnZL1fegO-2b8PnGhBKZ7x4VQ7VphTW0oRmBtdjym00OtgO1QCnK9F3oauvP_X-LkfUvBTkkCLUmpWL7uQdLOkb9UCShGP2Zent0wlGHfgJ09JAMnt-jeAJEkWr4TR8oMM45bcFlFbImeY1aDwzYujblMH91OPJ4V5igLDe5RkHvJ9WlC6sdpzb087okgj18kOxrvyz675xjBG9RsCe6jaYBeS_pCvJu3xpowF7VSAr0_3yro8wkAH7HW_kQV4rXzy2DeFHIV8rjZ4MezbvuM4JHU7DOzhSi9F5TAEzSoeq-HMPDTkaVxSPdlfL3fYaFesrhcazaudVrgYD7zx6Uwk9k4WfQ_q_cy9SQJQVfticZ9qN0scaod3SbHtZuVrmftVkXZGthBXHnExBmHBGyb7ggXi-fLQX8GZ7zn9r-HaPaVqUVwDV0BgfIHLkbTQC6USGGTzo4ZOuBFw6XR-Y2iUe-te1T7ni_OEyDKgZJjS6ynbu9p2j8nMPIvYJvsiH_JWQkyLPrZYqNTdjDSskKvKlfeP7boI3yXWtcCL8jjBzkWNbE4P-lMXmmr1npn6_Bd02kDfS7C7omksULXBdkQdbmf8hiN-sINrf-nFfnxPrUBscJlfPsQBop9wvDeU1VvA3HtxEBR1LmD1lmRnrSN1rkO-Fcg--clw7Mh7yVNf_EKWA2AIc6WKJmH7rYqAF7gjKVQm5QYj-fsIcK9j5nlBAYdVIQ-Y9j9SuQnPANchXTO6R0AkBFuY8Q0VtAAlVPeVqnv8utJP9gR2XLfmrSLNgNTD4FC1fmw-DW-Xnic-B_aFm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"214\"><strong data-nodeid=\"486\">Implementierungshighlights:<\/strong><\/p>\n<ul data-nodeid=\"215\">\n<li data-nodeid=\"216\">\n<p data-nodeid=\"217\">JPA-Annotationen (<code data-backticks=\"1\" data-nodeid=\"488\">@Entity<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"490\">@ManyToOne<\/code>) f\u00fcr ORM-Mapping<\/p>\n<\/li>\n<li data-nodeid=\"218\">\n<p data-nodeid=\"219\">Abh\u00e4ngigkeitsinjektion (<code data-backticks=\"1\" data-nodeid=\"493\">@Autowired<\/code>) f\u00fcr lose Kopplung<\/p>\n<\/li>\n<li data-nodeid=\"220\">\n<p data-nodeid=\"221\">Aufz\u00e4hlung f\u00fcr typsichere Verwaltung des Bestellstatus<\/p>\n<\/li>\n<li data-nodeid=\"222\">\n<p data-nodeid=\"223\">Private Hilfsmethoden (<code data-backticks=\"1\" data-nodeid=\"497\">-validatePaymentDetails<\/code>) kapseln Logik<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"224\"\/>\n<h2 data-nodeid=\"225\"><strong data-nodeid=\"504\">Erweiterte Muster und bew\u00e4hrte Praktiken<\/strong><\/h2>\n<h3 data-nodeid=\"226\"><strong data-nodeid=\"508\">1. Umgang mit Sichtbarkeit und Kapselung<\/strong><\/h3>\n<p id=\"CXceEyL\"><img alt=\"\" class=\"alignnone size-full wp-image-24658\" decoding=\"async\" height=\"229\" loading=\"lazy\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba223951b.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba223951b.png 975w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba223951b-300x70.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba223951b-768x180.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba223951b-150x35.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba223951b-400x94.png 400w\" width=\"975\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:PL7DIiH03BuN-Wu1Bolg2nIHxRA81P62uZsTPhjXfncOoQmkeizkseeAUqlcIxwVp3efHisZBmldCINOe1ngvq8MXO-o0BZ2fNlAOqUnWcUDBCEC3AGRz2YELfSLR7ZOakCH_GJUT0jozguH9Q5J3lB0IKCyLV1enUtB7t0tJLuuz2vxL6f4ALBILRIcWZxapjEPuXTFOuA-pZthvEWOk2-Bpx8e2mbA47dOAuJT_v1p46YDaLq5TTl0BaIWzuKAd6SIJRDpQ2CVPmVDZnBOzPIkmTZ1paGfiJdxtVQdEOVjcRfJwYkuD_AKk-NMqvmaoplRXnRT0GUZV-M5vurrpm89Hu8nzDbJMP3qavnLQoljuxu1\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:PL5BJWCn3DsFD7UmnAO8Ue4HGctvLW9KgR1XvqayCr5JHqgS0aNq69o0OtGt5oEP8e74pivxVdxFcGH1Bt5joq9P305coAkfKYwom7jP09pWeNk8wvfy1KlnXji1QKbcQ94LZOuhc9dsafHPeytWk3uW_zx58mTKOXpVcY3ElrLmbugpnr_WF3EF55eLBGhDMSXJa95FJGNQnThIluqxascCTXgraUneuumkYu-oA0jsGk1Dsmcuvc_88GZqdqr3BDQeheBfOWvDl_T0hrcGuCAQ18R1FYoysQ1KC9XYyl0SqmrPd_xGWPE8m3Qs_HUtMN480pSKLDVlPPjchxFwKnPOvQCJZw_y2vdKnyDfTx305INcCelLwC5msjMXhK5Jch0rCTmx7MsoHQmX1ooBIIhJPtu3\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"227\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass BankAccount {\r\n  +accountNumber: String\r\n  +getBalance(): BigDecimal\r\n  -balance: BigDecimal\r\n  -transactionHistory: List&lt;Transaction&gt;\r\n  #calculateInterest(rate: double): BigDecimal\r\n  ~internalAudit(): void\r\n}\r\n\r\nnote right of BankAccount\r\n  + \u00d6ffentlich: API f\u00fcr externe Clients\r\n  - Privat: Interner Zustand, extern nicht zug\u00e4nglich\r\n  # Gesch\u00fctzt: F\u00fcr Unterklassen-Erweiterung\r\n  ~ Paket: Sichtbar innerhalb desselben Moduls\r\nend note\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:PL5BJWCn3DsFD7UmnAO8Ue4HGctvLW9KgR1XvqayCr5JHqgS0aNq69o0OtGt5oEP8e74pivxVdxFcGH1Bt5joq9P305coAkfKYwom7jP09pWeNk8wvfy1KlnXji1QKbcQ94LZOuhc9dsafHPeytWk3uW_zx58mTKOXpVcY3ElrLmbugpnr_WF3EF55eLBGhDMSXJa95FJGNQnThIluqxascCTXgraUneuumkYu-oA0jsGk1Dsmcuvc_88GZqdqr3BDQeheBfOWvDl_T0hrcGuCAQ18R1FYoysQ1KC9XYyl0SqmrPd_xGWPE8m3Qs_HUtMN480pSKLDVlPPjchxFwKnPOvQCJZw_y2vdKnyDfTx305INcCelLwC5msjMXhK5Jch0rCTmx7MsoHQmX1ooBIIhJPtu3\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:PL7DIiH03BuN-Wu1Bolg2nIHxRA81P62uZsTPhjXfncOoQmkeizkseeAUqlcIxwVp3efHisZBmldCINOe1ngvq8MXO-o0BZ2fNlAOqUnWcUDBCEC3AGRz2YELfSLR7ZOakCH_GJUT0jozguH9Q5J3lB0IKCyLV1enUtB7t0tJLuuz2vxL6f4ALBILRIcWZxapjEPuXTFOuA-pZthvEWOk2-Bpx8e2mbA47dOAuJT_v1p46YDaLq5TTl0BaIWzuKAd6SIJRDpQ2CVPmVDZnBOzPIkmTZ1paGfiJdxtVQdEOVjcRfJwYkuD_AKk-NMqvmaoplRXnRT0GUZV-M5vurrpm89Hu8nzDbJMP3qavnLQoljuxu1\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"228\"><strong data-nodeid=\"512\">2. Vielfachheit in realen Szenarien<\/p>\n<p><\/strong><\/h3>\n<p id=\"TInrWNg\"><img alt=\"\" class=\"alignnone size-full wp-image-24659\" decoding=\"async\" height=\"572\" loading=\"lazy\" sizes=\"auto, (max-width: 441px) 100vw, 441px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba3fdcfe0.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba3fdcfe0.png 441w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba3fdcfe0-231x300.png 231w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba3fdcfe0-116x150.png 116w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba3fdcfe0-400x519.png 400w\" width=\"441\"\/><\/p>\n<h3 data-nodeid=\"228\"><strong data-nodeid=\"512\">\u00a0<\/strong><\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:NPB1JiCm38RlbVeELYziOwlMQoNG1kom0m9fJn1IiqKaSKdSYGeXyImy6a-2sswmSOj__VxzsSeYiWhSE9icsgeOOREZkZP-UoiolAS9mAMggZMZ6zM1gaPp2O_3Omglt9PWF8zBs9EfUdT0HtiyRLXN9MmuIAZudeWiAfyc7sbod7d8Euppok6neHVgOBGeDsPxXzeuPNlL-0sJVlcVU05Bq1sxLXvsQeym1oPmohTW12fsbfNIkxw2WCyOq6kCW6zAissXW0DtcfmT8oiocCncaCtpV9BzGfUWoRCoFi9r1-29KPYOoNMSzurbKrkZ3RSG6eknxEJlpo_eSk0A7cesv9MT3f0ZHr7eoJdouwEr4D_gm4SUnQHyfPX2Epv9AyxIee1RiMA-pQVTJiz6ojfeRWB-9GyGImOveWpkquSM2XM6uMXYHrz1jrkQBEGfF-O7\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:NPB1IkH048RlWRn3CHTdT1oSQy357PN51N5XGC-TT2KfqgcEtPKH5S5dMRpx4Bx9F8dTcHdNsLlpyzTNNuMSUL5E-jQaIM6Kzx2iRTSHL-SXXkSq0JXIMby9jkFEMTqNai6VpMCAz_AO0R5CCbXPqaFROMjN-7tWIcUm51UWePTRQr1nchoaoMxdbhTTnwh5tS0GT8wAa2oeki22McM6b7WfjcZ-9nx09J7SAOVSM9T3evZX17Boi28q23-TK8C6QfKZn_vlrEY-uXMw1oGlK26h7bHV0WRWeDX8cknzdz5y18V7np0wcSqEHrztP80izSUR4VWHdTWA1aqHsqRrs-1HggAkaSGxhD1m5lFrwr-883Y5cqx8iZBJhVHOjH20VKcL5-J9hZuFtL-3Q9GSeokj2zSOAkh9D-Hy3ncgJs4dUXW_pTQlxujPD2_9v6JqF_J6v9fOOzpfDojs4uiO6jDPJv4xE25hYBUcoLbuXf_g4m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"229\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass ShoppingCart {\r\n  +addItem(product: Product, qty: int): void\r\n  +removeItem(productId: String): boolean\r\n}\r\n\r\nclass Product {\r\n  +name: String\r\n  +price: BigDecimal\r\n  +inStock: boolean\r\n}\r\n\r\n' Ein Warenkorb kann 0 bis viele Artikel haben\r\n' Jeder Artikel verweist genau auf ein Produkt\r\nShoppingCart \"1\" *-- \"0..*\" Product : enth\u00e4lt &gt;\r\n\r\nnote bottom\r\n  Vielfachheitsregeln:\r\n  \u2022 0..* = Optional, viele (am h\u00e4ufigsten)\r\n  \u2022 1 = Genau ein (erforderlich)\r\n  \u2022 0..1 = Optional, einzelnes (z.\u202fB. Profilbild)\r\n  \u2022 1..* = Mindestens ein (z.\u202fB. Bestellpositionen)\r\nend note\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:NPB1IkH048RlWRn3CHTdT1oSQy357PN51N5XGC-TT2KfqgcEtPKH5S5dMRpx4Bx9F8dTcHdNsLlpyzTNNuMSUL5E-jQaIM6Kzx2iRTSHL-SXXkSq0JXIMby9jkFEMTqNai6VpMCAz_AO0R5CCbXPqaFROMjN-7tWIcUm51UWePTRQr1nchoaoMxdbhTTnwh5tS0GT8wAa2oeki22McM6b7WfjcZ-9nx09J7SAOVSM9T3evZX17Boi28q23-TK8C6QfKZn_vlrEY-uXMw1oGlK26h7bHV0WRWeDX8cknzdz5y18V7np0wcSqEHrztP80izSUR4VWHdTWA1aqHsqRrs-1HggAkaSGxhD1m5lFrwr-883Y5cqx8iZBJhVHOjH20VKcL5-J9hZuFtL-3Q9GSeokj2zSOAkh9D-Hy3ncgJs4dUXW_pTQlxujPD2_9v6JqF_J6v9fOOzpfDojs4uiO6jDPJv4xE25hYBUcoLbuXf_g4m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:NPB1JiCm38RlbVeELYziOwlMQoNG1kom0m9fJn1IiqKaSKdSYGeXyImy6a-2sswmSOj__VxzsSeYiWhSE9icsgeOOREZkZP-UoiolAS9mAMggZMZ6zM1gaPp2O_3Omglt9PWF8zBs9EfUdT0HtiyRLXN9MmuIAZudeWiAfyc7sbod7d8Euppok6neHVgOBGeDsPxXzeuPNlL-0sJVlcVU05Bq1sxLXvsQeym1oPmohTW12fsbfNIkxw2WCyOq6kCW6zAissXW0DtcfmT8oiocCncaCtpV9BzGfUWoRCoFi9r1-29KPYOoNMSzurbKrkZ3RSG6eknxEJlpo_eSk0A7cesv9MT3f0ZHr7eoJdouwEr4D_gm4SUnQHyfPX2Epv9AyxIee1RiMA-pQVTJiz6ojfeRWB-9GyGImOveWpkquSM2XM6uMXYHrz1jrkQBEGfF-O7\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"230\"><strong data-nodeid=\"516\">3. Abstrakte Klassen im Vergleich zu Schnittstellen<\/strong><\/h3>\n<p id=\"qaBNIMo\"><img alt=\"\" class=\"alignnone size-full wp-image-24660\" decoding=\"async\" height=\"374\" loading=\"lazy\" sizes=\"auto, (max-width: 916px) 100vw, 916px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba595e5e4.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba595e5e4.png 916w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba595e5e4-300x122.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba595e5e4-768x314.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba595e5e4-150x61.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eba595e5e4-400x163.png 400w\" width=\"916\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:ZPBDIiGm4CVlWRp3W1UbxWiK3olemOEBq2UOfjDs95yaamLHtzsqu69tz-0jpCTl_ZF_xBDWakAiLjXdIMW4ZCMSuH24HpOe73nyQWLmayXmPFBIGYU9_RH67UMC4_sDDITM9Z_SthNGXs09_PgqONeYoqTA7qlg67ZGwbihhTWBfH4DmRD3jfSIcbpwTp8R0St5Z3DMzzfT8SKvU3eKrrFw1sq3UFZQxIuLNYiw6xsGV122nDCi44ROPW4UDoPKOJCc6g2wLBiQYDKiHWlieYLNdJWrlloksy9RIGGc-1Lq3wvOuLeEx6TABEZhJNA9CIJHgcuBYoIjzlLPFy8F\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:ZP8zJiGm48NxIBd3I3IWi1TOKImI22745aHGq3dEssJ0Fv4zMSJVpUYu64vMGcIp1Pqry-RpynklegWWlJLvfgeeGMaXRLICjFR26zPAs3jwppEYem3D7SF9aae9x9gnQX6ZQl2tLloo8bnzVBAaodi3vSQcySq536yHNeVMrdETPvzvbcVi166ZDEZIAZPp2qNigoVeYO5YTiSUgxmj3v2wrZkiUriX_8Cs0PnzB1PpXuT4UrSF9ES55BXfXVo6fbsYyp6uvoIv6RQGKhs21RkeB08zzcbThgQ216nUm15qRJkJ94uOeT-zeTIjOv4eC2OHxj9y6dv0IEZcbEw7PA9yVybR6Y2BTiYftKaGgf6IKg31QfwjqZ5za1y0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"231\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nabstract class Notification {\r\n  #recipient: String\r\n  #message: String\r\n  +abstract send(): boolean\r\n  +logDelivery(): void\r\n}\r\n\r\ninterface EmailNotification {\r\n  +subject: String\r\n  +send(): boolean\r\n}\r\n\r\ninterface SMSNotification {\r\n  +phoneNumber: String\r\n  +send(): boolean\r\n}\r\n\r\nNotification &lt;|-- EmailNotification\r\nNotification &lt;|-- SMSNotification\r\n\r\nnote right of Notification\r\n  Abstrakte Klasse: Gemeinsamer Zustand + teilweise Implementierung\r\n  Schnittstelle: Reiner Vertrag, Unterst\u00fctzung mehrfacher Vererbung\r\nend note\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:ZP8zJiGm48NxIBd3I3IWi1TOKImI22745aHGq3dEssJ0Fv4zMSJVpUYu64vMGcIp1Pqry-RpynklegWWlJLvfgeeGMaXRLICjFR26zPAs3jwppEYem3D7SF9aae9x9gnQX6ZQl2tLloo8bnzVBAaodi3vSQcySq536yHNeVMrdETPvzvbcVi166ZDEZIAZPp2qNigoVeYO5YTiSUgxmj3v2wrZkiUriX_8Cs0PnzB1PpXuT4UrSF9ES55BXfXVo6fbsYyp6uvoIv6RQGKhs21RkeB08zzcbThgQ216nUm15qRJkJ94uOeT-zeTIjOv4eC2OHxj9y6dv0IEZcbEw7PA9yVybR6Y2BTiYftKaGgf6IKg31QfwjqZ5za1y0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:ZPBDIiGm4CVlWRp3W1UbxWiK3olemOEBq2UOfjDs95yaamLHtzsqu69tz-0jpCTl_ZF_xBDWakAiLjXdIMW4ZCMSuH24HpOe73nyQWLmayXmPFBIGYU9_RH67UMC4_sDDITM9Z_SthNGXs09_PgqONeYoqTA7qlg67ZGwbihhTWBfH4DmRD3jfSIcbpwTp8R0St5Z3DMzzfT8SKvU3eKrrFw1sq3UFZQxIuLNYiw6xsGV122nDCi44ROPW4UDoPKOJCc6g2wLBiQYDKiHWlieYLNdJWrlloksy9RIGGc-1Lq3wvOuLeEx6TABEZhJNA9CIJHgcuBYoIjzlLPFy8F\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>PlantUML in VPasCode bearbeiten<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<hr data-nodeid=\"232\"\/>\n<h2 data-nodeid=\"233\"><strong data-nodeid=\"522\">H\u00e4ufige Fehler und wie man sie vermeidet<\/strong><\/h2>\n<table data-nodeid=\"235\">\n<thead data-nodeid=\"236\">\n<tr data-nodeid=\"237\">\n<th data-nodeid=\"239\">Fehlerquelle<\/th>\n<th data-nodeid=\"240\">Symptom<\/th>\n<th data-nodeid=\"241\">L\u00f6sung<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"245\">\n<tr data-nodeid=\"246\">\n<td data-nodeid=\"247\"><strong data-nodeid=\"529\">\u00dcberdimensionierung<\/strong><\/td>\n<td data-nodeid=\"248\">Diagramme mit mehr als 50 Klassen, schwer lesbar<\/td>\n<td data-nodeid=\"249\">Beginnen Sie mit einem konzeptionellen Modell; teilen Sie in mehrere Diagramme aufgrund begrenzter Kontexte auf<\/td>\n<\/tr>\n<tr data-nodeid=\"250\">\n<td data-nodeid=\"251\"><strong data-nodeid=\"535\">Verwechslung von Aggregation und Komposition<\/strong><\/td>\n<td data-nodeid=\"252\">Unklare Verwaltung des Objekt-Lebenszyklus<\/td>\n<td data-nodeid=\"253\">Fragen Sie: \u201eWenn das Ganze zerst\u00f6rt wird, \u00fcberleben die Teile dann?\u201c Wenn nein \u2192 verwenden Sie Komposition (<code data-backticks=\"1\" data-nodeid=\"542\">*--<\/code>)<\/td>\n<\/tr>\n<tr data-nodeid=\"254\">\n<td data-nodeid=\"255\"><strong data-nodeid=\"547\">Ignorieren der Navigierbarkeit<\/strong><\/td>\n<td data-nodeid=\"256\">Zweirichtungspfeile \u00fcberall<\/td>\n<td data-nodeid=\"257\">F\u00fcge Navigierbarkeitspfeile nur dort hinzu, wo eine Durchquerung im Code erforderlich ist<\/td>\n<\/tr>\n<tr data-nodeid=\"258\">\n<td data-nodeid=\"259\"><strong data-nodeid=\"553\">Mischen von Abstraktionsstufen<\/strong><\/td>\n<td data-nodeid=\"260\">DTOs und Entit\u00e4tsklassen in derselben Diagramm mischen<\/td>\n<td data-nodeid=\"261\">Trenne Diagramme nach Perspektive (konzeptuell\/ Spezifikation\/Implementierung)<\/td>\n<\/tr>\n<tr data-nodeid=\"262\">\n<td data-nodeid=\"263\"><strong data-nodeid=\"559\">Ignorieren der Versionskontrolle<\/strong><\/td>\n<td data-nodeid=\"264\">Diagramme werden veraltet<\/td>\n<td data-nodeid=\"265\">Verwende PlantUML-Textdateien in Git; generiere Bilder in CI\/CD-Pipeline<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"266\"\/>\n<h2 data-nodeid=\"267\"><strong data-nodeid=\"565\">Empfehlung f\u00fcr Werkzeuge: Warum PlantUML?<\/strong><\/h2>\n<p data-nodeid=\"268\">F\u00fcr die obige Fallstudie<strong data-nodeid=\"595\">PlantUML<\/strong>wurde gew\u00e4hlt, weil es:<br \/>\n\u2705\u00a0<strong data-nodeid=\"596\">Textbasiert<\/strong>: Diagramme sind Code \u2013 versionierbar, vergleichbar, \u00fcberpr\u00fcfbar<br \/>\n\u2705\u00a0<strong data-nodeid=\"597\">Portabel<\/strong>: Rendert lokal oder \u00fcber Cloud-Dienst; integriert sich mit Confluence, GitHub, VS Code<br \/>\n\u2705\u00a0<strong data-nodeid=\"598\">Wartbar<\/strong>: Aktualisiere Diagrammlogik ohne neue K\u00e4stchen zu zeichnen<br \/>\n\u2705\u00a0<strong data-nodeid=\"599\">Zusammenarbeit<\/strong>: Nicht-Designer k\u00f6nnen \u00fcber einfache Syntax beitragen<\/p>\n<p data-nodeid=\"269\"><strong data-nodeid=\"603\">Beispielarbeitsablauf:<\/strong><\/p>\n<pre class=\"lang-bash\" data-nodeid=\"270\"><code data-language=\"bash\"># 1. Diagramm als Text schreiben\r\necho '@startumlnclass User { +name: String }n@enduml' &gt; UserDiagram.puml\r\n\r\n# 2. PNG\/SVG generieren\r\nplantuml -tpng UserDiagram.puml\r\n\r\n# 3. Sowohl .puml als auch generiertes Bild in Git commiten\r\ngit add UserDiagram.puml UserDiagram.png\r\n<\/code><\/pre>\n<hr data-nodeid=\"271\"\/>\n<h2 data-nodeid=\"272\"><strong data-nodeid=\"607\">Fazit<\/strong><\/h2>\n<p data-nodeid=\"273\">Klassendiagramme sind weitaus mehr als akademische \u00dcbungen \u2013 sie sind lebendige Artefakte, die die Ausrichtung f\u00f6rdern, technischen Schulden reduzieren und die Einarbeitung im gesamten Lebenszyklus der Softwareentwicklung beschleunigen. Wie in unserer Fallstudie zum E-Commerce gezeigt wurde, entfaltet sich die wahre Kraft von Klassendiagrammen, wenn sie sich durch drei entscheidende Perspektiven entwickeln:<\/p>\n<p data-nodeid=\"274\">\ud83d\udd39\u00a0<strong data-nodeid=\"626\">Konzeptionell<\/strong>: Verankere die Stakeholder in einem gemeinsamen Verst\u00e4ndnis des Fachbereichs<br \/>\n\ud83d\udd39\u00a0<strong data-nodeid=\"627\">Spezifikation<\/strong>: Definiere saubere Schnittstellen f\u00fcr eine modulare Architektur<br \/>\n\ud83d\udd39\u00a0<strong data-nodeid=\"628\">Implementierung<\/strong>: F\u00fchre Entwickler mit pr\u00e4zisen, technologiebewussten Baupl\u00e4nen<\/p>\n<p data-nodeid=\"275\">Durch die Einf\u00fchrung von\u00a0<strong data-nodeid=\"638\">PlantUML<\/strong>f\u00fcr die Praxis des Diagramm-als-Code gewinnen Teams die Agilit\u00e4t, Designs gemeinsam mit dem Code zu iterieren, wodurch die Dokumentation niemals hinter der Implementierung zur\u00fcckbleibt. Denke daran: Das beste Klassendiagramm ist nicht das detaillierteste \u2013 es ist dasjenige, das die richtigen Fragen f\u00fcr seine Zielgruppe zum richtigen Zeitpunkt beantwortet.<\/p>\n<p data-nodeid=\"276\"><strong data-nodeid=\"643\">Letzter Schlussgedanke<\/strong>: Beginne einfach, validiere mit den Stakeholdern, verfeinere schrittweise und verkn\u00fcpfe Diagrammelemente immer mit messbarem gesch\u00e4ftlichen Wert. Wenn Klassendiagramme zu kooperativen Werkzeugen statt zu Liefergegenst\u00e4nden werden, verwandeln sie sich von einer Belastung in Treiber f\u00fcr bessere Software.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Einf\u00fchrung In der heutigen komplexen Softwareentwicklungswelt sind klare Kommunikation und pr\u00e4zises Systemmodellieren entscheidend f\u00fcr den Projekterfolg. Zu den m\u00e4chtigsten Werkzeugen in einem Softwarearchitekten-Toolkit geh\u00f6rt das\u00a0UML-Klassendiagramm\u2014eine visuelle Sprache, die die L\u00fccke zwischen abstrakten Anforderungen und konkreter Implementierung schlie\u00dft. Diese Fallstudie untersucht, wie Klassendiagramme die Grundlage der objektorientierten Gestaltung bilden, wodurch Teams die statische Systemstruktur modellieren, Beziehungen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[62,36],"tags":[],"class_list":["post-10509","post","type-post","status-publish","format-standard","hentry","category-ai","category-uml","loop-entry","clr"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Die Beherrschung von UML-Klassendiagrammen: Eine praktische Fallstudie im Systemdesign mit PlantUML - Visual Paradigm Bloggen<\/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:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Die Beherrschung von UML-Klassendiagrammen: Eine praktische Fallstudie im Systemdesign mit PlantUML - Visual Paradigm Bloggen\" \/>\n<meta property=\"og:description\" content=\"Einf\u00fchrung In der heutigen komplexen Softwareentwicklungswelt sind klare Kommunikation und pr\u00e4zises Systemmodellieren entscheidend f\u00fcr den Projekterfolg. Zu den m\u00e4chtigsten Werkzeugen in einem Softwarearchitekten-Toolkit geh\u00f6rt das\u00a0UML-Klassendiagramm\u2014eine visuelle Sprache, die die L\u00fccke zwischen abstrakten Anforderungen und konkreter Implementierung schlie\u00dft. Diese Fallstudie untersucht, wie Klassendiagramme die Grundlage der objektorientierten Gestaltung bilden, wodurch Teams die statische Systemstruktur modellieren, Beziehungen [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/\" \/>\n<meta property=\"og:site_name\" content=\"Visual Paradigm Bloggen\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-21T07:55:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-30T08:06:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8.png\" \/>\n<meta name=\"author\" content=\"Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/\",\"url\":\"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/\",\"name\":\"Die Beherrschung von UML-Klassendiagrammen: Eine praktische Fallstudie im Systemdesign mit PlantUML - Visual Paradigm Bloggen\",\"isPartOf\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8.png\",\"datePublished\":\"2026-05-21T07:55:49+00:00\",\"dateModified\":\"2026-05-30T08:06:34+00:00\",\"author\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/de\/#\/schema\/person\/a649c442f11a53040710ddec750926c6\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/#primaryimage\",\"url\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8.png\",\"contentUrl\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.visual-paradigm.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Die Beherrschung von UML-Klassendiagrammen: Eine praktische Fallstudie im Systemdesign mit PlantUML\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/de\/#website\",\"url\":\"https:\/\/blog.visual-paradigm.com\/de\/\",\"name\":\"Visual Paradigm Bloggen\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.visual-paradigm.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/de\/#\/schema\/person\/a649c442f11a53040710ddec750926c6\",\"name\":\"Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g\",\"caption\":\"Admin\"},\"url\":\"https:\/\/blog.visual-paradigm.com\/de\/author\/vpadminuser\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Die Beherrschung von UML-Klassendiagrammen: Eine praktische Fallstudie im Systemdesign mit PlantUML - Visual Paradigm Bloggen","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:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/","og_locale":"de_DE","og_type":"article","og_title":"Die Beherrschung von UML-Klassendiagrammen: Eine praktische Fallstudie im Systemdesign mit PlantUML - Visual Paradigm Bloggen","og_description":"Einf\u00fchrung In der heutigen komplexen Softwareentwicklungswelt sind klare Kommunikation und pr\u00e4zises Systemmodellieren entscheidend f\u00fcr den Projekterfolg. Zu den m\u00e4chtigsten Werkzeugen in einem Softwarearchitekten-Toolkit geh\u00f6rt das\u00a0UML-Klassendiagramm\u2014eine visuelle Sprache, die die L\u00fccke zwischen abstrakten Anforderungen und konkreter Implementierung schlie\u00dft. Diese Fallstudie untersucht, wie Klassendiagramme die Grundlage der objektorientierten Gestaltung bilden, wodurch Teams die statische Systemstruktur modellieren, Beziehungen [&hellip;]","og_url":"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/","og_site_name":"Visual Paradigm Bloggen","article_published_time":"2026-05-21T07:55:49+00:00","article_modified_time":"2026-05-30T08:06:34+00:00","og_image":[{"url":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8.png","type":"","width":"","height":""}],"author":"Admin","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Admin","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/","url":"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/","name":"Die Beherrschung von UML-Klassendiagrammen: Eine praktische Fallstudie im Systemdesign mit PlantUML - Visual Paradigm Bloggen","isPartOf":{"@id":"https:\/\/blog.visual-paradigm.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/#primaryimage"},"image":{"@id":"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8.png","datePublished":"2026-05-21T07:55:49+00:00","dateModified":"2026-05-30T08:06:34+00:00","author":{"@id":"https:\/\/blog.visual-paradigm.com\/de\/#\/schema\/person\/a649c442f11a53040710ddec750926c6"},"breadcrumb":{"@id":"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/#primaryimage","url":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8.png","contentUrl":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/05\/img_6a0eb9275d5e8.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.visual-paradigm.com\/de\/mastering-uml-class-diagrams-a-practical-case-study-in-system-design-with-plantuml\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.visual-paradigm.com\/de\/"},{"@type":"ListItem","position":2,"name":"Die Beherrschung von UML-Klassendiagrammen: Eine praktische Fallstudie im Systemdesign mit PlantUML"}]},{"@type":"WebSite","@id":"https:\/\/blog.visual-paradigm.com\/de\/#website","url":"https:\/\/blog.visual-paradigm.com\/de\/","name":"Visual Paradigm Bloggen","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.visual-paradigm.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/blog.visual-paradigm.com\/de\/#\/schema\/person\/a649c442f11a53040710ddec750926c6","name":"Admin","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blog.visual-paradigm.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g","caption":"Admin"},"url":"https:\/\/blog.visual-paradigm.com\/de\/author\/vpadminuser\/"}]}},"modified_by":"Admin","_links":{"self":[{"href":"https:\/\/blog.visual-paradigm.com\/de\/wp-json\/wp\/v2\/posts\/10509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.visual-paradigm.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.visual-paradigm.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/de\/wp-json\/wp\/v2\/comments?post=10509"}],"version-history":[{"count":0,"href":"https:\/\/blog.visual-paradigm.com\/de\/wp-json\/wp\/v2\/posts\/10509\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.visual-paradigm.com\/de\/wp-json\/wp\/v2\/media?parent=10509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/de\/wp-json\/wp\/v2\/categories?post=10509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/de\/wp-json\/wp\/v2\/tags?post=10509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}