Concepcin del proyecto. Un proyecto de desarrollo de software,
particularmente cuando se trata de un desarrollo a la medida, inicia generalmente por una etapa en la cual se debe de generar una propuesta tcnica y econmica, muchas veces en un periodo corto de tiempo. En sta etapa, el arquitecto juega un papel muy importante pues en general en l recae la responsabilidad de realizar una traduccin de las necesidades que expresa un cliente hacia una solucin tcnica preliminar, que es una pieza clave para producir una estimacin del esfuerzo necesario para realizar el desarrollo. El arquitecto puede, de hecho, tambin participar en el trabajo de estimacin del sistema. Durante esta etapa del proyecto, el arquitecto debe hacer uso de habilidades tcnicas (duras) y no-tcnicas (suaves). Como parte de las habilidades tcnicas, debe poder identificar estilos arquitectnicos y tecnologas que sean apropiados para resolver el problema y proponer una solucin preliminar. Como parte de las habilidades no-tcnicas, debe ser capaz de realizar un anlisis de las necesidades del cliente, especialmente desde una perspectiva de negocio y poder explicar la solucin tcnica que propone a los distintos involucrados del proyecto. Requerimientos. Durante la fase de requerimientos, el arquitecto de software se involucra con los requerimientos que influyen en la arquitectura (drivers) y particularmente con respecto a los atributos de calidad del sistema. El arquitecto debe preocuparse por que se identifiquen atributos de calidad pertinentes para el sistema (alineados a los objetivos de negocio) y que las mtricas asociadas estn justificadas. En caso de que el cliente solicite atributos de calidad con mtricas muy demandantes (por ejemplo una disponibilidad del 99.99%) debe ser capaz de entender la justificacin de esas mtricas y, en caso necesario, debe poder negociar con el cliente para establecer mtricas adecuadas. Nuevamente, el arquitecto debe emplear aqu una combinacin de habilidades duras y suaves con el fin de lograr una identificacin adecuada de los requerimientos que influirn sobre el diseo arquitectnico. Diseo del sistema. La etapa de diseo del sistema es aquella donde el arquitecto de software juega el papel principal, particularmente al momento de disear la arquitectura. Aqu el arquitecto debe hacer uso de todas sus habilidades tcnicas con el fin de establecer una solucin tcnica pertinente que satisfaga, en la medida de lo posible, los requerimientos que influyen en la arquitectura (ver Figura 1. La realizacin del diseo requiere de muchos conocimientos tcnicos.
Durante la etapa de diseo, el arquitecto debe tambin hacer uso de muchas
habilidades no-tcnicas. La comunicacin durante esta etapa es fundamental, ya que el arquitecto debe ser capaz de comunicar el diseo, y las decisiones que lo llevaron al mismo, ya sea de forma escrita, como parte de la documentacin de la arquitectura, o bien de forma oral al explicar el diseo de la arquitectura al equipo de desarrollo. Durante la evaluacin del diseo de la arquitectura, el arquitecto debe ser capaz de presentar el contexto del problema y el diseo de la arquitectura al comit de evaluacin, y debe ser capaz de responder a las preguntas de dicho comit, o bien de aceptar las observaciones que se hacen al diseo. Construccin y pruebas del sistema. Durante de la construccin del sistema, el esfuerzo tcnico del arquitecto disminuye, aunque sto no significa que ya no se realizan actividades tcnicas. En esta etapa, desde un punto de vista tcnico, el arquitecto debe terminar de completar las partes faltantes del diseo de la arquitectura y corregir las decisiones previas que hayan resultado ser equivocadas. Desde un punto de vista no-tcnico, el esfuerzo aumenta pues el arquitecto debe enfocarse en cuidar que el sistema se desarrolle de acuerdo a la arquitectura que se defini para el mismo. Aqu el arquitecto juega un papel de mentor y muchas veces debe explicar cuestiones del diseo del sistema al equipo de desarrollo.
El arquitecto puede tambin realizar actividades de aseguramiento de calidad
tales como inspecciones de productos de trabajo, ya que su nivel tcnico y conocimiento del dominio del problema le da una ventaja para identificar problemas que posiblemente podran no ser identificados por ingenieros con un nivel tcnico y conocimiento del dominio del problema menores. Al momento de realizar pruebas del sistema, la participacin del arquitecto es importante, particularmente al momento de realizar pruebas relativas a los atributos de calidad del sistema. Liberacin. Al momento de implantar el sistema en el ambiente productivo, muchas veces es necesario realizar ajustes finos sobre el sistema, en particular una vez que el sistema ya est operando en el ambiente de uso definitivo. La participacin del arquitecto puede estar enfocada a realizar ajustes finos de la aplicacin con el fin de lograr un funcionamiento ptimo de la misma. Categoras de arquitectos Dependiendo del tamao del sistema, es posible que no haya un solo arquitecto que participe a lo largo de todo el proyecto y que, ms bien, existan distintos arquitectos especializados que intervienen a distintos momentos del desarrollo. As, frecuentemente, el arquitecto que participa en la concepcin de un proyecto es conocido como el Arquitecto de Soluciones mientras que el arquitecto que participa durante el desarrollo es conocido como el Arquitecto de Software. Pueden haber otras especializaciones tales como el Arquitecto de Sistemas, que se encarga de tomar decisiones de diseo que van ms all del software y que involucran hardware, o bien el Arquitecto Empresarial que, como su nombre indica, se especializa en el diseo de una arquitectura empresarial. Existen tambin ciertas especializaciones a nivel tecnolgico, como por ejemplo el Arquitecto SOA. Cualquiera que sea la especialidad del arquitecto, en general, un aspecto comn es que su rol involucra la toma de decisiones que tienen un fuerte impacto sobre el sistema. Conclusin Es muy difcil poder establecer un perfil nico del arquitecto de software, es por esa razn que en este artculo ms bien se habl acerca de las actividades que juega este rol a lo largo del desarrollo. Un aspecto complejo del rol del arquitecto de software es que es responsable de conciliar las demandas de los distintos involucrados dentro del desarrollo. As, debe buscar satisfacer las necesidades (no siempre compatibles) de los clientes y de la organizacin de desarrollo. Un arquitecto no puede, por ejemplo, proponer el uso de cualquier tecnologa sin considerar aspectos tales como la curva de aprendizaje del equipo de desarrollo, si ste ltimo no est familiarizado con la herramienta propuesta. Adicionalmente, el arquitecto de software debe asumir un papel de liderazgo y ser alguien con mucha iniciativa capaz de aprender continuamente, pero a la vez debe poder comprender que los miembros del equipo de desarrollo pueden no tener el mismo nivel tcnico que l y, por ello, debe tambin fungir como un mentor dentro del equipo.
Frecuentemente se considera que el rol de arquitecto de software es un rol
extremadamente tcnico y que personas que son muy buenas para la tecnologa automticamente pueden ocupar este papel. La realidad es que el rol de arquitecto de software es un rol complejo que requiere de una combinacin equilibrada de habilidades tcnicas y no-tcnicas que son indispensables en las distintas etapas del desarrollo de un sistema. Bio: El Dr. Humberto Cervantes es profesor-investigador en la UAM-Iztapalapa. Ha realizado investigacin en temas relacionados con arquitectura de software desde el ao 2000 y en aos recientes se ha enfocado en el estudio y la aplicacin de mtodos que apoyen al desarrollo de arquitectura de software dentro de la industria Mexicana. www.humbertocervantes.net
Este Mensaje de Correo Electrónico Confirma Su Registro de Un Producto de Sony Creative Software y Ofrece Instrucciones para Completar El Proceso de Activación