IFCD0184

Análisis, arquitectura y despliegue de software en java

Diseñar, análizar y desplegar aplicaciones Java mediante patrones de diseño, arquitecturas y pipelines CI/CD, integrando criterios de sostenibilidad y eficiencia energética.

Diseñado y producido por Smartmind

Disponibilidad:

Consultar

Contenidos

IFCD0184 — Análisis, arquitectura y despliegue de software en java

Módulo 1

Patrones de Diseño y Principios Arquitectónicos

Objetivo. Aplicar patrones de diseño y principios SOLID para mejorar mantenibilidad, realizar análisis cuantitativo de calidad de código e identificar y corregir code smells con impacto ambiental. CONOCIMIENTOS/ CAPACIDADES COGNITIVAS Y PRÁCTICAS

Contenidos: 3

Conocimiento/capacidades cognitivas y prácticas

Comprensión de los fundamentos de diseño de software

Conocimiento de principios SOLID y su aplicación en Java

Conocimiento acerca de criterios para evaluar calidad de código (acoplamiento, cohesión, complejidad)

Implementaciones haciendo uso de buenas prácticas de diseño orientado a objetos

Identificación de patrones de diseño esenciales

Uso de patrones creacionales: Factory, Builder, Singleton...

Uso de patrones estructurales: Adapter, Decorator, Proxy

Uso de comportamiento: Strategy, Observer, Chain of Responsibility

Conocimientos generales sobre patrones de software

Utilización de herramientas para el análisis de código

Introducción a herramientas para métricas de código (complexity, coverage, smells)

Realización de refactoring guiado por patrones

Conocimientos de sostenibilidad: impacto ambiental del código ineficiente

HABILIDADES DE GESTIÓN, PERSONALES Y SOCIALES

Concienciación acerca del impacto ambiental del código ineficiente

Valoración de la importancia de evaluar la calidad del código producido

Módulo 2

Arquitecturas y Escalabilidad

Objetivo. Diseñar arquitecturas escalables y resilientes, otimizar consumo de recursos en sistemas distribuidos e implementar técnicas de profiling para mejorar eficiencia. CONOCIMIENTOS/ CAPACIDADES COGNITIVAS Y PRÁCTICAS

Contenidos: 3

Conocimiento/capacidades cognitivas y prácticas

Comparación de las características de distintas arquitecturas

Realización de Comparativas: monolitos vs microservicios vs serverless

Diseño de APIs RESTful y gestión de versionado

Conocimientos sobre event-driven architecture con Java Message Service (JMS)

Identificación e implementación de arquitecturas limpias y sostenibles

Implementación de Hexagonal/Ports & Adapters

Implementaciones CQRS y Event Sourcing

Eficiencia energética en diseño de arquitecturas distribuidas

Valoración de las alternativas para balancear calidad y rendimiento

Conocimiento de técnicas de profiling en Java (CPU, memoria, I/O)

Optimización de recursos computacionales

Diseño para escalabilidad horizontal/vertical

HABILIDADES DE GESTIÓN, PERSONALES Y SOCIALES

Evaluación de la eficiencia energética en arquitecturas distribuidas

Apreciación de la importancia de optimizar los recursos computacionales

Módulo 3

CI/CD y Automatización en Java

Objetivo. Construir pipelines CI/CD para proyectos Java complejos, automatizar procesos de testing y despliegue y, reducir huella ecológica en operaciones DevOps. CONOCIMIENTOS/ CAPACIDADES COGNITIVAS Y PRÁCTICAS

Contenidos: 3

Conocimiento/capacidades cognitivas y prácticas

Comprensión de la automatización de los procesos de integración continua

Uso de Pipelines con Jenkins/GitHub Actions o similar para proyectos Java

Automatización de tests: unitarios, integración, carga

Análisis estático de código (SonarQube, Checkstyle)

Comprension de la automatización de los procesos de despliegue continuo

Empaquetado con Docker/Jib

Configuración de Orchestration básica con Kubernetes

Conocimientos de Blue-green deployments y canary releases

Identificaciónd e prácticas sostenibles en CI/CD

Optimización de recursos en pipelines

Monitorización de consumo energético en despliegues

Implementaciones que usen prácticas eco-friendly en infraestructura cloud

HABILIDADES DE GESTIÓN, PERSONALES Y SOCIALES

Valoración de la automatización como estrategia para la mejora de la eficiencia en las pruebas de software

Adopción de prácticas respetuosas con el medio ambiente en entornos de computación en la nube