Tamaño de fuente
  • A-
  • A
  • A+
Color del sitio
  • R
  • A
  • A
  • A
Salta al contenido principal
EVA PUCE EV 2025-2025 EVA PUCE EV 2025-2025
  • Página Principal
  • Más
Español - Internacional ‎(es)‎
English ‎(en)‎ Español - Internacional ‎(es)‎
En este momento está usando el acceso para invitados
Acceder
Página Principal

S7 - Reto 3 - Desarrollo modular de un Sistema de Gestión de Acceso Seguro aplicando patrones de diseño y principios de mantenibilidad en Java

  1. QUI/65/202601/V/EV/NV01/NV01-01-10/N0075-06/1111/TPR
  2. Semana 7
  3. S7 - Reto 3 - Desarrollo modular de un Sistema de Gestión de Acceso Seguro aplicando patrones de diseño y principios de mantenibilidad en Java
Requisitos de finalización
Hacer un envío
Apertura: miércoles, 24 de junio de 2026, 12:46
Cierre: viernes, 3 de julio de 2026, 23:46

Tema

12. Modularidad
12.1 Separación de responsabilidades
12.2 Mantenibilidad del software

Instrucciones

Propósito 

Desarrollar un sistema de gestión de acceso seguro aplicando modularidad, métodos bien definidos y patrones de diseño, logrando un sistema mantenible, escalable y correctamente estructurado. 

 

Contexto del problema 

El sistema de acceso seguro diseñado previamente presenta: 

  • Código poco modular  

  • Métodos con múltiples responsabilidades  

  • Alta dependencia entre clases  

  • Dificultad para agregar nuevas reglas de acceso  

Se requiere mejorar el sistema mediante un desarrollo modular basado en buenas prácticas de diseño. 

 

RETO 3 

Desarrollo Modular con Métodos y Principios de Diseño OO 

El estudiante deberá: 

  • Descomponer el sistema en módulos  

  • Definir métodos específicos por responsabilidad  

  • Aplicar estructuras de control  

  • Incorporar patrones de diseño  

  • Ampliar funcionalidades del sistema  

 

  1. Componente teórico 

1. Modularidad 

Explique: 

  • ¿Qué es la modularidad?  

  • ¿Cómo mejora un sistema de control de accesos?  

 

2. Separación de responsabilidades 

Analice su sistema: 

  • Identifique clases con múltiples responsabilidades  

  • Proponga cómo dividirlas  

 

3. Mantenibilidad 

Explique: 

  • ¿Qué características hacen mantenible un sistema?  

  • ¿Cómo influye el diseño en la evolución del software?  

 

4. Métodos como unidades de responsabilidad 

Para cada clase: 

  • Defina métodos claros y específicos  

  • Evite métodos con múltiples funciones  

 

5. Patrones de diseño (obligatorio) 

Debe implementar al menos uno: 

Opción 1: Strategy (recomendado) 

Para definir distintas reglas de acceso 

Ejemplo: 

  • AccesoPorRol  

  • AccesoPorPermiso  

  • AccesoPorNivelSeguridad  

 

Opción 2: Factory 

Para crear objetos de validación de acceso 

 

Análisis 

Explique: 

  • ¿Qué problema resuelve el patrón?  

  • ¿Cómo reduce el acoplamiento?  

  • ¿Cómo mejora la extensibilidad?  

 

6. Control del flujo del sistema 

Defina el flujo: 

  1. Usuario solicita acceso  

  1. Sistema identifica rol  

  1. Sistema evalúa permisos  

  1. Sistema valida reglas de acceso  

  1. Sistema concede o deniega acceso  

 

7. Uso de estructuras de control 

Explique: 

  • Condicionales → validación de permisos  

  • Bucles → iteración de roles/permisos  

 

8. Análisis crítico 

Responda: 

  • ¿Qué problemas tenía el sistema antes?  

  • ¿Cómo mejora la modularidad el diseño?  

  • ¿Cómo contribuyen los patrones a la mantenibilidad?  

 

  1. Componente práctico (Java) 

Requerimientos técnicos 

El sistema debe: 

  • Ser modular  

  • Aplicar separación de responsabilidades  

  • Definir métodos claros  

  • Usar estructuras de control  

  • Implementar al menos un patrón de diseño  

 

Clases mínimas esperadas 

  • Usuario  

  • Rol  

  • Permiso  

  • Recurso  

  • GestorAcceso  

 

Funcionalidades 

  • Crear usuarios  

  • Asignar roles  

  • Definir permisos  

  • Asociar recursos  

  • Validar acceso a recursos  

 

Aplicación de patrón (ejemplo) 

Strategy: 

  • EstrategiaAcceso (interfaz)  

  • Clases concretas:  

  • AccesoPorRol  

  • AccesoPorPermiso  

 

Uso obligatorio 

  • Métodos bien definidos  

  • Condicionales  

  • Bucles  

Simulación 

En el método main: 

  • Usuario intenta acceder a un recurso  

  • Sistema evalúa reglas  

  • Muestra resultado  

 

Condición clave 

El sistema debe permitir: Agregar nuevas reglas de acceso, sin modificar clases existentes 


Tipo de entrega

Archivo comprimido .ZIP 

  • Código fuente en Java  

  • Documento (análisis, diseño y justificación) 

  • Video de máximo 5 minutos, donde se pueda mirar la cara del estudiante explicando la funcionalidad del programa y del diseño arquitectónico del software. 


Actividad previa C7 - Persistencia, Auditoría y Trazabilidad en Ciberseguridad
Siguiente actividad C8 - Patrones de Diseño aplicados a Ciberseguridad
PUCE Virtual Logo

CAMPUS VIRTUAL

  • → SOPORTE VIRTUAL

CONTACTOS

  • soportevirtual@puce.edu.ec
  • Tel: +593 99 715 1230
  • Sede Quito
    Avenida 12 de Octubre 1076 y
    Vicente Ramón Roca