A

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

Módulo 1: Introducción

1. ¿Cuál es la diferencia entre programación estructurada y programación orientada a


objetos?
• La programación estructurada se centra en dividir un programa en funciones o
procedimientos, utilizando estructuras de control como bucles y condicionales.
La programación orientada a objetos (POO) se enfoca en crear objetos que
interactúan entre sí, encapsulando datos y comportamientos en clases.

2. ¿Qué es la ingeniería de software y cuáles son sus principales objetivos?


• La ingeniería de software es la disciplina que se ocupa del diseño, desarrollo,
mantenimiento y gestión de software de alta calidad. Sus objetivos principales
incluyen mejorar la calidad del software, reducir los costos de desarrollo,
asegurar que el software sea entregado a tiempo y cumplir con los requisitos
del usuario.

3. Describe las etapas principales en el proceso de desarrollo de sistemas.


• Las etapas principales son:
1. Recolección de requisitos: Identificación y documentación de lo que el
software debe hacer.
2. Análisis de sistemas: Desglose de los requisitos en partes más
manejables.
3. Diseño: Creación de una arquitectura para el sistema.
4. Implementación: Codificación del software.
5. Pruebas: Verificación de que el software funciona correctamente.
6. Mantenimiento: Corrección de errores y mejoras continuas.

4. ¿Qué criterios definen una buena modularización en el desarrollo de software?


• Los criterios incluyen cohesión alta (cada módulo debe ser responsable de una
única tarea o función), acoplamiento bajo (módulos deben tener dependencias
mínimas entre sí), y claridad (cada módulo debe ser fácil de entender y
mantener).

5. Explica los principios fundamentales en la construcción del software.


• Algunos principios fundamentales incluyen:
• Modularidad: Dividir el sistema en módulos independientes.
• Abstracción: Ocultar los detalles de implementación y mostrar solo lo
necesario.
• Encapsulamiento: Mantener los datos y métodos en una unidad,
protegiendo su acceso directo.
• Reutilización: Diseñar componentes que se puedan reutilizar en otros
sistemas.
• Simplicidad: Mantener el diseño lo más simple posible.

6. ¿Qué es un Tipo Abstracto de Datos (TAD) y cuál es su importancia en la


programación?
• Un TAD es una especificación de un conjunto de datos y las operaciones que se
pueden realizar sobre ellos, sin especificar cómo se implementan. Su
importancia radica en proporcionar una interfaz clara y separada de la
implementación, facilitando la comprensión y la reutilización del código.

Módulo 2: Introducción al paradigma y modelado orientado a objetos

1. Define los conceptos de "clase" y "objeto" en la programación orientada a objetos.


• Clase: Es una plantilla o blueprint que define atributos y métodos que los
objetos de la clase compartirán.
• Objeto: Es una instancia de una clase, que contiene datos y métodos definidos
por su clase.

2. ¿Qué es la abstracción y cómo se utiliza en la programación orientada a objetos?


• La abstracción es el proceso de ocultar los detalles complejos y mostrar solo las
características esenciales de un objeto. En POO, se utiliza creando clases que
representan conceptos del mundo real con atributos y métodos relevantes.

3. ¿Cuál es la diferencia entre herencia simple y herencia múltiple?


• Herencia simple: Una clase puede heredar de una sola superclase.
• Herencia múltiple: Una clase puede heredar de múltiples superclases. Java no
soporta herencia múltiple directa pero se puede lograr a través de interfaces.

4. Explica el concepto de polimorfismo en la programación orientada a objetos.


• El polimorfismo permite que una misma operación se comporte de diferentes
maneras en diferentes contextos. En POO, se logra mediante la sobrecarga de
métodos y la sobrescritura de métodos, permitiendo que una referencia de
superclase pueda apuntar a objetos de subclases.

5. ¿Qué es el UML y cómo se utiliza en el modelado de sistemas orientados a objetos?


• UML (Unified Modeling Language) es un lenguaje de modelado estándar
utilizado para visualizar, especificar, construir y documentar los componentes
de un sistema orientado a objetos. Se utiliza para crear diagramas que
representen clases, objetos, interacciones, estados y más.

6. Describe las principales relaciones entre clases en un diagrama de clases UML.


