Diagramas para la documentación de las vistas propuestas en el modelo 4+1

 MODELO 4+1 VISTAS PHILIPPE KRUCHTEN





VISTA LOGICA

La vista lógica, también conocida como vista conceptual, se centra en los aspectos funcionales y lógicos del sistema. Esta vista describe la estructura interna del software, como las clases, los objetos y las relaciones entre ellos. Los diagramas que pueden ayudar a describir esta vista son, diagrama de clases, diagrama de comunicación, diagrama de secuencia.

Diagrama de Clases:

 Representa las clases del sistema, sus atributos y métodos, y las relaciones entre ellas. Este diagrama proporciona una visión estática de la estructura del software y cómo interactúan los objetos.

Estructura

Clases: Las clases representan los objetos o entidades del sistema y se representan como rectángulos divididos en tres secciones. La sección superior contiene el nombre de la clase, la sección central muestra los atributos de la clase y la sección inferior representa los métodos o comportamientos de la clase.

Atributos: Los atributos son características o propiedades de una clase y se representan en la sección central del rectángulo de la clase. Los atributos pueden ser variables o constantes y se muestran junto con su tipo de dato.

Métodos: Los métodos son las operaciones o comportamientos que pueden ser realizados por una clase y se representan en la sección inferior del rectángulo de la clase. Los métodos se muestran junto con su firma, que incluye el nombre del método, los parámetros de entrada y el tipo de retorno. 

Relaciones entre clases: En un diagrama de clases, se pueden representar diferentes tipos de relaciones entre las clases. Algunas de las relaciones comunes son:

  • Asociación: Representa una relación entre dos clases en la que una clase utiliza o tiene una referencia a la otra. Se muestra como una línea sólida entre las clases, con un posible multiplicidad indicando la cardinalidad de la asociación.
  • Herencia: Representa una relación de herencia entre dos clases, donde una clase es una subclase o clase derivada de otra clase, que es la superclase o clase base. Se muestra como una línea con una flecha sólida desde la subclase hacia la superclase, con una etiqueta indicando la relación de herencia.
  • Agregación y composición: Representan relaciones de todo-parte entre clases. En la agregación, una clase se compone de otras clases, pero estas pueden existir de forma independiente fuera de la clase principal. En la composición, una clase se compone de otras clases y estas no pueden existir sin la clase principal. Se muestran como líneas con un rombo o un diamante en el extremo de la línea que apunta a la clase "todo".
  • Dependencia: Representa una relación en la que una clase depende de otra clase en algún contexto particular, como cuando una clase utiliza o llama a métodos de otra clase. Se muestra como una línea punteada con una flecha dirigida desde la clase dependiente hacia la clase de la cual depende.
  • Generalización y especialización: En un diagrama de clases, también se pueden mostrar relaciones de generalización y especialización, que indican la relación entre una clase general (superclase) y clases específicas (subclases). Esto se representa con una línea sólida con una flecha desde la subclase hacia la superclase.

Diagrama de Comunicación:

 
Este diagrama muestra cómo los objetos se comunican entre sí mediante mensajes y cómo fluye la información en el sistema.

Estructura

  • Objetos o instancias: En un diagrama de comunicación, se representan los objetos o las instancias de las clases como rectángulos con el nombre del objeto o el nombre de la instancia debajo. Estos objetos se colocan en la parte superior del diagrama.
  • Líneas de vida: Las líneas de vida se dibujan verticalmente desde los objetos y representan la duración de vida de un objeto durante una interacción. Cada línea de vida tiene un nombre asociado que coincide con el nombre del objeto.
  • Mensajes: Los mensajes entre objetos se representan con flechas dirigidas desde el objeto emisor al objeto receptor. Los mensajes pueden ser síncronos, asincrónicos o de retorno. Los mensajes síncronos se muestran con una línea sólida, los mensajes asincrónicos con una línea punteada y los mensajes de retorno con una línea punteada con una flecha de retorno.
  • Etiquetas de mensajes: Las etiquetas se colocan junto a las flechas de los mensajes para indicar la acción o información que se comunica. Estas etiquetas pueden representar llamadas a métodos, solicitudes de información, respuestas, etc.
  • Orden de los mensajes: El orden de los mensajes se representa mediante el posicionamiento vertical de las flechas de los mensajes. Los mensajes que se envían primero se colocan más arriba en el diagrama.
  • Notas y restricciones: Puedes agregar notas o restricciones en el diagrama para proporcionar aclaraciones adicionales o información relevante sobre las interacciones.
Diagrama de Secuencia:

 
Un diagrama de secuencia es un tipo de diagrama de interacción que muestra la secuencia de interacciones entre los objetos o las instancias de las clases en un sistema a lo largo del tiempo. Este diagrama se utiliza para visualizar el flujo de mensajes entre los objetos y cómo se coordinan para realizar una funcionalidad específica.

