Monografias | La arquitectura de software como disciplina científica.

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 Enviar a menéame  Añadir a tus marcadores de Google  Enviar a noticias Top    Añadir a del.icio.us     Añadir a tus marcadores en Yahoo! 


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.


Administración y Finanzas
Agricultura y Ganadería
Anatomía
Antropología
Arqueología y Paleontología
Arquitectura
Arte y Cultura
Astronomía
Biografías
Biología
Ciencia y Tecnología
Computación e Informática
Comunicaciones
Contabilidad
Deportes y Educación Física
Derecho
Derechos Humanos
Ecología
Economía
Educación
Enfermedades
Estadística
Filosofía y Ontología
Física
Geografía
Hardware
Historia
Ingeniería
Internet
Lenguaje y Literatura
Marketing y Publicidad
Mitología
Matemática y Lógica
Música
Nutrición y Ciencias Alimentarias
Política
Programación
Psicología
Química
Recursos Humanos
Redes
Religión
Salud y Medicina
Sistemas Operativos
Sociología
Software
Turismo
Zoología