A Brief Survey of Software Architecture (original) (raw)

An Introduction to Software Architecture

As the size of software systems increases, the algorithms and data structures of the computation no longer constitute the major design problems. When systems are constructed from many components, the organization of the overall system-the software architecture-presents a new set of design problems. This level of design has been addressed in a number of ways including informal diagrams and descriptive terms, module interconnection languages, templates and frameworks for systems that serve the needs of specific domains, and formal models of component integration mechanisms.

Software Architecture: The Next Step

Lecture Notes in Computer Science, 2004

This position paper makes the following claims that, in our opinion, are worthwhile to discuss at the workshop. 1) The first phase of software architecture research, where the key concepts are components and connectors, has matured the technology to a level where industry adoption is wide-spread and few fundamental issues remain.

A report on the first european conference on software architecture (ECSA'2007)

2009

Software Architecture, defined as the formal study of the structures and patterns of complex software systems, is already in its second decade as a regular discipline within Software Engineering. Not so long ago, architectures were simply left implicit. Today this would not be possible anymore; software applications cannot be conceived as isolated monoliths. Almost any software piece is now part of another system, and these systems have become themselves distributed, more complex, and larger.

Foundations for the study of software architecture

ACM Sigsoft Software Engineering Notes, 1992

The purpose of this paper is to build the foundation for software architecture. We first develop an intuition for software architecture by appealing to several wellestablished architectural disciplines. On the basis of this intuition, we present a model of software architecture that consists of three components: elements, form, and rationale. Elements are either processing, data, or connecting elements. Form is defined in terms of the properties of, and the relationships among, the elements --that is, the constraints on the elements. The rationale provides the underlying basis for the architecture in terms of the system constraints, which most often derive from the system :requirements. We discuss the components of the model in the context of both architectures and architectural styles and present an extended example to illustrate some important architecture and style considerations. We conclude by presenting some of the benefits of our approach to software architecture, summarizing our contributions, and relating our approach to other current work.

Definition and Documentation of Software Architectures

This paper discusses the work of the software architect by describing a software architect's concerns and the documents that a software architect should produce. It proposes a definition of software architecture and discusses archtectural design criteria based on the idea that every architecture is expected to meet a specified set of goals. We start with a discussion of the meaning of "architecture", then discuss the goals of an architect, proceed to what's needed to achieve those goals, describe ways of documenting architectural design decisions, and finally discuss how to determine how well the design goals have been met for any given architecture.

Software architecture: a travelogue

Future of Software Engineering Proceedings, 2014

Over the past two and a half decades software architecture has emerged as an important subfield of software engineering. During that time there has been considerable progress in developing the technological and methodological base for treating architectural design as an engineering discipline. However, much still remains to be done to achieve that. Moreover, the changing face of technology raises a number of challenges for software architecture. This travelogue recounts the history of the field, its current state of practice and research, and speculates on some of the important emerging trends, challenges, and aspirations.

Design and evolution of software architecture in practice

Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 32, 1999

With special focus on software architectural issues, we report from the first two major phases of a software development project. Our experience suggests that explicit focus on software architecture in these phases was an important key to success. More specifically: Demands for stability, flexibility and proper work organisation in an initial prototyping phase of a project are facilitated by having an explicit architecture. However, the architecture should also allow for certain degrees of freedom for experimentation. Furthermore, in a following evolutionary development phase, architectural redesign is necessary and should be firmly based on experience gained from working within the prototype architecture. Finally, to get it right, the architecture needs to be prototyped, or iterated upon, throughout evolutionary development cycles. In this architectural prototyping process, we address the difficult issue of identifying and evolving functional components in the architecture and point to an architectural strategya set of architectures, their context and evolution -that was helpful in this respect.

A Survey on the Foundation of Software Architecture

Software architecture research has emerged over the past decade, as the fundamental study of the overall structure of software systems, particularly the relations among subsystems and components. Building the foundation for software architecture is the main focus of this paper. The paper started with developing an intuition for software architecture by appealing to several well-established architectural disciplines. Considering this intuition, a model of software architecture is presented that comprises of three components: elements, form, and rationale. The paper provides a classification of software architectures which turn out to be the foundation for the establishment of marketplaces for software components. The basis of component marketplace lies in the framework of key properties of software architecture. We can understand the development and scenario of software architecture research by examining the research paradigms used to establish its results.

Software architecture: perspectives on an emerging discipline

1996

This book examine architectures for software systems as well as better ways to support software development. We attempt to bring together the useful abstractions of systems design and the notations and tools of the software developer, and look at patterns used for system ...