B03-T09 Diseño orientado a objetos Flashcards

1
Q

Diferencias principales entre programación estructurada y OO

A
  • Módulos construidos alrededor de operaciones | al rededor declases
  • Datos gloabales y distribuidos entre los módulos | Clases débilmente acopladas y sin datosglobales
  • Entreda-proceso-salida| Encapsulación-mensajes
  • Diagramas de flujos de datos | Diagramas jerárquicosdeclases
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué es una clase?

A

Coleccción de propiedades y métodos que operan con las propiedades o datos.
El estado de un objeto viene determinado por sus datos.

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

¿Conceptos básicos de la herencia?

A
  • Superclase - (clase padre de la que heredan las subclases)
  • Subclase - la clase que hereda
  • Herencia múltiple - una subclase puede heredar de varias clases al mismo tiempo. C++ sí, Java no
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Estructura de un módulo en la programación estructurada o imperativa

A
  • Interfaz: datos de entrada, datos de salida y descripción de la funcionalidad
  • Implementación: datos locales y secuencial de instrucciones
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Ventajas de la programación estructurada o imperativa

A
  • Facilita el desarrollo. Evita repetición del trabajo, compartimentado en módulos, Diseño topdown: descomposición en subprogramas
  • Facilita el mantenimiento: claridad de código, independencia de los módulos
  • Favorece la reutilización
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

En la programación estructurada o imperativa, qué son los TAD

A

Tipos abstractos de datos,que permite abstraer datos y operaciones. Por ejemplo: pila, cola, lista árboles…

Estructura de datos que almacena información para representar un determinado concepto.

La funcionalidad del TAD obtenida por un conjunto de operaciones que se pueden realizar sobreel TAD

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

Ventajas de los TAD

A
  • Concepto del dominio de los datos reflejada en el código
  • Encapsulamiento
  • Especificación versus implementación
  • Mayor modularidad
  • Mayor facilidad de mantenimiento
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Características de la POO

A
  • Da soporte sintáctico explícito para la abstracción de datos: definición de clases, métodos, creación objetos, acceso a atributos e innovación métodos
  • Cambia el punto de vista
  • Aparecen nuevos conceptos: Objeto, Herencia de estructura y de funcinoalidad, polimorfismo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Ventajas de la POO

A
  • Abstración + disciplina programación: Reutilización código, Facilita mantenimiento y extensión, Encapsulación y modularidad
  • Potencia del lenguaje. Definición de clases, herencia, polimorfismo
  • Reflejar conceptos de la realidad.
  • Más sencillo de aprender
  • Acoplamiento bajo y cohesión alta.
  • Extensibilidad
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qué se entiende por acoplamiento

A

La interdependencia entre elementos

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

Qué se entiende por cohesión

A

La relación entre los diferentes componentes de un elemento.

Alta cohesión: realiza una tarea concreta y sencilla

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

Incovenientes de la POO

A
  • No evita los malos análisis o diseños
  • Preparación específica
  • Curva de aprendizaje alta. Múltiples librerías.
  • Los OO son poco eficientes, necesitan una arquitecturas relativamente potentes
  • Reusabilidad está comprometida por la calidad de los paquetes
  • Librerías de componentes deben tener una configuración estricta
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hitos históricos imporantes en las decadas de 1960 y 1970

A
  • Primera aplicación bajora paradigma OO: Scketchpad (63)
  • Primer lenguaje OO: Simula 67 (67)
  • Refina nociones asociadas a clases y registros (75)
  • Smaltalk
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hitos históricos imporantes en las decadas de 1980 y 1990

A
  • Effiel (1985). Mejora Smalltalk
  • Módula-2 (Niklaus With). Incluyó conceptos como la abstracción de datos y la programación modular
  • Módula-3 (1990’s). DEV y Olivetti lo desarrollaron
  • C++.
  • VisualBasic. Microsoft
  • Borland. Delphi
  • Python. Lenguaje scripting, disponen características OO Relativament nuevo, sintaxis y semántica basada en Módula 3
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

C++

A
  • Creado en la decada de los ochenta.
  • Evolución de C
  • POO
  • Compilado y muy portable.
  • Tipado fuerte.
  • No hace limpieza dinámica de memoria
  • Permite el tratamiento de excepciones
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hitos históricos imporantes en las decadas de 1990 y XXI

