UML y Patrones POO Flashcards

1
Q

¿Cual seria el proceso de desarrollo de un modelo Orientado a Objetos?

A

–No muy importante—

Fase1) ANALISIS
DETECCION DE PROBLEMA Y CASOS DE USO
Diagrama de caso de uso (requisitos funcionales)
Diagrama de clases (entidades/relaciones): clases (atriburos y metodos) + relaciones (asociacion/ agregacion/ composicion/ herencia)

Fase2) DISEÑO / ARQUITECTURA

a) Elección de arquitectura:
+ MVC –> Te marca una serie de módulos / subsistemas: presentacion, logica, modelo, persistencia…..:
- PRESENTACION:
- LOGICA –> Classes (ej. En Spring @Service)
- MODELO –> Clases (clases + interfaces+ relaciones de dependencia)
- PERSISTENCIA –> Clases (ej. En Spring @Repository)
+ ….

b) Diseño de bajo nivel
Ej.: Si tengo objetos muy complejos de crear –> Patron tipo “Factory”
Si tengo objetos com mucho ciblo de vida (estados) –> Patron tipo “State”

Fase3) IMPLEMENTACION

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Estructura UML 2.x

A

– No muy importante —

a) INFRAESTRUCTURA –> Metamodelo de soporte

b) SUPERESTRUCTURA –> Notación semantica de los diagramas

c) OCL –> Lenguaje para definir restricciones / reglas. Se puede agregar a muchos diagramas. ej.: clase Meeting inv: self.end > self.start –> obliga a fecha fin mayor que fecha ini

d) UML Data Interchange –> .XMI. Estandard de intercambio de información entre herramientas CASE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Mecanismos de extensión UML

A

a) Esteriotipo –> Añade semántica a un elemento &laquo_space;UI&raquo_space; que no la tiene por si mismo. Ej.: para definir una interfaz en un diagrama de clases: «interface»

b) Restricciones –> { ordered } Para definir una regla. ej.: que una lista de productos este ordenada

c) Valores Etiquetados –> { procesadores = 3 } Definición de valores fijos. ej.: un atributo con valor fijo

d) Perfiles –> Conjunto de Estereotipos, restricciones, valores etiquetados para una tematica dada

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Conceptos de POO. ADOO

A

a) Clase –> Define una estructura y comportamiento de una entidad dada

b) Objeto –> Elemento donde almacenar info. Estado (contenido o ifo que tiene dentro el obj). Identidad (identificacion univoca)

c) Método –> Implementación de un determnado comportamiento. Sobrecarga

d) Atributo –> Datos de negoio o referencias a otros objetos

c) Mensaje –> Llamada a un método sobre un objeto

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Principios de POO

A

a) Abstracción –> Capturar los detalles de negocio al modelar. 1º Objs 2º Clases

b) Encapsulación –> Ocultación de detalles internos del objeto. Reducir acoplamiento

c) Polimorfismo –> Objetos de distintas clases ‘se hagan pasar’ por el mismo tipo. Ligadura dinámica: técnica con la que se averigua el método real a ejecutar (Late binding)

d) Hereencia –> Capacidad de definir unas clases en terminos (a partir) de otras

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cual es el estandard de UML

A

ISO/IEC 19505: en 2012

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Árbol de diagramas UML

A

Saberse la foto y encuadrar en los dos grandes grupos: Comportamiento y Estructurales.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Diagrama de clases

A

*Asociación. Las relaciones de asociación representan un conjunto de enlaces entre objetos o instancias de clases. Es el tipo de relación más general, y denota básicamente una dependencia semántica. Por ejemplo, una Persona trabaja para una Empresa.

Multiplicidad, que describe la cardinalidad de la relación, es decir, especifica cuántas instancias de una clase están asociadas a una instancia de la otra clase. Los tipos de multiplicidad son: Uno a uno, uno a muchos y muchos a muchos.

*Herencia. Las jerarquías de generalización/especialización se conocen como herencia. Herencia es el mecanismo que permite a una clase de objetos incorporar atributos y métodos de otra clase, añadiéndolos a los que ya posee. Con la herencia se refleja una relación “es_un” entre clases. La clase de la cual se hereda se denomina superclase, y la que hereda subclase.

