Programación orientada a objetos y UML — Cuerpo de Técnicos Auxiliares de Informática de la Administración del Estado
Test de 30 preguntas con explicaciones justificadas.
Pregunta 1: En programación orientada a objetos, ¿qué principio se refiere a la capacidad de que un objeto pueda tomar muchas formas o comportarse de múltiples maneras?
- A) Encapsulación
- B) Abstracción
- C) Polimorfismo
- D) Cohesión
El polimorfismo permite que un objeto pueda tomar múltiples formas, típicamente mediante la sobrecarga de métodos o la implementación de interfaces.
Pregunta 2: En UML, ¿qué tipo de diagrama muestra las interacciones entre objetos en un orden temporal?
- A) Diagrama de clases
- B) Diagrama de casos de uso
- C) Diagrama de secuencia
- D) Diagrama de componentes
El diagrama de secuencia muestra las interacciones entre objetos en una secuencia temporal, representando los mensajes que se intercambian.
Pregunta 3: ¿Cuál de los siguientes es un principio SOLID que establece que una clase debe tener una única razón para cambiar?
- A) Principio de inversión de dependencias (DIP)
- B) Principio de sustitución de Liskov (LSP)
- C) Principio de segregación de interfaces (ISP)
- D) Principio de responsabilidad única (SRP)
El principio de responsabilidad única (SRP) establece que una clase debe tener una única responsabilidad, es decir, una única razón para cambiar.
Pregunta 4: En UML, ¿qué relación se representa con un rombo relleno en un extremo de la línea?
- A) Agregación
- B) Asociación
- C) Composición
- D) Dependencia
La composición es una relación de todo-parte fuerte, donde el rombo relleno indica que el objeto contenedor es responsable de la existencia de las partes.
Pregunta 5: El patrón de diseño Singleton se utiliza para:
- A) Crear múltiples instancias de una clase con diferentes configuraciones.
- B) Garantizar que una clase tenga una única instancia y proporcionar un punto de acceso global a ella.
- C) Definir una interfaz para crear objetos, pero deja que las subclases decidan qué clase instanciar.
- D) Notificar automáticamente a otros objetos sobre cambios en un objeto observado.
El patrón Singleton garantiza que una clase tenga una única instancia y proporciona un punto de acceso global a dicha instancia.
Pregunta 6: En programación orientada a objetos, ¿qué concepto se refiere a ocultar los detalles internos de un objeto y exponer solo una interfaz controlada?
- A) Herencia
- B) Polimorfismo
- C) Encapsulación
- D) Abstracción
La encapsulación consiste en ocultar los detalles internos de un objeto y exponer solo lo necesario mediante una interfaz pública, protegiendo su estado.
Pregunta 7: En UML, ¿qué diagrama se utiliza para modelar los requisitos funcionales de un sistema desde la perspectiva del usuario?
- A) Diagrama de secuencia
- B) Diagrama de clases
- C) Diagrama de casos de uso
- D) Diagrama de actividad
El diagrama de casos de uso modela los requisitos funcionales de un sistema mostrando las interacciones entre actores y el sistema.
Pregunta 8: Según el principio de sustitución de Liskov (LSP), ¿qué afirmación es correcta?
- A) Las clases derivadas deben poder sustituirse por sus clases base sin alterar el comportamiento del programa.
- B) Las clases deben estar abiertas para extensión pero cerradas para modificación.
- C) Deben preferirse las interfaces específicas del cliente en lugar de interfaces generales.
- D) Los módulos de alto nivel no deben depender de módulos de bajo nivel, ambos deben depender de abstracciones.
El principio de sustitución de Liskov (LSP) establece que los objetos de una clase derivada deben poder sustituirse por objetos de la clase base sin afectar la corrección del programa.
Pregunta 9: En el contexto de los patrones de diseño, ¿qué patrón define una dependencia uno-a-muchos entre objetos de manera que cuando un objeto cambia de estado, todos sus dependientes son notificados?
- A) Factory Method
- B) Singleton
- C) Observer
- D) MVC
El patrón Observer define una relación de dependencia uno-a-muchos entre objetos, de modo que cuando un objeto (sujeto) cambia su estado, todos sus observadores son notificados y actualizados automáticamente.
Pregunta 10: En UML, ¿qué diagrama muestra la estructura estática del sistema mediante clases, interfaces y sus relaciones?
- A) Diagrama de secuencia
- B) Diagrama de componentes
- C) Diagrama de clases
- D) Diagrama de objetos
El diagrama de clases muestra la estructura estática del sistema, incluyendo clases, interfaces, atributos, métodos y las relaciones entre ellos.
Pregunta 11: ¿Cuál de los siguientes es un principio SOLID que establece que las clases deben estar abiertas para extensión pero cerradas para modificación?
- A) Principio de responsabilidad única (SRP)
- B) Principio abierto-cerrado (OCP)
- C) Principio de segregación de interfaces (ISP)
- D) Principio de inversión de dependencias (DIP)
El principio abierto-cerrado (OCP) establece que las entidades de software (clases, módulos, etc.) deben estar abiertas para extensión pero cerradas para modificación.
Pregunta 12: En programación orientada a objetos, ¿qué término describe la creación de una nueva clase a partir de una clase existente, heredando sus atributos y métodos?
- A) Polimorfismo
- B) Encapsulación
- C) Abstracción
- D) Herencia
La herencia es un mecanismo que permite crear una nueva clase (subclase) a partir de una clase existente (superclase), heredando sus atributos y métodos.
Pregunta 13: En UML, ¿qué relación indica que un objeto utiliza temporalmente otro objeto, pero no lo almacena de forma permanente?
- A) Asociación
- B) Agregación
- C) Composición
- D) Dependencia
La dependencia es una relación de uso temporal, donde un cambio en un elemento (el proveedor) puede afectar al otro (el cliente). Se representa con una línea discontinua.
Pregunta 14: El patrón de diseño Factory Method se utiliza para:
- A) Garantizar una única instancia de una clase.
- B) Separar la construcción de un objeto complejo de su representación.
- C) Definir una interfaz para crear objetos, pero deja que las subclases decidan qué clase instanciar.
- D) Convertir la interfaz de una clase en otra interfaz que el cliente espera.
El patrón Factory Method define una interfaz para crear objetos, pero permite a las subclases decidir qué clase concreta instanciar.
Pregunta 15: ¿Cuál de los siguientes diagramas UML se utiliza para modelar el flujo de actividades o procesos de negocio?
- A) Diagrama de secuencia
- B) Diagrama de casos de uso
- C) Diagrama de actividad
- D) Diagrama de componentes
El diagrama de actividad modela el flujo de actividades o procesos de negocio, mostrando la secuencia de acciones y decisiones.
Pregunta 16: En el contexto de los principios SOLID, ¿qué principio establece que ninguna clase debería depender de métodos que no utiliza?
- A) Principio de responsabilidad única (SRP)
- B) Principio abierto-cerrado (OCP)
- C) Principio de segregación de interfaces (ISP)
- D) Principio de inversión de dependencias (DIP)
El principio de segregación de interfaces (ISP) establece que ninguna clase debería verse obligada a depender de métodos que no utiliza, por lo que es mejor tener interfaces específicas y pequeñas.
Pregunta 17: En UML, ¿qué relación de asociación representa un 'todo-parte' donde la parte puede existir independientemente del todo?
- A) Composición
- B) Dependencia
- C) Agregación
- D) Realización
La agregación es una relación de asociación 'todo-parte' débil, representada por un rombo vacío, donde la parte puede existir independientemente del todo.
Pregunta 18: El patrón de diseño MVC (Modelo-Vista-Controlador) separa la lógica de la aplicación en tres componentes. ¿Cuál de estos componentes es responsable de gestionar la entrada del usuario y actualizar el modelo?
- A) Modelo
- B) Vista
- C) Controlador
- D) Servicio
En el patrón MVC, el controlador maneja la entrada del usuario, interactúa con el modelo y actualiza la vista. El modelo gestiona los datos y la lógica de negocio, y la vista presenta los datos.
Pregunta 19: En programación orientada a objetos, ¿qué concepto permite definir un contrato que las clases deben cumplir, especificando métodos que deben ser implementados sin definir su comportamiento?
- A) Clase abstracta
- B) Clase final
- C) Interfaz
- D) Constructor
Una interfaz define un contrato que las clases deben cumplir, especificando métodos que deben ser implementados, sin proporcionar una implementación concreta.
Pregunta 20: En UML, ¿qué diagrama muestra la organización y dependencias entre los componentes de software en un sistema?
- A) Diagrama de clases
- B) Diagrama de secuencia
- C) Diagrama de componentes
- D) Diagrama de despliegue
El diagrama de componentes muestra la organización y dependencias entre los componentes de software, como bibliotecas, archivos ejecutables, etc.
Pregunta 21: ¿Cuál de los siguientes principios SOLID establece que los módulos de alto nivel no deben depender de módulos de bajo nivel, sino que ambos deben depender de abstracciones?
- A) Principio de responsabilidad única (SRP)
- B) Principio abierto-cerrado (OCP)
- C) Principio de segregación de interfaces (ISP)
- D) Principio de inversión de dependencias (DIP)
El principio de inversión de dependencias (DIP) establece que los módulos de alto nivel no deben depender de módulos de bajo nivel, ambos deben depender de abstracciones. Además, las abstracciones no deben depender de detalles, sino los detalles de abstracciones.
Pregunta 22: En UML, ¿qué relación se utiliza para representar la herencia entre clases?
- A) Asociación
- B) Dependencia
- C) Generalización
- D) Realización
La generalización es la relación de herencia entre una clase general (superclase) y una clase más específica (subclase). Se representa con una línea continua y una flecha hueca.
Pregunta 23: ¿Qué patrón de diseño se utiliza cuando se necesita desacoplar la construcción de un objeto complejo de su representación, permitiendo la creación de diferentes representaciones?
- A) Factory Method
- B) Singleton
- C) Builder
- D) Observer
El patrón Builder separa la construcción de un objeto complejo de su representación, permitiendo que el mismo proceso de construcción cree diferentes representaciones.
Pregunta 24: En programación orientada a objetos, ¿qué término describe la capacidad de definir múltiples métodos con el mismo nombre pero con diferentes parámetros?
- A) Sobrecarga
- B) Sobreescritura
- C) Polimorfismo paramétrico
- D) Encapsulación
La sobrecarga (overloading) permite definir múltiples métodos con el mismo nombre pero con diferentes listas de parámetros (diferente tipo o número).
Pregunta 25: En UML, ¿qué diagrama se utiliza para modelar la vista física del sistema, mostrando la disposición de los nodos hardware y los componentes de software desplegados?
- A) Diagrama de componentes
- B) Diagrama de despliegue
- C) Diagrama de paquetes
- D) Diagrama de objetos
El diagrama de despliegue muestra la vista física del sistema, incluyendo nodos hardware, componentes de software desplegados y las conexiones entre ellos.
Pregunta 26: ¿Qué principio de diseño orientado a objetos se refiere a la idea de que los detalles de implementación deben estar ocultos y solo se debe exponer una interfaz pública?
- A) Principio de abstracción
- B) Principio de encapsulación
- C) Principio de herencia
- D) Principio de modularidad
La encapsulación oculta los detalles de implementación y expone solo una interfaz pública, protegiendo la integridad del objeto.
Pregunta 27: En el contexto de UML, ¿qué diagrama se utiliza para mostrar las interacciones entre objetos centrándose en los mensajes intercambiados a lo largo del tiempo?
- A) Diagrama de actividad
- B) Diagrama de secuencia
- C) Diagrama de comunicación
- D) Diagrama de estados
El diagrama de secuencia muestra las interacciones entre objetos en un orden temporal, con líneas de vida y mensajes intercambiados a lo largo del tiempo.
Pregunta 28: El patrón de diseño Adapter se utiliza para:
- A) Convertir la interfaz de una clase en otra interfaz que el cliente espera.
- B) Separar la construcción de un objeto complejo de su representación.
- C) Garantizar que una clase tenga una única instancia.
- D) Notificar a varios objetos sobre cambios en otro objeto.
El patrón Adapter convierte la interfaz de una clase en otra interfaz que el cliente espera, permitiendo que clases con interfaces incompatibles trabajen juntas.
Pregunta 29: En programación orientada a objetos, ¿qué término describe la creación de una clase que no se puede instanciar y puede contener métodos abstractos?
- A) Clase concreta
- B) Clase sellada
- C) Clase abstracta
- D) Clase estática
Una clase abstracta es una clase que no se puede instanciar y puede contener métodos abstractos (sin implementación) que deben ser implementados por las subclases.
Pregunta 30: En UML, ¿qué relación se utiliza para representar que una clase implementa una interfaz?
- A) Generalización
- B) Realización
- C) Asociación
- D) Dependencia
La realización es la relación entre una clase y una interfaz, indicando que la clase implementa los métodos definidos en la interfaz. Se representa con una línea discontinua y una flecha hueca.