Arquitectura de Software

badge image Curso

Los patrones y principios de diseño y arquitectura de software, con las métricas de su seguimiento y evaluación cuantitativa.

En el inicio de curso se establecen los fundamentos de la metodología de orientación a objetos. Luego se analizan los principios esenciales de la ingeniería de software. Estos están fuertemente incrustados en todas las actividades de desarrollo. Posteriormente se explican algunas métricas seleccionadas de arquitectura de software, tales como: cohesión, estabilidad o abstracción. Se entrega un catálogo de los principios tanto de nivel de diseño, como el de arquitectura. Mediante una sesión completa se realiza un ejercicio para juntar las piezas, desde el diagnóstico arquitectural, hasta su mejora.

Objetivos del Curso

  • Aprender los principios de orientación a objetos
  • Aprender como ver sistema de software de un punto de vista netamente ingenieril y tomar control sobre su crecimiento y su complejidad
  • Conocer a cuantificar la calidad de arquitectura y a usar una herramienta de diagnóstico arquitectural
  • Aprender un catálogo consistente de principios de nivel de diseño y arquitectura
  • Realizar un ejercicio real de diagnostico arquitectural

Duración

20 horas.

Perfil del alumno

Arquitectos, Jefes de Proyectos, Diseñadores, Expertos de Bases de Datos, Implementadores.

Requisitos

Los conocimientos básicos de la orientación a objetos con alguna experiencia en desarrollo, especialmente de los sistemas de gran escala.

Métodos de enseñanza

“Juegos” interactivos durante el curso. Ejercicios prácticos guiados por el Instructor. Sesiones hands-on (herramienta). Interacción permanente y ejemplos reales.

Temario

Sesión 1 (90% Teoría + 10% Práctica): Conceptos Fundamentales

  • Ejercicio introductoria
  • Principios Esenciales
  • Paradigmas de Desarrollo de Software
  • Elementos de Orientación a Objetos
  • Principios Básicos de Orientación a Objetos
  • Buenas Prácticas de Programación

Sesión 2 (70%T + 30%P): Métricas de Arquitectura

  • Introducción a Métricas
  • Dependencias en Sistemas
  • Catálogo de Métricas de Arquitectura
  • Dependencias Entrantes y Salientes
  • Inestabilidad
  • Abstracción
  • Distancia de la Secuencia Principal
  • Cohesión Relacional
  • Impacto Promedio y Estabilidad Sistémica

Sesión 3 (70%T + 30%P): Principios de Diseño de Clases

  • Arquitectura del Software
  • Principio Abierto-Cerrado (OCP)
  • Principio de Segregación de Interfaces (ISP)
  • Principio de Propósito Único (SRP)
  • Principio de Inversión de Dependencias (DIP)
  • Principio de Substitución de Liskov (LSP)

Sesión 4 (70%T + 30%P): Principios de Diseño de Subsistemas

  • Granularidad y Reutilización
  • Equivalencia de Reutilización y Entrega (REP)
  • Reutilización y Cierre Común (CRP, CCP)
  • Dependencias Acíclicas (ADP)
  • Dependencias Estables (SDP)
  • Abstracciones Estables (SAP)

Sesión 5 (100% Práctica): Ejercicio Final: Juntando las Piezas

  • Revisión de la versión 5 de un sistema
  • Diagnóstico Arquitectural de la versión 5
  • Proyección de las mejoras
  • Implementación de la mejorada versión 6

Más detalles en Arquitectura de Software

Herramientas y técnicas TI