Written by students who passed Immediately available after payment Read online or as PDF Wrong document? Swap it for free 4.6 TrustPilot
logo-home
Summary

Sumario Java Full-Stack Local

Rating
-
Sold
-
Pages
18
Uploaded on
18-01-2026
Written in
2025/2026

Java Full-Stack Local

Institution
Course

Content preview

🛡️EJERCICIO FINAL BOSS: “SISTEMA
CEREBRO - GESTIÓN DE CRIPTOGRAFÍA
Y RECURSOS DE ALTA SEGURIDAD”

Escenario: Te han contratado para desarrollar el núcleo de un sistema de inteligencia
gubernamental. El sistema debe gestionar Agentes, Misiones y Recursos Tecnológicos.
La seguridad es crítica: los datos sensibles no pueden simplemente “guardarse”, deben
procesarse, validarse y distribuirse entre bases de datos, ficheros binarios de acceso
aleatorio y XML.




🏗️ FASE 1: ARQUITECTURA Y POO AVANZADA

🗝️ Leyenda de Notación

1. Clases y Abstractas:

El cuadro dividido en tres secciones (Nombre, Atributos, Métodos) es la
representación estándar de una clase.
{abstract} denota que la clase Personal no puede ser instanciada
directamente, pero sí heredada.
{static} en contadorAgentes indica que es una variable de clase
compartida, no de objeto.
{final} en ficharEntrada() indica que este método no puede ser
sobrescrito por las clases hijas.

2. Relaciones:

Herencia (Generalización): Línea sólida con triángulo hueco ( ^ ).
AgenteDeCampo y AnalistaDatos son un Personal .
Implementación (Realización): Línea punteada (o vertical directa en este
esquema simplificado) hacia la interfaz EvaluacionDesempeno .
Agregación (Rombo Hueco < > ): Relación “Tiene un”. La Mision tiene un
Personal (responsable), pero si la misión se borra, el personal sigue
existiendo en la base de datos.

, Composición (Rombo Relleno < * > ): Relación fuerte “Parte de”. La
Mision se compone de Informes . Si se destruye la misión, se destruyen los
informes (ciclo de vida dependiente).

3. Visibilidad:

+ Público.
- Privado.
# Protegido (Visible para las clases hijas Agente y Analista ).


4. Genéricos:

CajaFuerte<T> indica que la clase puede manejar cualquier tipo de objeto
T (Parametrización de tipos).




🧠 FASE 2: LÓGICA, ALGORITMIA Y ESTRUCTURAS

Antes de programar, la lógica es vital.

1. El Algoritmo de Encriptación :

Debes diseñar primero en Pseudocódigo y Diagrama de Flujo un algoritmo
que reciba un String (mensaje) y un int (clave).
El algoritmo debe recorrer el String y desplazar los caracteres según la clave
(Cifrado César avanzado), pero si el índice es primo, debe invertir el carácter
(mayúscula/minúscula).
Implementación: Traduce este algoritmo a un método estático en una clase
de utilidades llamada CriptoUtils .

2. Estructuras de Datos Personalizadas (UD6):

No puedes usar ArrayList para la gestión de agentes en una misión. Debes
implementar tu propia Lista Enlazada Simple ( MiListaEnlazada ) con
nodos, punteros y métodos agregar , eliminar y buscar .
Usa Expresiones Regulares (Regex) para validar que el ID del agente tenga el
formato: 3 letras mayúsculas, un guion, 4 números y una letra final (Ej: XXX-
1234F ). Si no cumple, lanza una excepción personalizada.


3. Colecciones Avanzadas (UD6):

, Usa un HashMap<String, Mision> para mapear códigos de misión únicos
con sus objetos.
Debes recorrer este mapa usando un Iterator o un bucle for-each para
generar informes globales.




💾 FASE 3: PERSISTENCIA HÍBRIDA Y E/S

Aquí es donde el sistema se vuelve “duro”. La información se fragmenta en tres lugares.

1. Base de Datos Relacional (UD8):

Usa JDBC con el patrón DAO (Data Access Object) para gestionar la tabla
Agentes en MySQL.
Debes usar PreparedStatement obligatoriamente para evitar inyección
SQL.
Implementa una transacción: Al crear una Mision , se inserta en la BD y se
actualiza el estado de los agentes. Si algo falla, se debe hacer ROLLBACK de
toda la operación.

2. Ficheros de Acceso Aleatorio (UD5):

Hay un fichero binario llamado bitacora.dat . Debes usar la clase
RandomAccessFile .
Tarea: Escribir en la posición (byte) 100 del archivo un código de error crítico
generado por el sistema. Luego, debes poder leer exactamente los bytes 50 a
60 para recuperar una “firma digital” simulada.

3. Serialización y XML (UD5, UD6):

La clase AnalistaDatos debe implementar Serializable para guardar el
estado de los analistas en un fichero .ser (Flujos de Objetos).
XML con SAX/DOM: El sistema debe importar misiones desde un fichero
misiones_externas.xml . Debes implementar un parser (puedes elegir SAX
o DOM) que lea las etiquetas <Objetivo> , <Presupuesto> y cargue esos
datos en memoria,.

Written for

Course

Document information

Uploaded on
January 18, 2026
Number of pages
18
Written in
2025/2026
Type
SUMMARY

Subjects

$4.09
Get access to the full document:

Wrong document? Swap it for free Within 14 days of purchase and before downloading, you can choose a different document. You can simply spend the amount again.
Written by students who passed
Immediately available after payment
Read online or as PDF

Get to know the seller
Seller avatar
jesús6

Get to know the seller

Seller avatar
jesús6 Universidad Nacional de Educación a Distancia
Follow You need to be logged in order to follow users or courses
Sold
1
Member since
6 months
Number of followers
0
Documents
17
Last sold
5 months ago

0.0

0 reviews

5
0
4
0
3
0
2
0
1
0

Why students choose Stuvia

Created by fellow students, verified by reviews

Quality you can trust: written by students who passed their tests and reviewed by others who've used these notes.

Didn't get what you expected? Choose another document

No worries! You can instantly pick a different document that better fits what you're looking for.

Pay as you like, start learning right away

No subscription, no commitments. Pay the way you're used to via credit card and download your PDF document instantly.

Student with book image

“Bought, downloaded, and aced it. It really can be that simple.”

Alisha Student

Working on your references?

Create accurate citations in APA, MLA and Harvard with our free citation generator.

Working on your references?

Frequently asked questions