Logo en.artbmxmagazine.com

Software architecture as a scientific discipline

Table of contents:

Anonim

This article addresses a set of factors that a field of knowledge must meet in order for it to be categorized as a scientific discipline. Analyze how Software Architecture (AS) achieves compliance with these factors, through the establishment of a community that demonstrates scientific work and professional practice. It carries out a bibliographic analysis from the beginning of the discipline, and the main findings that determine its object of study today. And finally, analyze the maturity level of the discipline taking into account the experts.

Introduction

For a field of knowledge to be classified as a scientific discipline, a set of supporting elements must be associated with it. Firstly, it must have a body of knowledge supported by a high index of scientific publications, which show the work of a community. Secondly, a professional practice must be associated, in charge of materializing this field of knowledge in the different problems that arise in the field. And finally it must contain an exclusive and unique method for its foundation.

AS, as a well-defined discipline, is much newer than generally suspected. The first steps were observed in Edsger Dijkstra's 1968 reflections on establishing the correct structuring of software systems before launching into programming. Later at the NATO conference in 1969, PISharp formulates a set of surprising insights, commenting on Dijkstra's ideas, making the difference between engineering and software architecture. Until the 90's, the term was seen in different ways, especially closely linked to design, there was talk of a level of abstraction, however, the elements of judgment that allowed claiming the need for a discipline and a particular profession.

Results and Reflection

After a bibliographic analysis of the sources, “Studying Software Architecture Through Design Spaces and Rules”, by Thomas G. Lane, is recognized as the first book published by the SEI, on the subject of SA, in 1990. In this Lane he establishes a definition of AS, based on the concept presented by Mary Shaw, in the previous year, in her book "Larger Scale Systems Require Higher-Level Abstractions" presenting at the 5th International Seminar on software specification and design, and published by the IEEE Computer Society. Lane defines the AS as:

… “ Software architecture is the study of the large-scale structure and performance of software systems. Important aspects of the architecture of a system include the division of functions between the modules of the system, the means of communication between modules, and the representation of shared information. ”

It is observed how the conception of components (“division of functions between the modules of the system”), and of connectors (“means of communication between modules”), take their place within the definition. In this book, Lane provides an interesting concept, "design spaces," which provide a framework for making standards that can assist a designer in selecting an appropriate architecture for the functional needs of a new system. It is "interesting", because it is seen how the role of the software architect is not yet recognized, this task is assigned directly to the software designer.

After this contribution, a marked trend is observed towards the search for a software structuring model, and a set of domain models are designed, based on generic designs, such as DSSA (Domain-Specific Software Architectures) prepared by Mettala and Graham, in the year 1992.

It is not until the launch of the book "An Introduction to Software Architecture", by Mary Shaw and David Garlan, in 1994, where they argue that, due to the increase in the size and complexity of software products, the main problem no longer lies, in algorithms and data structures, but is aimed at the organization of the components that make up the system, thus introducing the need for the creation of SA, as a scientific discipline, the object of study of which is only the determination of a set of paradigms that establish a high-level organization of the system, the interrelation between the different components that make it up and the principles that guide its design and evolution.

In this paper the term “architectural styles” is introduced for the first time, and a wide range of them are defined, among which are: Pipe and filters, Repository, Layered Architecture, Event-based Architecture, etc.

The theme of the role of architect within the process of software design and development is not exposed, however, in the last chapter of the book, entitled: "Past, present and future", a group of areas of interest are exposed for the subsequent study of the discipline, among which stands out, "to achieve a better understanding of the role of the architect in the life cycle of the process."

In this same year, 1994, which could be considered as "the golden year of Software Architecture", another relevant architectural event took place. Mary Shaw and David Garlan, launch the concept of Architectural Description Languages ​​(ADLs), in their book "Characteristics of Higher Level Languages ​​for Software Architecture". The study indicates the alternatives that have been available so far for the definition of the SA of a system. Firstly, through the modularization of the existing programming tools and the connection modules between them and, secondly, to describe their designs using informal diagrams and idiomatic phrases. From these reflections, they define a set of regularities and specific properties, which formed the basis of the ADLs.

From this finding, the discipline has been increasingly promoted, highlighting a series of events such as the book "Coming Attractions in Software Architecture", by Paul Clements, in 1996, where it defines five fundamental themes around which groups the discipline; architecture design or selection, architecture representation, evaluation and analysis, etc.

Another relevant event was the launch of Roy Fielding's thesis, in 2000, in which he presents the REST model, who definitively establishes the subject of Internet technologies and service and resource-oriented models at the center of concerns of discipline. In the same year, the final version of the IEEE Std 1471 recommendation was published, which seeks to homogenize and order the nomenclature of architectural description and homologate styles as a fundamental model of conceptual representation.

The publications made by the SEI related to the AS, from 1990 to date, are reflected in a table below, reflecting the establishment of a community that conducts scientific research and development in the discipline.

Conclusions.

AS as a science is based on the treatment of styles, the development of architectural languages ​​of description, the formulation of methodologies and design patterns. The software architect has among its fundamental tasks, the design or selection of the architecture, its representation, evaluation and analysis. So the establishment of the AS as a scientific discipline can be endorsed, without a doubt.

However, despite already having a limited field of knowledge, the AS is, admittedly, still in a formative stage. Its theorists are not yet in a position to ensure that with the defined tools, properties and models, the highest quality software possible can be made. On the contrary, the best among architects consider their discipline to be tentative and in a state of flux. But although what remains to be done is formidable, with what has been done there is already a huge repertoire of ideas, experiences and instruments that help to think about how, here and now, practices can be improved.

Bibliography

  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.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.Mary Shaw, David Garlan. Characterirstics of Higher-Level Languages ​​for Software Arquitecture. Pennsylvania.: Software Engineering Institute, 1994. CMU / SEI-94-TR-023.Shaw, Mary. Larger Scale Systems Require Higher-Level Abstractions. sl: IEEE Computer Society, May 1989. pp. 143-146. Vol. Volume 14 Number 3., Proceedings of Fifth International Workshop on Software Specification. ACM SIGSOFT Software Engineering Notes.Fielding, Roy Thomas.Architectural Styles and the design of network-based software architectures. University of California. Irvine: sn, 2000. Doctoral Thesis.Clements, Paul. Coming attractioons in Software Arquitecture. Pennsylvania, USA: Software Engineering Institute, University Carnegie Mellon, January, 1996. CMU / SEI-96-TR-008. Erik Mettala, Marc H. Graham. The Domain-Specific Software Architecture Programs. sl: Special Report, June 1992. CMU / SEI-92-SR-009.Special Report, June 1992. CMU / SEI-92-SR-009.Special Report, June 1992. CMU / SEI-92-SR-009.
Software architecture as a scientific discipline