B3 T9 O.O. UML Patrones Diseño Flashcards
En programación orientada a objetos en que consiste el ENCAPSULAMIENTO
ENCAPSULAMIENTO: reunión de elementos pertenecientes a una misma entidad (clase)
En programación orientada a objetos en que consiste el POLIMORFISMO
POLIMORFISMO: objeto no sé de qué tipo va a ser hasta que se ejecute. Mismo nombre, objetos y comportamientos
distintos.
En programación orientada a objetos en que consiste el PRINCIPIO DE OCULTACIÓN
PRINCIPIO DE OCULTACIÓN: estructura interna oculta, info accesible a través de los métodos
Que es acoplamiento entre módulos?
el grado de interdependencia entre módulos
Que la cohesión en un módulo?
relación existente entre los elementos de un módulo
un módulo con alta cohesión realiza:
a) una o varias tareas complejas
b) una tarea concreta y sencilla.
b) una tarea concreta y sencilla.
Nombra al menos 5 lenguajes de OO
Smalltalk, C++, C#, Java, Python, Eiffel, Ruby, Scala, Swift, VB.NET, PHP, D, R, Object Pascal, Gambas, JavaScript, Oz, Perl, Processing, ActionScript, Ada.
Hay una Ada con la cara de Tailor Swift que Scala por la Torre Eiffel en el mundo de Oz. En lo alto de la torre hay una caja con Gambas, Perlas y Rubies. Una vez llega arriba se encuentra con Dorothy, el espantapájaros, el hombre de hojalata y el Leon y solo es capaz de decir hola y que hoy hace sol (Smalltalk).
Principios SOLID:
S: Single responsibility
O: Open/closed
L: Liskov substitution
I: Interface segregation
D: Dependency inversion
En que consiste el principio SOLID de Single responsibility
Single responsibility: Principio de responsabilidad única. Cada clase/modulo debería tener 1 sola funcionalidad.
En que consiste el principio SOLID de Open/closed
Open/closed: Principio de abierto/cerrado. Modulos abiertos para su extensión pero cerrados para su modificación (interfaz estable).
En que consiste el principio SOLID de Liskov substitution
Liskov substitution: Objetos de un programa deberían ser reemplazables por instancias de sus subtipos. Subclases se deben comportar de igual forma que los de la superclase.
En que consiste el principio SOLID de Interface segregation
Interface segregation: Muchas interfaces cliente específicas son mejores que
una interfaz de propósito general.
En que consiste el principio SOLID de Dependency inversion
Dependency inversion. Principio de inversión de dependencia. Depender de abstracciones, no de implementaciones
Principio DRY
Don’t Repeat Yourself (DRY): evitar duplicaciones lógicas
Principio IoC
Inversion of Control (IoC): delegar en un tercero diferentes tipos de flujos de control, bajo acoplamiento
Principio YAGNI
Your Aren´t Gona Need It (YAGNI): no se deben agregar funcionalidades extras
Principio KISS
Keep It Simple, Stupid (KISS): Buscar la simplicidad y huir de la complejidad innecesaria
Principio LoD
Principio Ley de Demeter (LoD): objeto no tiene porqué conocer la estructura interna de los objetos con los que colabora. Bajo acoplamiento.
Un objeto solo debe interactuar con:
* métodos del propio obj
* argumentos que recibe
* cualquier objeto creado dentro del método o con cualquier campo directo dentro del propio objeto.
Conjunto de métodos y datos(atributos), existen en tiempo de compilación.
CLASES
Módulos que contienen datos y las instrucciones que manipulan esos datos, existen en tiempo de
ejecución.
OBJETOS
Elementos que mantienen el estado del objeto
Atributos (suelen ser privados)
Mensaje para realizar alguna acción en un objeto
Métodos (suelen ser públicos)
Una clase solo puede tener un método constructor. Verdadero o Falso?
Falso. Pueden existir varios constructores para una misma clase
Getter:
Getter: devuelve el valor de un atributo/propiedad de un objeto.
Setters:
Setters: modifica el valor de un atributo/propiedad de un objeto.
Un Atributo con “+” es:
Público (+): se puede acceder desde cualquier clase.
Un Atributo con “-“ es:
Privado (-): solo se puede acceder desde los métodos de la clase donde están definidos.
Un Atributo con “#” es:
Protegido (#): se pueden acceder desde la propia clase y desde clases hijas.
Cuando una clase sobrescribe el código del método heredado en la clase hija, se denomina:
redefinición
Cuando tengo varios métodos con el mismo nombre pero varía el número y el
tipo de argumentos, se denomina:
SOBRECARGA
UML
Unified Modeling Language.
Especificar, visualizar y
documentar modelos de sistemas software.
Que fases del ciclo de vida no abarca UML?
Abarca todas
Enumera los diagramas ESTRUCTURALES de UML:
- Clases
- Componentes
- Objetos
- Estructura Compuesta
- Despliegue
- Paquetes
Enumera los diagramas de COMPORTAMIENTO de UML:
- Actividad
- Casos de uso
- Maquina de Estados
- Secuencia (interacción)
- Global de interacción (interacción)
- Comunicación (interacción)
- Tiempos (interacción)
Diagrama que refleja clases de objetos y sus asociaciones, no refleja comportamientos temporales.
Diagrama de Clases
En el Diagrama de Clases la relacion de composicion se representa con:
un rombo relleno
En el Diagrama de Clases la relacion de dependencia se representa con:
una flecha discontinua
Cual es la versión actual de UML?
2.5.1
Diagrama que refleja una instantánea del sistema en un momento en el tiempo y que utiliza la misma notación que diagrama de clases
DIAGRAMA DE OBJETOS
Diagrama que muestra la estructura interna de una clase.
DIAGRAMA DE ESTRUCTURA COMPUESTA
Diagrama que muestra la disposición de las particiones físicas del sistema de información
DIAGRAMA DE DESPLIEGUE
En el DIAGRAMA DE DESPLIEGUE como se denominan los componentes software que se ubican en los nodos?
Artefactos
Diagrama que muestra la visión física, organización de los componentes software, sus interfaces y las dependencias entre ellos.
DIAGRAMA DE COMPONENTES
Diagrama que muestra la organización en subsistemas, agrupando los elementos del análisis, diseño o construcción y detallando las relaciones de dependencia entre ellos
DIAGRAMA DE PAQUETES
En el diagrama de paquetes las dependencias entre paquetes se representan con:
flecha discontinua
Que diagramas de comportamiento son de interacción:
- Secuencia (interacción)
- Global de interacción (interacción)
- Comunicación (interacción)
- Tiempos (interacción)
En el diagrama de actividad como se representa la transición Fusion/Merge y que expresa?
Rombo
Uno de los caminos
En el diagrama de actividad como se representa la transición Fork y que expresa?
Rectángulo
Expresa paralelismo
En el diagrama de actividad como se representa la transición Join y que expresa?
Rectángulo
llegan transacciones concurrentes
Que diagrama utiliza la misma notación que el diagrama de actividad?
DIAGRAMA DE MAQUINA DE ESTADOS
Cuantos estados iniciales podemos encontrar en el DIAGRAMA DE MAQUINA DE ESTADOS? y finales?
1 incial
varios finales
Diagrama que permite describir el comportamiento dinámico del sistema de información haciendo énfasis en la secuencia de los mensajes intercambiados por los objetos.
DIAGRAMA DE SECUENCIA
Que se representa en el eje horizontal del DIAGRAMA DE SECUENCIA? y en el vertical?
Horizontal: los objetos
Vertical: Tiempo
Las flechas de respuesta en el DIAGRAMA DE SECUENCIA son continuas o discontinuas?
continuas la ida
discontinuas el retorno
Diagrama que muestra el orden de los mensajes. Mostrar el comportamiento dinámico del sistema de información mostrando cómo interactúan los objetos entre sí.
DIAGRAMA DE COMUNICACION
Diagrama que muestra una vista global sobre el resto de diagramas de interacción
DIAGRAMA DE GLOBAL DE INTERACCIÓN
Diagrama que muestra el cambio en el estado o valor de uno o más elementos en el tiempo
DIAGRAMA DE TIEMPOS
Patrones de CREACIÓN (o creacionales): cómo puede crearse un objeto.
o Abstract Factory (Factoría abstracta).
o Builder (Constructor).
o Factory Method (Factoría).
o Prototype (Prototipo).
o Singleton (Instancia única).
o Model View Controller (Modelo Vista Controlador).
(Hay dos factorías una abstracta (cubista) y otra metódica (llena de fórmulas matemáticas y teoremas que flotan a su alrededor y salen por su chimenea) en medio esta mi primo mingo (constructor) con un casco blanco. Mingo tiene en una mano un prototipo de una nueva fábrica, de repente aparece otro prototipo en su otra mano y el primer prototipo desaparece. No me jodas! Exclama sin saber que ha pasado, mira al cielo y ve un mando de la tele con unojo que apunta hacia él.)
Patrones ESTRUCTURALES: como los objetos se conectan con otros objetos, los combinan y forman estructuras mayores.
o Adapter o Wrapper (Adaptador o Envoltorio).
o Bridge (Puente).
o Composite (Objeto compuesto).
o Decorator (Decorador).
o Facade (Fachada).
o Flyweight (Peso ligero).
o Proxy.
(Hay un puente y al final solo la fachada de una casa cubista, la fachada que es muy ligera sale volando y detrás aparece la decoradora (Elia) que se está comiendo un wrap con un adaptador de corriente dentro. Elia comienza a cruzar el puente y lleva varias piezas de un rompecabezas que está intentando componer, cuando llega a la mitad del puente se encuentra al señor proxy que no le deja pasar y le dice que el llevara rompecabezas al casa realista que se encuentra al otro lado del puente)
Patrones d COMPORTAMIENTO: objetos que manejan tipos particulares de acciones y llamadas entre diferentes objetos. (11)
o Chain of Responsability (Cadena de responsabilidades).
o Command (Comando).
o Interpreter (Intérprete).
o Iterator (Iterador).
o Mediator (Mediador).
o Memento (Recuerdo).
o Observer (Observador).
o State (Estado).
o Strategy (Estrategia).
o Template Method (Método plantilla).
o Visitor (Visitante).
(En una sala con un escudo muy grande del Estado Español hay un Comandante con una cadena que pone Responsability, en una mesa esa sentado el rubio de memento que solo habla chino, con el esta un interprete chino-español y un mediador que habla con el comandante. El mediador da vueltas alrededor de la mesa (Iterator). El Rubio de memento esta explicando una Estrategia para salvar el Estado Español, y pinta en un papel rayas y figuras u poco torcidas. Entra en la sala un visitante con una plantilla de rayas y formas. La escena es observada por otro comandante desde un cristal oscuro.)
Que patrón define una interfaz para crear familias de objetos relacionados o dependientes entre sí sin especificar las clases concretas?
a) Factory Method
b) Abstract Factory
c) Builder
d) Facade
b) Abstract Factory
Que patrón permite la creación de una variedad de objetos complejos desde un objeto Fuente?
a) Factory Method
b) Abstract Factory
c) Composite
d) Builder
c) Builder
Que patrón centraliza en una clase constructora la creación de objetos de un subtipo de un tipo
determinado, ocultando al usuario la casuística para elegir el subtipo que crear ?
a) Factory Method
b) Abstract Factory
c) Composite
d) Builder
a) Factory Method
Que patrón en tiempo de compilación permite desacoplar una abstracción de su implementación. Ambas puedan ser modificadas independientemente sin necesidad de que la alteración de una afecte a la otra.
a) Facade
b) Adapter o Wrapper
c) Bridge
d) Strategy
c) Bridge
Que patrón provee de una interfaz unificada sencilla que haga de intermediaria entre un cliente y una interfaz o grupo de interfaces más complejas
a) Facade
b) Adapter o Wrapper
c) Bridge
d) Interpreter
a) Facade
Que patrón convierte la interfaz de una clase en otra interfaz para adaptarla. Permite que clases con interfaces incompatibles puedan trabajar juntas.
a) Facade
b) Adapter o Wrapper
c) Bridge
d) Interpreter
b) Adapter o Wrapper
Que patrón permite mantener un conjunto de algoritmos de los que el objeto cliente puede elegir aquel que le conviene e intercambiarlo según sus necesidades.
a) Facade
b) Adapter o Wrapper
c) Bridge
d) Strategy
d) Strategy
Que patrón permite definir nuevas operaciones sobre una jerarquía de clases sin modificar las clases sobre las que opera.
a) Strategy
b) Command
c) Decorator
d) Visitor
d) Visitor
Que patrón permite crear nuevos objetos duplicándolos, clonando una instancia.
a) Factory Method
b) Prototype
c) Composite
d) Builder
b) Prototype