martes, 10 de enero de 2012

Problemas y desafíos de la arquitectura de software

Las siguientes figuras son obtenidas de fuentes de prestigio y reconocimiento en la industria TI, y evidencian un problema general dentro de la industria del desarrollo de software:
Arquitectura de la aplicación Java EE PetStore
Fuente: Originalmente de http://sun.java.com, pero obtenida de www.theserverside.com
Arquitectura de servidor de mensajería Sun Java CommunicationSuite
Arquitectura del Microframework .Net
La documentación de los sistemas de software generalmente incluyen una sección denominada “arquitectura del sistema”, la cual presenta una serie de diagramas similares a los expuestos.
Si bien a primera vista estos diagramas parecieran ser una buena guía para entender el sistema, una observación más cuidadosa permite constatar que todos ellos se caracterizan por:
·         la utilización de texto descriptivo y la utilización de diagramas de cajas y líneas
·         tener muy baja precisión, y ser más bien informales.
·         apelar a la intuición y pericia técnica del lector.
El uso de estos diagramas, hacen que en general la arquitectura de software sea considerado por muchos una “vista de alto nivel” del sistema, muchas veces abstracta e inherentemente imprecisa. Esto hace que las definiciones de  arquitectura sean sólo un punto de partida, y estén muy lejos de cumplir el rol de su análogo en la industria de la construcción.
De ahí que la ya no tan incipiente disciplina de arquitectura de software, tenga como sus grandes desafíos establecer los lineamientos teóricos y prácticos para que la arquitectura de software sea utilizada como un artefacto de ingeniería, basada en principios claros y no en definiciones ad-hoc, capaz de contribuir a (i) la comunicación entre las diferentes partes involucradas y (ii) la reducción del riesgo en el desarrollo mediante la captura precisa de las principales decisiones técnicas.
Otro gran desafío de la disciplina es la de permitir la construcción de sistemas con una base arquitectónica sólida e intelectualmente manejable. Como objetivos relacionados, se busca que los sistemas:
·         Puedan ser construidos en función de una composición de partes
·         Adhieran a la arquitectura definida para su construcción, manifestando en consecuencia las propiedades deseadas para ellos.
·         Utilicen crecientes grados de arquitecturas de integración estándares
·         Sean documentados de manera que la organización que los crea pueda reutilizar el conocimiento arquitectónico
·         Reducir los costos de producción de sistemas a gran escala mediante la definición de líneas de productos.

Fuentes:

No hay comentarios.: