B3 - T4 - UML 2 Flashcards
¿Qué representan los diagramas de casos de uso?
Representan la interacción entre los actores externos (usuarios o sistemas externos) y el sistema, ayudando a entender qué funcionalidades ofrece desde la perspectiva del usuario.
¿Cuál es el propósito de un diagrama de casos de uso?
Modelar la interacción entre actores externos y el sistema para identificar las funcionalidades que este debe proporcionar.
¿Qué es un actor en un diagrama de casos de uso?
Es una entidad externa (usuario, sistema u organización) que interactúa con el sistema.
¿Qué es un caso de uso?
Representa una funcionalidad o acción específica que el sistema ofrece a los actores.
¿Qué representa la relación entre un actor y un caso de uso?
Indica que el actor participa en el caso de uso.
¿Qué significa una relación «extend» en un diagrama de casos de uso?
Señala que un caso de uso puede extenderse opcionalmente bajo ciertas condiciones.
¿Qué significa una relación «include» en un diagrama de casos de uso?
Indica que un caso de uso incluye a otro como parte obligatoria de su comportamiento.
¿Qué es el sistema en un diagrama de casos de uso?
Es el entorno que contiene los casos de uso y define el alcance del sistema que se está modelando.
¿Pueden los actores heredar características en un diagrama de casos de uso?
Sí, existe una relación de herencia entre actores.
¿Todos los casos de uso tienen el mismo tamaño?
No, los casos de uso pueden variar en su nivel de detalle y tamaño.
¿Existen casos de uso abstractos?
No, en los diagramas de casos de uso no existen casos abstractos, como ‘Gestionar…’.
¿Cómo se pueden organizar los casos de uso?
Se pueden agrupar en paquetes o subsistemas.
¿Qué diferencia tienen los casos de uso con los diagramas de flujo de datos (DFD)?
Los casos de uso no ‘explotan’ como los diagramas de flujo de datos; se centran en interacciones y no en desglosar procesos.
¿Qué ejemplo práctico puedes dar para un caso de uso?
‘Registrar usuario’ puede ser un caso de uso, con el actor ‘Cliente’ participando en la acción.
¿Cuándo usarías una relación «extend»?
Para modelar una funcionalidad opcional, como ‘Cambiar contraseña’ que solo ocurre bajo ciertas condiciones.
¿Cuándo usarías una relación «include»?
Para dividir comportamientos obligatorios, por ejemplo, ‘Procesar pago’ incluye ‘Validar tarjeta’.
¿Qué tipo de sistemas se benefician de los diagramas de casos de uso?
Sistemas orientados al usuario, donde es crucial entender qué funcionalidades específicas se requieren.
¿Qué representa un diagrama de clases?
Representa la vista estática del sistema, mostrando clases, atributos, métodos y relaciones como asociación, herencia, composición y agregación.
¿De qué tipo de vista del sistema forma parte el diagrama de clases?
De la vista estática del sistema.
¿Cómo se representa una clase en un diagrama de clases?
Por un rectángulo dividido en tres partes: Nombre de la clase, Atributos, Métodos.
¿Qué indican los símbolos +, # y - en los atributos de una clase?
+ Público: accesible desde cualquier lugar.
# Protegido: accesible solo desde la clase y sus subclases.
- Privado: accesible solo dentro de la clase.
¿Qué es un atributo en una clase?
Es una propiedad o característica que describe la información mantenida por la clase.
¿Qué es un método en una clase?
Es una operación o función que define el comportamiento de la clase.
¿Qué es una relación de asociación?
Es una relación estructural que conecta dos o más clases sin una dependencia fuerte entre ellas.
Ejemplo: Cliente → Pedido.
¿Qué es una relación de herencia o generalización?
Es una relación jerárquica donde una subclase hereda atributos y métodos de una superclase.
¿Qué simboliza un triángulo blanco en un diagrama de clases?
Una relación de herencia o generalización.
¿Qué diferencia hay entre composición y agregación?
Composición: Relación fuerte, el ciclo de vida del componente está ligado al contenedor. Si este se destruye, el componente también.
Agregación: Relación más débil, el ciclo de vida del componente es independiente del contenedor.
¿Cómo se representa una relación de composición?
Con un rombo relleno.
Ejemplo: Casa ◆────── Habitación.
¿Cómo se representa una relación de agregación?
Con un rombo sin rellenar.
Ejemplo: Curso ◇────── Estudiante.
¿Qué es la multiplicidad en una relación?
Es una restricción que indica cuántas instancias de una clase pueden relacionarse con otra.
Por ejemplo, 1..* indica al menos una.
¿Qué significa * en la multiplicidad de una relación?
Significa ‘0 o más’ instancias.
¿Qué es una clase origen y una clase destino en una relación?
Clase origen: Es la clase desde la cual se inicia la relación.
Clase destino: Es la clase hacia la cual apunta la relación.
Da un ejemplo de una relación de asociación.
Cliente → Pedido: indica que un cliente puede realizar pedidos.
Da un ejemplo de una relación de herencia.
Vehículo → Coche: donde Coche hereda atributos y métodos de Vehículo.
Da un ejemplo de una relación de composición.
Casa ◆────── Habitación: las habitaciones dependen completamente de la casa.
Da un ejemplo de una relación de agregación.
Curso ◇────── Estudiante: los estudiantes existen independientemente del curso.
¿Qué ventajas ofrece el diagrama de clases en el diseño orientado a objetos?
Permite visualizar y modelar la estructura del sistema, destacando relaciones, atributos y métodos.
¿Cómo pueden ser útiles las relaciones de composición?
Para modelar elementos que tienen una relación de contención fuerte, como partes que no pueden existir sin el todo.
¿Cómo se utilizan las relaciones de herencia en el diseño de software?
Para reutilizar código y organizar jerarquías de clases que comparten atributos y métodos.
¿Por qué se recomienda usar diagramas de clases en proyectos grandes?
Porque ayudan a desglosar la estructura del sistema y organizan las relaciones entre clases de manera clara.
¿Qué es un diagrama de objetos?
Es una representación que muestra instancias específicas del diagrama de clases, representando objetos concretos en un momento específico.
¿Qué relación tiene el diagrama de objetos con el diagrama de clases?
El diagrama de objetos es una instancia del diagrama de clases, donde se modelan ejemplos concretos de las clases definidas.
¿Qué permite visualizar un diagrama de objetos?
El estado actual de un sistema en ejecución.
¿Qué representan los objetos en un diagrama de objetos?
Representan instancias concretas de las clases definidas en el diagrama de clases.
¿Cómo están conectados los objetos en un diagrama de objetos?
A través de ‘enlaces’, que representan relaciones entre los objetos.
¿Qué es un enlace en un diagrama de objetos?
Es una conexión que indica una relación específica entre instancias de clases.
¿Qué significa que un diagrama de objetos representa un ‘árbol de objetos en memoria’?
Significa que muestra una estructura jerárquica de objetos concretos y sus relaciones tal como estarían almacenados en la memoria del sistema.
¿En qué son útiles los diagramas de objetos?
Son útiles para analizar ciertas partes específicas del diagrama de clases y comprender el comportamiento del sistema en un momento dado.
¿Cómo se diferencia un diagrama de objetos de un diagrama de clases?
Diagrama de clases: Muestra la estructura general del sistema con clases, atributos y métodos.
Diagrama de objetos: Muestra ejemplos específicos de las clases en un estado concreto del sistema.
¿Por qué es importante usar un diagrama de objetos en el desarrollo de software?
Porque permite verificar si las relaciones y los datos de los objetos están implementados correctamente en un momento específico del sistema.
¿Cuándo usarías un diagrama de objetos en un proyecto?
Cuando necesites analizar el comportamiento de un sistema en ejecución o depurar las relaciones entre instancias.
¿Qué ejemplo práctico puedes dar de un diagrama de objetos?
En un sistema de gestión de pedidos:
Objeto 1: Cliente ‘Juan Pérez’.
Objeto 2: Pedido #1234.
Enlace: ‘Juan Pérez realizó el Pedido #1234’.
¿Qué tipo de sistemas se benefician más de los diagramas de objetos?
Sistemas complejos donde es necesario entender la interacción y el estado de las instancias concretas, como bases de datos u objetos distribuidos.
¿Qué información debe incluir cada objeto en un diagrama de objetos?
Nombre del objeto.
Clase a la que pertenece.
Valores actuales de sus atributos.
¿Qué tipo de relaciones se analizan en un diagrama de objetos?
Relaciones entre instancias, como asociaciones o dependencias específicas en un momento del tiempo.
¿Qué preguntas ayuda a responder un diagrama de objetos?
¿Qué instancias de clases están activas en un momento específico?
¿Cómo interactúan estas instancias?
¿Cuáles son los valores actuales de los atributos de un objeto?
¿Cómo puede ayudarte un diagrama de objetos a identificar errores en el diseño de software?
Permitiendo comparar el estado actual del sistema con el diseño original y detectar inconsistencias en relaciones o datos.
¿Qué ventajas ofrece usar diagramas de objetos para depuración?
Ayudan a visualizar cómo los objetos concretos están relacionados y si sus valores están alineados con lo esperado en el flujo del sistema.
¿Qué representa un diagrama de componentes?
Representa la arquitectura física del sistema, mostrando los componentes de software y sus dependencias.
¿Qué elementos principales incluye un diagrama de componentes?
Componentes (unidades de software, como bibliotecas o módulos).
Interfaces.
Dependencias entre componentes.
¿Cuál es el propósito principal del diagrama de componentes?
Visualizar cómo se ensamblan y relacionan los diferentes componentes de software en un sistema.
¿Qué representa cada componente en un diagrama de componentes?
Una unidad lógica del sistema, como una biblioteca, módulo, o servicio independiente.
¿Por qué es importante el diagrama de componentes para la arquitectura del software?
Porque proporciona una visión modular del sistema, mostrando cómo los diferentes componentes interactúan y se ensamblan.
¿Cómo ayuda un diagrama de componentes al proceso de despliegue?
Permite identificar qué componentes son necesarios y cómo deben estar configurados o conectados en el entorno de ejecución.
¿Qué significa ‘dependencia’ en un diagrama de componentes?
Indica que un componente necesita o utiliza otro para funcionar correctamente.
¿Qué es una interfaz en el contexto de un diagrama de componentes?
Es el punto de interacción entre un componente y otros, definiendo cómo pueden comunicarse.
¿Cómo se diferencia un diagrama de componentes de un diagrama de despliegue?
Diagrama de componentes: Se centra en los componentes de software y sus dependencias.
Diagrama de despliegue: Se centra en la distribución física de los componentes de software en nodos de hardware.
¿Qué relación tiene un diagrama de componentes con un diagrama de clases?
El diagrama de componentes muestra la implementación física de las clases definidas en el diagrama de clases.
¿Qué ejemplo práctico puedes dar de un componente en un sistema?
Un módulo de autenticación en un sistema web que gestiona los inicios de sesión de los usuarios.
¿Qué tipo de sistemas se benefician más de los diagramas de componentes?
Sistemas grandes y modulares, donde los componentes están distribuidos entre varias unidades o servicios.
¿Cuándo usarías un diagrama de componentes en un proyecto de software?
Durante la etapa de diseño de la arquitectura o al planificar el despliegue del sistema en producción.
¿Qué información debe incluir cada componente en el diagrama?
Nombre del componente.
Sus interfaces.
Dependencias con otros componentes.
¿Cómo ayuda el diagrama de componentes a los equipos de desarrollo?
Facilita la comprensión de cómo interactúan los diferentes módulos y qué dependencias existen, permitiendo un diseño más organizado.
¿Qué preguntas ayuda a responder un diagrama de componentes?
¿Qué módulos forman parte del sistema?
¿Cómo interactúan los módulos entre sí?
¿Qué dependencias externas existen en el sistema?
¿Cómo puede un diagrama de componentes identificar problemas en la arquitectura de software?
Permitirá detectar dependencias circulares, falta de modularidad o componentes que no cumplen con sus interfaces definidas.
¿Qué significa proporcionar una ‘visión modular’ en un diagrama de componentes?
Significa representar el sistema como un conjunto de unidades independientes que interactúan entre sí para cumplir con los requisitos del sistema.
¿Qué ventajas ofrece usar diagramas de componentes en equipos grandes?
Ayudan a dividir responsabilidades, mejorar la comunicación entre equipos y facilitar la integración de módulos.
¿Qué es un diagrama de paquetes?
Es un diagrama que agrupa elementos relacionados en paquetes para organizar grandes sistemas y simplificar la visualización de sus relaciones.
¿Qué representa un paquete en este diagrama?
Un conjunto lógico de elementos relacionados, como clases, interfaces o componentes.
¿Cómo se representa un paquete en UML?
Como un rectángulo con una pestaña en la parte superior que lleva el nombre del paquete.
¿Qué ventaja ofrece un diagrama de paquetes en sistemas grandes?
Ayuda a descomponer el sistema en subsistemas manejables y muestra las relaciones clave entre ellos.
¿Qué tipo de relaciones existen entre paquetes?
Dependencias que indican que un paquete necesita otro para funcionar.
¿Qué es un diagrama de perfil?
Es una extensión de UML que permite crear perfiles personalizados mediante estereotipos, etiquetas y restricciones, adaptando UML para dominios específicos.
¿Qué son los estereotipos en un diagrama de perfil?
Son etiquetas que añaden semántica adicional a los elementos UML.
¿Cuándo usarías un diagrama de perfil?
Cuando necesites adaptar UML a un dominio específico, como sistemas médicos o financieros.
¿Qué tipo de elementos incluye un diagrama de perfil?
Estereotipos.
Etiquetas.
Restricciones.
¿Qué representa un diagrama de actividad?
Representa los flujos de trabajo y procesos dentro de un sistema.
¿Qué significa cada actividad en este diagrama?
Cada actividad representa un paso en un proceso o flujo de trabajo.
¿Para qué es ideal un diagrama de actividad?
Para modelar procesos de negocio o secuencias de acciones complejas dentro de un sistema.
¿Cómo se conecta una actividad con otra en un diagrama?
A través de transiciones que representan el flujo de control.
¿Qué sistemas se benefician más de un diagrama de actividad?
Sistemas de negocio y procesos que involucran múltiples pasos o decisiones.
¿Qué representa un diagrama de comunicación?
Muestra la interacción entre objetos para realizar una tarea o función, enfocándose en las relaciones entre objetos más que en el orden temporal.
¿Qué información principal incluye un diagrama de comunicación?
Objetos y los mensajes que intercambian entre sí.
¿Cuál es la principal diferencia entre un diagrama de comunicación y uno de secuencia?
Diagrama de comunicación: Se enfoca en las relaciones entre objetos.
Diagrama de secuencia: Se enfoca en el orden temporal de los mensajes.
¿Cuándo usarías un diagrama de comunicación?
Cuando necesitas visualizar cómo interactúan los objetos sin considerar el orden exacto de las acciones.
¿Qué ventaja ofrece un diagrama de comunicación?
Resalta las relaciones y dependencias entre los objetos.
¿Qué representa un diagrama de secuencia?
Representa el orden temporal en que ocurren los eventos o mensajes entre objetos.
¿Qué elementos principales incluye un diagrama de secuencia?
Líneas de vida de los objetos.
Mensajes intercambiados.
¿Qué es un diagrama de secuencia?
Se enfoca en el orden temporal de los mensajes.
¿Qué elementos principales incluye un diagrama de secuencia?
Líneas de vida de los objetos, mensajes intercambiados, flujo de control en el tiempo.
¿Cuándo usarías un diagrama de secuencia?
Para analizar la interacción temporal entre objetos y sus dependencias.
¿Qué ventaja tiene el diagrama de secuencia en el diseño de sistemas?
Es excelente para identificar tiempos de ejecución y dependencias entre objetos.
¿Qué significa una ‘línea de vida’ en un diagrama de secuencia?
Representa la existencia de un objeto durante un periodo de tiempo.
¿Qué representa un diagrama de despliegue?
Muestra la disposición física de los nodos de hardware y los componentes de software en el sistema.
¿Qué elementos principales contiene un diagrama de despliegue?
Nodos (hardware), artefactos (componentes de software), conexiones entre ellos.
¿Para qué es útil un diagrama de despliegue?
Para comprender el despliegue físico del sistema y la conectividad entre sus elementos.
¿Qué tipo de sistemas necesitan un diagrama de despliegue?
Sistemas distribuidos o sistemas que requieren especificar la arquitectura física.
¿Qué ventaja ofrece un diagrama de despliegue?
Facilita la planificación del entorno de hardware y software del sistema.
¿Qué representa un diagrama de transición de estados?
Muestra los diferentes estados por los que pasa un objeto durante su ciclo de vida y las transiciones entre ellos en respuesta a eventos.
¿Qué elementos principales incluye un diagrama de transición de estados?
Estados, transiciones, eventos, acciones.
¿Cuándo usarías un diagrama de transición de estados?
Cuando necesites modelar el comportamiento de un objeto que cambia de estado.
¿Qué ventaja tiene un diagrama de transición de estados?
Ayuda a comprender el ciclo de vida completo de un objeto y su respuesta a eventos.
¿Qué ejemplo práctico puedes dar de un diagrama de transición de estados?
Un pedido en un sistema de e-commerce: Estados: ‘Pendiente’, ‘En proceso’, ‘Enviado’, ‘Entregado’. Transiciones: ‘Procesar pedido’, ‘Enviar paquete’.