A
  • Java
  • .Net (Microsoft)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Características principales de Java

A
  • Apareción en 1995
  • Lenguaje intrepretado semicomplidao
  • Genera byte-code interpretado para máquina virtual (JVM)
  • No permite herencia multiple
  • Dispone de garbage coelctor
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

POO - Objeto

A

instanciación de una clase.
Datos más lógica para tratarlos

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

POO - Mensaje

A

Solicitud para que el objeto se comporte de una manera determinada -> llamara un método

Protocolo: Conjunto de mensajes al que puede responder un objeto

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

POO - Clases

A

Propiedades más métodos

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

POO - Clase abstracta

A

Clase que no puede ser instanciada

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

POO - Biblioteca de clases

A

Conjunto de clases para una determinada tarea de programación

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

POO - Biblioteca de componentes

A

Grupo de clases que implementan una interfaz determinada

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

POO - Interfaz

A

Conjunto de métodos públicos que soporta una clase, y los mensajes que es capaz de tratar

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

POO - Tipos de operaciones en POO

A
  • Constructor
  • Destrucutor
  • Selector (get)
  • Modificador (set)
  • Copiador 8copu, clone)
  • Iterador
  • Visualizador
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

POO - tipos de visibilidad

A
  • Público
  • Protect
  • Private
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

POO - Normas generales para aplicrar visibilidad

A
  • El estado de la clase debe ser privado
  • Las operaciones que definen la funcionalidad deben ser públicas
  • Funcionalidades que ayudan a implementar la funcionalidad principal deben ser privadas o protegidas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Propiedades fundamentales de la OO

A
  • Identidad
  • Clasificación
  • Herencia
  • Polifmorfismo
  • Encapsulación
  • Persistencia
  • Extensibilidad
  • Reusabilidad
  • Composición/agregación
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

POO - Qué es Identidad

A

Los objetos tienen su identidad inherente.
Identificador único denominado handle (puntero, valor,etc)

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

POO - Qué es Clasificación

A

Misma estructura de datos y mismo comportamiento

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

POO - Tipos de herencia

A
  • De implementación: herencia de los métodos del padre implementados
  • De interfaz: hereda la interfaz pero no la implementación de operaciones (permite el polimorfismo)
  • De clase: hereda atributos y métodos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

POO - Qué es el polimorfismo

A

Una misma interfaz puede tener distintos comportamientos.

Tipos de polimorfismo:

  • En tiempo de compilación o estático. Elcomportamiento varía en función del tipo de datos que recibe el método.
  • En tiempo de ejecución (dinámico). Dada por la implementación de una misma interfaz, o por la herencia del método. Mismo método con lógicas distintas.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

POO - Qué es la encapsulación

A

Solo se permite acceso externo mediante propiedades o métodos públicos, el resto es transparente.

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

POO - Qué es Persistencia

A

Un objeto software ocupa un espacio determinado de memoria

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

POO - Qué es extensibilidad

A

Puede ser fácilemente extendido

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

POO - Qué es reusabilidad

A

Componentesreutilizables

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

POO - Qué es la composición

A

“Todo/parte”: La parte no puede existir sin el todo. Por ejemplo, el motor y un coche,. El motor ha de existir dentro de un coche.

Relación fuerte, si se destruye al padre se destruye al hijo

38
Q

Cuáles son las fases de desarrollo en la POO

A
  • OOA: anállisis orientada a objetos
  • OOD: diseño orientado a objetos
  • OOP: Programaciónorientada a objetos
38
Q

POO - Qué es laagregación

A

Relación todo-parte pero dénil. Laparte puedeexistir sin el todo. Por ejemplo, profesor y departamento.

Los objetos pueden compartirse entre muchos agregados.

La vida del objeto no depende del objeto contenedor.

39
Q

Diferencia principal entre el análisis OO y la tradicional.

A

La tradicional se centra en el flujo de datos. La OO en la construcción de modelos basados en el mundo real

40
Q

Etapas del Análisis Orientada a objetos

A
  • Descripción o especificación del problema. No debe ser inmutable sino evolutiva.
  • Modelización del análisis. Las características esenciales deben abstraerse de un módelo.
41
Q

En OOA aspectos de la descripción o especificación del problema

A
  • Establecer el ámbito del problema
  • Describir necesidades y requisitos
  • Describir el contexto de la aplicación
  • Definir los supuestos
  • Definir las necesidades de rendimiento del sistema