Estructura

  • Objetos o instancias: En un diagrama de secuencia, se representan los objetos o las instancias de las clases como rectángulos verticales en la parte superior del diagrama. Cada objeto tiene un nombre asociado que se coloca en la parte superior del rectángulo.
  • Líneas de vida: Las líneas de vida se dibujan verticalmente desde los objetos y representan la duración de vida de un objeto durante una secuencia de interacciones. Las líneas de vida se extienden a lo largo del tiempo y pueden incluir marcas o puntos para indicar momentos específicos en la secuencia.
  • Mensajes: Los mensajes entre objetos se representan con flechas dirigidas desde el objeto emisor al objeto receptor. Los mensajes se colocan en la secuencia de tiempo y se numeran secuencialmente para indicar el orden de las interacciones.
  • Activaciones: Las activaciones se representan con una barra vertical en la línea de vida del objeto emisor y se extienden hacia abajo para indicar la duración en la que el objeto está activo mientras procesa el mensaje.
  • Retornos: Si un objeto emisor necesita recibir una respuesta o un resultado del objeto receptor, se muestra un mensaje de retorno que regresa al objeto emisor.
  • Fragmentos y condicionales: Los fragmentos de interacción, como bucles o condiciones, se pueden representar mediante cuadros rectangulares llamados fragmentos o regiones. Estos fragmentos se utilizan para mostrar la lógica o el control de flujo en la secuencia de interacciones.
  • Notas y restricciones: Puedes agregar notas o restricciones en el diagrama para proporcionar aclaraciones adicionales o información relevante sobre las interacciones.

VISTA DE DESARROLLO O DE DESPLIEGUE

Esta vista se centra en los aspectos técnicos y de implementación del sistema, proporcionando detalles sobre cómo se desarrolla y construye el software. Los diagramas que pueden ayudar a describir esta vista son diagrama de componentes, diagrama de paquetes.

Elementos

  • Módulos o componentes: La vista de desarrollo identifica los módulos o componentes del sistema que serán desarrollados. Estos módulos representan unidades lógicas y funcionales del software que se pueden implementar y probar de manera independiente. Los módulos se agrupan en base a la funcionalidad relacionada y se describen en detalle en términos de su estructura interna y las interfaces que ofrecen.
  • Estructura de directorios: La vista de desarrollo muestra cómo se organiza el código fuente y otros recursos relacionados en la estructura de directorios del proyecto. Esto puede incluir la jerarquía de carpetas y subcarpetas, así como las convenciones de nomenclatura utilizadas para los archivos y directorios.
  • Dependencias y relaciones de código: Se representan las dependencias entre los módulos o componentes del sistema. Estas dependencias indican qué módulos dependen de otros y cómo se comunican entre sí. Las relaciones de código también pueden incluir el uso de bibliotecas externas o frameworks que se utilizan en el desarrollo del sistema.
  • Interfaces y contratos: La vista de desarrollo define las interfaces y los contratos que se establecen entre los módulos o componentes del sistema. Estas interfaces especifican cómo los diferentes módulos interactúan entre sí y qué funcionalidad proporcionan. Los contratos establecen las responsabilidades y los requisitos que deben cumplirse para garantizar la interoperabilidad y la correcta integración entre los componentes.
  • Herramientas y entornos de desarrollo: Se describen las herramientas y los entornos de desarrollo utilizados para la construcción del software. Esto puede incluir lenguajes de programación, frameworks, IDEs (entornos de desarrollo integrados), sistemas de control de versiones, compiladores, entre otros. También se pueden incluir directrices y estándares de codificación utilizados en el proyecto.

Diagrama de Componentes:

 
Este diagrama muestra cómo los componentes del sistema están organizados, cómo se relacionan entre sí y cómo se agrupan en subconjuntos lógicos.

