Programamos y diseñamos porque nos gusta. Cada uno de nosotros llegó a destacar en su especialidad por el camino de la vocación y realmente disfrutamos los desafíos que plantea cada nuevo proyecto.
CURSO “Arquitectura de Software”
Instructor: Sr. Martín Salías.
Fechas y Horario: El curso comienza el Martes 9 de JUNIO, Martes 7 de JULIO, Martes 4 de AGOSTO, y culmina el Martes 8 de SEPTIEMBRE, El horario es de 18.30 a 20.30.
Lugar: Auditorio MUG, Rivadavia 1479 1º A , Ciudad de Buenos Aires.
Requisitos previos: Conocimientos básicos de programación y diseño de software, y experiencia real
en desarrollo de aplicaciones.
Duración: El curso consta de cuatro reuniones mensuales presenciales de dos horas.
Formato: El seminario consta de una primera fase de cuatro reuniones mensuales
presenciales de dos horas, en las cuáles se presentarán conceptos generales y ejemplos
prácticos, a partir de los cuales los asistentes deberán profundizar en temas específicos en
forma independiente, a fin de fijar conocimientos necesarios para la siguiente sesión.
Finalizada la primera fase, los asistentes a las cuatro sesiones, tendrán la oportunidad de
presentar trabajos prácticos, dentro de un intervalo pactado de común acuerdo, enviándolos
por mail, tras lo cual recibirán una devolución con comentarios, sugerencias y guías de estudio
personalizadas según sus intereses.
Objetivo: que los participantes adquieran una experiencia común en cuanto a la manera de
encarar decisiones e investigación relacionada con la construcción de soluciones de software, y
tengan una metodología de referencia para continuar desarrollándose profesionalmente en este ámbito.
El seminario de arquitectura de software está destinado a personas con conocimientos básicos de
programación y diseño de software, que tengan experiencia real en desarrollo de aplicaciones.
El valor principal del seminario se encuentra en el trabajo continuo y el contacto entre los asistentes
y el instructor, por ello se promoverá que los cursantes compartan entre los encuentros sus investigaciones
y hallazgos mediante permanentes intercambios vía correo electrónico, u otro medio.
Los asistentes a las cuatro sesiones recibirán certificados de asistencia, y el informe escrito sobre el
trabajo práctico que hubieren presentado.
Cronograma de clases y contenidos:
Junio 9
Introducción a la Arquitectura de Software
- Introducción y fundamentos
La perspectiva histórica y problemas generales que la arquitectura ha tratado de resolver a lo largo
de los años, cómo han cambiado los escenarios y las perspectivas.
- Diseño de Software
Revisión de premisas de diseño basadas en componentes, orientado a objetos, a servicios
y en agentes, a nivel general, recorriendo algunos de los pros y contras de cada estrategia.
- Principios
Reseña de algunos principios rectores de las arquitecturas como atributos de
calidad, capacidades, estilos y modelos.
- Metodologías
Presentación de algunos de los lenguajes descriptivos y frameworks tradicionales, y comparación
entre éstos y nuevas tendencias ágiles.
Julio 7
Diseño de Arquitectura
- Patrones de Diseño y Arquitectura
Lenguajes de patrones. Aplicación al diseño de software y a la arquitectura. Modelos de
capas, arquitectura hexagonal, patrones de Fowler, y otros.
- Patrones de Deployment
Estrategias de distribución y escala, manejo de estado, tolerancia a fallas y alta
disponibilidad, modelos de seguridad, y otros.
- Metodologías de trabajo
Diferentes aproximaciones a la tarea de arquitectura. Lenguajes de definición y estilos
pragmáticos. Técnicas agiles.
- Estilos arquitectónicos
Capas y niveles, distribución, componentes, buses, presentación, servicios, agentes, estilos en
estado emergente o experimental.
Agosto 4
Arquitecturas en Capas y Distribuidas
- Modelos de Capas
Tier y Layers, direccionalidad, clientes y servicios, múltiples clientes, pasaje de datos o
entidades entre capas, etc
- Orientación a Servicios (SOAP)
Profundización en el modelo de servicios, diseño y versionamiento de contratos, granularidad,
protocolos y transportes, extensiones WS-*. Escenarios de uso.
- Orientación a Recursos (REST)
Fundamentos del modelo. Características de la interfaz uniforme y uso del protocolo HTTP.
Consideraciones de seguridad. Escenarios de uso.
Septiembre 8
Clasificación y arquetipos de aplicaciones
Para todas las plataformas: técnicas de selección en base a matrices de evaluación, y
mecanismos de composición.
- Clientes ricos
Aplicaciones Windows, GTK, Glade, WPF, Adobe AIR y otras centradas en el escritorio.
- Web/Ajax
Espacio Web, paradigmas actuales, separación de la presentación, los estilos, la lógica cliente
y la logica servidor. Patrones generales y entornos de desarrollo. Javascript hoy.
- Clientes ricos en Internet (RIA)
Características y patrones comunes en el uso de Flash, Silverlight y nuevas capacidades de HTML 5.
Modelos de integración dentro de aplicaciones web/ajax tradicionales.
- Mobile
Características inherentes al desarrollo de aplicaciones para dispositivos de potencia reducida
como teléfonos, teléfonos inteligentes y PDAs. Patrones comunes y modelos de integración en soluciones mixtas.
- Servicios y Agentes
Características generales de las aplicaciones de back-end con o sin clientes interactivos.
Consideraciones generales para la construcción e integración de las mismas en soluciones complejas.
Aranceles:
Público en general: $ 120
Socios del MUG: $ 40.