You are on page 1of 4

ACTIVIDADES DEL ARQUITECTO DE SOFTWARE

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

You might also like