From e222eb505042b91dff964469a3bccaeb8061540b Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Fri, 20 Dec 2024 20:00:58 -0300 Subject: [PATCH 1/3] Fixes #74 deployment diagrams --- .../2_3_4_Diagramas_de_despliegue_UML.md | 66 ++++++--- .../Deployment_Diagram_Another_Example.drawio | 136 ++++++++++++++++++ .../Deployment_Diagram_Another_Example.svg | 1 + 3 files changed, 187 insertions(+), 16 deletions(-) create mode 100644 diagrams/Deployment_Diagram_Another_Example.drawio create mode 100644 diagrams/Deployment_Diagram_Another_Example.svg diff --git a/2_Tecnicas_y_herramientas/2_3_4_Diagramas_de_despliegue_UML.md b/2_Tecnicas_y_herramientas/2_3_4_Diagramas_de_despliegue_UML.md index 2e17129..d6d843a 100644 --- a/2_Tecnicas_y_herramientas/2_3_4_Diagramas_de_despliegue_UML.md +++ b/2_Tecnicas_y_herramientas/2_3_4_Diagramas_de_despliegue_UML.md @@ -16,12 +16,11 @@ Este documento está basado en UML 2.5.1[^1]. Los diagramas de despliegue tienen estos elementos: -* Nodos, que se representan con un rectángulo tridimensional con el estereotipo - `≪node≫`; ese rectángulo contiene el nombre del nodo, que describe la pieza de - hardware que representa. En lugar de estereotipo `≪node≫` es posible usar - estereotipos más específicos como `≪mainframe≫`, `≪pc≫`, `≪database server≫`, - etc.; además se puede usar un ícono para representar visualmente estos - estereotipos. +* Nodos, que se representan con un cubo con el estereotipo `≪node≫`; ese + rectángulo contiene el nombre del nodo, que describe la pieza de hardware que + representa. En lugar de estereotipo `≪node≫` es posible usar estereotipos más + específicos como `≪mainframe≫`, `≪pc≫`, `≪database server≫`, etc.; además se + puede usar un ícono para representar visualmente estos estereotipos. Los nodos son elementos del modelo que representan los recursos computacionales en los que se puede desplegar artefactos —la definición de @@ -49,17 +48,16 @@ Los diagramas de despliegue tienen estos elementos: nivel de sistema operativo necesarios para soportar una aplicación de base de datos instalada en ese entorno. -* Artefactos, que se representan con un rectángulo —no tridimensional— que tiene - el estereotipo `«artefacto»`, el icono del artefacto y el nombre del - artefacto. +* Artefactos, que se representan con un rectángulo que tiene el estereotipo + `«artefacto»`, el icono del artefacto y el nombre del artefacto. Un artefacto representa algún elemento de información que se utiliza o produce mediante un proceso de desarrollo de software o mediante la operación de un sistema. Ejemplos de artefactos incluyen archivos de modelos, archivos fuente, scripts, archivos ejecutables, tablas de bases de datos, entregables de desarrollo, documentos de procesamiento de textos y mensajes de correo. Los - artefactos se implementan en nodos y se admite la implementación de artefactos - en varios tipos de nodos. + artefactos se implementan —se despliegan— en nodos y se admite la + implementación de artefactos en varios tipos de nodos. * Instancias de artefactos, que representan una ocurrencia real de un artefacto. Las instancias de artefactos se basan en artefactos existentes. El nombre de @@ -69,10 +67,10 @@ Los diagramas de despliegue tienen estos elementos: también como un nodo pero con el estereotipo `≪device≫`; el nombre del nodo describe el dispositivo que representa. -* Especificaciones de despliegue, que se representan con un rectángulo —no - tridimensional— con el estereotipo `≪deploymentSpec≫`. Modelan archivos de - configuración y sus atributos modelan los parámetros de configuración de los - componentes o artefactos desplegados en un nodo. +* Especificaciones de despliegue, que se representan con un rectángulo con el + estereotipo `≪deploymentSpec≫`. Modelan archivos de configuración y sus + atributos modelan los parámetros de configuración de los componentes o + artefactos desplegados en un nodo. * Rutas de comunicación, que son un tipo más específico de asociación entre nodos en un diagrama de despliegue, que muestra cómo los nodos intercambian @@ -101,7 +99,43 @@ negocios` en `Servidor web` mediante una conexión SOAP sobre HTTP. ![Ejemplo de diagrama de despliegue](/diagrams/Deployment_Diagram_Example.svg) -*Figura 1: ejemplo de diagrama de despliegue.* +*Figura 1: Ejemplo de diagrama de despliegue.* + +La [Figura 2](#figura-2), a continuación, muestra otro ejemplo de diagrama de +despliegue. En este caso el dispositivo `Servidor de aplicación` que contiene un +servidor JSP `Tomcat 5.5` —o dicho de otro modo, hay un servidor JSP llamado +`Tomcat 5.5` desplegado en el dispositivo `Servidor de aplicación`. A su vez el +servidor JSP contiene un ambiente de ejecución +`Catalina Servlet 2.4/JSP 2.0 Container` —también es posible decir que el +ambiente de ejecución está desplegado en el servidor JSP—. Ese ambiente de +ejecución tiene un artefacto `book_club_app.war` que está compuesto por otros +dos artefactos `user_services.jar` y `web-tools-lib.jar`. El primer artefacto +`book_club_app.war` es la manifestación del componente `OnlineOrders`, mientras +que el tercer artefacto +`user_services.jar` es la manifestación del componente `UserServices`. La +manifestación se modela como una dependencia estereotipada con +`≪manifest≫` desde el artefacto que es la "manifestación" hacia el componente +que es "manifestado". Hay una especificación de despliegue con el estereotipo +`≪deploymentSpec≫` llamada `web.xml` para el artefacto `book_club_app.war`; la +especificación de despliegue está conectada con el artefacto mediante una +dependencia. Como todos estos elementos están contenidos dentro del nodo +`Catalina Servlet 2.4/JSP 2.0 Container` implica que están desplegados en él. + +El dispositivo `Servidor de aplicación` está conectado con el dispositivo +`Servidor de base de datos` mediante una conexión con protocolo `TCP/IP`. Este +segundo dispositivo tiene un sistema de base de datos `Oracle 10g`. Este nodo +contiene a su vez los esquemas `User`, `Orders` e `Inventory`. + + + +![Otro ejemplo de diagrama de +despliegue](/diagrams/Deployment_Diagram_Another_Example.svg) + +*Figura 2: Otro ejemplo de diagrama de despliegue.* Tomado de +[aquí](https://www.uml-diagrams.org/deployment-diagrams-overview.html). + +Puedes ver más ejemplos de [diagramas de despliegue en UML +Diagrams](https://www.uml-diagrams.org/deployment-diagrams-overview.html). Puedes ver más información sobre diagramas de despliegue en las herramientas de modelado [IBM Software diff --git a/diagrams/Deployment_Diagram_Another_Example.drawio b/diagrams/Deployment_Diagram_Another_Example.drawio new file mode 100644 index 0000000..2518c80 --- /dev/null +++ b/diagrams/Deployment_Diagram_Another_Example.drawio @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Deployment_Diagram_Another_Example.svg b/diagrams/Deployment_Diagram_Another_Example.svg new file mode 100644 index 0000000..e669ab4 --- /dev/null +++ b/diagrams/Deployment_Diagram_Another_Example.svg @@ -0,0 +1 @@ +
≪device≫
Servidor de base de datos
≪device≫...
≪databaseSystem≫
Oracle 10g
≪databaseSystem≫...
≪protocol≫
TCP/IP
≪protocol≫...
≪device≫
Servidor de aplicación
≪device≫...
≪JSP server≫
Tomcat 5.5
≪JSP server≫...
≪schema≫
Users
≪schema≫...
≪executionEnvironment≫
Catalina Servlet 2.4/JSP 2.0 Container
≪executionEnvironment≫...
≪component≫
OnlineOrders
≪component≫...
≪manifest≫
≪manifest≫
≪deploymentSpec≫
web.xml
≪deploymentSpec≫...
≪component≫
UserServices
≪component≫...
≪manifest≫
≪manifest≫
≪schema≫
Orders
≪schema≫...
≪schema≫
Inventory
≪schema≫...
≪artifact≫
web-tools-lib.jar
≪artifact≫...
≪artifact≫
user_services.jar
≪artifact≫...
≪artifact≫
book_club_app.war
≪artifact≫...
Text is not SVG - cannot display
\ No newline at end of file From ad3cc29ea8b892d34d50fd6eb17eab8fb7269553 Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Mon, 23 Dec 2024 12:37:50 -0300 Subject: [PATCH 2/3] Fixes #74 component diagrams --- .../2_3_.Modelos_de_estructura.md | 4 +- ... => 2_3_3_Diagramas_de_componentes_UML.md} | 35 +- diagrams/Component_Diagram_Example.drawio | 421 ++++++++++++++++++ diagrams/Component_Diagram_Example.svg | 1 + 4 files changed, 458 insertions(+), 3 deletions(-) rename 2_Tecnicas_y_herramientas/{2_3_3_Diagrmas_de_componentes_UML.md => 2_3_3_Diagramas_de_componentes_UML.md} (59%) create mode 100644 diagrams/Component_Diagram_Example.drawio create mode 100644 diagrams/Component_Diagram_Example.svg diff --git a/2_Tecnicas_y_herramientas/2_3_.Modelos_de_estructura.md b/2_Tecnicas_y_herramientas/2_3_.Modelos_de_estructura.md index 06a5fe7..c187c89 100644 --- a/2_Tecnicas_y_herramientas/2_3_.Modelos_de_estructura.md +++ b/2_Tecnicas_y_herramientas/2_3_.Modelos_de_estructura.md @@ -6,6 +6,6 @@ ### 2.3.2 [Modelos de entidad-relación](./2_3_2_Modelos_de_entidad_relacion.md) -### 2.3.3 [Diagramas de componentes UML](./2_3_3_Diagrmas_de_componentes_UML.md) +### 2.3.3 [Diagramas de componentes UML](./2_3_3_Diagramas_de_componentes_UML.md) -### 2.3.4 [Diagramas de despliegue](./2_3_4_Diagramas_de_despliegue_UML.md) +### 2.3.4 [Diagramas de despliegue UML](./2_3_4_Diagramas_de_despliegue_UML.md) diff --git a/2_Tecnicas_y_herramientas/2_3_3_Diagrmas_de_componentes_UML.md b/2_Tecnicas_y_herramientas/2_3_3_Diagramas_de_componentes_UML.md similarity index 59% rename from 2_Tecnicas_y_herramientas/2_3_3_Diagrmas_de_componentes_UML.md rename to 2_Tecnicas_y_herramientas/2_3_3_Diagramas_de_componentes_UML.md index 6c989e9..913d197 100644 --- a/2_Tecnicas_y_herramientas/2_3_3_Diagrmas_de_componentes_UML.md +++ b/2_Tecnicas_y_herramientas/2_3_3_Diagramas_de_componentes_UML.md @@ -13,7 +13,7 @@ Este documento está basado en UML 2.5.1[^1]. [^1]: OMG. (2017). OMG® Unified Modeling Language®. Disponible [aquí](https://www.omg.org/spec/UML/2.5.1/PDF). -Los diagramas de componentes son distintos de los [diagramas de +Los diagramas de componentes son distintos de los [diagramas de2_3_4_Diagramas_de_despliegue_UML.md despliegue](./2_3_4_Diagramas_de_despliegue_UML.md). Un diagrama de componentes define la composición de los componentes y artefactos en el sistema. Un diagrama de despliegue muestra los componentes y artefactos en relación con el lugar @@ -59,6 +59,39 @@ Los diagramas de componentes tienen principalmente: +En la [Figura 1](#figura-1), a continuación, aparece un ejemplo de un diagrama +de componentes. En el ejemplo aparecen tres subsistemas —componentes con el +estereotipo `≪subsystem≫`—: `WebStore`, `Warehouses` y `Accounting`. El +subsistema `WebStore` provee o expone las interfaces `ProductSearch`, +`OnlineShopping` y `UserSession` a través de los puertos que aparecen a la +izquierda. A su vez requiere de las interfaces `SearchInventory`, `ManageOrders` +y `ManageCustomers` a través de los puertos que aparecen a la derecha. La +estructura interna de `WebStore` muestra el componente de tipo `SearchEngine` +que provee la interfaz `ProductSearch`, a la que el subsistema `WebStore` delega +la interfaz del mismo nombre. Algo similar ocurre con los componentes de tipo +`ShoppingCart` y `Authentication` que proveen las interfaces `OnlineShopping` y +`UserSession` en las que el subsistema `WebStore` delega sus interfaces del +mismo nombre. En forma análoga los componentes de tipo `SearchEngine`, +`ShoppingCart` y `Authentication` requieren de las interfaces `SearchInventory`, +`ManageOrders` y `ManageCustomers` respectivamente, a través de la delegación de +las interfaces requeridas por `WebStore` con mismo nombre. + +Entre la interfaz `SearchInventory` requerida por `WebStore` y provista por +`Warehouses` hay una dependencia; también hay una dependencia entre las +interfaces `ManageOrders` y `ManageCustomers` requeridas y provistas por +`WebStore` y `Accounting` respectivamente. También hay otra dependencia en la +interfaz `ManageInventory` requerida por `Accounting` y provista por +`Warehouses`. + +
+ +![Ejemplo de diagrama de componentes](/diagrams/Component_Diagram_Example.svg) + +*Figura 1: Ejemplo de diagrama de componentes*. + + +Puedes ver más ejemplos de [diagramas de componentes en UML Diagrams](https://www.uml-diagrams.org/component-diagrams.html). + Puedes ver más información sobre diagramas de componentes en las herramientas de modelado [IBM Software Architect](https://www.ibm.com/docs/en/rational-soft-arch/9.7.0?topic=diagrams-creating-component), diff --git a/diagrams/Component_Diagram_Example.drawio b/diagrams/Component_Diagram_Example.drawio new file mode 100644 index 0000000..90c3bd7 --- /dev/null +++ b/diagrams/Component_Diagram_Example.drawio @@ -0,0 +1,421 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/Component_Diagram_Example.svg b/diagrams/Component_Diagram_Example.svg new file mode 100644 index 0000000..781a333 --- /dev/null +++ b/diagrams/Component_Diagram_Example.svg @@ -0,0 +1 @@ +
«subsystem»
WebStore
«subsystem»...
:SearchEngine
:SearchEngine
:ShoppingCart
:ShoppingCart
:Authentication
:Authentication
User
Session
User...
Product
Search
Product...
Online
Shopping
Online...
User
Session
User...
«subsystem»
Warehouses
«subsystem»...
:Inventory
:Inventory
«subsystem»
Accounting
«subsystem»...
:Orders
:Orders
:Customers
:Customers
Manage
Customers
Manage...
Manage
Orders
Manage...
Search
Inventory
Search...
Manage
Inventory
Manage...
Manage
Inventory
Manage...
Text is not SVG - cannot display
\ No newline at end of file From ed34ce6c82364f4645a318f0a38580a4b53cce94 Mon Sep 17 00:00:00 2001 From: Fernando Machado Date: Mon, 23 Dec 2024 12:58:20 -0300 Subject: [PATCH 3/3] Fixes #74 other diagrams --- 2_Tecnicas_y_herramientas/2_.Tecnicas_y_herramientas.md | 2 +- 2_Tecnicas_y_herramientas/2_3_1_Diagramas_de_clases_UML.md | 3 +++ .../2_3_3_Diagramas_de_componentes_UML.md | 4 ++-- .../2_4_1_Diagramas_de_actividades_UML.md | 3 +++ .../2_4_2_Diagramas_de_casos_de_uso_UML.md | 3 +++ 2_Tecnicas_y_herramientas/2_4_3_Diagramas_de_secuencia_UML.md | 3 +++ 6 files changed, 15 insertions(+), 3 deletions(-) diff --git a/2_Tecnicas_y_herramientas/2_.Tecnicas_y_herramientas.md b/2_Tecnicas_y_herramientas/2_.Tecnicas_y_herramientas.md index 03902a9..4eeb5ca 100644 --- a/2_Tecnicas_y_herramientas/2_.Tecnicas_y_herramientas.md +++ b/2_Tecnicas_y_herramientas/2_.Tecnicas_y_herramientas.md @@ -2,7 +2,7 @@ ## 2.1 [Relevamiento](./2_1_.Relevamiento.md) -## 2.2 [Arquitectura](./2_2_.Arquitectura.md) +## 2.2 [Modelos de arquitectura](./2_2_.Arquitectura.md) ## 2.3 [Modelos de estructura](./2_3_.Modelos_de_estructura.md) diff --git a/2_Tecnicas_y_herramientas/2_3_1_Diagramas_de_clases_UML.md b/2_Tecnicas_y_herramientas/2_3_1_Diagramas_de_clases_UML.md index 91796a7..68e9cd3 100644 --- a/2_Tecnicas_y_herramientas/2_3_1_Diagramas_de_clases_UML.md +++ b/2_Tecnicas_y_herramientas/2_3_1_Diagramas_de_clases_UML.md @@ -401,6 +401,9 @@ derivados](../diagrams/Class_Diagram_Derived.svg) *Figura 12: Diagrama de clases con elementos derivados.* +Puedes ver más ejemplos de [diagramas de clases en UML +Diagrams](https://www.uml-diagrams.org/class-diagrams-overview.html). + [^1]: OMG. (2017). OMG® Unified Modeling Language®. Disponible [aquí](https://www.omg.org/spec/UML/2.5.1/PDF). [^2]: Esta notación está expresada usando [Backus-Naur diff --git a/2_Tecnicas_y_herramientas/2_3_3_Diagramas_de_componentes_UML.md b/2_Tecnicas_y_herramientas/2_3_3_Diagramas_de_componentes_UML.md index 913d197..5f25e6c 100644 --- a/2_Tecnicas_y_herramientas/2_3_3_Diagramas_de_componentes_UML.md +++ b/2_Tecnicas_y_herramientas/2_3_3_Diagramas_de_componentes_UML.md @@ -89,8 +89,8 @@ interfaz `ManageInventory` requerida por `Accounting` y provista por *Figura 1: Ejemplo de diagrama de componentes*. - -Puedes ver más ejemplos de [diagramas de componentes en UML Diagrams](https://www.uml-diagrams.org/component-diagrams.html). +Puedes ver más ejemplos de [diagramas de componentes en UML +Diagrams](https://www.uml-diagrams.org/component-diagrams.html). Puedes ver más información sobre diagramas de componentes en las herramientas de modelado [IBM Software diff --git a/2_Tecnicas_y_herramientas/2_4_1_Diagramas_de_actividades_UML.md b/2_Tecnicas_y_herramientas/2_4_1_Diagramas_de_actividades_UML.md index d4b7170..d601d45 100644 --- a/2_Tecnicas_y_herramientas/2_4_1_Diagramas_de_actividades_UML.md +++ b/2_Tecnicas_y_herramientas/2_4_1_Diagramas_de_actividades_UML.md @@ -185,6 +185,9 @@ acciones](/diagrams/Activity_Diagram_Send_Receive_Signals.svg) *Figura 9: Ejemplo de diagrama de actividades con acciones de recepción de señales, acciones temporizadas, y acciones de envío de señales.* +Puedes ver más ejemplos de [diagramas de actividades en UML +Diagrams](https://www.uml-diagrams.org/activity-diagrams.html). + Los diagramas de actividades tienen otros elementos que no cubrimos en este documento; puedes ver los documentos sobre diagramas de actividades de las herramientas de modelado [IBM Software diff --git a/2_Tecnicas_y_herramientas/2_4_2_Diagramas_de_casos_de_uso_UML.md b/2_Tecnicas_y_herramientas/2_4_2_Diagramas_de_casos_de_uso_UML.md index 4a68179..a4ffaa5 100644 --- a/2_Tecnicas_y_herramientas/2_4_2_Diagramas_de_casos_de_uso_UML.md +++ b/2_Tecnicas_y_herramientas/2_4_2_Diagramas_de_casos_de_uso_UML.md @@ -93,6 +93,9 @@ facilitar la lectura. Por otro lado, los actores secundarios pero no interactúa por sí solos; se suele colocarlos del lado derecho del diagrama, también como convención. +Puedes ver más ejemplos de [diagramas de casos de uso en UML +Diagrams](https://www.uml-diagrams.org/use-case-diagrams.html). + Puedes ver más información sobre diagramas de casos de uso con ejemplos adicionales de las herramientas de modelado [IBM Rational Software Architect](https://www.ibm.com/docs/en/rational-soft-arch/9.7.0?topic=diagrams-use-case), diff --git a/2_Tecnicas_y_herramientas/2_4_3_Diagramas_de_secuencia_UML.md b/2_Tecnicas_y_herramientas/2_4_3_Diagramas_de_secuencia_UML.md index 6bf2e63..f3fe645 100644 --- a/2_Tecnicas_y_herramientas/2_4_3_Diagramas_de_secuencia_UML.md +++ b/2_Tecnicas_y_herramientas/2_4_3_Diagramas_de_secuencia_UML.md @@ -124,6 +124,9 @@ convención para facilitar la lectura. A veces los mensajes no corresponden con operaciones, sino que describen el significado general del mensaje. +Puedes ver más ejemplos de [diagramas de secuencia en UML +Diagrams](https://www.uml-diagrams.org/sequence-diagrams.html). + Puedes ver más información sobre diagramas de secuencia en las herramientas de modelado [IBM Software Architect](https://www.ibm.com/docs/en/rational-soft-arch/9.7.0?topic=diagrams-sequence),