• Asociación: Representa una relación estructural entre clases.
• Agregación: Un tipo de asociación que indica que una clase es parte de otra
clase pero puede existir independientemente.
• Composición: Un tipo fuerte de agregación que indica que una clase es parte
de otra y su existencia depende de la clase contenedora.
• Generalización: Representa una relación de herencia entre una superclase y
una subclase.

Módulo 3: Conceptos básicos de la programación Java

1. ¿Cuáles son los principales tipos de datos en Java y para qué se utilizan?
• Enteros: byte, short, int, long para números enteros.
• Punto flotante: float, double para números con decimales.
• Caracteres y cadenas: char, String para texto.
• Booleano: boolean para valores de verdad (true/false).

2. Explica el concepto de "inicialización dinámica" de variables en Java.


• La inicialización dinámica permite asignar valores a las variables en tiempo de
ejecución en lugar de en tiempo de compilación. Por ejemplo, utilizando
resultados de cálculos o valores obtenidos de entrada de usuario.

3. ¿Qué es un stream en Java y cómo se utilizan los flujos de entrada y salida?


• Un stream es una secuencia de datos. Los flujos de entrada (InputStream) se
utilizan para leer datos, mientras que los flujos de salida (OutputStream) se
utilizan para escribir datos.

4. ¿Qué es un operador ternario en Java y como se utiliza?


• El operador ternario es una forma abreviada de la instrucción if-else
• Se utiliza para asignar un valor basado en una condición.

5. Explica cómo se manejan los arreglos unidimensionales y multidimensionales en


Java.
• Arreglos unidimensionales: Se declaran y utilizan así:
int[] array = new int[10];
• Arreglos multidimensionales: Son arreglos de arreglos:
int[][] matrix = new int[3][3];

Módulo 4: Clases y métodos

1. ¿Qué es un constructor en Java y cuál es su propósito?

• Un constructor es un método especial que se llama cuando se crea una


instancia de una clase. Su propósito es inicializar los objetos.

2. ¿Cómo funciona la sobrecarga de métodos en Java?

• La sobrecarga de métodos permite tener múltiples métodos con el mismo


nombre pero diferentes parámetros (número, tipo, o ambos).

3. Explica la diferencia entre miembros static y final en Java.

• static: Pertenece a la clase en lugar de a instancias individuales.

• final: Un valor o referencia que no puede cambiar una vez asignado.

4. ¿Qué es el método finalize() y cuándo se utiliza?

• finalize() es un método llamado por el recolector de basura antes de destruir


un objeto. Se usa para realizar limpieza previa, aunque su uso es desalentado
en favor de try-with-resources o finally.
5. Describe el concepto de recursividad y proporciona un ejemplo de un método
recursivo en Java.

• La recursividad es una técnica donde un método se llama a sí mismo para


resolver un problema. Ejemplo:

Módulo 5: Herencia y Polimorfismo

1. ¿Qué es la herencia en Java y cómo se implementa?

• La herencia permite que una clase (subclase) herede propiedades y métodos


de otra clase (superclase). Se implementa usando la palabra clave extends.

2. Explica el uso de la palabra clave super en Java.

• super se usa para referirse a la superclase inmediata y para acceder a sus


métodos y constructores.

3. ¿Qué es una clase abstracta y cuándo debería utilizarse?

• Una clase abstracta no se puede instanciar y puede contener métodos


abstractos (sin implementación). Se usa para definir una base común para las
subclases.

4. Describe cómo funciona la sobrescritura de métodos en Java.

• La sobrescritura permite a una subclase proporcionar una implementación


específica de un método que ya está definido en su superclase.

5. ¿Qué es el polimorfismo en tiempo de ejecución y cómo se logra en Java?

• Es la capacidad de una superclase de referirse a objetos de subclases


diferentes y llamar a métodos que se comportan de manera específica para la
subclase real del objeto. Se logra mediante la sobrescritura de métodos y el
uso de referencias de la superclase.

Módulo 6: Paquetes

1. ¿Qué es un paquete en Java y cómo se define?


• Un paquete es un namespace que organiza clases e interfaces relacionadas. Se
define usando la palabra clave package al principio de un archivo de clase:

package com.ejemplo.miapp;

1. ¿Cómo se controla el acceso a las clases y miembros de un paquete en Java?

• El acceso se controla usando modificadores de acceso: public, protected,


default (sin modificador), y private.

2. Explica cómo se importa un paquete en un programa Java.

• Se usa la palabra clave import para importar clases o paquetes completos

