|
| |
La arquitectura de software como disciplina científica.
Resumen: En el presente artículo se aborda un conjunto de factores que debe cumplir un campo del conocimiento para que sea categorizado como disciplina científica. Analiza como la Arquitectura de Software (AS) logra el cumplimiento de estos factores, a través del establecimiento de una comunidad que demuestre el quehacer científico y una práctica profesional. Realiza un análisis bibliográfico desde los inicios de la disciplina, y los principales hallazgos que determinan su objeto de estudio en la actualidad. Y por último analiza el nivel de madurez de la disciplina teniendo en cuenta los expertos.
Publicación enviada por Ing. Yamila Vigil Regalado e Ing. Erich Fouces Cabana
RESUMEN
En el presente artículo se aborda un conjunto de factores que debe cumplir un
campo del conocimiento para que sea categorizado como disciplina científica.
Analiza como la Arquitectura de Software (AS) logra el cumplimiento de estos
factores, a través del establecimiento de una comunidad que demuestre el
quehacer científico y una práctica profesional. Realiza un análisis
bibliográfico desde los inicios de la disciplina, y los principales hallazgos
que determinan su objeto de estudio en la actualidad. Y por último analiza el
nivel de madurez de la disciplina teniendo en cuenta los expertos.
Palabras Claves: arquitectura de software, disciplina científica.
INTRODUCCIÓN
Para que un campo del conocimiento se catalogue como disciplina científica, debe
estar asociado a este un conjunto de elementos que lo avalen. Primeramente debe
contar con un cuerpo de conocimientos sustentados por un alto índice de
publicaciones científicas, las cuales den muestra del quehacer de una comunidad.
En segundo lugar, debe tener asociado una práctica profesional, encargada de
materializar este campo de conocimientos en los distintos problemas que se
presentan en la rama. Y por último debe contener un método exclusivo y único
para su fundamentación.
La AS, como disciplina bien delimitada, es mucho más nueva de lo que
generalmente se sospecha. Los primeros pasos se observaron en las reflexiones de
1968, de Edsger Dijkstra, acerca del establecimiento de una estructuración
correcta de los sistemas de software antes de lanzarse a programar. Más tarde en
la conferencia de la OTAN en 1969, P.I.Sharp, formula un conjunto de
apreciaciones sorprendentes, comentando las ideas de Dijkstra, estableciendo la
diferencia entre ingeniería y arquitectura de software. Hasta la década de los
90´s, el término fue visto de distintas maneras, sobretodo muy ligado al diseño,
se hablaba de un nivel de abstracción, sin embargo aún no estaba en su lugar los
elementos de juicio que permitieran reclamar la necesidad de una disciplina y
una profesión particular.
RESULTADOS Y REFLEXIÓN
Luego de un análisis bibliográfico de las fuentes, se reconoce a “Studying
Software Architecture Through Design Spaces and Rules”, de Thomas G. Lane, como
el primer libro publicado por el SEI, sobre el tema de la AS, en el año 1990. En
este Lane establece una definición de AS, basándose en el concepto expuesto por
Mary Shaw, en el año anterior, en su libro “Larger Scale Systems Require Higher-Level
Abstractions” presentando en el 5to Seminario Internacional sobre la
especificación y el diseño del software, y publicado por la IEEE Computer
Society. Lane define la AS como:
…“Arquitectura de software es el estudio de la estructura a gran escala y el
rendimiento de los sistemas de software. Aspectos importantes de la arquitectura
de un sistema incluye la división de
funciones entre los módulos del sistema, los medios de comunicación entre
módulos, y la
representación de la información compartida.”
Se observa como la concepción de componentes (“división de funciones entre los
módulos del sistema”), y de conectores (“medios de comunicación entre módulos”),
van tomando su espacio dentro de la definición. En este libro, Lane brinda un
concepto interesante, “espacios de diseño”, los cuales proporcionan un marco
para la confección de normas que pueden ayudar a un diseñador en la selección de
un arquitectura apropiada para las necesidades funcionales de un nuevo sistema.
Resulta “interesante”, debido a que se observa como el rol del arquitecto de
software, aún no es reconocido, esta tarea es asignada directamente al diseñador
del software.
Luego de este aporte, se observa una tendencia marcada hacia la búsqueda de un
modelo de estructuración de software, y se diseñan un conjunto de modelos de
dominios, basados en diseños genéricos, como por ejemplo DSSA (Domain-Specific
Software Architectures) elaborado por Mettala y Graham, en el año 1992.
No es hasta el lanzamiento del libro “An Introduction to Software Architecture”,
de Mary Shaw y David Garlan, en el año 1994, donde plantean, que debido al
aumento del tamaño y complejidad de los productos de software, el problema
principal no radica ya, en los algoritmos y las estructuras de datos, sino que
se dirige a la organización de los componentes que conforman el sistema,
introduciendo así, la necesidad de la creación de la AS, como disciplina
científica, cuyo objeto de estudio no es más que la determinación de un conjunto
de paradigmas que establezcan una organización del sistema a alto nivel, la
interrelación entre los distintos componentes que lo conforman y los principios
que orientan su diseño y evolución.
En esta ponencia se introduce por primera vez el término “architectural styles”,
y se definen una gran gama de ellos, entre los que se encuentran: Tubería y
filtros, Repositorio, Arquitectura en Capas, Arquitectura basada en eventos,
etc.
El tema del rol de arquitecto dentro del proceso de concepción y desarrollo del
software, no se expone a la luz, sin embargo, en el último capítulo del libro,
titulado: “Pasado, presente y futuro”, exponen un grupo de áreas de interés para
el estudio posterior de la disciplina, dentro de las que se destaca, “lograr un
mejor entendimiento del rol del arquitecto en el ciclo de vida del proceso.”
En este mismo año, 1994, el cual podría ser considerado como “el año de oro de
la Arquitectura de Software”, se realiza otro acontecimiento arquitectónico
relevante. Mary Shaw y David Garlan, lanzan el concepto de Lenguajes de
Descripción Arquitectónica (ADLs), en su libro “Characteristics of Higher Level
Languages for Software Architecture”. En el estudio se señala las alternativas
que hasta el momento se poseen para la definición de la AS de un sistema. En
primer lugar, a través de la modularización de las herramientas existentes de
programación y de los módulos de conexión entre ellas y, en segundo lugar,
describir sus diseños usando diagramas informales y frases idiomáticas. A partir
de estas reflexiones, definen un conjunto de regularidades y propiedades
específicas, que constituyeron las bases de los ADLs.
A partir de este hallazgo la disciplina ha ido fomentándose de forma
incremental, destacándose un conjunto de acontecimientos como el libro “Coming
Attractions in Software Architecture”, de Paul Clements, en el año 1996, donde
define cinco temas fundamentales en torno de los cuales se agrupa la disciplina;
diseño o selección de la arquitectura, representación de la arquitectura,
evaluación y análisis, etc.
Otro suceso relevante fue el lanzamiento de la tesis de Roy Fielding, en el año
2000, en la cual presenta el modelo REST, quien establece definitivamente el
tema de las tecnologías de Internet y los modelos orientados a servicios y
recursos en el centro de las preocupaciones de la disciplina. En el mismo año se
publica la versión definitiva de la recomendación IEEE Std 1471, que procura
homogeneizar y ordenar la nomenclatura de descripción arquitectónica y homologa
los estilos como un modelo fundamental de representación conceptual.
A continuación se refleja en una tabla las publicaciones realizadas por el SEI
relacionadas con la AS, desde 1990 hasta la fecha, que refleja el
establecimiento de una comunidad que conduce la investigación y el desarrollo
científico en la disciplina.