42
Q

En OOA cuáles son los elementos utilizados en la modelización del análisis?

A
  • Clases y objetos del dominio del problema (estructura estática)
  • Interacciones entre objetos y su secuenciamiento (estrcutura dinámica)
  • Acciones a realizar por el sistema que producen un resultado observables y valioso para los usuarios (estructura funcional)
43
Q

¿Cuál es el objetivo del Diseño Orientado a Objetos?

A

Transformar modelos conceptuales (del análisis) en modelos técnicos listos para ser programados.

44
Q

Tareas que se ejecutan el Diseño Orientado a Objetos

A
  • Decidir la arquitectura del sistema. Se definen los subsistemas
    que lo compondrá. Paquete de clases, asociaciones, operaciones y restricciones que están relacionados. Debe tener una interfaz bien definida con el exterior para poder interaccionar con otros subsistemas
  • Identificar las situacioines de concurrencia inherentes al sistema
  • Asignar los subsistemas a los recursos de proceso con lo que cuentan. Cada subsistema debe ser asignado a una unidad de hardware
  • Elegir una aproximación para la gestión del almacenamiento de datos (estructura de datos, ficheros,bases de datos)
  • ¿cuándo para con el diseño? Cuando los elementos sean tan sencillos que no puedan ser descompuestos
45
Q

Esiterativo el ciclo de desarrollo de software orientado a objetos

A

Sí es iterativo. No es un proceso linial.

46
Q

¿Cuáles son las metodologías que implementan o incluyen el ciclo de desarrollo orientado a objetos?

A
  • Métrica versión 3
  • Proceso unificado de desarrollo de Software
47
Q

¿Cuáles son los objetivos de Métrica3?

A
  • Proporcionar o definir SI que ayuden a conseguir los beneficios de la orgnaización.
  • Dotar a la organización de Software que satisfaga las necesidades de los usuarios (toma requisitos usuario)
  • Mejora de la productividad de los departamentos TIC
  • Facilitar la comunicación y el entendimiento entre los distintos participantesen la producción del software

-Facilitar la operación, mantenimiento y uso de los productos de software

48
Q

Ideas generals sobre M3 y OO

A
  • Propone técnicas y actividades en OO
  • Utilización de UML
  • Propone 4 interfaces:
    • Gestión del proyecto
    • Seguridad
    • Gestión de la configuración
    • Aseguramiento calidad
49
Q

M3 - OO. Actividades en el proceso de análisis

A
  • ASI 1. Definición del sistema. Se identifican los límites del sistema, su alcance funcional, y la interacción con usuarios y otros sistemas.
  • ASI 2. Establecimiento de requisitos. Se recogen y documentan los requisitos funcionales y no funcionales del sistema con el usuario.
  • ASI 3. Descomposición del sistema en subsistemas. Se divide el sistema en partes más manejables (subsistemas) para facilitar el análisis y posterior desarrollo.
  • ASI 4. Análisis de los casos de uso. Se modelan los requisitos funcionales como interacciones entre actores y el sistema mediante casos de uso.
  • ASI 5. Analisis de clases. Se identifican y definen las clases del dominio, sus atributos, métodos y relaciones, reflejando la estructura interna del sistema.
50
Q

M3 - OO. Cuáles son los inputs y las técnicas utilizadas en ASI 1.1 Determinación del alcance del sistema

A
  • Inputs: modelo de negocio, modelo de cominio
  • Técnicas: casos de uso, diagrama de clases
51
Q

M3 - OO. Inputs y tareas en ASI 2 establecimiento de requisitos

A
  • Catálogo de requisitos que se completarán.
  • Se realiza la definifión, análisis y validación de requisitos
  • ASI 2.1 Obtención de requisitos
  • ASI 2.2 Especificaciones de casos de uso
52
Q

M3 - OO Cuáles son las técnicas aplicadas en ASI 2.1 Obtención de requisitos

A

Casos deuso -> se detallan actores, casos de usos y breve descripción de los casos de uso

53
Q

M3 - OO Qué se hace en ASI 2.2 Especificaciones de casos de uso

A
  • Desarrollará el escenario de cada caso de uso identificado anterioremente. En casos complejos se realizarán diagramas de transición de estado.

