Que es la sobrecarga ?
Dos o más métodos dentro de la misma clase pueden compartir el mismo nombre, siempre que sus declaraciones de parámetros sean diferentes.
ejemplo:
tengo una funcion persona que le paso el nombre y apellido, y otra funcion que tambien se llama persona que le paso el nombre y apellido, y además el lugar de nacimiento. La funcion persona sería una funcion sobrecargada
Si hablamos de UML, que es el OCL ?
Lenguaje formal utilizado en UML para definir restricciones y condiciones en los modelos
Si hablamos de UML, que es INV ? (T)
En UML (Lenguaje Unificado de Modelado), INV se refiere a Invariantes. Los invariantes son condiciones que deben ser siempre verdaderas para un objeto en un momento dado. Se utilizan para definir restricciones en los modelos UML, asegurando que ciertas propiedades del sistema se mantengan constantes a lo largo del tiempo.
Por ejemplo, en un diagrama de clases, un invariante puede especificar que el saldo de una cuenta bancaria nunca puede ser negativo
¿Cuáles son los cuatro elementos de los mecanismos de extensión de UML ? (T)
Estereotipos-Restricciones-Valores etiquetados-Perfiles
+++++++++++++++
Estereotipos: Extienden la semántica de los elementos del modelo. Ejemplo: «UI».
Restricciones: Condiciones o reglas que se imponen a los elementos del modelo. Ejemplo: {ordered}.
Valores etiquetados: Asocian información adicional a los elementos del modelo mediante etiquetas. Ejemplo: {RAM=64}.
Perfiles (Profiles): Conjuntos de estereotipos, restricciones y valores etiquetados que se utilizan para adaptar UML a un dominio específico o a un tipo particular de sistema
¿Cuál de las siguientes relaciones entre clases NO se considera una relación fuerte?
a) Composición.
b) Asociación.
c) Agregación.
d) Herencia.
B
Asociación
¿Qué elemento de UML se utiliza para extender la semántica de los elementos existentes en un diagrama, como por ejemplo, para indicar que una clase representa un componente de interfaz de usuario?
a) Restricciones.
b) Valores etiquetados.
c) Estereotipos.
d) Perfiles.
C
Estereotipos
¿Qué tipo de diagrama UML se utiliza para mostrar la disposición física de los nodos de hardware y los componentes de software en un sistema? (T)
Diagrama de despliegue
¿Cuál es la diferencia entre una relación de composición y una de agregación en un diagrama de clases? (T)
En la composición, el ciclo de vida del componente está ligado al de la contenedora, mientras que en la agregación, los ciclos de vida son independientes
¿Qué representa un diagrama de despliegue en UML?
a) La estructura lógica del software
b) La disposición física de los nodos de hardware y componentes de software
c) Las interacciones entre los usuarios y el sistema
d) Los flujos de trabajo del sistema
B
La disposición física de los nodos de hardware y componentes de software
¿Cuál es la función principal del diagrama de despliegue?
a) Mostrar las clases y sus relaciones
b) Visualizar la arquitectura física y cómo se distribuyen los componentes en el hardware
c) Representar la lógica del negocio
d) Detallar los casos de uso del sistema
B
Visualizar la arquitectura física y cómo se distribuyen los componentes en el hardware
¿Qué elementos se utilizan comúnmente en un diagrama de despliegue?
a) Clases y objetos
b) Nodos y artefactos
c) Actividades y decisiones
d) Componentes y interfaces
B
Nodos y artefactos
¿Qué tipo de nodos se pueden representar en un diagrama de despliegue?
a) Solo servidores
b) Cualquier dispositivo físico, como servidores, routers y estaciones de trabajo
c) Solo dispositivos móviles
d) Solo componentes lógicos
B
Cualquier dispositivo físico, como servidores, routers y estaciones de trabajo
¿Qué información adicional puede incluir un diagrama de despliegue?
a) Detalles sobre el código fuente
b) Descripciones sobre los procesos internos del sistema
c) Información sobre la configuración del hardware y software asociado a cada nodo
d) Solo nombres de los componentes
C
Información sobre la configuración del hardware y software asociado a cada nodo
¿En qué situaciones es especialmente útil un diagrama de despliegue?
a) Durante la fase de diseño lógico del software
b) Para modelar el comportamiento dinámico del sistema
c) Al planificar la implementación física y la topología del sistema en el hardware
d) Para documentar los requisitos funcionales del sistema
C
✅ Por qué la opción (c) es la correcta
Un diagrama de despliegue (o deployment diagram en inglés) es un tipo de diagrama de UML (Lenguaje Unificado de Modelado) que se centra fundamentalmente en la arquitectura física de un sistema.
Su propósito principal es visualizar:
Nodos (Hardware): Los componentes de hardware sobre los que se ejecutará el software (ej. servidores de aplicaciones, servidores de bases de datos, dispositivos móviles, PCs cliente).
Artefactos (Software): Los componentes de software reales que se implementarán (ej. archivos .jar, .exe, bases de datos, scripts).
Relación entre ellos: Muestra qué artefactos de software se instalan o “despliegan” en qué nodos de hardware.
Topología: Describe cómo se conectan esos nodos de hardware entre sí (ej. a través de una red, con qué protocolos como TCP/IP, HTTP).
Por lo tanto, la opción (c) es la definición perfecta de su utilidad: planificar la implementación física (software en hardware) y la topología (cómo se conecta el hardware).
❌ Por qué las otras opciones son incorrectas
a) Durante la fase de diseño lógico del software:
Esto es incorrecto porque el diseño lógico se centra en cómo se estructura el software internamente (clases, componentes, sus relaciones y responsabilidades), sin preocuparse todavía de en qué máquina física se ejecutarán.
Diagramas para esto: Diagramas de Clases, Diagramas de Componentes.
b) Para modelar el comportamiento dinámico del sistema:
Esto es incorrecto porque el comportamiento dinámico describe cómo el sistema cambia o responde a eventos a lo largo del tiempo (el flujo de operaciones). Un diagrama de despliegue es estático; muestra la configuración física, no cómo funciona paso a paso.
Diagramas para esto: Diagramas de Secuencia, Diagramas de Actividad, Diagramas de Estado.
d) Para documentar los requisitos funcionales del sistema:
Esto es incorrecto porque los requisitos funcionales describen qué debe hacer el sistema desde la perspectiva del usuario (ej. “el usuario debe poder iniciar sesión”).
Diagramas para esto: Diagramas de Casos de Uso.
En diseño y programación orientada a objetos, una relación de generalización entre clases:
a) Implica que la subclase hereda las propiedades, el comportamiento y las relaciones de la superclase, a la vez que puede añadir sus propias propiedades, relaciones y comportamiento.
b) Describe un conjunto de enlaces, que definen las interconexiones semánticas entre las instancias de las clases que participan en la relación.
c) Asume una subordinación conceptual del tipo “todo/parte”, o bien “tiene un”.
d) Se representa mediante una línea discontinua que une la superclase y subclase con un rectángulo al lado de la superclase.
A
Implica que la subclase hereda las propiedades, el comportamiento y las relaciones de la superclase, a la vez que puede añadir sus propias propiedades, relaciones y comportamiento.
En la programación orientada a objetos, ¿qué se entiende por polimorfismo?
a) La capacidad de una subclase de heredar métodos y atributos de la superclase.
b) El uso de diferentes interfaces para permitir que un objeto actúe de diferentes maneras según el contexto.
c) La capacidad de un objeto de realizar diferentes tareas a través de diferentes clases.
d) La capacidad de un objeto de modificar el estado de otro objeto.
B
El uso de diferentes interfaces para permitir que un objeto actúe de diferentes maneras según el contexto.
¿Qué describe una relación de composición entre dos clases en la programación orientada a objetos?
a) Una relación en la que una clase es parte de otra y no puede existir sin ella.
b) Una relación en la que una clase hereda las propiedades y comportamientos de otra.
c) Una relación entre clases en la que una clase contiene referencias a objetos de otras clases.
d) Una relación en la que las clases pueden compartir atributos y métodos sin importar su jerarquía.
A
Una relación en la que una clase es parte de otra y no puede existir sin ella.
¿Cuál de las siguientes afirmaciones es cierta sobre las interfaces en la programación orientada a objetos?
a) Las interfaces permiten a una clase heredar atributos y métodos de otras clases.
b) Las interfaces definen un conjunto de métodos que deben ser implementados por las clases que las usan, pero no pueden contener implementaciones.
c) Las interfaces son opcionales y no deben ser implementadas por ninguna clase.
d) Las interfaces son clases abstractas con implementaciones predeterminadas para los métodos.
B
Las interfaces definen un conjunto de métodos que deben ser implementados por las clases que las usan, pero no pueden contener implementaciones.
¿Qué significa que una clase sea abstracta en la programación orientada a objetos?
a) La clase no puede ser instanciada directamente, pero puede contener métodos con o sin implementación.
b) La clase siempre debe ser instanciada antes de ser utilizada.
c) La clase no puede contener métodos, solo atributos.
d) La clase no puede heredar de otras clases, solo puede ser utilizada como base.
A
La clase no puede ser instanciada directamente, pero puede contener métodos con o sin implementación.
Cuál es la principal diferencia entre herencia y composición en el diseño orientado a objetos?
a) La herencia permite a una clase heredar métodos, mientras que la composición solo permite heredar atributos.
b) La herencia establece una relación de “es un”, mientras que la composición establece una relación de “tiene un”.
c) La herencia se utiliza para incluir objetos de otras clases dentro de una clase, mientras que la composición permite definir nuevas clases a partir de otras existentes.
d) La herencia no permite sobrescribir métodos, pero la composición sí.
B
La herencia establece una relación de “es un”, mientras que la composición establece una relación de “tiene un”.
Señale la respuesta INCORRECTA respecto al Lenguaje de Modelado Unificado (UML):
a) Es un lenguaje basado en diagramas para la especificación, visualización, construcción y documentación de cualquier sistema software.
b) Es independiente de las metodologías de análisis y diseño y de los lenguajes de programación que se utilicen en la construcción del software.
c) Se basa en el paradigma de la orientación a objetos.
d) Muestra únicamente el modelado estático de un sistema software, que puede utilizarse en las diferentes fases de su ciclo de desarrollo.
D
Muestra únicamente el modelado estático de un sistema software, que puede utilizarse en las diferentes fases de su ciclo de desarrollo.
¿Cuál de los siguientes diagramas de UML se utiliza principalmente para representar el comportamiento dinámico del sistema, mostrando la interacción entre objetos a lo largo del tiempo?
a) Diagrama de clases
b) Diagrama de componentes
c) Diagrama de secuencia
d) Diagrama de casos de uso
C
Diagrama de secuencia
En UML, ¿qué diagrama se utiliza para mostrar la relación estática entre clases, atributos, métodos y asociaciones?
a) Diagrama de clases
b) Diagrama de actividad
c) Diagrama de colaboración
d) Diagrama de estado
A
Diagrama de clases
En UML, ¿qué tipo de diagrama se utiliza para modelar las posibles transiciones entre los estados de un objeto en respuesta a eventos?
a) Diagrama de actividad
b) Diagrama de estado
c) Diagrama de secuencia
d) Diagrama de colaboración
B
Diagrama de estado