Estructura

  • Componentes: Los componentes se representan como rectángulos con el nombre del componente en su interior. Cada componente puede ser una unidad lógica independiente que encapsula ciertas funcionalidades y puede ser implementado y desplegado de manera independiente.
  • Interfaces: Las interfaces definen cómo los componentes interactúan entre sí. Se representan como círculos o rectángulos con el nombre de la interfaz. Las interfaces pueden incluir operaciones, eventos y otros puntos de interacción.
  • Relaciones de dependencia: Las relaciones de dependencia muestran las dependencias entre los componentes. Pueden ser de dos tipos:
    1. Dependencia requerida: Representada por una línea punteada con una flecha dirigida desde el componente que requiere hacia el componente requerido. Indica que el componente dependiente requiere la funcionalidad o los servicios proporcionados por el componente requerido.
    2. Dependencia proporcionada: Representada por una línea punteada con una flecha dirigida desde el componente que proporciona hacia el componente que utiliza. Indica que el componente proveedor ofrece funcionalidades o servicios utilizados por el componente cliente.

  • Agrupaciones lógicas: Los componentes relacionados pueden agruparse en subconjuntos lógicos o módulos utilizando rectángulos o líneas de agrupación. Esto ayuda a organizar y comprender la estructura del sistema.
  • Interfaces de implementación: En un diagrama de componentes, también se pueden mostrar las interfaces de implementación de los componentes. Estas interfaces representan cómo los componentes se conectan con los elementos del entorno, como bases de datos, servicios externos u otros sistemas.
Diagrama de paquetes: 

Este diagrama muestra las relaciones y dependencias entre los paquetes, y cómo se agrupan las clases y otros elementos relacionados dentro de cada paquete.

Estructura

  • Paquetes: Los paquetes se representan como rectángulos con el nombre del paquete en su interior. Cada paquete puede ser una agrupación lógica de clases, subpaquetes u otros elementos relacionados. Los paquetes pueden tener jerarquía, lo que significa que pueden contener subpaquetes.
  • Relaciones de dependencia: Las relaciones de dependencia muestran las dependencias entre los paquetes. Pueden ser de dos tipos:

    1. Dependencia requerida: Representada por una línea punteada con una flecha dirigida desde el paquete que requiere hacia el paquete requerido. Indica que el paquete dependiente requiere las clases o funcionalidades proporcionadas por el paquete requerido.
    2. Dependencia proporcionada: Representada por una línea punteada con una flecha dirigida desde el paquete que proporciona hacia el paquete que utiliza. Indica que el paquete proveedor ofrece clases o funcionalidades utilizadas por el paquete cliente.

  • Clases y elementos relacionados: Dentro de cada paquete, se pueden mostrar las clases y otros elementos relacionados que pertenecen a ese paquete. Estos elementos se representan como rectángulos con el nombre del elemento en su interior. Estas clases pueden tener relaciones de dependencia entre sí dentro del mismo paquete.

  • Agrupación y anidamiento de paquetes: Los paquetes relacionados o subpaquetes pueden agruparse o anidarse dentro de un paquete superior utilizando líneas de agrupación o jerarquía. Esto ayuda a organizar y estructurar los paquetes y subpaquetes de manera lógica.


VISTA FISICA

Esta vista se enfoca en los aspectos relacionados con la infraestructura física en la cual se despliega y ejecuta el sistema. Proporciona una representación detallada de los recursos físicos necesarios, como hardware, redes y dispositivos, para soportar la ejecución del software. Los diagramas que pueden ayudar a describir esta vista son diagrama de despliegue.

Diagrama de despliegue: 


Un diagrama de despliegue es un tipo de diagrama estructural que se utiliza en el modelado de sistemas para representar la arquitectura física de un sistema y cómo los componentes se distribuyen y despliegan en diferentes nodos de hardware. Este diagrama muestra cómo los componentes del sistema se ejecutan en los diferentes nodos y cómo se comunican entre sí a través de conexiones de red.

Estructura

  • Nodos: Los nodos representan los dispositivos de hardware en los cuales se ejecutan los componentes del sistema. Estos nodos pueden ser servidores, computadoras personales, dispositivos móviles, routers, etc. Se representan como cajas o rectángulos con el nombre del nodo en su interior.
  • Componentes: Los componentes del sistema se representan como rectángulos o elipses y se colocan dentro de los nodos para indicar en qué nodo se ejecutan. Cada componente tiene un nombre asociado y puede ser una unidad lógica independiente del sistema, como un módulo, una aplicación o un servicio.
  • Relaciones de despliegue: Las relaciones de despliegue se utilizan para mostrar cómo los componentes se despliegan en los nodos. Se representan mediante líneas con una flecha dirigida desde el componente al nodo en el que se ejecuta. Esto indica que el componente está desplegado en ese nodo específico.
  • Conexiones de red: Las conexiones de red se utilizan para mostrar la comunicación entre los nodos. Se representan mediante líneas que conectan los nodos y pueden indicar diferentes tipos de conexiones, como conexiones LAN, WAN, Wi-Fi, etc.
  • Artefactos: Los artefactos son elementos adicionales que pueden mostrarse en el diagrama de despliegue para representar archivos o recursos necesarios para la ejecución de los componentes. Estos artefactos se representan como rectángulos y se pueden colocar tanto en los nodos como en los componentes.
  • Anotaciones: Puedes agregar anotaciones o notas en el diagrama para proporcionar aclaraciones adicionales o información relevante sobre el despliegue del sistema.