Módulo 7: Colecciones y Genéricos

1. Describe la jerarquía de interfaces en el framework de colecciones de Java.

• La jerarquía incluye interfaces como Collection, Set, List, Queue, y Map, cada
una con sus implementaciones específicas como ArrayList, HashSet,
LinkedList, PriorityQueue, HashMap, etc.

2. ¿Qué son los genéricos en Java y cuál es su ventaja?

• Los genéricos permiten definir clases, interfaces y métodos con tipos de datos
específicos sin especificar el tipo exacto hasta el momento de la instanciación.
Ventaja: proporciona verificación de tipos en tiempo de compilación y elimina
la necesidad de castings.

3. Explica la diferencia entre las interfaces Comparable y Comparator en Java.

• Comparable: Define el orden natural de los objetos de una clase mediante el


método compareTo().

• Comparator: Permite definir órdenes alternativos mediante el método


compare(), sin modificar la clase del objeto.

Módulo 8: Excepciones y Aserciones

1. ¿Qué es una excepción en Java y cómo se maneja?

• Una excepción es un evento que interrumpe el flujo normal de un programa.


Se maneja utilizando bloques try-catch y finally.

2. ¿Cuál es la diferencia entre excepciones comprobadas y no comprobadas en Java?

• Comprobadas: Excepciones que deben ser manejadas o declaradas en el


método (IOException, SQLException).

• No comprobadas: Excepciones que no necesitan ser declaradas o manejadas


(RuntimeException y sus subclases).

3. Explica el propósito de las aserciones en Java y cómo se habilitan.

• Las aserciones se utilizan para verificar supuestos durante el desarrollo. Se


habilitan en tiempo de ejecución con la opción -ea del JVM

java -ea MiPrograma


Módulo 9: Interface gráfica y manejador de evento

1. ¿Qué es Swing y cuál es su propósito en Java?

• Swing es un conjunto de bibliotecas para crear interfaces gráficas de usuario


(GUI) en Java. Proporciona componentes como botones, tablas, paneles y más.

2. Describe el ciclo de vida de un evento en la programación basada en eventos.

• Incluye la generación de un evento, la propagación del evento a través de la


cadena de manejadores de eventos, y la respuesta del manejador adecuado.

Módulo 10: Hilos y Multihilos

1. ¿Cómo se crea un hilo en Java utilizando la interfaz Runnable?

• Implementando Runnable y sobrescribiendo el método run()

1. ¿Qué es la sincronización de hilos y por qué es importante?

• La sincronización asegura que solo un hilo acceda a un recurso compartido a la


vez, evitando problemas de consistencia y condiciones de carrera.

2. Explica el concepto de deadlock en la programación concurrente.

• Un deadlock ocurre cuando dos o más hilos están bloqueados


indefinidamente, esperando recursos que otros hilos poseen, lo que resulta en
una espera circular.

Módulo 11: Introducción a los patrones de diseño

1. ¿Qué son los patrones de diseño y por qué son importantes en la ingeniería de
software?

• Los patrones de diseño son soluciones reutilizables a problemas comunes en el


diseño de software. Son importantes porque promueven prácticas de diseño
probadas y mejoran la mantenibilidad y escalabilidad del código.

2. Describe brevemente un patrón creacional, un patrón estructural y un patrón de


comportamiento.

Patrón Creacional: Singleton

• Descripción: Asegura que una clase tenga una sola instancia y proporciona un punto de
acceso global a ella.

• Uso: Útil cuando se necesita exactamente un objeto para coordinar acciones en todo el
sistema, como un objeto de configuración o un registro de log.

Patrón Estructural: Decorator

• Descripción: Permite agregar funcionalidad a un objeto de manera dinámica sin alterar


su estructura. Los decoradores proporcionan una alternativa flexible a la herencia para
extender la funcionalidad.

• Uso: Este patrón es útil para adherir responsabilidades adicionales a un objeto de


manera dinámica y transparente al cliente que utiliza el objeto.
Patrón de Comportamiento: Template Method

• Descripción: Define el esqueleto de un algoritmo en una operación, diferiendo algunos


pasos a las subclases. Permite que las subclases redefinan ciertos pasos de un
algoritmo sin cambiar la estructura del mismo.

• Uso: Este patrón es útil cuando se tienen varias implementaciones de un algoritmo que
comparten una estructura común, pero varían en algunos pasos específicos.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy