La Programación Orientada a Objetos (POO) es un paradigma de programación fundamental para el desarrollo de software moderno. En este paradigma, los programas se organizan en torno a objetos, que encapsulan datos (atributos) y comportamiento (métodos). La POO ofrece una serie de ventajas sobre otros paradigmas de programación, como la modularidad, reutilización del código, mantenibilidad y extensibilidad.
En el contexto de la Ingeniería en Ciberseguridad, la POO permite diseñar y analizar sistemas informáticos más robustos y seguros, al facilitar la separación de responsabilidades, el control de acceso a la información y la correcta modelación de entidades críticas como usuarios, roles y recursos. Asimismo, este enfoque promueve la aplicación de buenas prácticas de diseño que contribuyen a reducir vulnerabilidades, mejorar la calidad del software y fortalecer la capacidad del estudiante para desarrollar soluciones escalables y alineadas con los requerimientos de seguridad actuales.
RESULTADOS DE APRENDIZAJE
RDA 1: Analizar los fundamentos de la programación orientada a objetos y sus principales mecanismos, tales como clases, objetos, encapsulación, herencia, polimorfismo e interfaces, para la correcta estructuración de soluciones de software.
Criterio de evaluación 1: Identifique y explique correctamente los fundamentos y mecanismos de la programación orientada a objetos, demostrando comprensión conceptual de clases, objetos, encapsulación, herencia, polimorfismo e interfaces.
Criterio de evaluación 2: Analice situaciones o problemas de software y justifique la selección de mecanismos de programación orientada a objetos adecuados para estructurar soluciones coherentes.
RDA 2: Diseñar aplicaciones orientadas a objetos, organizando clases y relaciones de manera coherente, y aplicando principios de diseño orientado a objetos que favorecen la modularidad, reutilización y mantenibilidad del software.
Criterio evaluación 1: Diseñe modelos orientados a objetos (clases y relaciones) aplicando principios de diseño que garanticen modularidad, reutilización y mantenibilidad del software.
Criterio evaluación 2: Desarrolle aplicaciones orientadas a objetos funcionales, evidenciando una correcta organización de clases, uso adecuado de relaciones y aplicación consistente de principios de diseño orientado a objetos.
RDA 3: Aplicar patrones básicos de diseño orientados a objetos, como apoyo al desarrollo de aplicaciones estructuradas y confiables utilizadas en sistemas y contextos relacionados con la ciberseguridad.
Criterio evaluación 1: Reconozca y explique los patrones básicos de diseño orientados a objetos, describiendo su propósito y su aplicabilidad en el desarrollo de software.
Criterio evaluación 2: Aplique patrones básicos de diseño orientados a objetos en la construcción de soluciones de software, mejorando la estructura, confiabilidad y calidad de aplicaciones en contextos relacionados con la ciberseguridad.
Tema
Desarrollo de una aplicación orientada a objetos para la gestión segura de accesos, que permita administrar usuarios, roles, permisos y recursos dentro de un sistema informático.
Objetivo General
Desarrollar una aplicación orientada a objetos para la gestión segura de accesos, que permita administrar usuarios, roles, permisos y recursos, aplicando los fundamentos de la POO, principios de diseño y buenas prácticas de desarrollo en un contexto propio de la ciberseguridad.
Objetivos específicos
Analizar el problema de control de accesos e identificar las entidades principales del sistema mediante un enfoque orientado a objetos.
Diseñar el modelo orientado a objetos aplicando principios de cohesión, acoplamiento y encapsulación, incorporando al menos un patrón de diseño.
Implementar la solución en lenguaje Java, garantizando modularidad, control de errores y manejo adecuado de permisos.
Descripción del Proyecto
El proyecto consiste en el desarrollo progresivo de una aplicación orientada a objetos para el control de accesos, en la cual se gestionen usuarios, roles, permisos y recursos de un sistema informático. A lo largo del curso, el estudiante construirá el proyecto por etapas, integrando los resultados de aprendizaje de cada unidad. El sistema deberá reflejar un diseño estructurado, seguro y mantenible, evidenciando la correcta aplicación de los conceptos de programación orientada a objetos en un escenario vinculado a la ciberseguridad.
Actividades
El estudiante deberá desarrollar, como mínimo, las siguientes actividades:
Análisis del problema y definición del alcance del sistema.
Identificación de clases, atributos, métodos y responsabilidades.
Modelado del sistema mediante diagramas de clases UML.
Definición de relaciones entre clases (asociación, agregación o composición).
Selección y aplicación de al menos un patrón de diseño.
Implementación de las clases y métodos en Java.
Manejo básico de errores y validaciones.
Integración de los módulos desarrollados.
Documentación del diseño y funcionamiento del sistema.
Presentación final del proyecto.
Observación
En este proyecto el estudiante no desarrollará (está fuera del alcance):
Interfaz gráfica avanzada (web o móvil).
Conexión a bases de datos reales.
Autenticación real (hashing, OAuth, JWT, etc.).
Criptografía avanzada.
Despliegue en servidores.
Cumplimiento normativo (ISO, OWASP, etc.).
Metodología:
El proyecto se desarrollará bajo la metodología de Aprendizaje Basado en Proyectos (ABP) y Retos, considerando las siguientes indicaciones:
El trabajo podrá realizarse de manera individual o grupal, según disposición del docente.
El proyecto se desarrollará por etapas, alineadas con las unidades de la asignatura.
Cada entrega parcial será retroalimentada por el docente.
El estudiante deberá aplicar progresivamente los contenidos vistos en clase.
Se fomentará el análisis, la toma de decisiones y la solución de problemas reales.
El proyecto final integrará todos los resultados de aprendizaje de la asignatura.
Criterios de Evaluación del proyecto.
El proyecto será evaluado considerando los siguientes criterios:
Correcta identificación y modelado de las entidades del sistema.
Aplicación adecuada de los principios de Programación Orientada a Objetos.
Calidad del diseño orientado a objetos.
Uso correcto de al menos un patrón de diseño.
Funcionalidad y coherencia de la implementación en Java.
Organización, claridad y documentación del código.
Cumplimiento de los requerimientos de seguridad planteados.
Presentación y defensa del proyecto.
Cronograma de entregables del Proyecto.
Cronograma de entregables del Proyecto.
Semana
Entregable
3
Análisis del problema e identificación de entidades
5
Diseño orientado a objetos (diagramas UML)
7
Implementación parcial del sistema
8
Proyecto final integrado y documentación
Retos de aprendizaje de la asignatura:
RETO 1: Análisis y Modelado Inicial Orientado a Objetos
En este primer reto, los estudiantes deberán analizar un problema básico de control de accesos en un sistema informático y modelarlo utilizando los fundamentos de la programación orientada a objetos.
El reto consiste en identificar y definir las clases principales del sistema, tales como usuarios, roles, permisos y recursos, estableciendo sus atributos y responsabilidades básicas.
RETO 2: Diseño del Modelo Orientado a Objetos y Control del Flujo del Sistema
En este segundo reto, los estudiantes deberán diseñar el modelo orientado a objetos del sistema de gestión segura de accesos, organizando las clases identificadas en el reto anterior y definiendo de manera clara sus relaciones y comportamientos.
RETO 3: Desarrollo Modular con Métodos y Principios de Diseño Orientado a Objetos
En este tercer reto, los estudiantes deberán enfocarse en el desarrollo del sistema aplicando métodos (funciones) para resolver procesos más complejos y combinando estructuras de control (condicionales y bucles) dentro de una arquitectura orientada a objetos.
Los estudiantes ampliarán la funcionalidad del proyecto de gestión segura de accesos, incorporando operaciones propias de un contexto de ciberseguridad y, al mismo tiempo, deberán descomponer el problema en tareas más simples mediante la creación de métodos específicos por responsabilidad
RETO 4: Persistencia, Auditoría e Integración Final del Sistema
En este último reto, los estudiantes deberán agregar la funcionalidad para guardar y cargar información del sistema en archivos de texto (o formato equivalente), con el fin de mantener la persistencia de los datos y generar trazabilidad básica, tal como se requiere en contextos de ciberseguridad.
Esto permitirá que la aplicación conserve un historial de eventos y que el usuario pueda revisar o continuar la gestión de accesos en ejecuciones posteriores.
Analizar los fundamentos de la programación orientada a objetos y sus principales mecanismos, tales como clases, objetos, encapsulación, herencia, polimorfismo e interfaces, para la correcta estructuración de soluciones de software.
Resultado de aprendizaje 2
Diseñar aplicaciones orientadas a objetos, organizando clases y relaciones de manera coherente, y aplicando principios de diseño orientado a objetos que favorecen la modularidad, reutilización y mantenibilidad del software.
Resultado de aprendizaje 3
Aplicar patrones básicos de diseño orientados a objetos, como apoyo al desarrollo de aplicaciones estructuradas y confiables utilizadas en sistemas y contextos relacionados con la ciberseguridad.