2012Unpublished venueRequires access

What is software architecture?

Fritz Solms

Open publisher page 32 citations

Abstract

Currently there is no consensus on what exactly software architecture is or where the boundary between software architecture design and application design lies. In this paper the concept of a software architecture is analyzed from a number of different perspectives. In particular, it is argued that a software reference architecture is a relatively pure specification of a software architecture as it addresses only infrastructural and quality concerns and does not provide any application functionality. Two examples of widely adopted reference architectures are analyzed in order to gain a deeper understanding of the concept of a software architecture. Current definitions of software architecture are analyzed and three classes of software architecture definitions are identified. The differences of the concept of software architecture across these classes is discussed and their relationships to current architecture description languages are explored. It is argued that none these definitions provide a sound basis for differentiating between application and architecture components. Based on insights obtained from the analyzed reference architectures, the paper proposes a new definition of software architecture as well as a specification of the elements of a software architecture specification. Software architecture is defined as the software infrastructure within which application components providing user functionality can be specified, deployed and executed. It is argued that a software architecture description should include, across levels of granularity, the basic concepts and constraints within which application components are to be specified, the architectural components addressing technical concerns, the integration infrastructure, and the architectural strategies used to concretely address quality requirements.

About this research paper

What this paper is about

Currently there is no consensus on what exactly software architecture is or where the boundary between software architecture design and application design lies. In this paper the concept of a software architecture is analyzed from a number of different perspectives. In particular, it is argued that a software reference architecture is a relatively pure specification of a software architecture as it addresses only infrastructural and quality concerns and does not provide any application functionality. Two examples of widely adopted reference architectures are analyzed in order to gain a deeper understanding of the concept of a software architecture. Current definitions of software architecture are analyzed and three classes of software architecture definitions are identified. The differences of the concept of software architecture across these classes is discussed and their relationships to current architecture description languages are explored. It is argued that none these definitions provide a sound basis for differentiating between application and architecture components. Based on insights obtained from the analyzed reference architectures, the paper proposes a new definition of software architecture as well as a specification of the elements of a software architecture specification. Software architecture is defined as the software infrastructure within which application components providing user functionality can be specified, deployed and executed. It is argued that a software architecture description should include, across levels of granularity, the basic concepts and constraints within which application components are to be specified, the architectural components addressing technical concerns, the integration infrastructure, and the architectural strategies used to concretely address quality requirements.

Why it matters

OpenAlex reports 32 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

Currently there is no consensus on what exactly software architecture is or where the boundary between software architecture design and application design lies. In this paper the concept of a software architecture is analyzed from a number of different perspectives. In particular, it is argued that a software reference architecture is a relatively pure specification of a software architecture as it addresses only infrastructural and quality concerns and does not provide any application functionality. Two examples of widely adopted reference architectures are analyzed in order to gain a deeper understanding of the concept of a software architecture. Current definitions of software architecture are analyzed and three classes of software architecture definitions are identified. The differences of the concept of software architecture across these classes is discussed and their relationships to current architecture description languages are explored. It is argued that none these definitions provide a sound basis for differentiating between application and architecture components. Based on insights obtained from the analyzed reference architectures, the paper proposes a new definition of software architecture as well as a specification of the elements of a software architecture specification. Software architecture is defined as the software infrastructure within which application components providing user functionality can be specified, deployed and executed. It is argued that a software architecture description should include, across levels of granularity, the basic concepts and constraints within which application components are to be specified, the architectural components addressing technical concerns, the integration infrastructure, and the architectural strategies used to concretely address quality requirements.

Key concepts: Reference architecture, Software architecture description, Resource-oriented architecture, Computer science, Software architecture, Database-centric architecture, Multilayered architecture, Software design description

Related papers

Back to paper searchBrowse research topicsOriginal source
What is software architecture? — Research Paper | ScholarLens