Arquitectura de Software El Rol del Arquitecto de Software Centro de Posgrados y Actualización Profesional Instituto de Computación - Facultad de Ingeniería
Contenido • • • •
Propósito del Arquitecto Rol del Arquitecto Capacidades Actividades
Propósito del Arquitecto • La arquitectura es creada por el arquitecto junto con otros involucrados (stakeholders) • Estos tienen requerimientos, objetivos, intenciones y aspiraciones (concerns) Alto rendimiento Alta calidad Completamente funcional Verificable Amigable para el usuario Confiable Altamente disponible
Extensible Tolerante a cambios Mantenible Portable Seguro Económico ……
Propósito del Arquitecto • Durante el desarrollo es necesario convivir con estas restricciones • Se debe tomar decisiones de compromiso entre ellas • Por este motivo es que hay un arquitecto • El arquitecto posee la responsabilidad técnica más importante en estos aspectos
Propósito del Arquitecto • Se debe seleccionar entre patrones de arquitectura y tecnologías • Así, la arquitectura seleccionada es el resultado de un juicio basado en aptitudes y experiencia • El arquitecto es el responsable de emitir este juicio
Propósito del Arquitecto • Cuando el arquitecto presenta la descripción de la arquitectura, le está queriendo decir al administrador del proyecto “Ahora sé que podemos construir el sistema sin encontrar ninguna sorpresa técnica importante”
Propósito del Arquitecto • El arquitecto entonces ocupa un puesto difícil en el proyecto • No debería ser jefe de proyecto ya que ese puesto tiene muchas dificultades además de la arquitectura • Debe contar con el compromiso incondicional de la dirección – Para crear la mejor arquitectura – Para forzar que se cumpla
Monty Python y el Rol del Arquitecto • El arquitecto – debe ser formador de opinión, llevando la voz cantante en lo que es posible – debe proporcionar la visión, orientación y experiencia que permita a otros hacer realidad esa visión – necesita comprender los aspectos técnicos y de negocio de un proyecto para comprometerse con la mejor solución
Capacidades • El arquitecto debe – ser un buen comunicador – tener conciencia de las políticas organizacionales – ser un negociador – ser un líder técnico y tener conocimientos tecnológicos, de diseño y programación – comprender el proceso de desarrollo – tener conocimiento del dominio del negocio – … entre otros
Capacidades • Debe ser flexible para incorporar opiniones útiles de desarrolladores y otros involucrados • Puede que un solo arquitecto no sea suficiente para sistemas grandes – Puede utilizarse entonces un grupo de arquitectos para desarrollar y mantener la arquitectura
Actividades • El arquitecto dirige y coordina las actividades y los artefactos técnicos durante el proyecto • Sus actividades principalmente son en amplitud más que en profundidad – Identifica los modelos necesarios – Establece la estructura general de cada uno – Determina el agrupamiento de los elementos y las interfaces entre ellos – Describe la arquitectura
Actividades • El arquitecto realiza actividades en diferentes disciplinas • Algunas actividades se desarrollan al comienzo del proyecto • El resto de las actividades se llevan a cabo en todas las iteraciones – Son la mayoría de las actividades que desarrolla el arquitecto
Actividades • Sin embargo, el esfuerzo dedicado a cada actividad no es igual para cada iteración • En algunas iteraciones, una actividad puede ser muy relevante y necesitar gran esfuerzo • En otras, puede implicar simplemente hacer una revisión del avance y un ajuste de detalles en los artefactos
Referencias Monty Python and "The Role of the Architect“. Denny Boynton http://blog.dennyboynton.com/post/Monty-Pythonand-quot3bThe-Role-of-the-Architectquot3b.aspx