Gerencia de Proyectos - Roles Funcionales Parte IV: Arquitecto de software

El Arquitecto de Software
Es la persona que  organiza las actividades de desarrollo, fungiendo como responsable de la visión que subyace en la solución y la ejecución de esa visión Se involucra en un proyecto en el momento en que el Analista Funcional ha desarrollado los requisitos.

¿Qué es un Arquitecto de software?
El Arquitecto de software es quien realiza la conversión de los requisitos en el diseño de una arquitectura que se convertirá en el modelo para la solución que se está creando.  La creación de arquitecturas eficaces para crear una solución requiere el cuidadoso equilibrio de decenas de conceptos de desarrollo que van desde "MANTENIMIENTO SIMPLE” hasta "A PRUEBA DE FALLOS".

En el proceso de conversión de los requisitos a una arquitectura de software a menudo se requiere de la investigación sobre las tecnologías y los enfoques críticos que permitan construir una solución orientada a:

- Satisfacer los requerimientos funcionales de los usuarios.
- Cumplir con estándares y parámetros de calidad del software relacionados con: Facilidad de uso, Eficiencia en el uso de los recursos de hardware y software, Facilidad y flexibilidad de mantenimiento.
- Cumplir con requerimientos de seguridad.
- Permitir la usabilidad de los componentes de software.
- Asegurar la correcta integración de tanto de los componentes como de las distintas arquitecturas de software.
En este sentido la acción final del arquitecto de software está orientada a:

- Definir las vistas de la arquitectura de una aplicación (es decir, crear la arquitectura, ya que la arquitectura, en pocas palabras es un conjunto de vistas de alto nivel).
- Dar soporte técnico-tecnológico a desarrolladores, clientes y expertos en negocios.
- Conceptualizar y experimentar con distintos enfoques arquitectónicos.
- Crear documentos de modelos, componentes y especificaciones de interfaces.
- Validar la arquitectura contra requerimientos, hipótesis y suposiciones.

Comenzando como un Arquitecto de Software
Para la mayoría de las personas convertirse en un Arquitecto de Software en un gran proyecto no surge de la nada. Es un cambio en lenta progresión de constante aprendizaje y desarrollo, comenzando como un distinguido Líder de Desarrollo, trabajando en pro del estudio de las habilidades requeridas para esta función.. Una de las formas de comprender y aprender sobre el diseño de arquitecturas de software es invertir tiempo en el estudio de los patrones, debido a que son los elementos básicos de la arquitectura de casi todos los sistemas, lo cual hace que sea mucho más fácil de identificar como pueden ser útiles en la construcción de la arquitectura. En este sentido, la lectura de libros y artículos sobre diferentes perspectivas de la arquitectura y las nuevas técnicas de desarrollo puede ampliar vístala visión del arquitecto y permiten ver las oportunidades para crear los diseños arquitectónicos.

La distinción entre el plomo y el desarrollo de la SA son a menudo sutiles. Cuando el desarrollo se centra en llevar el conocimiento detallado de un área particular de la SA es muy amplia. Esto permite que la SA a ver el problema desde una perspectiva diferente. En lugar de hacia abajo sumidos en los detalles específicos de la aplicación de una cosa que la SA se centra en la integración de diversas partes de la solución en una red coherente que resuelve el problema más amplio.

El otro cambio es sutil en la rendición de cuentas. Si bien el desarrollo es el responsable de llevar su parte de la solución, la SA es la proverbial un cuello a asfixiarse si no se reúnen todos los derechos. La SA es el responsable máximo de las tecnologías de trabajar juntos. Como resultado, el papel SA viene con un requisito de nivel de responsabilidad para el éxito del proyecto.

¿Qué hay en su caja de herramientas?
La herramienta más importante para un Arquitecto de software es el conocimiento de algún lenguaje o herramienta de desarrollo visual con el objetivo de documentar el diseño, como por ejemplo UML. La estructura de UML para describir una variedad de diferentes puntos de vista del problema de desarrollo de software en forma pictórica, es el lenguaje visual más reconocible para documentar la arquitectura de software. De este modo debe estar familiarizado con cada una de las diversas formas de representación visual de UML y tener experiencia en el desarrollo de casos de uso, diagramas de clase y diagramas de estado. El dominio de UML permite el desarrollo de modelos de arquitectura de software de forma rápida y fácil, y permite mejorar la comunicación con el líder de desarrollo y los desarrolladores.

Además de las herramientas de modelado visual, es necesario el conocimiento a nivel de diseño de base de datos, debido a la importancia que tiene la forma en la cual los datos son almacenados y recuperados  con el objetivo de permitir la optimización en el desempeño de la aplicación a desarrollar.  Dentro del kit de herramientas, el Arquitecto de Software debe conocer los procesos relacionados con el ciclo de vida del desarrollo de software, es decir, los procesos metodológicos con el objetivo de documentar las soluciones de software  a construir.

Lo bueno y lo malo
Bueno: El Arquitecto de software es una función clave que puede proporcionar un enorme valor si cumple con sus funciones correctamente.

Bueno: Es muy probable que pueda llegar a interactuar con los principales miembros del equipo de desarrollo, así como también con miembros de la comunidad de usuarios.  

Malo: debe mantenerse al día sobre una amplia variedad de nuevas técnicas, modelos y herramientas.

Malo: Aunque un buen Analista Funcional puede proporcionar una gran cantidad de requisitos, la probabilidad de que algunos no estén bien definidos o calificados puede ser alta, en este sentido se podrá exigir al Analista funcional detallar o especificar a mayor detalle lo que el usuario final necesita

Conclusión 
El papel del Arquitecto de software es de suma importancia en el proceso de desarrollo de aplicaciones ya que es el encargado de definir como estará estructura la aplicación. Este debe estar actualizado en las últimas visiones de las arquitecturas de software y asumir la responsabilidad y consecuencias que conlleva el diseño de la arquitectura.

0 comentarios:

Publicar un comentario

Popular Posts

Recent Posts

Video of the Month

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *