{"id":11082,"date":"2026-06-03T13:38:37","date_gmt":"2026-06-03T05:38:37","guid":{"rendered":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"},"modified":"2026-06-03T13:38:37","modified_gmt":"2026-06-03T05:38:37","slug":"comprehensive-guide-to-uml-class-diagrams-diagram-as-code","status":"publish","type":"post","link":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","title":{"rendered":"Gu\u00eda completa sobre diagramas de clases UML (Diagrama como c\u00f3digo)"},"content":{"rendered":"<blockquote data-nodeid=\"1675\">\n<p data-nodeid=\"1676\">\ud83d\udca1\u00a0<strong data-nodeid=\"2062\">Nota<\/strong>: Todos los diagramas se proporcionan en\u00a0<strong data-nodeid=\"2063\">PlantUML<\/strong> formato. Puedes renderizarlos de inmediato usando el <a href=\"http:\/\/vpascode.com\">Visual Paradigm Diagrama como c\u00f3digo<\/a>.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"1696\"\/>\n<h2 data-nodeid=\"1697\">\ud83d\udd39 Introducci\u00f3n a UML<\/h2>\n<h3 data-nodeid=\"1698\">\u00bfQu\u00e9 es UML?<\/h3>\n<blockquote data-nodeid=\"1699\">\n<p data-nodeid=\"1700\"><em data-nodeid=\"2097\">\u201cEl Lenguaje Unificado de Modelado (UML) es un lenguaje de modelado visual de prop\u00f3sito general que se utiliza para especificar, visualizar, construir y documentar los artefactos de un sistema de software.\u201d<\/em>\u00a0\u2014 Rumbaugh et al., 1999<\/p>\n<\/blockquote>\n<p data-nodeid=\"1701\"><strong data-nodeid=\"2101\">Caracter\u00edsticas clave:<\/strong><\/p>\n<ul data-nodeid=\"1702\">\n<li data-nodeid=\"1703\">\n<p data-nodeid=\"1704\">\ud83c\udfa8\u00a0<strong data-nodeid=\"2107\">Notaci\u00f3n visual<\/strong>: Sintaxis gr\u00e1fica para modelar sistemas<\/p>\n<\/li>\n<li data-nodeid=\"1705\">\n<p data-nodeid=\"1706\">\ud83d\udcd0\u00a0<strong data-nodeid=\"2113\">Estandarizado<\/strong>: Est\u00e1ndar adoptado por OMG desde 1997<\/p>\n<\/li>\n<li data-nodeid=\"1707\">\n<p data-nodeid=\"1708\">\ud83d\udd27\u00a0<strong data-nodeid=\"2119\">Lenguaje, no un m\u00e9todo<\/strong>: Define notaci\u00f3n, no proceso<\/p>\n<\/li>\n<li data-nodeid=\"1709\">\n<p data-nodeid=\"1710\">\ud83c\udf10\u00a0<strong data-nodeid=\"2125\">Alcance amplio<\/strong>: Modela procesos de negocio, funciones del sistema, estructuras de c\u00f3digo y esquemas de bases de datos<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1711\">Lo que UML NO ES<\/h3>\n<table data-nodeid=\"1713\">\n<thead data-nodeid=\"1714\">\n<tr data-nodeid=\"1715\">\n<th data-nodeid=\"1717\">Error com\u00fan<\/th>\n<th data-nodeid=\"1718\">Realidad<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1721\">\n<tr data-nodeid=\"1722\">\n<td data-nodeid=\"1723\">Una metodolog\u00eda de desarrollo<\/td>\n<td data-nodeid=\"1724\">Solo una notaci\u00f3n de modelado<\/td>\n<\/tr>\n<tr data-nodeid=\"1725\">\n<td data-nodeid=\"1726\">Un lenguaje de programaci\u00f3n<\/td>\n<td data-nodeid=\"1727\">Lenguaje de especificaci\u00f3n abstracta<\/td>\n<\/tr>\n<tr data-nodeid=\"1728\">\n<td data-nodeid=\"1729\">Solo para programaci\u00f3n orientada a objetos<\/td>\n<td data-nodeid=\"1730\">Aplicable a bases de datos, modelado de negocios, etc.<\/td>\n<\/tr>\n<tr data-nodeid=\"1731\">\n<td data-nodeid=\"1732\">Definido con precisi\u00f3n en todos los aspectos<\/td>\n<td data-nodeid=\"1733\">Algunas ambig\u00fcedades sem\u00e1nticas permanecen en las primeras versiones<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"1734\"\/>\n<h2 data-nodeid=\"1735\">\ud83d\udd39 Historia y estandarizaci\u00f3n<\/h2>\n<h3 data-nodeid=\"1736\">L\u00ednea de tiempo de evoluci\u00f3n<\/h3>\n<p id=\"xFCmEsT\"><img alt=\"The Evolution of Unified Modeling Language (UML)\" class=\"alignnone wp-image-12647 size-full\" decoding=\"async\" height=\"658\" loading=\"lazy\" sizes=\"auto, (max-width: 1208px) 100vw, 1208px\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" srcset=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png 1208w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19-300x163.png 300w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19-1024x558.png 1024w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19-768x418.png 768w\" width=\"1208\"\/><\/p>\n<pre data-nodeid=\"1737\"><code>1965-1970: Simula-67 (primer lenguaje orientado a objetos)\r\n     \u2193\r\nA\u00f1os 70-80: Smalltalk en Xerox PARC\r\n     \u2193\r\n1984: C++ presentado por Bjarne Stroustrup\r\n     \u2193\r\n1988-1992: Proliferaci\u00f3n de m\u00e9todos orientados a objetos (Booch, OMT, OOSE, etc.)\r\n     \u2193\r\n1994: Rumbaugh se une a Booch en Rational \u2192 Comienza la unificaci\u00f3n\r\n     \u2193\r\n1995: Se publica el borrador UML 0.8\r\n     \u2193\r\n1996: OMG emite una solicitud de propuesta para un lenguaje est\u00e1ndar de modelado\r\n     \u2193\r\n1997: UML 1.1 adoptado por OMG (14 de noviembre)\r\n     \u2193\r\n2000: UML 1.3 publicado formalmente\r\n     \u2193\r\n2003: UML 1.5 publicado; se acepta la superestructura de UML 2.0\r\n<\/code><\/pre>\n<h3 data-nodeid=\"1738\">\u00bfPor qu\u00e9 UML gan\u00f3 la &#8220;guerra de m\u00e9todos&#8221;<\/h3>\n<ul data-nodeid=\"1739\">\n<li data-nodeid=\"1740\">\n<p data-nodeid=\"1741\">Consolid\u00f3 m\u00e1s de 50 m\u00e9todos OO competidores en un solo est\u00e1ndar<\/p>\n<\/li>\n<li data-nodeid=\"1742\">\n<p data-nodeid=\"1743\">Apoyado por grandes actores de la industria (IBM, Microsoft, Oracle, HP)<\/p>\n<\/li>\n<li data-nodeid=\"1744\">\n<p data-nodeid=\"1745\">Ofreci\u00f3 mecanismos de extensi\u00f3n para personalizaci\u00f3n<\/p>\n<\/li>\n<li data-nodeid=\"1746\">\n<p data-nodeid=\"1747\">Se convirti\u00f3 en el est\u00e1ndar de facto para el modelado orientado a objetos<\/p>\n<\/li>\n<\/ul>\n<blockquote data-nodeid=\"1748\">\n<p data-nodeid=\"1749\">\u26a0\ufe0f\u00a0<strong data-nodeid=\"2156\">Perspectiva cr\u00edtica<\/strong>: Algunos argumentan que UML es &#8220;un lenguaje monstruoso dise\u00f1ado por un comit\u00e9&#8221; con sem\u00e1nticas imprecisas en sus primeras versiones.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"1750\"\/>\n<h2 data-nodeid=\"1751\">\ud83d\udd39 Clases y atributos<\/h2>\n<h3 data-nodeid=\"1752\">Estructura de clase<\/h3>\n<p data-nodeid=\"1753\">Una clase UML se representa como un rect\u00e1ngulo con hasta tres compartimentos.<\/p>\n<p id=\"zEMvvmf\"><img alt=\"\" class=\"alignnone size-full wp-image-12648\" decoding=\"async\" height=\"183\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbbe222b36.png\" width=\"258\"\/><\/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:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" 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>Editar PlantUML en VPasCode<\/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:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" \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=\"1754\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  firstName: String\r\n  lastName: String\r\n  email[0..1]: String\r\n  encryptedPW: String\r\n  + totalPoints(): Integer\r\n  + setPassword(pw: String)\r\n  + checkPW(pw: String): Boolean\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:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" \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:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1755\">Sintaxis de declaraci\u00f3n de atributos<\/h3>\n<pre data-nodeid=\"1756\"><code>[visibilidad] nombre[multiplicidad]: Tipo [= valorPorDefecto] {propiedades}\r\n<\/code><\/pre>\n<p data-nodeid=\"1757\"><strong data-nodeid=\"2164\">Ejemplos de PlantUML:<br \/>\n<\/strong><img alt=\"\" class=\"alignnone size-full wp-image-12649\" decoding=\"async\" height=\"134\" loading=\"lazy\" sizes=\"auto, (max-width: 310px) 100vw, 310px\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc08ba555.png\" srcset=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc08ba555.png 310w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc08ba555-300x130.png 300w\" width=\"310\"\/><\/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:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" 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>Editar PlantUML en VPasCode<\/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:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" \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=\"1758\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  + ProgramOfStudy[0..2]: String = \"MIS\"\r\n  - encryptedPW: String {frozen}\r\n  # internalID: Integer\r\n  ~ packagePrivateData: String\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:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" \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:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1759\">Alcance del atributo<\/h3>\n<ul data-nodeid=\"1760\">\n<li data-nodeid=\"1761\">\n<p data-nodeid=\"1762\"><strong data-nodeid=\"2170\">Alcance de instancia<\/strong>\u00a0(predeterminado): Cada objeto tiene su propio valor<\/p>\n<\/li>\n<li data-nodeid=\"1763\">\n<p data-nodeid=\"1764\"><strong data-nodeid=\"2175\">Alcance de clase<\/strong>\u00a0(est\u00e1tico): Valor \u00fanico compartido por todas las instancias<\/p>\n<\/li>\n<\/ul>\n<p id=\"IpqQSPg\"><img alt=\"\" class=\"alignnone size-full wp-image-12650\" decoding=\"async\" height=\"85\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc920bfbd.png\" width=\"227\"\/><\/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:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" 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>Editar PlantUML en VPasCode<\/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:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" \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=\"1765\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  name: String\r\n  {static} count: Integer\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:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" \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:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1766\">Claves en UML \u26a0\ufe0f<\/h3>\n<p data-nodeid=\"1767\"><strong data-nodeid=\"2181\">Limitaci\u00f3n importante<\/strong>: UML no tiene una noci\u00f3n incorporada de claves. Use estereotipos o valores etiquetados como soluciones alternativas.<\/p>\n<p id=\"hLmsAEe\"><img alt=\"\" class=\"alignnone size-full wp-image-12651\" decoding=\"async\" height=\"117\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbcd8087f6.png\" width=\"184\"\/><\/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:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" \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=\"1768\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  {pk} id: Integer\r\n  {ak1} email: String\r\n  - name: String\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:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" \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:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<hr data-nodeid=\"1769\"\/>\n<h2 data-nodeid=\"1770\">\ud83d\udd39 Asociaciones y relaciones<\/h2>\n<h3 data-nodeid=\"1771\">Asociaci\u00f3n b\u00e1sica y multiplicidad<\/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:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOAJgav-NdfnI7vl5mEgNafG6C1\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOA0Qb59QbvgScfZhnS3gbvAK1p0G00\" \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=\"1772\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Exercise\r\nclass Chapter\r\nExercise \"0..*\" -- \"1..1\" Chapter : PerteneceA\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOA0Qb59QbvgScfZhnS3gbvAK1p0G00\" \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:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOAJgav-NdfnI7vl5mEgNafG6C1\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1773\"><em data-nodeid=\"2190\">Interpretaci\u00f3n<\/em>: Cada ejercicio pertenece a exactamente un cap\u00edtulo; un cap\u00edtulo puede contener cero o m\u00e1s ejercicios.<\/p>\n<h3 data-nodeid=\"1774\">Nombres de rol<\/h3>\n<p data-nodeid=\"1775\">En lugar de (o adem\u00e1s de) los nombres de asociaci\u00f3n, use nombres de rol en los extremos de la asociaci\u00f3n:<\/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:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bO9hRa5EVcLggZwKKSJBvP2Qbm8q6m00\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bO9hRa5EQc9AlZwCKSJBvP2Qbm8q7000\" \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=\"1776\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Person\r\nclass Company\r\nPerson \"0..*\" --&gt; \"0..1\" Company : Empleado\/Empleador\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bO9hRa5EQc9AlZwCKSJBvP2Qbm8q7000\" \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:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bO9hRa5EVcLggZwKKSJBvP2Qbm8q6m00\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1777\"><em data-nodeid=\"2203\">Implementaci\u00f3n<\/em>: El\u00a0<code data-backticks=\"1\" data-nodeid=\"2197\">Persona<\/code>\u00a0tabla tendr\u00eda una clave for\u00e1nea\u00a0<code data-backticks=\"1\" data-nodeid=\"2199\">empleador<\/code>\u00a0referenciando\u00a0<code data-backticks=\"1\" data-nodeid=\"2201\">Empresa<\/code>.<\/p>\n<h3 data-nodeid=\"1778\">Navegabilidad<\/h3>\n<p data-nodeid=\"1779\">Especifique la direcci\u00f3n de recorrido con flechas:<\/p>\n<p id=\"akPRCei\"><img alt=\"\" class=\"alignnone size-full wp-image-12652\" decoding=\"async\" height=\"170\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbd4c87489.png\" width=\"104\"\/><\/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:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgwTWfAXae81GwfUIb0Wm00\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbPmpKejIivCpio72JWd5XnUMrAQ0nI0ooae6UZfQIafwEhQAIWPAY6hSKZDIm4Q1m00\" \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=\"1780\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Ejercicio\r\nclass Cap\u00edtulo\r\nEjercicio \"0..*\" --&gt; \"1\" Cap\u00edtulo\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpKejIivCpio72JWd5XnUMrAQ0nI0ooae6UZfQIafwEhQAIWPAY6hSKZDIm4Q1m00\" \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:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgwTWfAXae81GwfUIb0Wm00\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1781\">\n<li data-nodeid=\"1782\">\n<p data-nodeid=\"1783\">La flecha indica la direcci\u00f3n eficiente de recorrido<\/p>\n<\/li>\n<li data-nodeid=\"1784\">\n<p data-nodeid=\"1785\">En OODBs: se implementa como puntero en una sola direcci\u00f3n<\/p>\n<\/li>\n<li data-nodeid=\"1786\">\n<p data-nodeid=\"1787\">En RDBMS: las uniones funcionan en ambos sentidos independientemente<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1788\">Tipos de colecci\u00f3n con\u00a0<code data-backticks=\"1\" data-nodeid=\"2210\">{ordenado}<br \/>\n<\/code><\/h3>\n<p id=\"eKzRwWF\"><img alt=\"\" class=\"alignnone size-full wp-image-12653\" decoding=\"async\" height=\"187\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbd8d068d1.png\" width=\"129\"\/><\/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:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgw2ae6UdfQId1v1Ik5wloYbDIYr9HQNYw7rBmKe9a0\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbPmJYmulBQaD2SV9k2QbLgKd9cS2HI0ooae6IefwEegA1dewMaf8PGeM2bKvnUbfEObfkJNyd8vfEQb08q60000\" \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=\"1789\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Cap\u00edtulo\r\nclass Ejercicio\r\nCap\u00edtulo \"1\" -- \"0..*\" Ejercicio : {ordenado}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmJYmulBQaD2SV9k2QbLgKd9cS2HI0ooae6IefwEegA1dewMaf8PGeM2bKvnUbfEObfkJNyd8vfEQb08q60000\" \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:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgw2ae6UdfQId1v1Ik5wloYbDIYr9HQNYw7rBmKe9a0\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1790\">\n<li data-nodeid=\"1791\">\n<p data-nodeid=\"1792\"><code data-backticks=\"1\" data-nodeid=\"2211\">{ordenado}<\/code>: Mantenga el orden (use una lista, no un conjunto)<\/p>\n<\/li>\n<li data-nodeid=\"1793\">\n<p data-nodeid=\"1794\">Implementaci\u00f3n en RDBMS: Agregar un atributo de n\u00famero de secuencia<\/p>\n<\/li>\n<\/ul>\n<pre class=\"lang-sql\" data-nodeid=\"1795\"><code data-language=\"sql\">EJERCICIOS (\r\n    id PRIMARY KEY,\r\n    chapter_id REFERENCIA CAP\u00cdTULOS,\r\n    sort_no INTEGER,\r\n    UNIQUE (chapter_id, sort_no)\r\n)\r\n<\/code><\/pre>\n<h3 data-nodeid=\"1796\">Calificadores<\/h3>\n<p data-nodeid=\"1797\">Los calificadores dividen objetos relacionados utilizando un mecanismo similar a una clave:<\/p>\n<p id=\"kMuWSIi\"><img alt=\"\" class=\"alignnone size-full wp-image-12654\" decoding=\"async\" height=\"187\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbdce6a835.png\" width=\"206\"\/><\/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:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDOMbYJcPQPcgHdPr2NhwLWcTUIMewo327rBmKe2K0\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDSc9EPbfcSc9AVf6TdK9UlfM2Prv9QZh8E8VKl1IWDG00\" \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=\"1798\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Chapter\r\nclass Exercise\r\nChapter \"1\" --&gt; \"0..1\" Exercise : &lt;&lt;calificador&gt;&gt; no: Integer\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDSc9EPbfcSc9AVf6TdK9UlfM2Prv9QZh8E8VKl1IWDG00\" \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:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDOMbYJcPQPcgHdPr2NhwLWcTUIMewo327rBmKe2K0\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1799\"><em data-nodeid=\"2220\">Significado<\/em>: Dado un Cap\u00edtulo y un n\u00famero de ejercicio, se devuelve como m\u00e1ximo un Ejercicio.<\/p>\n<h3 data-nodeid=\"1800\">Clases de asociaci\u00f3n<\/h3>\n<p data-nodeid=\"1801\">Cuando una asociaci\u00f3n tiene atributos o operaciones:<\/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:JOun2W8n44NxGExmsLBOi7MgBRImzWHXCsWW9fAPo89uzurWN9jX_f_XyMOMLwJUerPBTCouIFMKfCVJIcK9JBzpZbL2JdXf1NWdP75iyvCUEIHXYtCIkbBHwgtL5uTXCkOmO1pxri6mk3a6v_Wat_uxtvXTvR_SXMPAlebl\" 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>Editar PlantUML en VPasCode<\/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:JOwn2W8n44JxGFvXk5AuO9tg2Ysi_O9mMJGGDvBTW23-kn6CPxFCxB8pRn4DLTijMxFc88ApjaYimnuVLDSaz3kNt3GLnjCQ80ObZqEV7tSlYLKyJgnqeMhDovfl7AQzSxi9yppK28R7DQ2IDCfQ-iCeS6vZ-LzkH0jnxEHl\" \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=\"1802\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student\r\nclass Exercise\r\nclass Solution {\r\n  date: Date\r\n  points: Integer\r\n}\r\nStudent \"0..*\" -- \"0..*\" Exercise : ha resuelto\r\nSolution .. Student\r\nSolution .. Exercise\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:JOwn2W8n44JxGFvXk5AuO9tg2Ysi_O9mMJGGDvBTW23-kn6CPxFCxB8pRn4DLTijMxFc88ApjaYimnuVLDSaz3kNt3GLnjCQ80ObZqEV7tSlYLKyJgnqeMhDovfl7AQzSxi9yppK28R7DQ2IDCfQ-iCeS6vZ-LzkH0jnxEHl\" \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:JOun2W8n44NxGExmsLBOi7MgBRImzWHXCsWW9fAPo89uzurWN9jX_f_XyMOMLwJUerPBTCouIFMKfCVJIcK9JBzpZbL2JdXf1NWdP75iyvCUEIHXYtCIkbBHwgtL5uTXCkOmO1pxri6mk3a6v_Wat_uxtvXTvR_SXMPAlebl\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1803\">\n<li data-nodeid=\"1804\">\n<p data-nodeid=\"1805\">Uno\u00a0<code data-backticks=\"1\" data-nodeid=\"2224\">Soluci\u00f3n<\/code>\u00a0objeto por par (Estudiante, Ejercicio)<\/p>\n<\/li>\n<li data-nodeid=\"1806\">\n<p data-nodeid=\"1807\">Impone: el mismo estudiante no puede enviar dos soluciones para el mismo ejercicio<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1808\">Composici\u00f3n frente a agregaci\u00f3n<\/h3>\n<table data-nodeid=\"1810\">\n<thead data-nodeid=\"1811\">\n<tr data-nodeid=\"1812\">\n<th data-nodeid=\"1814\">Caracter\u00edstica<\/th>\n<th data-nodeid=\"1815\">Composici\u00f3n (<code data-backticks=\"1\" data-nodeid=\"2230\">*--<\/code>)<\/th>\n<th data-nodeid=\"1816\">Agregaci\u00f3n (<code data-backticks=\"1\" data-nodeid=\"2233\">o--<\/code>)<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1820\">\n<tr data-nodeid=\"1821\">\n<td data-nodeid=\"1822\">S\u00edmbolo<\/td>\n<td data-nodeid=\"1823\">Diamante negro<\/td>\n<td data-nodeid=\"1824\">Diamante blanco<\/td>\n<\/tr>\n<tr data-nodeid=\"1825\">\n<td data-nodeid=\"1826\">Relaci\u00f3n<\/td>\n<td data-nodeid=\"1827\">Todo-parte, propiedad fuerte<\/td>\n<td data-nodeid=\"1828\">Todo-parte, referencia d\u00e9bil<\/td>\n<\/tr>\n<tr data-nodeid=\"1829\">\n<td data-nodeid=\"1830\">Ciclo de vida<\/td>\n<td data-nodeid=\"1831\">Partes eliminadas con el todo<\/td>\n<td data-nodeid=\"1832\">Partes independientes<\/td>\n<\/tr>\n<tr data-nodeid=\"1833\">\n<td data-nodeid=\"1834\">Multiplicidad<\/td>\n<td data-nodeid=\"1835\">1 o 0..1 en el lado del todo<\/td>\n<td data-nodeid=\"1836\">Cualquiera<\/td>\n<\/tr>\n<tr data-nodeid=\"1837\">\n<td data-nodeid=\"1838\">Mapeo RDBMS<\/td>\n<td data-nodeid=\"1839\"><code data-backticks=\"1\" data-nodeid=\"2248\">ON DELETE CASCADE<\/code><\/td>\n<td data-nodeid=\"1840\">Clave for\u00e1nea est\u00e1ndar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\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:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AMhgw2ae6UdfQId191Ii5v_pSWlpYp9BC_3o4qdoiIXtJqujIqnCXIXrIyrA0jWC0\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbPmJYmulBQaD2SV9k2QbLgKd9cS2HI0oobewUegA1dewMaf8UGLh1ISytCByek1dCERyv2LvsDNxfXUL5gG25Nja9gN0dG70000\" \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=\"1841\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Cap\u00edtulo\r\nclass Ejercicio\r\nCap\u00edtulo *-- \"0..*\" Ejercicio : Composici\u00f3n\r\nCap\u00edtulo o-- \"0..*\" Ejercicio : Agrupaci\u00f3n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmJYmulBQaD2SV9k2QbLgKd9cS2HI0oobewUegA1dewMaf8UGLh1ISytCByek1dCERyv2LvsDNxfXUL5gG25Nja9gN0dG70000\" \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:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AMhgw2ae6UdfQId191Ii5v_pSWlpYp9BC_3o4qdoiIXtJqujIqnCXIXrIyrA0jWC0\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<hr data-nodeid=\"1842\"\/>\n<h2 data-nodeid=\"1843\">\ud83d\udd39 Operaciones y m\u00e9todos<\/h2>\n<h3 data-nodeid=\"1844\">Sintaxis de declaraci\u00f3n de operaci\u00f3n<\/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:JOzB2i9038RtXTuXonRr0eL2yGLT2k8-fA4Cn1d8P4GflRjJBUWo_-iZNJHKItSf2nAC4Gueb0GjA4nb0R21aUqQ3AMAbeR-s43lZKVMBJXFSdgQOWFx48JHGmkcYUi6pXBGO7BnabXVxQBEtxqf8ytHl0ptFX-UkCgD7tdDKSYk9ihA_ETMpZjpA3UKn2keNYexKAOrzbby13UKHSPsx8Vyuni0\" 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>Editar PlantUML en VPasCode<\/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:JKzB2i903DqNUeSiMzGB50HH5BeKl43811c84yXaH2czkrFjmaqWUTySigDvUKZRa63ES4AX8XZK4AQs0TZ0dVscZjB5SCvUGiJaFC1Ovvrj2p6Hd5zkEC1HLHWJxC6jS3_0HHGTffYlXUszNwxpptMgoHvfNkp7L9T4t5N5Nu6LI5fXA-Hgyp_SFL7KnXGfegnH_QBPWJ7zUFxrV6eCRLE33vn2VVO3\" \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=\"1845\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Calculadora {\r\n  + getTotal(idEstudiante: Integer, inclExtra: Boolean = true): Float {isQuery=true}\r\n  + {static} getInstance(): Calculadora\r\n  + {constructor} Calculadora(valorInicial: Float)\r\n  - recalculate(): 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:JKzB2i903DqNUeSiMzGB50HH5BeKl43811c84yXaH2czkrFjmaqWUTySigDvUKZRa63ES4AX8XZK4AQs0TZ0dVscZjB5SCvUGiJaFC1Ovvrj2p6Hd5zkEC1HLHWJxC6jS3_0HHGTffYlXUszNwxpptMgoHvfNkp7L9T4t5N5Nu6LI5fXA-Hgyp_SFL7KnXGfegnH_QBPWJ7zUFxrV6eCRLE33vn2VVO3\" \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:JOzB2i9038RtXTuXonRr0eL2yGLT2k8-fA4Cn1d8P4GflRjJBUWo_-iZNJHKItSf2nAC4Gueb0GjA4nb0R21aUqQ3AMAbeR-s43lZKVMBJXFSdgQOWFx48JHGmkcYUi6pXBGO7BnabXVxQBEtxqf8ytHl0ptFX-UkCgD7tdDKSYk9ihA_ETMpZjpA3UKn2keNYexKAOrzbby13UKHSPsx8Vyuni0\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1846\"><strong data-nodeid=\"2256\">Especificaci\u00f3n de par\u00e1metros<\/strong>:<\/p>\n<pre data-nodeid=\"1847\"><code>[direcci\u00f3n] nombre: Tipo [= valorPorDefecto]\r\n<\/code><\/pre>\n<ul data-nodeid=\"1848\">\n<li data-nodeid=\"1849\">\n<p data-nodeid=\"1850\">Direcciones:\u00a0<code data-backticks=\"1\" data-nodeid=\"2258\">entrada<\/code>\u00a0(predeterminado),\u00a0<code data-backticks=\"1\" data-nodeid=\"2260\">salida<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"2262\">entrada\/salida<\/code><\/p>\n<\/li>\n<li data-nodeid=\"1851\">\n<p data-nodeid=\"1852\">Los valores predeterminados permiten par\u00e1metros opcionales<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1853\">Estereotipos especiales de operaci\u00f3n<\/h3>\n<table data-nodeid=\"1855\">\n<thead data-nodeid=\"1856\">\n<tr data-nodeid=\"1857\">\n<th data-nodeid=\"1859\">Estereotipo<\/th>\n<th data-nodeid=\"1860\">Prop\u00f3sito<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1863\">\n<tr data-nodeid=\"1864\">\n<td data-nodeid=\"1865\"><code data-backticks=\"1\" data-nodeid=\"2267\">{isQuery=true}<\/code><\/td>\n<td data-nodeid=\"1866\">Garantiza que no se modifique el estado<\/td>\n<\/tr>\n<tr data-nodeid=\"1867\">\n<td data-nodeid=\"1868\"><code data-backticks=\"1\" data-nodeid=\"2269\">{constructor}<\/code><\/td>\n<td data-nodeid=\"1869\">Crea e inicializa nuevas instancias<\/td>\n<\/tr>\n<tr data-nodeid=\"1870\">\n<td data-nodeid=\"1871\"><code data-backticks=\"1\" data-nodeid=\"2271\">{est\u00e1tico}<\/code><\/td>\n<td data-nodeid=\"1872\">Operaci\u00f3n a nivel de clase, sin impl\u00edcito<code data-backticks=\"1\" data-nodeid=\"2273\">self<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"1873\">Operaciones en contexto de base de datos<\/h3>\n<p data-nodeid=\"1874\"><strong data-nodeid=\"2279\">El choque cultural<\/strong>: La programaci\u00f3n orientada a objetos enfatiza la encapsulaci\u00f3n; el modelo relacional enfatiza el acceso directo a los datos.<\/p>\n<p data-nodeid=\"1875\"><strong data-nodeid=\"2284\">Estrategias de implementaci\u00f3n<\/strong>:<\/p>\n<table data-nodeid=\"1876\">\n<thead data-nodeid=\"1877\">\n<tr data-nodeid=\"1878\">\n<th data-nodeid=\"1880\">Tipo de operaci\u00f3n<\/th>\n<th data-nodeid=\"1881\">Implementaci\u00f3n de RDBMS<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1884\">\n<tr data-nodeid=\"1885\">\n<td data-nodeid=\"1886\">Acceso a atributo simple<\/td>\n<td data-nodeid=\"1887\">SELECT\/UPDATE directos<\/td>\n<\/tr>\n<tr data-nodeid=\"1888\">\n<td data-nodeid=\"1889\">Atributo derivado (sin par\u00e1metros)<\/td>\n<td data-nodeid=\"1890\">VISTA de base de datos<\/td>\n<\/tr>\n<tr data-nodeid=\"1891\">\n<td data-nodeid=\"1892\">Atributo derivado (con par\u00e1metros)<\/td>\n<td data-nodeid=\"1893\">Procedimiento almacenado o l\u00f3gica de aplicaci\u00f3n<\/td>\n<\/tr>\n<tr data-nodeid=\"1894\">\n<td data-nodeid=\"1895\">Aplicaci\u00f3n de restricciones complejas<\/td>\n<td data-nodeid=\"1896\">Disparadores o procedimientos de aplicaci\u00f3n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"1897\"\/>\n<h2 data-nodeid=\"1898\">\ud83d\udd39 Generalizaci\u00f3n e herencia<\/h2>\n<h3 data-nodeid=\"1899\">Generalizaci\u00f3n b\u00e1sica<\/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:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5l5mGTGesDRgw25N8WaXg7LBpKe1M0000\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbO8I2qgpizBX75TYqjAKp8JyqfIuGgAyjDIY_EBUBcWIXLiQdHrKHIYI23KEwJcfG1j0W00\" \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=\"1900\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Persona\r\nclass Estudiante\r\nclass Profesor\r\nPersona &lt;|-- Estudiante\r\nPersona &lt;|-- Profesor\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpizBX75TYqjAKp8JyqfIuGgAyjDIY_EBUBcWIXLiQdHrKHIYI23KEwJcfG1j0W00\" \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:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5l5mGTGesDRgw25N8WaXg7LBpKe1M0000\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1901\">Clases abstractas y operaciones<\/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:TSun2iCm50FGtU0xQ4mflK2cTEazb6z33OvT_7-Q8UJkQMWxPfKUGeCQcyrJzewZMgCO95CLTv4w5yFg7N33oCmYiSSZLzgHNH7YgsgoZjCXVzMbnxkcy1NhVtJ3akmP6fSJlNatn18-JtO0\" 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>Editar PlantUML en VPasCode<\/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:VOwn2iCm44DtW__XneJI7yWKAFG_LDyD1iTNV9Si8VzUbpPh9e7q93IRe_cwb1XIWGdXPTwG7FHOfNRPOo2waw6mJlGi2lywDs9vg-LU7nAgPmR_ut6YJJF_gFqSr8EQU6uN_173B9Nxcmy0\" \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=\"1902\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclase abstracta Cuenta {\r\n  - saldo: Float\r\n  + depositar(cantidad: Float): void\r\n  + {abstracto} retirar(cantidad: Float): 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:VOwn2iCm44DtW__XneJI7yWKAFG_LDyD1iTNV9Si8VzUbpPh9e7q93IRe_cwb1XIWGdXPTwG7FHOfNRPOo2waw6mJlGi2lywDs9vg-LU7nAgPmR_ut6YJJF_gFqSr8EQU6uN_173B9Nxcmy0\" \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:TSun2iCm50FGtU0xQ4mflK2cTEazb6z33OvT_7-Q8UJkQMWxPfKUGeCQcyrJzewZMgCO95CLTv4w5yFg7N33oCmYiSSZLzgHNH7YgsgoZjCXVzMbnxkcy1NhVtJ3akmP6fSJlNatn18-JtO0\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1903\">Restricciones de generalizaci\u00f3n<\/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:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5C07_aepK8fWM2ArWKwEh2zEeOALWOrETabcSbP-PLwAZa9oVMv2JMf9QQsU7gXvkCj4waAp6gySXDIy5w3y0\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbO8I2qgpizBX75TYqjAKp8JyqfIuGgAyjDIY_EBO7p_ag94k2OeGy6cHbSNIQ-2bOADJNLAPd5MQLv9eev2SdvkGKvgIMAjdHsQ7fZfnEj0iX-l9eVKl1IWFm40\" \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=\"1904\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Persona\r\nclass Estudiante\r\nclass Profesor\r\nclass OtraPersona\r\nPersona &lt;|-- Estudiante : &lt;&lt;{disjunta, completa}&gt;&gt;\r\nPersona &lt;|-- Profesor : &lt;&lt;{disjunta, completa}&gt;&gt;\r\nPersona &lt;|-- OtraPersona : &lt;&lt;{disjunta, completa}&gt;&gt;\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpizBX75TYqjAKp8JyqfIuGgAyjDIY_EBO7p_ag94k2OeGy6cHbSNIQ-2bOADJNLAPd5MQLv9eev2SdvkGKvgIMAjdHsQ7fZfnEj0iX-l9eVKl1IWFm40\" \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:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5C07_aepK8fWM2ArWKwEh2zEeOALWOrETabcSbP-PLwAZa9oVMv2JMf9QQsU7gXvkCj4waAp6gySXDIy5w3y0\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1905\">Clasificaci\u00f3n m\u00faltiple \/ Discriminadores<\/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:SoWkIImgAStDuULApaaiBbPmpIt8oQzCJONnWqiIqz9W7BV4vDASaaeOryFN7yRqoyy3ys3Q5MngT7KXcXMi56niiZFpKkpiqEMXvk5H0JGKB9kPLrnQb9YNd8gf168rfYg7rBmKeCS0\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbPmpIt8IKrCoOVn0rABYlFp4k7oRed9fJabYIamleUlFupfbm_cm4nGiAdHrONhLx1IiB4foIp8jxD3Lm8p4eyIeC5WsUBKzD8YBF9Wgz5KEAJcfG0z1W00\" \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=\"1906\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Empleado\r\nclass Personal\r\nclass Facultad\r\nclass HMO\r\nclass NoHMO\r\nEmpleado &lt;|-- Personal : &lt;&lt;tipo&gt;&gt;\r\nEmpleado &lt;|-- Facultad : &lt;&lt;tipo&gt;&gt;\r\nEmpleado &lt;|-- HMO : &lt;&lt;seguro&gt;&gt;\r\nEmpleado &lt;|-- NoHMO : &lt;&lt;seguro&gt;&gt;\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpIt8IKrCoOVn0rABYlFp4k7oRed9fJabYIamleUlFupfbm_cm4nGiAdHrONhLx1IiB4foIp8jxD3Lm8p4eyIeC5WsUBKzD8YBF9Wgz5KEAJcfG0z1W00\" \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:SoWkIImgAStDuULApaaiBbPmpIt8oQzCJONnWqiIqz9W7BV4vDASaaeOryFN7yRqoyy3ys3Q5MngT7KXcXMi56niiZFpKkpiqEMXvk5H0JGKB9kPLrnQb9YNd8gf168rfYg7rBmKeCS0\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1907\">\n<li data-nodeid=\"1908\">\n<p data-nodeid=\"1909\">Los discriminadores agrupan especializaciones mutuamente excluyentes<\/p>\n<\/li>\n<li data-nodeid=\"1910\">\n<p data-nodeid=\"1911\">Los objetos pueden tener un valor por dimensi\u00f3n de discriminador<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"1912\"\/>\n<h2 data-nodeid=\"1913\">\ud83d\udd39 Mecanismos de extensi\u00f3n<\/h2>\n<p data-nodeid=\"1914\">UML proporciona tres mecanismos de extensibilidad:<\/p>\n<h3 data-nodeid=\"1915\">1. Estereotipos<code data-backticks=\"1\" data-nodeid=\"2305\">&lt;&lt; &gt;&gt;<\/code><\/h3>\n<p data-nodeid=\"1916\">Extiende la sem\u00e1ntica de UML creando nuevos \u00absubtipos\u00bb de elementos del metamodelo.<\/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:SoWkIImgAStDuULApaaiBbPmBYqkoSzDBLAmiKdDAyaigRIpKwZcvL9Gq5N8JB5IyCmhIKrFBO88v2Ncfbef19SKPUQbytBLmepmJIp9yCbCAaeigWIQKbgIcODaZBP2SMQUHeMLWbjEVcA99fI6o2Jd5sEH0Phha9gN0dGZ0000\" 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>Editar PlantUML en VPasCode<\/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:ROv12i8m44NtWTnXbefuWL1AKH1SkEe9fibG1YO995CGnCFqB5xCG1LSkFhm7xp_XwfOT8bYZHUi5Sx2b9IWwrfmmD3tyB06u0WS75mRcwbiHSfnAkHWrC9fjkRvbPnu4ivA7c-e55-hiiUcN9Jbrtc0ocbtTt2HZBh_v4Pyhdz8cnWeXNRu3G00\" \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=\"1917\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Cliente &lt;&lt;entidad&gt;&gt; {\r\n  - id: Integer\r\n  - nombre: String\r\n}\r\nclass BibliotecaMatem\u00e1tica &lt;&lt;utilidad&gt;&gt; {\r\n  + sin(x: Float): Float\r\n  + cos(x: Float): Float\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:ROv12i8m44NtWTnXbefuWL1AKH1SkEe9fibG1YO995CGnCFqB5xCG1LSkFhm7xp_XwfOT8bYZHUi5Sx2b9IWwrfmmD3tyB06u0WS75mRcwbiHSfnAkHWrC9fjkRvbPnu4ivA7c-e55-hiiUcN9Jbrtc0ocbtTt2HZBh_v4Pyhdz8cnWeXNRu3G00\" \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:SoWkIImgAStDuULApaaiBbPmBYqkoSzDBLAmiKdDAyaigRIpKwZcvL9Gq5N8JB5IyCmhIKrFBO88v2Ncfbef19SKPUQbytBLmepmJIp9yCbCAaeigWIQKbgIcODaZBP2SMQUHeMLWbjEVcA99fI6o2Jd5sEH0Phha9gN0dGZ0000\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1918\">2. Valores etiquetados<code data-backticks=\"1\" data-nodeid=\"2312\">{clave=valor}<\/code><\/h3>\n<p data-nodeid=\"1919\">Agrega propiedades personalizadas a los elementos del modelo.<\/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:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" \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=\"1920\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  {author=sb, version=1.0, persistence=persistent}\r\n  - id: Integer\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:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" \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:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1921\">3. Restricciones\u00a0<code data-backticks=\"1\" data-nodeid=\"2315\">{...}<\/code><\/h3>\n<p data-nodeid=\"1922\">Agregue restricciones sem\u00e1nticas usando texto libre, OCL o abreviaturas predefinidas.<\/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:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" 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>Editar PlantUML en VPasCode<\/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:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" \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=\"1923\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Exercise {\r\n  - no: Integer\r\n  - points: Integer {value &gt;= 0}\r\n  {points &lt;= maxPoints}\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:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" \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:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" 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>Editar PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<hr data-nodeid=\"1924\"\/>\n<h2 data-nodeid=\"1925\">\ud83d\udd39 UML para el dise\u00f1o de bases de datos: Consideraciones clave<\/h2>\n<h3 data-nodeid=\"1926\">Traducci\u00f3n de UML a esquema relacional<\/h3>\n<table data-nodeid=\"1928\">\n<thead data-nodeid=\"1929\">\n<tr data-nodeid=\"1930\">\n<th data-nodeid=\"1932\">Construcci\u00f3n UML<\/th>\n<th data-nodeid=\"1933\">Implementaci\u00f3n relacional<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1936\">\n<tr data-nodeid=\"1937\">\n<td data-nodeid=\"1938\">Clase<\/td>\n<td data-nodeid=\"1939\">Tabla<\/td>\n<\/tr>\n<tr data-nodeid=\"1940\">\n<td data-nodeid=\"1941\">Atributo<\/td>\n<td data-nodeid=\"1942\">Columna<\/td>\n<\/tr>\n<tr data-nodeid=\"1943\">\n<td data-nodeid=\"1944\">Clave primaria\u00a0<code data-backticks=\"1\" data-nodeid=\"2326\">{pk}<\/code><\/td>\n<td data-nodeid=\"1945\">Restricci\u00f3n PRIMARY KEY<\/td>\n<\/tr>\n<tr data-nodeid=\"1946\">\n<td data-nodeid=\"1947\">Asociaci\u00f3n (1:*)<\/td>\n<td data-nodeid=\"1948\">Clave for\u00e1nea en el lado \u201cmuchos\u201d<\/td>\n<\/tr>\n<tr data-nodeid=\"1949\">\n<td data-nodeid=\"1950\">Asociaci\u00f3n (<em data-nodeid=\"2341\">:<\/em>)<\/td>\n<td data-nodeid=\"1951\">Tabla de uni\u00f3n\/intersecci\u00f3n<\/td>\n<\/tr>\n<tr data-nodeid=\"1952\">\n<td data-nodeid=\"1953\">Composici\u00f3n<\/td>\n<td data-nodeid=\"1954\">Clave for\u00e1nea +\u00a0<code data-backticks=\"1\" data-nodeid=\"2345\">ON DELETE CASCADE<\/code><\/td>\n<\/tr>\n<tr data-nodeid=\"1955\">\n<td data-nodeid=\"1956\">Clase de asociaci\u00f3n<\/td>\n<td data-nodeid=\"1957\">Tabla con claves for\u00e1neas compuestas + atributos<\/td>\n<\/tr>\n<tr data-nodeid=\"1958\">\n<td data-nodeid=\"1959\">Generalizaci\u00f3n<\/td>\n<td data-nodeid=\"1960\">Tablas separadas (con FK) o tabla \u00fanica con discriminador de tipo<\/td>\n<\/tr>\n<tr data-nodeid=\"1961\">\n<td data-nodeid=\"1962\"><code data-backticks=\"1\" data-nodeid=\"2350\">{ordenado}<\/code>asociaci\u00f3n<\/td>\n<td data-nodeid=\"1963\">Agregar columna de secuencia + restricci\u00f3n \u00fanica<\/td>\n<\/tr>\n<tr data-nodeid=\"1964\">\n<td data-nodeid=\"1965\">Calificador<\/td>\n<td data-nodeid=\"1966\">Parte de una clave compuesta o columna indexada<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"1967\">Diferencias cr\u00edticas: Orientado a objetos vs. Relacional<\/h3>\n<table data-nodeid=\"1969\">\n<thead data-nodeid=\"1970\">\n<tr data-nodeid=\"1971\">\n<th data-nodeid=\"1973\">Aspecto<\/th>\n<th data-nodeid=\"1974\">Orientado a objetos<\/th>\n<th data-nodeid=\"1975\">Relacional<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1979\">\n<tr data-nodeid=\"1980\">\n<td data-nodeid=\"1981\"><strong data-nodeid=\"2362\">Identidad<\/strong><\/td>\n<td data-nodeid=\"1982\">Referencia de objeto (suplente)<\/td>\n<td data-nodeid=\"1983\">Clave primaria (de negocio o suplente)<\/td>\n<\/tr>\n<tr data-nodeid=\"1984\">\n<td data-nodeid=\"1985\"><strong data-nodeid=\"2368\">Operaciones<\/strong><\/td>\n<td data-nodeid=\"1986\">Central en el dise\u00f1o, encapsulado<\/td>\n<td data-nodeid=\"1987\">Externo (SQL, procedimientos)<\/td>\n<\/tr>\n<tr data-nodeid=\"1988\">\n<td data-nodeid=\"1989\"><strong data-nodeid=\"2374\">Encapsulamiento<\/strong><\/td>\n<td data-nodeid=\"1990\">Atributos privados, interfaz p\u00fablica<\/td>\n<td data-nodeid=\"1991\">Acceso directo a la tabla por defecto<\/td>\n<\/tr>\n<tr data-nodeid=\"1992\">\n<td data-nodeid=\"1993\"><strong data-nodeid=\"2380\">Herencia<\/strong><\/td>\n<td data-nodeid=\"1994\">Soporte para el lenguaje nativo<\/td>\n<td data-nodeid=\"1995\">Estrategias de mapeo complejas<\/td>\n<\/tr>\n<tr data-nodeid=\"1996\">\n<td data-nodeid=\"1997\"><strong data-nodeid=\"2386\">Relaciones<\/strong><\/td>\n<td data-nodeid=\"1998\">Punteros\/referencias<\/td>\n<td data-nodeid=\"1999\">Claves for\u00e1neas y uniones<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"2000\">Recomendaciones pr\u00e1cticas para dise\u00f1adores de bases de datos<\/h3>\n<ol data-nodeid=\"2001\">\n<li data-nodeid=\"2002\">\n<p data-nodeid=\"2003\"><strong data-nodeid=\"2398\">Modelar expl\u00edcitamente las claves<\/strong>: Usa\u00a0<code data-backticks=\"1\" data-nodeid=\"2394\">{pk}<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"2396\">{ak1}<\/code>\u00a0esteriotipos ya que UML no tiene soporte nativo para claves<\/p>\n<\/li>\n<li data-nodeid=\"2004\">\n<p data-nodeid=\"2005\"><strong data-nodeid=\"2405\">Marca persistencia<\/strong>: Usa\u00a0<code data-backticks=\"1\" data-nodeid=\"2403\">{persistent}<\/code>\u00a0valor etiquetado para distinguir las clases de base de datos de las clases de aplicaci\u00f3n transitorias<\/p>\n<\/li>\n<li data-nodeid=\"2006\">\n<p data-nodeid=\"2007\"><strong data-nodeid=\"2410\">Simplifica operaciones<\/strong>: Mapea operaciones de consulta a vistas; operaciones complejas a procedimientos almacenados<\/p>\n<\/li>\n<li data-nodeid=\"2008\">\n<p data-nodeid=\"2009\"><strong data-nodeid=\"2415\">Maneja la herencia con cuidado<\/strong>: Elige la estrategia de mapeo seg\u00fan los patrones de consulta<\/p>\n<\/li>\n<li data-nodeid=\"2010\">\n<p data-nodeid=\"2011\"><strong data-nodeid=\"2420\">Documenta restricciones<\/strong>: Usa OCL o restricciones en texto claro para reglas de negocio<\/p>\n<\/li>\n<li data-nodeid=\"2012\">\n<p data-nodeid=\"2013\"><strong data-nodeid=\"2425\">Usa clases de asociaci\u00f3n con juicio<\/strong>: Solo cuando la relaci\u00f3n tiene atributos significativos<\/p>\n<\/li>\n<\/ol>\n<hr data-nodeid=\"2014\"\/>\n<h2 data-nodeid=\"2015\">\ud83c\udfaf Hoja de referencia r\u00e1pida<\/h2>\n<h3 data-nodeid=\"2016\">Resumen de la notaci\u00f3n de diagramas de clases de PlantUML<\/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:SoWkIImgAStDuULApaaiBbQmiIakIIrApI-fB4YrirDm1Wdw9UQcAbJpSYaeL9SafgUdfjYM9UQKfjQ2HAArzNNrbVNhOXNoWAgYSqjpIcAj54A0kXMYRHM0wc8LgWkAyWkAiQZMA4WiIimjrhHI24ejGIW38eVKl1IWem00\" 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>Edita PlantUML en VPasCode<\/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:ROun2y8m48NtGl_3WOiYahsqfU3k86ubmsbl22IzUBcu1FtjHXSNuKtlVU_nfgGeceDlcvl7bA3lAIc9OtMHnn5E7Av2nveHbBO1AAJkdabnuU61dkNvSUUzEPYDULbOluKvPA-sWqjTWNc0IbeeKJYcl_msec18kmxEf3-mQg9rgV_U\" \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=\"2017\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass &lt;&lt;esteriotipo&gt;&gt; NombreClase {\r\n  {etiquetado=valor}\r\n  [+\/-\/#\/~] nombre[mult]: Tipo [= val] {props}\r\n  [+\/-\/#\/~] nombre(params): Ret {props}\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:ROun2y8m48NtGl_3WOiYahsqfU3k86ubmsbl22IzUBcu1FtjHXSNuKtlVU_nfgGeceDlcvl7bA3lAIc9OtMHnn5E7Av2nveHbBO1AAJkdabnuU61dkNvSUUzEPYDULbOluKvPA-sWqjTWNc0IbeeKJYcl_msec18kmxEf3-mQg9rgV_U\" \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:SoWkIImgAStDuULApaaiBbQmiIakIIrApI-fB4YrirDm1Wdw9UQcAbJpSYaeL9SafgUdfjYM9UQKfjQ2HAArzNNrbVNhOXNoWAgYSqjpIcAj54A0kXMYRHM0wc8LgWkAyWkAiQZMA4WiIimjrhHI24ejGIW38eVKl1IWem00\" 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>Edita PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"2018\">Notaci\u00f3n de asociaci\u00f3n<\/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:LSvD2e0W40NWVT0T1ZT1u0LQXDQ-Eqmb8gWJZNN-x8UetS3x7cyK9rpJ5dnPz1wPDOYm-QG5I7cVdO0hwQ01pKoJm-Ge3XZCswapVX1Kq5DOYDsfNa4_eQrTZSMVaBBzY05tPt7qUKEPEES73m00\" 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>Edita PlantUML en VPasCode<\/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:SoWkIImgAStDuULopaaiJdLKKCejpIbnL5BGrOKmdPGKm39E2bOAVlcvIKMfZiNvoPc9oPdvUN1DMa3LK5KAwWhE-Ra5-SMPoPc7DoEKvACeSKmlIarFH5MXgsk7fC8liGoe8YadbPVB8JKl1UX40000\" \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=\"2019\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nClaseA \"multA\" -- \"multB\" ClaseB : NombreAsociacion\r\nClaseA *-- ClaseB  ' Composici\u00f3n\r\nClaseA o-- ClaseB  ' Agregaci\u00f3n\r\nClaseA --&gt; ClaseB  ' Navegable\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULopaaiJdLKKCejpIbnL5BGrOKmdPGKm39E2bOAVlcvIKMfZiNvoPc9oPdvUN1DMa3LK5KAwWhE-Ra5-SMPoPc7DoEKvACeSKmlIarFH5MXgsk7fC8liGoe8YadbPVB8JKl1UX40000\" \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:LSvD2e0W40NWVT0T1ZT1u0LQXDQ-Eqmb8gWJZNN-x8UetS3x7cyK9rpJ5dnPz1wPDOYm-QG5I7cVdO0hwQ01pKoJm-Ge3XZCswapVX1Kq5DOYDsfNa4_eQrTZSMVaBBzY05tPt7qUKEPEES73m00\" 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>Edita PlantUML en VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"2020\">S\u00edmbolos de visibilidad<\/h3>\n<ul data-nodeid=\"2021\">\n<li data-nodeid=\"2022\">\n<p data-nodeid=\"2023\"><code data-backticks=\"1\" data-nodeid=\"2430\">+<\/code>\u00a0P\u00fablico<\/p>\n<\/li>\n<li data-nodeid=\"2024\">\n<p data-nodeid=\"2025\"><code data-backticks=\"1\" data-nodeid=\"2432\">-<\/code>\u00a0Privado<\/p>\n<\/li>\n<li data-nodeid=\"2026\">\n<p data-nodeid=\"2027\"><code data-backticks=\"1\" data-nodeid=\"2434\">#<\/code>\u00a0Protegido<\/p>\n<\/li>\n<li data-nodeid=\"2028\">\n<p data-nodeid=\"2029\"><code data-backticks=\"1\" data-nodeid=\"2436\">~<\/code>\u00a0Paquete<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"2030\">Propiedades y restricciones comunes<\/h3>\n<ul data-nodeid=\"2031\">\n<li data-nodeid=\"2032\">\n<p data-nodeid=\"2033\"><code data-backticks=\"1\" data-nodeid=\"2441\">{est\u00e1tico}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2443\">{esConsulta=true}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2445\">{abstracto}<\/code><\/p>\n<\/li>\n<li data-nodeid=\"2034\">\n<p data-nodeid=\"2035\"><code data-backticks=\"1\" data-nodeid=\"2446\">{valor &gt;= 0}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2448\">{xor}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2450\">{ordenado}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2452\">{clave primaria}<\/code><\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"2036\"\/>\n<blockquote data-nodeid=\"2037\">\n<p data-nodeid=\"2038\">\ud83d\udca1\u00a0<strong data-nodeid=\"2462\">Pensamiento final<\/strong>: Los diagramas de clases UML son potentes para el modelado conceptual, pero recuerda que fueron dise\u00f1ados principalmente para la ingenier\u00eda de software. Al utilizar UML para el dise\u00f1o de bases de datos, prep\u00e1rate para ampliar la notaci\u00f3n (con estereotipos, valores etiquetados, restricciones) para capturar conceptos relacionales como claves, normalizaci\u00f3n y restricciones declarativas que no son nativas en la fundaci\u00f3n orientada a objetos de UML.<\/p>\n<\/blockquote>\n<p class=\"\" data-nodeid=\"2039\"><em data-nodeid=\"2470\">Gu\u00eda compilada a partir de \u00abParte 6: Diagramas de clases UML\u00bb por Stefan Brass, Universidad de Halle, 2003. Todos los diagramas formateados en sintaxis PlantUML para compatibilidad con herramientas modernas.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udca1\u00a0Nota: Todos los diagramas se proporcionan en\u00a0PlantUML formato. Puedes renderizarlos de inmediato usando el Visual Paradigm Diagrama como c\u00f3digo. \ud83d\udd39<\/p>\n","protected":false},"author":3482,"featured_media":11083,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","fifu_image_url":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","fifu_image_alt":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-11082","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Gu\u00eda completa sobre diagramas de clases UML (Diagrama como c\u00f3digo) - ArchiMetric Spanish<\/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.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gu\u00eda completa sobre diagramas de clases UML (Diagrama como c\u00f3digo) - ArchiMetric Spanish\" \/>\n<meta property=\"og:description\" content=\"\ud83d\udca1\u00a0Nota: Todos los diagramas se proporcionan en\u00a0PlantUML formato. Puedes renderizarlos de inmediato usando el Visual Paradigm Diagrama como c\u00f3digo. \ud83d\udd39\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\" \/>\n<meta property=\"og:site_name\" content=\"ArchiMetric Spanish\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-03T05:38:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" \/><meta property=\"og:image\" content=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1208\" \/>\n\t<meta property=\"og:image:height\" content=\"658\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"curtis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.archimetric.com\/es\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba\"},\"headline\":\"Gu\u00eda completa sobre diagramas de clases UML (Diagrama como c\u00f3digo)\",\"datePublished\":\"2026-06-03T05:38:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\"},\"wordCount\":1409,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.archimetric.com\/es\/wp-content\/uploads\/sites\/7\/2026\/06\/img_6a1fbb7554f19.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\",\"url\":\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\",\"name\":\"Gu\u00eda completa sobre diagramas de clases UML (Diagrama como c\u00f3digo) - ArchiMetric Spanish\",\"isPartOf\":{\"@id\":\"https:\/\/www.archimetric.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.archimetric.com\/es\/wp-content\/uploads\/sites\/7\/2026\/06\/img_6a1fbb7554f19.png\",\"datePublished\":\"2026-06-03T05:38:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.archimetric.com\/es\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\",\"url\":\"https:\/\/www.archimetric.com\/es\/wp-content\/uploads\/sites\/7\/2026\/06\/img_6a1fbb7554f19.png\",\"contentUrl\":\"https:\/\/www.archimetric.com\/es\/wp-content\/uploads\/sites\/7\/2026\/06\/img_6a1fbb7554f19.png\",\"width\":1208,\"height\":658},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.archimetric.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gu\u00eda completa sobre diagramas de clases UML (Diagrama como c\u00f3digo)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.archimetric.com\/es\/#website\",\"url\":\"https:\/\/www.archimetric.com\/es\/\",\"name\":\"ArchiMetric Spanish\",\"description\":\"EA, Dev Ops, Scrum, Agile and More\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.archimetric.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.archimetric.com\/es\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba\",\"name\":\"curtis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.archimetric.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"caption\":\"curtis\"},\"url\":\"https:\/\/www.archimetric.com\/es\/author\/curtis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Gu\u00eda completa sobre diagramas de clases UML (Diagrama como c\u00f3digo) - ArchiMetric Spanish","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.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","og_locale":"es_ES","og_type":"article","og_title":"Gu\u00eda completa sobre diagramas de clases UML (Diagrama como c\u00f3digo) - ArchiMetric Spanish","og_description":"\ud83d\udca1\u00a0Nota: Todos los diagramas se proporcionan en\u00a0PlantUML formato. Puedes renderizarlos de inmediato usando el Visual Paradigm Diagrama como c\u00f3digo. \ud83d\udd39","og_url":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","og_site_name":"ArchiMetric Spanish","article_published_time":"2026-06-03T05:38:37+00:00","og_image":[{"url":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","type":"","width":"","height":""},{"width":1208,"height":658,"url":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","type":"image\/png"}],"author":"curtis","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","twitter_misc":{"Escrito por":"curtis","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#article","isPartOf":{"@id":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"},"author":{"name":"curtis","@id":"https:\/\/www.archimetric.com\/es\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba"},"headline":"Gu\u00eda completa sobre diagramas de clases UML (Diagrama como c\u00f3digo)","datePublished":"2026-06-03T05:38:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"},"wordCount":1409,"commentCount":0,"image":{"@id":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.archimetric.com\/es\/wp-content\/uploads\/sites\/7\/2026\/06\/img_6a1fbb7554f19.png","articleSection":["Uncategorized"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","url":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","name":"Gu\u00eda completa sobre diagramas de clases UML (Diagrama como c\u00f3digo) - ArchiMetric Spanish","isPartOf":{"@id":"https:\/\/www.archimetric.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage"},"image":{"@id":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.archimetric.com\/es\/wp-content\/uploads\/sites\/7\/2026\/06\/img_6a1fbb7554f19.png","datePublished":"2026-06-03T05:38:37+00:00","author":{"@id":"https:\/\/www.archimetric.com\/es\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba"},"breadcrumb":{"@id":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage","url":"https:\/\/www.archimetric.com\/es\/wp-content\/uploads\/sites\/7\/2026\/06\/img_6a1fbb7554f19.png","contentUrl":"https:\/\/www.archimetric.com\/es\/wp-content\/uploads\/sites\/7\/2026\/06\/img_6a1fbb7554f19.png","width":1208,"height":658},{"@type":"BreadcrumbList","@id":"https:\/\/www.archimetric.com\/es\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.archimetric.com\/es\/"},{"@type":"ListItem","position":2,"name":"Gu\u00eda completa sobre diagramas de clases UML (Diagrama como c\u00f3digo)"}]},{"@type":"WebSite","@id":"https:\/\/www.archimetric.com\/es\/#website","url":"https:\/\/www.archimetric.com\/es\/","name":"ArchiMetric Spanish","description":"EA, Dev Ops, Scrum, Agile and More","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.archimetric.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.archimetric.com\/es\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba","name":"curtis","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.archimetric.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","caption":"curtis"},"url":"https:\/\/www.archimetric.com\/es\/author\/curtis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.archimetric.com\/es\/wp-json\/wp\/v2\/posts\/11082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.archimetric.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.archimetric.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.archimetric.com\/es\/wp-json\/wp\/v2\/users\/3482"}],"replies":[{"embeddable":true,"href":"https:\/\/www.archimetric.com\/es\/wp-json\/wp\/v2\/comments?post=11082"}],"version-history":[{"count":0,"href":"https:\/\/www.archimetric.com\/es\/wp-json\/wp\/v2\/posts\/11082\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.archimetric.com\/es\/wp-json\/wp\/v2\/media\/11083"}],"wp:attachment":[{"href":"https:\/\/www.archimetric.com\/es\/wp-json\/wp\/v2\/media?parent=11082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.archimetric.com\/es\/wp-json\/wp\/v2\/categories?post=11082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.archimetric.com\/es\/wp-json\/wp\/v2\/tags?post=11082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}