CONCLUSIONES
La AS como ciencia, se basa en el tratamiento de los estilos, el desarrollo de
los lenguajes de descripción arquitectónicos, la formulación de metodologías y
los patrones de diseño. El arquitecto de software tiene entre sus tareas
fundamentales, el diseño o selección de la arquitectura, su representación,
evaluación y análisis. Por lo que se puede avalar el establecimiento de la AS
como disciplina científica, sin lugar a duda.
Sin embargo, a pesar de poseer ya un campo del conocimiento delimitado, la AS se
encuentra, reconocidamente, en una etapa aún formativa. Sus teóricos no se
encuentran todavía en condiciones de asegurar que con las herramientas,
propiedades y modelos definidos se pueda realizar un software de la más alta
calidad posible. Por el contrario, los mejores entre los arquitectos consideran
que su disciplina es tentativa y que se encuentra en estado de flujo. Pero
aunque lo que resta por hacer es formidable, con lo que se lleva hecho ya hay un
enorme repertorio de ideas, experiencias e instrumentos que ayudan a pensar de
qué manera, aquí y ahora, se pueden mejorar las prácticas.
BIBLIOGRAFÍA
1. Lane, Thomas G. Studying Software Architecture Through Design Spaces and
Rules. University Carnegie Mellon : Pittsburgh, Pennsylvania 15213, November
1990. http://www.sei.cmu.edu/pub/documents/90.reports/pdf/tr18.90.pdf. CMU/SEI-90-TR-18.
2. D. Garlan, M. Shaw. An Introduction to Software Architecture. January 1994.
http://www.sei.cmu.edu/publications/documents/94.reports/94.tr.021.html. CMU/SEI-94-TR-021.
3. Mary Shaw, David Garlan. Characterirstics of Higher-Level Languages for
Software Arquitecture. Pensilvania. : Software Engineering Institute, 1994. CMU/SEI-94-TR-023.
4. Shaw, Mary. Larger Scale Systems Require Higher-Level Abstractions. s.l. :
IEEE Computer Society, May 1989. págs. 143-146. Vol. Volume 14 Number 3.,
Proceedings of Fifth International Workshop on Software Specification. ACM
SIGSOFT Software Engineering Notes.
5. Fielding, Roy Thomas. Architectural Styles and the design of network-based
software architectures. University of California. Irvine : s.n., 2000. Tesis
Doctoral.
6. Clements, Paul. Coming attractioons in Software Arquitecture. Pensilvania,
EE.UU. : Software Engineering Institute, University Carnegie Mellon, January,
1996. CMU/SEI-96-TR-008.
7. Erik Mettala, Marc H. Graham. The Domain-Specific Software Arquitecture
Programs. s.l. : Special Report, June 1992. CMU/SEI-92-SR-009.
AUTORES
Ing. Yamila Vigil Regalado 1*
Ing. Erich Fouces Cabana 2
1- Departamento de Ciencias Básicas, Facultad Regional de Artemisa, Universidad
de las Ciencias Informáticas, Carretera a San Antonio de los Baños, Km 2 1⁄2,
Ciudad de la Habana, Cuba.
2- Departamento de Desarrollo, DESOFT S.A., Calle Martí #49 % Isabel Rubio y
Geraldo Medina. Pinar del Rio.
*Autor para la correspondencia: yvigil@uci.cu.
Compartir 
Publicación enviada por Ing. Yamila Vigil Regalado e Ing. Erich Fouces Cabana
Contactar mailto:yvigil@uci.cu
Código ISPN de la Publicación EkpuVlFlkVihPQqQXU
Publicado Monday 3 de March de 2008
Ultimas Publicaciones en ilustrados.com
ilustrados.com nace con el fin difundir el conocimiento publicando trabajos de investigación, monografias, tesis, presentaciones powerpoint y afines. Publicar trabajos en ilustrados.com ha alcanzado prestigio y reconocimiento internacional siendo cada vez más el número de académicos, empresas, investigadores, científicos que consultan las publicaciones de nuestro portal.
|