B3-T5_UML Flashcards
¿En qué se diferencian el diagrama de ACTIVIDAD del de SECUENCIA?
SECUENCIA: simplemente representa la interacción entre objetos en orden secuencial, es decir, en el orden en el que tiene lugar dichas interacciones.
Un diagrama de Secuencia por CASOS DE USO.
ACTIVIDAD: es, básicamente, un diagrama de flujo que muestra actividades ejecutadas por un sistema.
Son los equivalentes en POO a los diagramas de flujo DFD.
¿Qué 4 tipos de relaciones existen en los diagramas de CASOS DE USO?
- COMUNICACIÓN: Relación (asociación) entre un actor y un caso de uso, que se enlazan mediante líneas continua sin puntas. El estereotipo de la relación de comunicación es: «communicate».
- INCLUSIÓN: Un caso de uso base incorpora EXPLÍCITAMENTE el comportamiento de otro en algún lugar de su secuencia, para enriquecer un caso de uso con otro y compartir funcionalidades.
«include» - EXTENSIÓN: Un caso de uso base incorpora IMPLÍCITAMENTE el comportamiento de otro caso de uso en una serie de puntos concretos y previstos en el momento del diseño, llamados puntos de extensión, los cuáles no son parte del flujo principal.
«extend»
MNEMOTECNIA: Inclusión/Explícitamente => I/E
Extensión/Implícitamente => E/I
NOTA: Implícito, es algo que está incluido en otra cosa sin que esta lo exprese o lo manifieste de manera directa, es decir, habría que interpretarlo.
El término es el antónimo de explícito, que refiere a lo que expresa clara y determinadamente una cosa, NO habría que interpretarlo.
- ESPECIALIZACIÓN y GENERALIZACIÓN: Un caso de uso , subcaso o hijo, hereda el comportamiento y significado de un super-caso o padre (hereda las relaciones de COMUNICACIÓN, INCLUSIÓN y EXTENSIÓN del super-caso).
Los casos de uso “hijo” (sub-caso) son una especialización del caso de uso “padre” (super-caso).
Es decir, la ESPECIALIZACIÓN es cada parte (hijo) en la que hereda el super-caso (padre). En el diagrama se aprecia, depende de si lo miras desde arriba o desde abajo, como podemos comprobar en la foto:
Sabemos que hay 2 tipos de diagramas UML (Estructurales y de Comportamiento), define los ESTRUCTURALES:
*CLASES: representa los diferentes tipos de objetos (diagrama de objetos) y los tipos de relaciones ESTÁTICAS que existen entre ellos.
*OBJETOS: muestra una vista completa o parcial de los objetos de un sistema en un instante de ejecución específico. Muestra las asociaciones del Diagrama de CLASES uno a uno.
*COMPONENTES: representa cómo un sistema de software es dividido en componentes y muestra las dependencias entre estos componentes.
*ESTRUCTURA COMPUESTA: para poder meternos dentro del componente u objeto (Zoom in).
*DESPLIEGUE: muestra la disposición física de los artefactos software en nodos (plataforma de hardware), es decir, en que nodos vamos a desplegar los componentes.
*PAQUETES: muestra cómo un sistema está dividido en agrupaciones lógicas (paquetes) y las dependencias entre esas agrupaciones.
*PERFIL: (PROFILE) perfiles que creamos para extender la semántica UML (lenguaje extensible). Es decir, permite el uso de perfiles creados para un metamodelo dado.
NOTA: UML persigue que en un mismo diagrama tengas la parte de alto nivel y la de detalle JUNTAS.
Sabemos que hay 2 tipos de diagramas UML (Estructurales y de Comportamiento), define los De COMPORTAMIENTO:
*ACTIVIDAD: es un diagrama de flujo que representa gráficamente un algoritmo o proceso. Son los equivalentes a los diagramas de flujo DFD.
*CASOS DE USO: es una descripción de las actividades que deberá realizar alguien o algo para llevar a cabo algún proceso.
*ESTADOS: (también llamado diagrama de máquina de estados) muestra los estados por los que pasa una máquina de estados finitos.
*INTERACCIÓN:diagrama UML que se emplea para captar el comportamiento interactivo de un sistema. Hay 4 tipos:
- SECUENCIA: muestra cómo interactúa un conjunto de objetos en un proceso a lo largo del tiempo. Muestra los mensajes que pasan entre los participantes y los objetos del sistema y el orden en que se producen. Junto al de COMUNICACIÓN son las 2 manera de representar las relaciones entre objetos en UML (POO).
- COMUNICACIÓN: forma de representar interacción entre objetos, alterna al diagrama de secuencia, aunque aquí si se ven los enlaces entre objetos (árbol de objetos) y las secuencias están numeradas, en lugar de mediante una línea temporal.
- TIEMPOS: para modelar el comportamiento del sistema dando especial importancia al tiempo.
- INTERACTION OVERVIEW: (también llamado Diagrama Global de Interacción) hace una visualización “Zoom in” (como el de Estructura Compuesta) para poder ver una actividad concreta dentro de un diagrama de Actividad con otro de Interacción (ej: Diagrama de Secuencia)
NOTA: UML persigue que en un mismo diagrama tengas la parte de alto nivel y la de detalle JUNTAS.
Resume la biografía de UML:
1º UML fue creado en la empresa “Rational”, donde también se creó RUP (Rational Unified Process).
*RUP: es un proceso “Interactivo” e “Incremental”, donde en cada interacción se toma un conjunto de casos de uso y se desarrollan las 3 fases: diseño, implementación y pruebas.
Otros procesos unificados (UP): OpenUP y AgileUP.
NOTA: estos UP, dirigidos por los casos de uso, están centrados en sobre que ARQUITECTURA vamos a trabajar y tienen enfoque en la Gestión de Riesgos lo + pronto posible (enseñar cuanto antes el producto al cliente para que nos informe de posibles modificaciones).
2º Luego fue gobernado por la organización de empresas OMG, que también tiene el estándar CORBA.
3º AHORA ES UN ESTÁNDAR DE:
ISO-IEC 19505
Define UML, CORE y CASE:
*UML: es un POO para hacer diagramas que especifiquen sistemas tanto su parte estructural como dinámica.
Es un lenguaje EXTENSIBLE, es decir, si quisiéramos modelar un determinado dominio y no fuera suficiente con la semántica de UML, tiene mecanismos para ampliar dicha semántica (PROFILE).
*CORE: paquete que se considera el núcleo de UML.
*CASE: herramienta informática para hacer diagramas.
NOTA: un POO es un conjunto de objetos que colaboran entre sí.
¿En qué se diferencian SUPERESTRUCTURA (notación y semántica de los diagramas) de INFRAESTRUCTURA (metamodelo de soporte) en UML?
*SUPERESTRUCTURA: se definen los diagramas (modelos) a través de los elementos especificados en la INFRAESTRUCTURA.
*INFRAESTRUCTURA: donde se definen los metamodelos, que van a dar soporte a los diagramas (SUPERESTRUCTURA).
CORE, METAMODELOS (M3 -> M2 -> M1 -> M0) y PROFILE (estereotipos, restricciones y valores etiquetados).
NOTA: son dos PDFs o capas que componen la estructura de UML.
¿Qué es OCL (Lenguaje para definir restricciones/reglas)?
Es un mini-lenguaje o sintaxis para establecer condiciones, invariantes (condición que se cumple siempre), reglas, postcondiciones, estados, … en UML.
¿Cómo se intercambian los datos (diagramas/modelos) en UML?
Con la herramienta XMI (XML Metadata Interchange), para el intercambio de diagramas y compartir modelos UML basados en XML, entre diferentes herramientas de modelado.
Define mecanismos de EXTENSIÓN de UML:
*«ESTEREOTIPOS»: para indicar de que tipo es una clase.
Ej: «UI»
*{RESTRICCIONES}: limita los valores que las entidades pueden tomar. Las delimita con llaves, que coloca cerca de la entidad restringida.
Ej: {ordered} => condiciona que una colección de objetos este ordenada.
*VALORES ETIQUETADOS: cuando queremos que un campo (atributo o columna) tenga un valor determinado.
Ej: {procesadores=3}
*PERFILES (PROFILE): paquete o conjunto de mecanismos de EXTENSIÓN (estereotipos, restricciones y valores etiquetados), que creamos sobre un tema. Con nuevos elementos (otros lenguajes orientados a objetos), para complementar el lenguaje tradicional o base de UML.
Ej: crear un paquete con métodos Java para completar nuestro diagrama:
«JSP» ESTEREOTIPO creado por PROFILE, porque no existia en UML (aporta la especificación de la clase).
Otro ejemplo en la FOTO ADJUNTADA (EJB)
¿Qué son JSP y EJB?
*JSP: JavaServer Pages es una tecnología para crear páginas web dinámicas basadas en HTML y XML. JSP es similar a PHP, pero usa el lenguaje de programación Java.
*EJB: la API Enterprise JavaBeans de J2EE, como su propio nombre indica (APIinterface), es una interface que dota al programador de un modelo basado en componentes (flexibles y reutilizables), que le permite abstraerse de los problemas generales de una aplicación empresarial (transacciones, persistencia, seguridad, …) y poderse centrar en el desarrollo de la lógica de negocio.
Esquematiza la jerarquía FOUR-LAYER de los metamodelos definidos en la INFRAESTRUCTURA UML:
M3 (MOF): clases de cosas en general.
^
M2 (UML Metamodelo): están todos los atributos y clases a utilizar.
^
M1: (User Metamodelo): relación de clases (atributos y métodos) con los objetos de “M0”.
^
M0 (Runtime Instance): los objetos (instancias=objetos) que estamos manejando, NO hay clases.
Sabemos que la filosofía para desarrollo MDA (Model Driven Architecture), dirigida por modelos tan detallados para evitar programar, cayó en saco roto, pero ¿cuáles son las fases en las que se divide?
El proceso de desarrollo de software con MDA se puede dividir en las siguientes fases:
1º CIM (Computationally-Independent Model): describe conceptualmente un sistema.
2º PIM (Plataform Independient Model): construcción de un modelo de alto nivel del sistema, independiente de cualquier tecnología o PLATAFORMA.
3º PSM (Plataform Specific Model): transformación del modelo anterior a uno especifico de plataforma, describiendo el sistema con una tecnología determinada.
4º Generación de CÓDIGO a partir del modelo PSM (este proceso puede automatizarse).
IMPORTANTE: para el paso de PIM a PSM y de PSM a código se usan herramientas de transformación, como MOF (Meta Object Facility), que es un estándar OMG ( Object Management Group) y para definir e intercambiar modelos. Y también define el formato de intercambio de modelos M1 basado en XML, llamado XMI (XML Metadata Interchange).
UML usa el paradigma “orientado a objetos” (POO y ADOO= Análisis y Diseño Orientado a Objetos), define algunos conceptos de dicho paradigma:
*CLASES: estructura de programación que define ATRIBUTOS (estructura) y MÉTODOS (comportamiento) de un OBJETO. Es decir, es la plantilla o esqueleto para crear objetos.
*OBJETO: (Estado o Identidad) elemento donde almacenar la información. Es cada una de las partes de una clase, se crean a partir de estas y sirven para guardar información.
*ATRIBUTO: datos de negocio o referencias a otros objetos, es decir, cada uno de los campos definidos en una clase.
*MÉTODO: implementación de un determinado comportamiento. Es decir, son cada una de las funciones / operaciones de una clase. (SOBRECARGA: cuando tenemos muchos métodos con el mismo nombre, pero distintos parámetros en una clase concreta).
*MENSAJE: llamada a un método.
UML usa el paradigma “orientado a objetos” (POO y ADOO= Análisis y Diseño Orientado a Objetos), define algunos conceptos de dicho paradigma:
*ABSTRACCIÓN: capturar los detalles del negocio a modelar => 1º objetos y 2º clases. Es decir, es el proceso mental para pasar lo particular (objetos) a lo general (clases).
*ENCAPSULAMIENTO: ocultación de los detalles internos del objeto => reducir acoplamiento. Es decir,aislar un objeto para ocultar sus detalles internos.
*POLIMORFISMO: (ES LA BASE DE LA TECNOLOGÍA DE LA PROGRAMACIÓN) capacidad para que objetos de distintas clases se hagan pasar por el mismo tipo. Es decir, es la técnica mediante la cual un mismo tipo de objetos tiene comportamientos diferentes frente a un mismo mensaje.
(LIGADURA DINÁMICA: capacidad que tiene el programa cuando se usa poliformismo para, en tiempo de ejecución, decidir cual es el objeto concreto que hay que llamar).
*HERENCIA: capacidad para definir una clase en términos de otra. Es decir, es la relación entre clases que define una clase dentro de otra, identificando los grupos de clases.
¿Qué son los Patrones de Análisis y pon un ejemplo?
Técnica de análisis que se repite tantas veces en los proyectos, que lo catalogan como patrón.
EJEMPLO: Patrón QUANTITY: refleja la parte monetaria (amount) y unidad (ej: double), es decir, en vez de:
double peso => quantity peso
*En resumen, QUANTITY refleja 2 partes:
“numérica y la unidad”
20 euros
100 kilogramos
Define el Diagrama de CLASES de UML (Diagrama Estructural):
Diagrama de la estructura ESTÁTICA (NO incluye la forma en la que se comportan los elementos a lo largo de la ejecución) de un sistema, mostrando las clases del sistema, sus atributos, métodos, y las RELACIONES entre los objetos.
Tipos de relaciones:
*Relación de ASOCIACIÓN: en el extremo de una asociación podemos definir: CARDINALIDAD y ROLE.
AUTOR———LIBRO (linea continua)
*Relación de HERENCIA: cuando una clase hereda de otra.
Book Item —–>BOOK ( (linea continua+ punta cerrada)
*Relación de AGREGACIÓN: un cierto objeto agrega elementos de otro, pero si eliminas el principal NO eliminas los asociados (Relación LÓGICA).
se representa con un rombo vacío
*Relación de COMPOSICIÓN: si se borra el objeto principal SI se borran los asociados. (Relación FÍSICA). Todo/parte.
se representa con un rombo relleno
*Relación de DEPENDENCIA: tiene que ir «estereotipada» para tener sentido, sino no existiría la dependencia entre las clases.
Un cambio en la especificación del elemento independiente puede afectar al elemento dependiente:
MOSTRAR FORMULARIO - - - - > FORMULARIO
(Clase DEPENDIENTE - - - - > Clase INDEPENDIENTE)
- - - - -> (linea discontinua+ punta abierta)
¿Cómo se indica una “implementación” y en qué se diferencia de la Relación de Dependencia?
SE INDICA: linea de flecha discontinua y punta CERRADA.
SE DIFERENCIAN: en la Relación de DEPENDENCIA la punta de la flecha es ABIERTA, aunque la linea también es discontinua.
¿Cómo se indica la visibilidad en los elementos de una clase (atributos y métodos) en UML?
VISIBILIDAD:
(+) PÚBLICO: se puede acceder desde cualquier lugar de la aplicación.
(-) PRIVADO: sólo se accede desde la misma clase.
(#) PROTEGIDO: sólo se puede acceder desde las misma clase o desde las clases que heredan de ella.
(/) DERIVADO
(~) PAQUETE
NOTA: el Diagrama de CLASES es una estructura ESTÁTICA, que define las clases que se utilizarán cuando se pase a la fase de construcción y la manera en que se relacionan.
Define el Diagrama de OBJETOS de UML (Diagrama Estructural):
Muestra las asociaciones del Diagrama de Clases una a una y poderlas analizar. Por lo tanto, UN DIAGRAMA DE OBJETOS PARTE DE UN DIAGRAMA DE CLASES.
Los objetos están enlazados independientemente por un LINK (enlace), normalmente a la derecha de la clase => “en este diagrama de objetos TODO son enlaces”.
NOTA: representa objetos y enlaces en lugar de clases y relaciones (Diagrama de Clases).