Tareas:

  • Descripción del escenario: cómo un actor interactúa con el sistema y cuál es la respuesta obtenida
  • Precondiciones y poscondiciones
  • Identificación de interfaces de usuario
  • Condiciones de fallo que afectan al escenario así como la respuesta del sistema
54
Q

M· - OO. Tareas y técnicas en ASI 3 Descomposición del sistema en subsistemas

A
  • ASI 3.1 determinación de subsistemas de análisis => diagrama de paquetes
  • ASI 3.2 integración de subsistemas de análisis => diagrama de paquetes
55
Q

M3 - OO Cuál es el objetivo de ASI 4 Análisis de los casos de uso

A

Identificar las clases cuyos objetos son necesarios para la realización del caso de uso mediante la interacción de sus objetos

56
Q

M3 - OO Cuáles son las tareas que comprenden el ASI 4 Análisis de los casos de uso

A
  • ASI 4.1 Identificación de clases asociadas a un caso de uso
  • ASI 4.2 Interacción de objetos
57
Q

M3 - OO Cual es la técnica aplicada en ASI 4.1 Identificación de clases asociadas a un caso de uso

A

Diagrama de clases

58
Q

M3 - OO Cuáles son las clases que se identifican en ASI 4.1 Identificación de clases asociadas a un caso de uso

A
  • Clase de entidad. Representan la información manipulada en cada caso de uso
  • Clases de interfaz de usuario. Interacción entre el sistemay actores (ventanas, formularios, menús…)
  • Clases de control Responsables coordinación, secuencia transacciones, control objetos relacionados
59
Q

M3 - OO Cuál es la técnica empleada en ASI 4.2 Interacción de objetos

A

Diagramas de interacción

60
Q

M3 - OO Cuál es el objetivo del ASI 5 Análisis de clases

A

Describir cada una de las clases que han surgido, identificando las responsabilidades que tienen asociadas, sus atributos y las relaciones entre ellas

61
Q

M3 - OO Tareas en ASI 5 Análisis de clases

A
  • ASI 5.1Identificación de responsabilidades y atributos
  • ASI 5.2 Identificación de asociaciones y agregaciones
  • ASI 5.3 Identificación de generalizaciones
62
Q

M3 - OO Técnicas en ASI 5 Análisis de clases

A
  • Diagrama de clases
  • Diagrama de transición de estados
63
Q

M3 - OO Cuál es el objetivo de ASI 9 Análisis de consistencia y
especificación de requisitos

A

Asegurar la calidad de los distintos modelados.
Y que los usuarios y analistas tienen el mismo concepto del sistema

64
Q

M3 - OO Qué acciones se realizan en ASI 9 Análisis de consistencia y

A
  • Verificación de la calidad técnica
  • Aseguramiento de la coherencia entre los distintos modelos
  • Validación del cumplimiento de requisitos
65
Q

M3 - OO Cuáles son las actividades en el proceso de diseño

A
  • DSI 2 Diseño de la arquitectura desoporte
  • DSI 3 Diseño de casos de usos reales
  • DSI 4 Diseño de clases
  • DSI 6 Diseño físico de datos. Estructura física de los datos
  • DSI 7 Verificación y aceptación de la arquitectura del sistema
66
Q

M3 - OO Durante la fase de diseño, el diseño de persistencia se hace en paralelo al diseño de arquitectura

67
Q

M3 - OO Cuáles son las tareas que se realizan en DSI 2 Diseño de la
arquitectura desoporte

A
  • Diseño detallado de los subsistemas de soporte
  • Establecimiento de las normas y requisitos propios del diseñoy construcción
  • Identificación y definición de los mecanismos genéricos de diseño y construcción
68
Q

M3 - OO Cuáles son las tareas que se realizan en DSI 3 Diseño de casos de usos reales

A
  • Diseño detallado comportamiento del sistema
  • Diseño interfaz de usuario
  • Validación de la división de subsistemas
69
Q

M3 - OO Cuáles son los objetivos de DSI 4 Diseño de clases

A
  • Diseño detallado de cada una de las clases
  • Definición de un plan de migración y carga inicial de datos
70
Q

M3 - OO Cuáles son los objetivos de DSI 7 Verificación y aceptación
de la arquitectura del sistema?

A

Se garantiza la calidad de las especificaciones del sieño y viabilidad

71
Q

M3 - OO Enumera todos las técnicas utilizadas

