Why is it so hard to define software architecture?

Jason Baragry, K. Reed
{"title":"Why is it so hard to define software architecture?","authors":"Jason Baragry, K. Reed","doi":"10.1109/APSEC.1998.733577","DOIUrl":null,"url":null,"abstract":"In recent years, software engineering researchers have elevated the study of software architecture to the level of a major area of study. A review of the published literature however, shows quite clearly that a unified view of software architecture has not been forth-coming. This paper contends that the existence of a \"software architecture level of design\" is based on the implicit assumption that the software development process is analogous to those \"construction\" disciplines in which the completed artefacts or systems exhibit a unique representational abstraction, fixed during the early stages of design, which we describe as \"the architecture\". We argue that our problems in obtaining an acceptable definition of software architecture are due to the assumption that software systems have an analogous, unique design abstraction determinable at the early stages of the design. To determine the validity of this analogy, we contrast the nature and use of architecture in the traditional building process with software development to identify the differences, rather than the similarities that exist. These differences are explained using a theory of the software development process which highlights why these differences arise and, subsequently why there has been trouble in developing a community-wide understanding of software architecture. Our conclusion is that due to the fundamental nature of the systems we construct, attempts to depict the large-scale structure of the system, in an analogous manner traditional building disciplines, results in many different architectures. These are fundamentally different representations and not merely different views of a single whole. Moreover, each of these is equally qualified to be labelled as the system architecture with respect to the general notion of what architecture is.","PeriodicalId":296589,"journal":{"name":"Proceedings 1998 Asia Pacific Software Engineering Conference (Cat. No.98EX240)","volume":"21 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1998-12-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"34","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings 1998 Asia Pacific Software Engineering Conference (Cat. No.98EX240)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/APSEC.1998.733577","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 34

Abstract

In recent years, software engineering researchers have elevated the study of software architecture to the level of a major area of study. A review of the published literature however, shows quite clearly that a unified view of software architecture has not been forth-coming. This paper contends that the existence of a "software architecture level of design" is based on the implicit assumption that the software development process is analogous to those "construction" disciplines in which the completed artefacts or systems exhibit a unique representational abstraction, fixed during the early stages of design, which we describe as "the architecture". We argue that our problems in obtaining an acceptable definition of software architecture are due to the assumption that software systems have an analogous, unique design abstraction determinable at the early stages of the design. To determine the validity of this analogy, we contrast the nature and use of architecture in the traditional building process with software development to identify the differences, rather than the similarities that exist. These differences are explained using a theory of the software development process which highlights why these differences arise and, subsequently why there has been trouble in developing a community-wide understanding of software architecture. Our conclusion is that due to the fundamental nature of the systems we construct, attempts to depict the large-scale structure of the system, in an analogous manner traditional building disciplines, results in many different architectures. These are fundamentally different representations and not merely different views of a single whole. Moreover, each of these is equally qualified to be labelled as the system architecture with respect to the general notion of what architecture is.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
为什么定义软件架构如此困难?
近年来,软件工程研究人员已经将软件体系结构的研究提升到一个主要研究领域的水平。然而,回顾一下已发表的文献,就会非常清楚地看到,软件架构的统一视图还没有出现。本文认为,“设计的软件架构层次”的存在是基于一个隐含的假设,即软件开发过程类似于那些“构造”规程,在这些规程中,完成的工件或系统表现出独特的表示抽象,在设计的早期阶段固定下来,我们将其描述为“架构”。我们认为,我们在获得可接受的软件架构定义方面的问题是由于软件系统在设计的早期阶段具有类似的、独特的设计抽象可确定的假设。为了确定这个类比的有效性,我们将传统建筑过程中的建筑的性质和使用与软件开发进行对比,以识别差异,而不是存在的相似之处。这些差异是用软件开发过程的理论来解释的,该理论强调了为什么会出现这些差异,以及随后为什么在开发社区范围的软件体系结构理解方面存在麻烦。我们的结论是,由于我们构建的系统的基本性质,试图描绘系统的大规模结构,以类似的方式传统建筑学科,导致许多不同的建筑。这些是根本不同的表述,而不仅仅是对一个整体的不同看法。此外,根据体系结构的一般概念,每一个都同样有资格被标记为系统体系结构。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
A difference-based version model for OODBMS CSMonitor: a visual client/server monitor for CORBA-based distributed applications Component and data distribution in a distributed workflow A computing model for distributed processing systems and its application Why is it so hard to define software architecture?
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1