*Agregación. La agregación es un tipo de relación jerárquica entre un objeto que representa la totalidad de ese objeto y las partes que lo componen. Permite el agrupamiento físico de estructuras relacionadas lógicamente. Los objetos “son-parte-de” otro objeto completo. Por ejemplo, motor, ruedas, carrocería son parte de automóvil.

*Composición. La composición es una forma de agregación donde la relación de propiedad es más fuerte, e incluso coinciden los tiempos de vida del objeto completo y las partes que lo componen. Por ejemplo, en un sistema de Máquina de café, las relaciones entre la clase máquina y producto, o entre máquina y depósito de monedas, son de composición.

*Dependencia. Una relación de dependencia se utiliza entre dos clases o entre una clase y una interfaz, e indica que una clase requiere de otra para proporcionar alguno de sus servicios.

«use» –> Marcan tipo de relacion de dependencia
Rombo vacío –> Agregación
Rombo lleno –> Composición
Línea punteada flecha abierta –> Dependencia
Línea punteada flecha cerrada –> Implementacion (interfaz)
Línea flecha cerrada –> Herencia
Flecha en mitad de una relación –> Dirección de una relacion (ej.: Autor |> escribió |> Libro)
* –> Cardinalidad 0..N
1 –> Cardinalidad 0..1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Diagrama de Componentes

A

Linea cabeza en C –> indica dependencia de un Ciruculo de otro componente
Linea punteada cabeza en > –> indica hacia donde va la dependencia
Circulo –> Interfaces que ofrece (operaciones). Se pueden tener varios en un componente.
Cuadrados –> Ports (puertos) por donde nos comunicamos con otros compoenntes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Diagrama de Casos de Uso

A
  • 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
  • La relación «extend» indica un comportamiento opcional. Se da solo cuando se satisfaga una determinada condicion, no es obligatorio aunque se de el caso de uso base.
  • La relación «include» indica un comportamiento obligatorio. Siempre que se da el caso de uso base, se da el incluido. Nace de que se identifica un comportamiento común en el flujo de varios casos de uso y se ‘saca’ a otro caso de uso.

Lo que hay dentro de las pelotitas (caso de uso) se tiene que poder especificar con un Diagrama de Actividad.

***Importante las relaciones «extend» e «include»

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Diagrama de Paquetes

A

Agrupa funcionalidades para que tengamos un orden legible y no todo en una misma ‘hoja’.

Paquete con un triangulo –> Modelo que agrupa otros paquetes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Diagrama de Actividad

A
  • Nos ayudan a definir nuestros procesos de negocio y casos de uso
  • Se pueden añadir los objetos sobre los que trabajan ciertas actividades
  • Nos ayudan a plantear los casos de prueba (escenarios)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Diagrama de Objetos

A
  • Representan un ejemplo de arbol de objetos en memoria
  • Son útiles para analizar ciertas partes del diagrama de clases
  • Los objetos están conectados mediante “enlaces”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Diagrama de Perfil

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Diagrama de Transición de Estados

A
  • Se realizar para ciertas clases con comportamiento dinamico
  • Son la antesala del patrón de diseño State
  • Nos ayudan a plantear ciertas pruebas Unitarias
  • Tiene que haber una correspondencia con la clase correspondiente
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Diagrama de Colaboración / Comunicacion e Interacción-Secuencia

A
  • Son diagramas equivalentes
  • Representan un único escenario dentro de un diagrama de actividad
  • El de comunicación es algo mas completo porque vemos los enlaces entre objetos

Def M3: El diagrama de secuencia es un tipo de diagrama de interacción cuyo objetivo es describir el comportamiento dinámico del sistema de información haciendo énfasis en la secuencia de los mensajes intercambiados por los objetos.

Escenario: Estos diagramas representan escenarios y son representaciones de uno de los caminos que puede tomar el Diagrama de Actividad o el Caso de Uso (por ‘dentro’)

