Logo cn.artbmxmagazine.com

软件架构作为一门科学学科

目录:

Anonim

本文介绍了知识领域必须满足的一系列因素,以便将其归类为科学学科。通过建立一个展示科学工作和专业实践的社区,分析软件体系结构(AS)如何实现对这些因素的遵守。它从该学科的开始就进行了书目分析,并确定了今天确定其研究对象的主要发现。最后,在考虑专家的情况下分析该学科的成熟度。

介绍

为了将知识领域归为一门科学学科,必须将一组支持元素与之相关联。首先,它必须拥有大量的科学出版物支持的知识体系,这些出版物显示了社区的工作。其次,必须关联一个专业实践,以在该领域出现的各种问题中具体化该知识领域。最后,它必须包含一种专有且独特的方法作为基础。

作为一种定义明确的学科,AS比一般人认为的要新得多。第一步是在Edsger Dijkstra在1968年的思考中观察到的,该思考在开始编程之前建立正确的软件系统结构。后来在1969年的北约会议上,PISharp提出了一系列令人惊讶的见解,评论了Dijkstra的想法,使工程和软件体系结构有所不同。直到90年代,人们一直以不同的方式来看待这个词,尤其是与设计紧密相关的东西,人们一直在谈论某种程度的抽象,但是,判断的要素却允许人们声称需要设计。学科和特定专业。

结果与反思

在对文献进行了书目分析之后,Thomas G. Lane撰写的“通过设计空间和规则研究软件体系结构”被公认为SEI于1990年出版的关于SA的第一本书。在上一年度,他根据Mary Shaw去年在她的书“更大规模的系统需要更高层次的抽象”中提出的概念,建立了AS的定义,该书在第五届软件规范和设计国际研讨会上发表。 ,由IEEE Computer Society发布。 Lane将AS定义为:

……“ 软件体系结构是对软件系统的大规模结构和性能的研究。系统架构的重要方面包括系统模块之间的功能划分,模块之间的通信方式以及共享信息的表示。”

可以观察到,组件(“系统模块之间的功能划分”)和连接器(“模块之间的通信方式”)的概念在定义中的位置如何。在这本书中,Lane提供了一个有趣的概念“设计空间”,它提供了制定标准的框架,可以帮助设计人员为新系统的功能需求选择合适的体系结构。这很“有趣”,因为可以看到尚未意识到软件架构师的角色,因此直接将任务分配给软件设计师。

在做出此贡献之后,可以观察到寻找软件结构模型的明显趋势,并且基于通用设计(例如Mettala准备的DSSA(特定于域的软件体系结构))设计了一组域模型。和格雷厄姆(1992)。

直到1994年Mary Shaw和David Garlan出版了《软件体系结构入门》一书时,他们认为,由于软件产品的大小和复杂性的增加,主要问题不再存在。在算法和数据结构方面,但针对组成系统的组件的组织,因此引入了创建SA的必要性,作为一门科学学科,其研究对象仅仅是确定建立系统高层组织的一组范式,组成系统的不同组件之间的相互关系以及指导其设计和演进的原则。

本文首次引入了“建筑风格”一词,并定义了广泛的样式,其中包括:管道和过滤器,存储库,分层体系结构,基于事件的体系结构等。

在软件设计和开发过程中,架构师的角色主题并未公开,但是在标题为“过去,现在和未来”的书的最后一章中,公开了一组感兴趣的领域对于该学科的后续研究(其中尤为突出)是:“更好地了解架构师在流程的生命周期中的作用。”

在1994年,可以被视为“软件架构的黄金年”,在同一年举行了另一项相关的架构事件。玛丽·肖(Mary Shaw)和大卫·加伦(David Garlan)在他们的著作《软件体系结构的高级语言特性》中提出了体系结构描述语言(ADL)的概念。研究表明,到目前为止,对于系统SA的定义,已有其他选择。首先,通过对现有编程工具及其之间的连接模块进行模块化,其次,使用非正式图表和惯用语来描述其设计。通过这些思考,他们定义了一组规则和特定属性,这些规则和属性构成了ADL的基础。

从这一发现出发,该学科得到了越来越多的促进,突出了一系列事件,例如Paul Clements在1996年撰写的“软件体系结构中的吸引力”一书,他在其中定义了五个基本主题。分组学科;建筑设计或选择,建筑表示,评估和分析等。

另一个相关事件是Roy Fielding在2000年发表的论文,其中他提出了REST模型,他最终将Internet技术,服务和面向资源的模型确定为关注的焦点纪律。同年,发布了IEEE Std 1471建议书的最终版本,该建议书旨在统一和整理体系结构描述和同源样式的命名法,作为概念表示的基本模型。

下表列出了SEI从1990年至今与AS相关的出版物,反映了该学科的科学研究与开发社区的建立。

结论

AS作为一门科学是基于样式的处理,描述的建筑语言的发展,方法论和设计模式的制定。软件架构师的基本任务包括架构的设计或选择,表示,评估和分析。因此,毫无疑问,将AS作为一门科学学科建立起来是可以接受的。

但是,尽管已经拥有有限的知识领域,但是AS仍然处于形成阶段。它的理论家还不能确保可以使用定义的工具,属性和模型来制作最高质量的软件。相反,最好的建筑师认为他们的学科是暂定的并且处于不断变化的状态。但是,尽管还有很多工作要做,但已经完成的工作已经有了大量的思想,经验和手段,可以帮助人们思考如何在此时此地改善实践。

参考书目

  1. Lane,Thomas G.通过设计空间和规则研究软件体系结构。卡内基梅隆大学:1990年11月,宾夕法尼亚州匹兹堡15213。http://www.sei.cmu.edu/pub/documents/90.reports/pdf/tr18.90.pdf。 CMU / SEI-90-TR-18.D。加伦·M·肖软件体系结构简介。 1994年1月。http://www.sei.cmu.edu/publications/documents/94.reports/94.tr.021.html。 CMU / SEI-94-TR-021.Mary Shaw,David Garlan。软件Arquitecture的高级语言的特征。宾夕法尼亚州。 :软件工程学院,1994年。CMU/ SEI-94-TR-023.Shaw,Mary。较大规模的系统需要更高级别的抽象。 sl:IEEE计算机协会,1989年5月。 143-146。第14卷第3期,第五届软件规范国际研讨会论文集。 ACM SIGSOFT软件工程说明。Fielding,Roy Thomas。体系结构样式和基于网络的软件体系结构的设计。加州大学。欧文:sn,2000年。博士论文。克莱门茨,保罗。即将到来的软件Arquitecture。美国宾夕法尼亚州:卡内基梅隆大学软件工程学院,1996年1月,CMU / SEI-96-TR-008,Erik Mettala,Marc H.Graham。特定于域的软件体系结构程序。 sl:特别报告,1992年6月。CMU/ SEI-92-SR-009。特别报告,1992年6月。CMU/ SEI-92-SR-009。特别报告,1992年6月。CMU/ SEI-92-SR-009。
软件架构作为一门科学学科