A
  • Casos de uso
  • Diagrama de clases
  • Diagrama de componentes
  • Diagrama de despliegue
  • Diagrama de transición de estados
  • Diagramas de interacción: secuencia y colaboración
  • Diagrama de paquetes
  • Técnicas de gestión de proyecots (staffing size)
72
Q

PROCESO UNIFICADO DESARROLLO - OO

Cuáles son sus principios

A
  • Dirigido por casos de uso
  • Centrado en la arquitectura
  • Proceso iterativo e incremental
73
Q

PROCESO UNIFICADO DESARROLLO - OO

Utiliza UML

74
Q

PROCESO UNIFICADO DESARROLLO - OO

¿Está basado en compoentes?

A

Basado en componentes.Uso de intarfaces para conectar los diferentes componentes

75
Q

PROCESO UNIFICADO DESARROLLO - OO

Principio principal

A

Para el desarrollo del producto se necesitan todas las representaciones
del producto

76
Q

PROCESO UNIFICADO DESARROLLO - OO

Enumera los diferentes modelos que se generan

A
  • Modelo de casos de uso
  • Modelo de análisis
  • Modelo de diseño
  • Modelo de implementación (componentes y correspondencia entre clases)
  • Modelo de despliegue (definición de nodos físicos)
  • Modelo de prueba (criterios de aceptación)
  • Representación de la arquitectura
  • Modelo de dominio y modelo de negocio
77
Q

PROCESO UNIFICADO DESARROLLO - OO

Cuáles son los propósitos del Modelo de análisis

A
  • Refinar los casos de uso
  • Asignación inicial de funcionalidad
78
Q

PROCESO UNIFICADO DESARROLLO - OO

Actividades o tareas

A
  • Captura de los casos de uso
  • Análisis y diseño de casos de uso
79
Q

PROCESO UNIFICADO DESARROLLO - OO

En el modelo análisis, ¿cómo se representa cada tipo de clase?

A
  • Clase entidad -> círculo con dos rayas abajo
  • Clase de interfaz de usuario -> círculo con T tumbada a la izquierda
  • Clase de control -> círculo con flecha
80
Q

PROCESO UNIFICADO DESARROLLO - OO

Cuál es el objetivo del diseño?

A

Sirve de esquema para la implementación y define clases, subsistemas, interfaces, relaciones y colaboraciones. El diseño es más físico

81
Q

¿Qué es el modelo CORBA?

A

Common Object Request Broker Architecture.

Arquitectura OMA: (Object Managment Architecture).

Es un modelo obsoleto sustituido por arquitecturas SOA, REST, microservicios

Sistemas distribuidos. Facilitar interoperabilidad

82
Q

¿Qué es la programación orientada al aspecto?

A

La Programación Orientada a Aspectos (POA) o Aspect-Oriented Programming (AOP) es un paradigma que busca separar las funcionalidades transversales del resto de la lógica de negocio.

La POA permite encapsular esas funcionalidades transversales en módulos separados llamados aspectos, y aplicarlos de forma automática y no intrusiva allí donde se necesiten.

83
Q

Qué es el Diseño por contrato

A

Es un poco como el diseño utilizando interfaces fuertemente tipado. Saber que se espera recibir, saber que se espera dar

84
Q

¿Qué es un patrón de diseño?

A

Descripción de clases y objetos comunicándose entre sí para resolver un problema de diseño general en un contexto particular.

Es decir, es una solución a un problema determinado que se da habitualmente

85
Q

Enumera las diferentes categorías de patrones de disños

A
  • Patrones de arquitectura
  • Patrones de diseño
  • Patrones de idioma o dialectos
  • Interacciones
  • Antipatrón
86
Q

Lista de patrones creacionales

A
  • Abstract factory
  • Builder
  • Factory method
  • Prototype
  • Singleton
87
Q

Lista de patrones estructurales

A
  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flywight
  • Proxy
88
Q

Lista de patrones de comportamiento

A
  • Command
  • Chain of responsability
  • Interpreter
  • Iterator
  • Mediador
  • Memento
  • Observer
  • State
  • Strategy
  • Template method
  • Visitor
89
Q

Enumeración de otros patrones

A
  • Patrones de interacción
  • CORE J2EE
  • J2EE DESIGN
  • PATRONES GRASP (General Responsability Assigment Software Patterns)
90
Q

Patrones fundamentales

A
  • Delegation
  • Interface
  • Maker interface