Interacción-Secuencia VS Comunicacion
SeInteracción-Secuencia: la linea temporal es la ‘vertical’
Interacción-Secuencia: No se ve la relación entre sus elementos
Comunicación: no tiene linea temporal se asignan orden a las asociaciones
Comunicación: SI que se ve la relación entre sus elementos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Diagrama de Timing

A

—- No es importante —
De Interacción
Que nos suene, es un cronograma de tiempos. Sistemas donde le tiempo sea crítico

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Diagrama de Interaction Overview

A

De Interacción

Es como hacer zoom en una parte del diagrama de actividad y mostrar otros de interaccion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Diagrama de Despliegue

A
19
Q

La última versión del estándar de UML es:

a) 2.5

b) 2.4.1

c) 2.4

d) 3.0

A

a) 2.5

NOTA: Actualmente 2.5.

20
Q

En UML un diagrama de componentes:

a) Describe la estructura del sistema mostrando las clases del sistema, sus atributos y relaciones entre ellas.

b) Describe cómo un sistema de software se divide en componentes y muestra las dependencias entre ellos.

c) Sirve para modelar el hardware utilizado en las implementaciones del sistema, los componentes implementados en el hardware y las asociaciones entre componentes en un momento especifico.

d) Muestra una vista completa o parcial de la estructura de un sistema modelado en un momento específico.

A

b) Describe cómo un sistema de software se divide en componentes y muestra las dependencias entre ellos.

21
Q
A
22
Q

C++ permite especificar más de una función con el mismo nombre en el mismo ámbito. ¿Cómo se denominan estas funciones?

a) Funciones dobles.

b) Funciones repetidas.

c) Funciones sobrecargadas.

d) En C++nose puede nombrar más de una función con el mismo nombre.

A

c) Funciones sobrecargadas.

23
Q

Según METRICA v3, la relación jerárquica entre un objeto que representa la totalidad de ese objeto y las partes que lo componen, es una relación entre clases de tipo:

a) Herencia.

b) Composición.

c) Asociación.

d) Agregación.

A

d) Agregación.

24
Q

Según METRICA v3, ¿cuál es diagrama que describe en detalle un determinado escenario de un caso de uso?

a) Diagrama de Interacción.

b) Diagrama de representación.

c) Diagrama de flujo de datos

d) Diagrama de casos de uso.

A

a) Diagrama de Interacción.

25
Q

Cuál de las siguientes afirmaciones NO se corresponde con el lenguaje UML:

a) Una clase se representa mediante un rectángulo con tres secciones, la superior contiene el identificador o nombre de la clase, la central contiene los atributos, y la inferior, las operaciones o métodos que tienen asociados.

b) Las asociaciones son los elementos que representan las relaciones que existen entre los elementos estructurales que se utilizan en los modelos.

c) Un tipo de asociación entre elementos estructurales es la dispersión

d) La agregación es un tipo de asociación entre elementos estructurales que representa una clase que es parte de otra.

A

c) Un tipo de asociación entre elementos estructurales es la dispersión

26
Q

En su Unidad se realizan diagramas UML. ¿Qué diagrama muestra las interacciones entre los participantes, haciendo especial énfasis en la secuencia de mensajes?

a) Diagrama de secuencia.

c) Diagrama de estado.

b) Diagrama de comunicación

d) Diagrama de tiempo.

A

a) Diagrama de secuencia.

27
Q

En UML 2.5, ¿cuál de los siguientes diagramas pertenece a la categoría de diagramas de estructura?

a) Diagrama de paquetes.

b) Diagrama de flujo de información.

c) Diagrama de secuencia.

d) Diagrama de actividad

A

a) Diagrama de paquetes.

28
Q

¿Cuál de los siguientes NO es una de las características del modelo orientado a objetos?

a) Modularidad

b) Abstracción

c) Durabilidad

d) Reusabilidad

A

c) Durabilidad

29
Q

A la hora de modelar la nueva aplicación se ha utilizado UML 2.5, señale entre los siguientes, el que es un diagrama de interacción:

