Curso Práctico de Patrones de Diseño e Introducción a la Arquitectura de Software
A diferencia
de un programador, el Arquitecto de Software debe dominar la mayor
cantidad de tecnologías de software y prácticas de
diseño, para así poder tomar decisiones adecuadas
para garantizar el mejor desempeño, reuso, robustez, portabilidad,
flexibilidad, escalabilidad y mantenibilidad de las aplicaciones.
Estas decisiones sobre la estructura y dinámica de la aplicación
son plasmadas en una notación formal estandarizada como lo
es UML; sobre todo si se utilizan las nuevas tecnologías,
en especial con los lenguajes orientados a objetos.
El arquitecto de software es el líder
técnico del equipo, el rol natural al que debe aspirar un
programador experimentado que desea tomar decisiones técnicas
relevantes en el desarrollo de un sistema. Es el principal tomador
de decisiones respecto a la manera en que será construída
la aplicación por los programadores del equipo. El líder
de proyecto se apoya totalmente en este rol para alcanzar el éxito
del proyecto optimizando el uso de la tecnología para desarrollar
la solución correcta que proporcionará valor real
a sus usuarios y al negocio al que le dará soporte.
Hay dos formas de convertirse en
arquitecto: aprendiendo a definir las soluciones con base en la
propia experiencia (el camino largo), o reutilizando el conocimiento
de los expertos a nivel mundial plasmado en patrones de arquitecura
y diseño (el camino corto). En este curso, los conocedores
de la tecnología orientada a objetos y UML aprenden el camino
corto mediante el aprendizaje de patrones explicados de una forma
interesante y amena.
Aprenderán además a
modelar su aplicación utilizando Enterprise Architect, herramienta
de modelado de UML que les permite la aplicación automática
de los patrones de diseño más importantes.
El curso incluye:
Manual impreso del curso.
Constancia
de participación.
Libro Head First Design Patterns: una guía de los patrones de diseño básicos más utilizados, presentados de forma visual, sencillos de asimilar y con un lenguaje ameno y humorístico, haciéndolo un recurso "amigable para el cerebro".
Opcional:
Una licencia de Enterprise Architect Desktop, una herramienta poderosa de modelado de UML. Incluye un año de actualizaciones.
Objetivo:
Desarrollar arquitectos de software
que sean capaces de establecer los lineamientos formales de construcción
para el desarrollo de aplicaciones robustas. El arquitecto de software
es el líder técnico del equipo, el rol natural al
que debe aspirar un programador experimentado que desea tomar decisiones
técnicas relevantes en el desarrollo de un sistema. Es el
principal tomador de decisiones respecto a la manera en que será
construída la aplicación por los programadores del
equipo. El líder de proyecto se apoya totalmente en este
rol para alcanzar el éxito del proyecto optimizando el uso
de la tecnología para desarrollar la solución correcta
que proporcionará valor real a sus usuarios y al negocio
al que le dará soporte.
El curso va dirigido a:
Arquitectos de software que requieren formalizar los conocimientos
asociados a sus responsabilidades técnicas
Líderes
de proyecto responsables de validar las decisiones técnicas
del sistema a desarrollar.
Programadores
que requieran tomar decisiones técnicas respecto a la arquitectura
de sus sistemas.
Diseñadores
de software responsables de especificar aspectos técnicos
de sus sistemas.
Gerentes de
tecnología responsables de las decisiones relacionadas con
las arquitecturas de las aplicaciones de su empresa.
Cualquier persona
que busque un rol como los anteriores.
Que es lo que SI enseña el curso:
La ventaja de conocer los patrones de Arquitectura y Diseño (además de aprenderlos)
Los detalles de implementación de los patrones de diseño (muchas veces no son tan obvios)
Los patrones de software que se pueden aplicar indistintamente si tu plataforma es Microsoft, Java, LAMP, etc.
Que es lo que NO enseña el curso:
Plantear una arquitectura completa de un sistema de software (hay muchísimas mas cosas involucradas: hardware, detalles particulares de cada plataforma, base de datos, etc.)
Diseñar la arquitectura Web de un sistema de software
La arquitectura para alguna plataforma en particular
Temario
Introducción
Definiciones y conceptos básicos de patrones en el proceso de diseño de software
¿Qué son los patrones?
¿Qué es un sistemas de patrones?: granularidad, relación y utilidad
La documentación de los patrones
Parte I: Los patrones de diseño en el desarrollo de software
Antecedentes e historia
Patrones orientados a la creación
Instancia única
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Fabrica abstracta
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Método abstracto
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Prototipo
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Constructor
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Patrones orientados a la estructura
Adaptador
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Puente
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Compuesto
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Fachada
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Intermediario
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Decorador
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Patrones orientados al comportamiento
Método plantilla
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Iterador
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Comando
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Observador
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Mediador
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Estado
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Estrategia
Intención y alias
Motivación
Criterios de uso
Estructura y participantes
Colaboraciones
Consideraciones
Variantes
Relación con otros patrones
Ejemplo y ejercicio
Criterios para la selección y aplicación de los patrones
Parte II: Los patrones de arquitectura en el desarrollo de software
Definición y conceptos básicos de Arquitectura de Software
Definiciones de Arquitectura de Software
Formas para describir la Arquitectura de Software
Formas de observar una Arquitectura de Software
Visión General de los Patrones de Arquitectura
Patrones para estructurar un sistema de software: Capas, Tuberías y Filtros, y Tablero
Patrones para distribuir un sistema de software: Intermediario
Patrones para sistemas de software que interactuar con seres humanos: MVC y PAC
Patrones para sistemas de software cambiantes: Reflexión y Núcleo simple
Visión General de los Patrones de Arquitectura Web
Cliente Delgado Web
Cliente Robusto Web
Reparto Web
Habilidades previas recomendadas
Con la finalidad de que el alumno
obtenga el máximo provecho de este curso, es recomendable
que cuente con el conocimiento y experiencia en el lenguaje de programación
utilizado en el curso y en UML.
Información adicional
Tipo de curso:Presencial
Duración: 5 días Capacidad: Desde 5 hasta 10 lugares (se abre con un mínimo
de 5 alumnos)