VISTA DE PROCESOS

Esta vista se enfoca en los aspectos dinámicos del sistema, describiendo los procesos y las interacciones entre ellos durante la ejecución del software. Proporciona una representación de alto nivel de los procesos que se ejecutan en el sistema y cómo se comunican entre sí. Los diagramas que pueden ayudar a describir esta vista son diagrama de actividades.

Elementos

  • Procesos: Los procesos representan las unidades de ejecución del software, que pueden ser ejecutados en hilos separados o en máquinas diferentes. Cada proceso puede realizar una o varias actividades y se puede ejecutar de forma concurrente o secuencial. Los procesos se representan como bloques rectangulares y se identifican con sus características y funciones específicas.
  • Comunicación y sincronización: La vista de procesos muestra cómo los procesos se comunican y sincronizan entre sí durante la ejecución del sistema. Esto incluye la transferencia de datos, el envío de mensajes, la sincronización de eventos y cualquier otro mecanismo de comunicación utilizado entre los procesos. Se pueden utilizar diferentes protocolos y técnicas de comunicación, como colas de mensajes, llamadas a procedimientos remotos (RPC), eventos o semáforos.
  • Concurrencia y paralelismo: La vista de procesos tiene en cuenta los aspectos de concurrencia y paralelismo en el sistema. Esto implica la ejecución simultánea de múltiples procesos y cómo se gestionan los recursos compartidos y los posibles conflictos. Se pueden utilizar técnicas como bloqueo, exclusión mutua o semáforos para garantizar la correcta sincronización y coordinación entre los procesos.
  • Planificación y administración de tareas: Esta vista también aborda la planificación y la administración de tareas dentro del sistema. Se pueden mostrar políticas de planificación utilizadas, como el algoritmo de planificación de procesos, la asignación de recursos y la gestión de la carga de trabajo. Además, se pueden identificar tareas de administración del sistema, como la monitorización, la recuperación de errores y la gestión de eventos.
  • Ciclo de vida de los procesos: La vista de procesos puede describir el ciclo de vida de los procesos, desde su creación hasta su finalización. Esto incluye los eventos y las acciones asociadas a cada etapa del ciclo de vida, como la inicialización, la ejecución, la suspensión y la terminación de los procesos. También se pueden mostrar las transiciones entre los diferentes estados de los procesos.

Diagrama de actividades:


 
Un diagrama de actividades es un tipo de diagrama de comportamiento que se utiliza en el modelado de sistemas para representar el flujo de actividades o procesos dentro de un sistema. Este diagrama muestra el orden secuencial de las actividades, las decisiones y las ramificaciones que ocurren en el sistema.

Estructura

  • Actividades: Las actividades representan las acciones o tareas que se llevan a cabo en el sistema. Se representan como rectángulos con el nombre de la actividad en su interior. Las actividades pueden ser acciones simples, como "Enviar correo electrónico", o actividades más complejas que pueden contener subactividades.
  • Flujo de control: El flujo de control se muestra mediante flechas que conectan las actividades. Estas flechas indican el orden secuencial de las actividades, es decir, cómo se ejecutan una tras otra. El flujo de control puede ser lineal, ramificado o repetitivo, dependiendo de las decisiones y condiciones dentro del sistema.
  • Decisiones y ramificaciones: Las decisiones se representan con un rombo y se utilizan para mostrar puntos de decisión en el flujo de actividades. Dependiendo de una condición o criterio, el flujo puede bifurcarse en diferentes caminos. Cada camino representa una opción o resultado diferente. Las flechas salientes del rombo indican las diferentes ramificaciones que pueden seguirse.
  • Actividades de fusión: Las actividades de fusión se utilizan para unir los caminos divergentes en un solo flujo de control. Se representan con una barra horizontal y se utilizan para mostrar dónde se reúnen los caminos que se ramificaron en una decisión anterior.
  • Flujos de datos: Los flujos de datos se utilizan para representar el flujo de información o datos entre las actividades. Se representan con flechas etiquetadas y muestran cómo se transmiten los datos de una actividad a otra.
  • Actividades paralelas: Las actividades paralelas se utilizan para representar actividades que pueden ejecutarse simultáneamente o en paralelo. Se representan con barras verticales y las flechas de entrada y salida indican las dependencias y el flujo de control entre las actividades paralelas.
  • Estados: Los estados se utilizan para representar las condiciones o estados en los que se encuentra el sistema o las actividades. Se representan como óvalos y pueden estar asociados con una actividad o una transición.

Comentarios

Entradas populares de este blog

Resumen Estrategia de prueba del software

Mapa de Telaraña Fundamentos de Pruebas