软件架构质量属性 架构设计 质量属性 - 电脑 - 【南平电脑网】_南平电脑维修_南平笔记本电脑维修_监控安装_市区上门维修
公司动态

软件架构质量属性 架构设计 质量属性

摘要:编写软件架构文档说明,第 1 部分: 什么是软件架构,为什么为软件 引言 软件架构是一门学科,开始于 20 世纪 70 年代。面对不断增加的复杂性和开发复杂实时系统的压力,作为主流系统工程和软件开...

发布日期:2021-04-30

软件架构质量属性

编写软件架构文档说明,第 1 部分: 什么是软件架构,为什么为软件...

引言 软件架构是一门学科,开始于 20 世纪 70 年代。

面对不断增加的复杂性和开发复杂实时系统的压力,作为主流系统工程和软件开发的基本构造,软件架构应运而生。

与任何其他久经考验的学科一样,软件架构在诞生之初也面临许多挑战。

软件架构表示系统的结构和行为方面。

在早期为软件架构编写文档说明时,所使用的文本和图解表达常常不足或者不够精确。

所需的是某种一致并得到充分理解的伪(或元)语言,以便将对软件架构进行表示和编写文档说明的不同方式统一起来。

在学术研究的推动下,在用于开发有效软件架构文档说明的最佳实践和指导原则方面,工程和计算机科学领域已取得了长足的发展。

在本系列中,您将了解如何编写软件架构文档说明。

了解编写文档说明的不同方面:系统上下文、体系结构概述、功能体系结构、操作体系结构和体系结构决策。

在这第一篇文章中,了解软件架构是什么,以及为该学科的不同方面编写文档说明的重要性。

回页首软件架构不同的研究人员已解释了软件架构是什么,并且他们对有关如何最好地表示软件系统的体系结构具有不同的观点。

其中没有哪一种解释是错误的;每种解释都具有自己的价值。

Bass L 等人抓住了软件架构的本质: “程序或计算系统的软件架构是该系统的结构,包括软件组件、那些组件的外部可见的属性,以及那些组件之间的关系” 。

此定义重点关注由粗粒度的构造(软件组件)所构成的体系结构,可以将这些构造看作是体系结构的构建块。

每个软件组件或体系结构构建块具有某些外部可见的属性,这是它向其他体系结构构建块公开的属性。

软件组件的内部设计和实现细节不是系统的其他部分所关心的内容,系统的其他部分只是将某个特定组件视为一个黑盒。

该黑盒具有某些所公开的属性,其他软件组件可以使用这些属性来共同实现业务或 IT 目标。

软件架构在恰当的粒度级别标识体系结构构建块。

软件架构还标识那些构建块如何彼此相关,并进行文档记录。

与软件工程相关的体系结构涉及到将单个系统分解或划分为一组可迭代地、渐进地和独立地构造的部分。

各个部分彼此具有显式的关系。

当组合在一起时,各个部分就形成了系统、企业或应用程序的体系结构。

关于体系结构与设计之间的区别,存在一些混淆。

正如 Clements P 等人 所指出的,所有体系结构都是设计,但不是所有设计都是体系结构。

需要绑定以使系统满足其功能性和非功能性需求和目标的设计本质上是体系结构。

体系结构将体系结构构建块视为黑盒,而设计则处理体系结构构建块的配置、自定义和内部工作。

体系结构将软件组件与其外部属性绑定在一起。

设计通常要比体系结构松散得多,因为它允许以更多的方式遵守组件的外部属性。

设计还考虑用于实现组件内部细节的各种方法。

软件架构可以递归地使用。

请考虑一个属于某个系统的软件架构组成部分的软件组件 (C1)。

软件架构师将该组件及其应该公开的属性、功能和非功能特性及其与其他软件组件的关系交给系统设计人员。

设计人员在分析软件组件 C1 之后,决定将该组件分解为更细粒度的组件(C11、C12 和 C13),其中每个组件提供可重用的功能,这些功能将用于实现 C1 的要求属性。

设计人员详细设计了 C11、C12、C13 及其接口。

此时,对设计人员来说,C11、C12 和 C13 是体系结构构造(或组件);其中每个构造具有显式定义的外部接口。

对设计人员来说,C11、C12 和 C13 是软件组件 C1 的体系结构,并且这些构造需要进一步的改进和设计,以处理它们的内部实现。

通过将大型、复杂的系统划分为小型的构成部分并集中于每个部分,可以递归地使用体系结构。

体系结构使用共同满足行为和质量目标的体系结构构建块将系统绑定在一起。

参与者必须能够理解体系结构。

因此必须为体系结构编写足够的文档说明,下一个部分将对此进行讨论。

回页首编写体系结构文档说明的重要性参与者:体系结构的下游设计和实现用户。

为体系结构的定义、维护和增强功能进行投资的人。

向参与者传达您正在构建的系统蓝图的关键是为系统体系结构编写文档说明。

软件架构通过不同的视图进行表示——功能、操作、决策等等。

没有任何单一视图能够表示整个体系结构。

并非所有视图都需要表示特定企业或问题领域的系统体系结构。

架构师将确定足以表示所需软件架构范畴的视图集。

通过编写不同视图的文档说明并捕获每个部分的开发,您可以向开发团队和业务及 IT 参与者传达有关该不断发展的系统的信息。

软件架构具有一组其预期要满足的业务和工程目标。

体系结构的文档说明可以向参与者传达这些目标将如何实现。

为体系结构的各个方面编写文档说明,有助于架构师弥补用白板描述解决方案(使用框线图方法)与以对下游设计和实现团队有意义的方式表示解决方案之间众所周知的差距。

体系结构的框线图留下了大量有待解释的空间。

需要揭示的细节通常隐藏并令人混淆地固守在那些框线背后。

文档说明还可以促进创建切合实际并且可以系统开发(例如遵循标准模板)的体系结构构件。

作为一门学科,软件架构是非常成熟的。

您可以利用最佳实践和指导...