Tema_5_UML Y PATRONES Flashcards
¿Cuales son las partes del desarrollo de un sistema de información?
- ESTUDIO DE VIABILIDAD (EVS)
- ANÁLISIS DEL SISTEMA DE INFORMACIÓN (ASI)
- DISEÑO DEL SISTEMA DE INFORMACIÓN (DSI)
- CONSTRUCCIÓN DEL SISTEMA DE INFORMACIÓN (CSI)
- IMPLANTACIÓN Y ACEPTACIÓN DEL SISTEMA (IAS)
- MANTENIMIENTO DE SISTEMAS DE INFORMACIÓN (MSI)
Di algunos antipatrones de DOO.
O “MALAS PRÁCTICAS”
- Modelo de Dominio Anémico → Clases de dominio (sin funciones) sin lógica de negocio.
- Objeto Todopoderoso (God Object, BLOB) → Concentrar demasiada funcionalidad en una sola clase.
- Código espagueti→ Código enmarañado, lioso.
- Objeto Sumidero → Reutilizar objetos para un fin inadecuado.
- Poltergeist → Es una clase efímera, que llama a métodos.
- Singletonitis → Abuso del patrón Singleton
- YAFL o Código Lasaña → Añadir capas innecesarias
- Llamar a Super → Obligar a las subclases a llamar a un método de la superclase que ha sido sobrescrito.
¿Qué es POLIMORFISMO?
Definición formal:
Un mismo objeto, responde de maneras diferentes a un mismo mensaje.
Definición más correcta:
Un mismo TIPO DE OBJETO, reacciona de forma diferente a un mismo método.
¿Qué es sobrecarga?
Cuando tenemos dentro de una clase, MÉTODOS CON EL MISMO NOMBRE, pero con distinto número o parámetros.
Símbolos de Diagrama de Estado
En UML, señala los conceptos (componentes) de la programación orientada a objetos.
- Clase→ Determina el comportamiento (Métodos) y Estructura (Atributos).
- Método → Comportamiento de ese objeto. “Sobrecarga”.
- Atributo → Datos de negocio o referencia a otros objetos.
- Objeto→ Tiene Estado, que es el conjunto de valores que toman sus atributos e Identidad.
- Mensaje → Llamada a un método, sobre un objeto.
¿Qué tres elementos forman una clase?
¿Qué es PERFIL o PROFILE en UML?
Es agrupar en un paquete, los mecanismos de extensión.
Mecanismos de EXTENSIÓN de UML.
- ESTEREOTIPOS → Para añadir/modificar la semántica a un elemento. Va entre <<***>>. Es decir que le podemos especificar que tipo de clase es, como por ejemplo, una interfaz de usuario, etc..
- RESTRICCIONES → Va entre llaves {restricción}
- VALORES ETIQUETADOS. También entre llaves {“Aquí establecemos un valor”}
- PERFILES → Es agrupar estereotipos, restricciones, personalizados, de un tema concreto.
¿Que es XMI?
También conocido como XML Metadata Interchange, es un lenguaje en XML, utilizado para compartir diagramas entre aplicaciones de modelado.
¿Cual es la versión actual de UML?
La 2.5.1, de 2015.
Modificadores de los atributos y los métodos en las clases.
- + → pública
- - → privada
- # → protegida
- / → derivada
- ~ → paquete
- * → aleatoria
¿Como se representa una relación de AGREGACIÓN?
Una relación de Agregación, es también llamada de Composición Débil.
Puede ser compartida por otros objetos complejos y la desaparición de estos objetos, no implica la desaparición, del objeto agregado.
Con una flecha con punta de ROMBO VACÍO.
¿Como se representa la relación de COMPOSICIÓN?
La relación de composición o COMPOSICIÓN FUERTE, se representa con una flecha con la punta en forma de ROMBO NEGRO.
Los componentes no pueden compartirse y la destrucción del objeto compuesto, implica la destrucción de todos los componentes.
¿Qué es un ESTEREOTIPO?
Sirve para añadir o modificar la semántica a un elemento.
Es una cadena de texto encerrada entre comillas francesas (<< >>).
Relaciones en diagramas de CLASES:
¿Qué es la Infraestructura?
Es un PDF, donde aparecen la reglas básicas de construcción.
Define el metalenguaje principal o núcleo, que puede luego ser reutilizado.
Alineado con UML, MOF y XMI, por lo que se puede exportar a otras herramientas.
¿Como se representa una relación de ASOCIACIÓN?
Con una línea.
¿Como se representa la relación de dependencia estereotipada?
<< estereotipo >>
¿Qué podemos definir mediante OCL?
Object Constraint Language:
Invariantes
Precondiciones
Postcondiciones
Estados
¿Cual es el Estandar de UML?
Object Managment Group
OMG / ISO-IEC 19505
Diagramas Estructurales de UML:
Son 7
Como en Amazon, buscas la CLASE, de OBJETO. Miras su ESTRUCTURA COMPUESTA, sus COMPONENTES. Cuando te decides, vas a tu PERFIL. Compruebas el DESPLIEGUE y compras el PAQUETE.
- CLASES
- OBJETOS
- ESTRUCTURA COMPUESTA
- COMPONENTES
- PERFIL
- DESPLIEGUE
- PAQUETES
¿Cuales son las relaciones en los casos de uso?
De GENERALIZACIÓN → Entra en juego la herencia. El caso hijo es una especialización del caso Padre
INCLUDE → Indica un comportamiento OBLIGATORIO.
EXTEND → Indica un comportamiento OPCIONAL.
¿Que es la Superestructura?
Es una de las 4 partes que forman la estructura de UML.
Es donde se definen los tipos de diagramas y su semántica.
¿Que es OCL?
Object Constraint Language
Lenguaje de restricción de objetos.
¿Qué es una INVARIANTE?
Es una condición que se cumple SIEMPRE.
Diagramas de COMPORTAMIENTO:
Son 7.
- Actividad
- Casos de uso
- Máquina de Estados
- Interacción, que se subdivide en:
=>Secuencia
=>Comunicación
=>Tiempos
=>Diagrama Global
¿Qué son los objetos en UML?
Es la clase, ya con datos concretos. Por ejemplo con datos de una factura.
Principios de POO y ADOO
- Abstracción-Capturar los detalles del negocio.
- Encapsulamiento-Ocultación de los detalles del objeto y no se pueden modificar o añadir datos a ese objeto.
- Polimorfismo
- Herencia-Capacidad de definir unas clases en terminos de otras.
¿Como se representa una INTERFACE?
Poniendo el nombre de la clase entre << >>
<< interface >>
¿Cual es la estructura de la especificación 2.x en UML?
- INFRAESTRUCTURA
- SUPERESTRUCTURA
- OCL (Restricciones)
- UML Data Interchange, que usa el lenguaje XMI (Intercambio entre herramientas CASE)
¿Cómo se representa la HERENCIA?
Con una flecha con la punta triángular, hueca. Va desde la subclase a la superclase. La subclase, además de tener su propio comportamiento, copia también el de la superclase.
¿Como se representa la relación de RELACIÓN/IMPLEMENTACIÓN?
Con una flecha de líneas discontinuas y la punta triángular, vacía.
¿Como se representa una relación de DEPENDENCIA?
Con una línea discontinua con flecha simple abierta.
No es esclusivo de UML.
Tiene que ir estereotipada.
Se usa, para dar semántica a la relación entre dos clases.
¿UML es un lenguaje extensible?
SI, por medio de Estereotipos, Restricciones, Valores etiquetados y Perfiles.
¿En la Herencia, que tipos nos podemos encontrar?
Completa/Incompleta: Si especificamos o no todas las subclases posibles.
Disjunta/No disjunta(Dinámica): Si puede la superclase, ser una cosa u otra, pero no ámbas a la vez(Disjunta) y dinámica, cuando puede pertenecer a más de una subclase.
¿Qué dos tipos de diagramas principales hay en UML?
De ESTRUCTURA y de COMPORTAMIENTO.
YO ME SE LOS DE ESTRUCTURA
¿Qué es UML?
UML significa Lenguaje Unificado de Modelado.
Es un lenguaje de modelado de sistemas de software, respaldado por el OMG.(Object Management Group)
¿Qué es un metamodelo en UML?
Esto es teoría.
Es un modelo genérico, en el que tenemos atributos, clases y nombres.
Es lo que la Infraestructura define.
¿Como se llaman las condiciones que van entre corchetes?
GUARDAS
Casos de uso
- Tiene ACTORES, que son los que participan del caso de uso.
- Los casos de uso, no explotan
- Tienen TRES relaciones importantes, HERENCIA, EXTEND e INCLUDE.
¿Para qué se usan los patrones de diseño?
Para tipificar 1 problema junto con su solución.
¿Qué son patrones de arquitectura?
Son las grandes líneas organizativas del proyecto.
Patrones de arquitectura:
Layered Client, que es un Master en Pipas, y un Broker de Peertopeer y se coge el EventBus, para ver el ModelVC, mientras Interprter en su Blackboard
1.Layered
2.Client-server
3.Master-slave
4.Pipe-filter
5.Broker
6.Peer-to-peer
7.Event-bus
8.Model-view-controller
9.Blackboard
10.Interpreter
¿Qué son GOF, GRASP Y SOLID?
Son diferentes teorías aportadas por diferentes personas, para patrones de diseño.
¿Qué es el concepto de responsabilidad en protocolos de diseño?
Es el concepto de asignar un método a una clase, porque ese método pega más, por funcionalidad, con esa clase
Principio SOLID de Segregación de Interfaces (I)
- Buscar bajo acoplamiento entre clases de distintos subsistemas.
- Para ello, se separan las interfaces, para hacer varias, que hagan funciones relacionadas con el mismo trabajo.
- Habrá subsistemas Cliente y Servidor.
- Las Interfaces, son funciones, que no tienen código. Ese código, lo tendrán que poner las clases que implementen esas funciones de las interfaces. En el ejemplo, f y g no tienen código. Ya habrá una clase, que por medio de Implements, le ponga código a su propia f o g
¿Qué persiguen los patrones de diseño?
El MANTENIMIENTO.
¿Que significa GOF?
Gangs of four
¿Cuales son los 5 principios SOLID?
- S =>Single Responsibility Principle, un solo método para cada clase.
- O => Open / Closed Principle
- L => Liskov Substitution Principle
- I => Interface Segregation Principle,
- D => Dependency Inversion Principle
Categorias de Patrones de diseño de GOF
- CREACIONAL
- ESTRUCTURAL
- COMPORTAMIENTO
Patrones de diseño GOF, CREACIONAL:
AB FPS
- Abstract Factory
- Builder Patterns
- Factory Method
- Prototype
- Singleton
Patrones de diseño GOF, ESTRUCTURAL:
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
- Adapter
Patrones GRASP
- Information expert
- Creator
- Controller
- Indirection
- Low coupling
- High cohesion
- Polymorphism
- Protected variations
- Pure fabrication