b3t5 - UML Flashcards
Quién estandariza UML?
La OMG
y
ISO-SEC 19505
Por qué versión de UML vamos?
2.5.1
Cómo se llama el lenguaje para intercambiar diagramas entre herramientas UML
XMI
Qué es el lenguaje OCL en UML?
Lenguaje para definir restricciones / reglas de negocio
Entre los mecanismos de extensión de UML,
Cómo se ponen las restricciones en UML?
Y los valores etiquetados?
restricciones -> entre llaves {ordered}
valores etiquetados -> también entre llaves {procesadores=3}
Entre los mecanismos de extensión de UML, qué son los Estereotipos?
Es para añadir o modificar semántica de un componente, se expresa con «…»
Entre los mecanismos de extensión de UML, qué son los Perfiles?
Agrupaciones temáticas de estereotipos, restricciones, etc …
Por ejemplo un perfil para “aplicaciones web” que tendrá estereotipos de “interfaz de usuario”, y determinadas restricciones, …
Qué es el concepto de ligadura dinámica en el ADOO?
Está relacionada con el polimorfismo. Es en tiempo de ejecución cuando se determina la clase del objeto concreto que se está manejando.
Repasar conceptos de POO y ADOO
Qué diagramas son de Estructura y cuáles de Comportamiento en UML?
Estructura:
- Clases
- Objetos
- Paquetes
- Estructuras compuestas
- Componentes
- Despliegue
- Perfil
Comportamiento
- Casos de uso
- Actividad
- Estados
- Interacción. Dentro de los cuales –> Secuencia, colaboración/comunicación, tiempos, interacción overview
En UML, dentro de los diagramas de Comportamiento tenemos los de Interacción, cuáles hay dentro de estos?
Secuencia
Colaboración/comunicación
Tiempos
Interacción overview
Explica cómo se representan y qué significan los tipos de relaciones de UML..
Asociación
Composición
Agregación
Dependencia
Herencia
Implementación
Asociación: es cuando se relacionan dos entidades, con una línea sin puntas. A los lados se pone la cardinalidad, pero al contrario de en E/R, no se pone rombo en medio.
Composición: “relación de contención física”. Relaciones todo/parte en la que si desaparece la entidad de la que se depende, también desaparece la entidad dependiente. Línea con rombo relleno, del lado de la entidad de la que se depende
Agregación: “relación de contención lógica”. Relaciones todo/parte en la que si desaparece la entidad de la que se depende, NO desaparece la entidad dependiente. Línea con rombo en blanco, del lado de la entidad de la que se depende
Dependencia: Sirve para especificar una semántica entre dos entidades. Sólo en diseño, nunca en análisis. Tiene que ir estereotipada. Es una flecha con línea discontinua y la cabeza sin cerrar (las interfaces son iguales pero con cabeza cerrada).
Herencia: Una clase hereda de otra. Línea contínua con flecha cerrada blanca
Implementación: Una clase implementa una interfaz. Línea discontínua con flecha cerradda
Para qué sirve y cómo es el diagrama de objetos?
Cómo se llaman las relaciones entre objetos y cómo se representan?
Sirve para tener una visión general de los objetos que intervienen y cómo se relacionan, para facilitar esa visión
Los objetos se relacionan mediante enlaces y se indica de qué clase es cada objeto
Para qué sirve y cómo es el diagrama de Componentes?
Idea de alto nivel que agrupa otros elementos. Ofrece un servicio y un interfaz y sirve para ser reutilizado mediante esa interfaz, se representa con el puerto, que es medio círculo que sale del componente.
Esta las interfaces se conectan mediante conectores
Para qué sirve y cómo es el diagrama de Paquetes?
Sirve para agrupar otros elementos de UML (paquetes, subpaquetes, clases, …)
En UML qué son las condiciones que se ponen entre corchetes?
Se llaman guardas, se ponen en las flechas en los diagramas de secuencia
Qué características tienen los diagramas de Casos de Uso?
Qué diferencia hay entre la relación extend e include entre casos de uso?
Son funcionalidades muy concretas y atómicas
- Existe relación de herencia entre actores
- Existe relación de herencia entre casos de uso
- No todos los casos de uso son de igual “tamaño”
- No existen los casos de uso “abstractos” (ej: Gestionar …)
- Se pueden organizar en paquetes/subsistemas
- Los casos de uso no “explotan” como los DFD’s
- Los casos de uso capturan un nivel de granularidad medio-bajo
- Los casos de uso necesitan ser acompañados de una especificación SRS
- La relación < < extend» indica un comportamiento opcional
- La relación < < include» indica un comportamiento obligatorio
Qué diagrma es equivalente en función al diagrama de secuencia?
El diagrama de comunicación (antes se llamaba de colaboración). Como el de secuencia indica qué mensajes necesitan los objetos para cumplir un caso de uso. Tiene esta pinta –>
Repasar la ficha de GSI de este tema para ver los diagramas
Cómo funciona el polimorfismo y para qué se usa?
Qué es late binding
Es hacer código genérico para mejorar el mantenimiento. Si se crean dos clases que heredan de una tercera, se puede hacer un método que acepte esa superclase, de forma que se le pueda pasar un objeto de cualquiera de las dos clases hijas.
Estas dos clases hijas pueden tener el mismo método implementado de distinta forma.
Es sólo en tiempo de ejecución cuando java sabe qué objeto es el que se le pasa y por tanto al método de cuál de las dos clases hijas se tiene que llamar. Esto se llama late binding o ligadura tardía
Cómo se hace en java, para preguntar si un objeto al que se le ha aplicado polimorfismo es de una clase determinada?
if(p instanceof PolizaVida)
también vale con interfaces, no sólo con las clases
En los diagramas de secuencia, qué tipo de mensajes hay y cómo se representan?
Síncronos: el llamante queda esperando. Flecha rellena con línea contínua
Asíncronos: El llamante no queda esperando. Fecha abierta con línea contínua. También puede tener mensaje de retorno, aunque sea asíncrono
Retorno: Flecha abierta con línea discontínua
Dentro del análisis funcional, están los cásos de uso. Qué campos típicos tiene la definición de un caso de uso?
Versión
Autores
Dependencias
Descripción
Precondición
Secuencia (pasos)
Postcondición
Comentarios
Cómo se representa en un diagrama de clases de UML la visibilidad de atributos y métodos?
Públic -> +
Private -> -
Protected -> #
Paquete -> virgulilla
Derivado -> /