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.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.