a) Diagrama de Estructura,

b) Diagrama de Tiempos.

c) Diagrama de Componentes.

d) Diagrama de Actividades.

A

b) Diagrama de Tiempos.

30
Q

El diagrama anterior representa una parte del nuevo sistema que deberá desarrollarse en JAVA. En ella se muestra un diagrama UML de:

a) Despliegue

b) Componentes

c) Paquetes

d) Clases

A

b) Componentes

31
Q

El proceso que consiste en mejorar el código una vez escrito cambiando su estructura interna sin modificar su comportamiento externo es:

a) Ofuscación.

b) Encapsular.

c) Refactorización

d) Comprimir.

A

c) Refactorización

32
Q

En el contexto de la programación orientada a objetos, ¿qué entendemos por superclase?

a) Una clase padre de la que pueden derivar una serle de subclases.

b) Una clase padre en la que se definen todas las variantes de métodos y atributos de sus clases heredadas, denominadas subclases.

c) Una clase que deriva de otra completando los métodos que deja sin definir.

d) Una clase resultado de fusión de dos o más clases padres.

A

a) Una clase padre de la que pueden derivar una serle de subclases.

33
Q

La caracteristica de los lenguajes orientados a objetos que permite declarar y definir dos métodos con el mismo nombre, pero distintos argumentos, se denomina:

a) Sobrescritura

b) Polimorfismo

c) Herencia

d) Sobrecarga

A

d) Sobrecarga

34
Q

Concepto de sobrecarga

A

OBJETIVO: Tener en una misma clase un mismo método con varias “VERSIONES”

Versiones –> Se diferencian por el nº y/o tipo de parametro de entrada

35
Q

¿Que es un estereottipo de UML? Uso en el diagrama de casos de uso

A

Es un mecanismo de EXTENSION para incorporar/cambiar la semantica de otro elemento de UML.

NOTA: Existen algunos predefinidos como: < < interface > >, < < extends > >, < < include > >, < < import > >, < < use > >

Casos de uso utiliza: < < extend > >, < < include > >

NOTA: Podemos definir los nuestros propios (para una cierta tematica) y agruparlos en un ‘profile’ o ‘perfil’

36
Q

Nombré los cuatro diagramas de iteracción

A
  • Interaction overview
  • Timing
  • Secuencia
  • Comunicación (antes llamado Colaboración)
37
Q

¿Qué representa un diagrama de objetos?

A

Un árbol de objetos en memoria. Es un caso particular de instancias realacionadas que se crea a partir de una serie de clases.

OBJETIVO: Poder ‘testear’ una parte del modelo. Quitan el nivel de abstracción que meten las clases.

38
Q

Utilidad de OCL

A

Lenguaje para definir restricciones (condiciones de negocio) en nuestros modelos.

Ej.: Invariantes, precondiciones, postcondiciones, ….

39
Q

¿Qué representa un diagrama de secuencia? ¿Sirve para lo mismo el diagrama de actividad?

A

a) Representa las INTERACCIONES (mensajes) entre los objetos dentro de un determinado ESCENARIO
Escenario = 1 camino dentro del flujo completo de un caso de uso

b) Representa el FLUJO completo de un casos de uso/proceso de negocio.

40
Q

Concepto de mensaje en POO

A

Mecanismo a través del cual se invoca a un método SOBRE un objeto.

41
Q

¿Cómo se representa un interface en UML? ¿Y si se relaciona con una clase que lo implementa?

A

a) Como una clase estereotipada con < < interface > >

b) Una relación de implementacion/realización (línea discontinua + triangulo)

42
Q

¿Qué detalle importante indica la relación < < extends > > entre caso de uso?

A

Que la extensión de un cierto caso de uso no tiene por qué darse (OPCIONAL)

NOTA: Unto de extension es la zona de la burbuja donde especificamos la condición para que se pueda dar.

43
Q

¿Cuál es la utilidad del diagrama de paquetes?

A

Agrupar/organizar elementos de UML relacionados (clases, casos de uso….) para reducir complejidad ‘visual’

44
Q
A