编写软件架构文档说明

引言

软件架构是一门学科,开始于 20 世纪 70 年代。面对不断增加的复杂性和开发复杂实时系统的压力,作为主流系统工程和软件开发的基本构造,软件架构应运而生。

与任何其他久经考验的学科一样,软件架构在诞生之初也面临许多挑战。软件架构表示系统的结构和行为方面。在早期为软件架构编写文档说明时,所使用的文本和图解表达常常不足或者不够精确。所需的是某种一致并得到充分理解的伪(或元)语言,以便将对软件架构进行表示和编写文档说明的不同方式统一起来。在学术研究的推动下,在用于开发有效软件架构文档说明的最佳实践和指导原则方面,工程和计算机科学领域已取得了长足的发展。

在本系列中,您将了解如何编写软件架构文档说明。了解编写文档说明的不同方面:系统上下文、体系结构概述、功能体系结构、操作体系结构和体系结构决策。

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





回页首


软件架构

不同的研究人员已解释了软件架构是什么,并且他们对有关如何最好地表示软件系统的体系结构具有不同的观点。其中没有哪一种解释是错误的;每种解释都具有自己的价值。Bass L 等人抓住了软件架构的本质:

“程序或计算系统的软件架构是该系统的结构,包括软件组件、那些组件的外部可见的属性,以及那些组件之间的关系” 。

此定义重点关注由粗粒度的构造(软件组件)所构成的体系结构,可以将这些构造看作是体系结构的构建块。每个软件组件或体系结构构建块具有某些外部可见的属性,这是它向其他体系结构构建块公开的属性。软件组件的内部设计和实现细节不是系统的其他部分所关心的内容,系统的其他部分只是将某个特定组件视为一个黑盒。该黑盒具有某些所公开的属性,其他软件组件可以使用这些属性来共同实现业务或 IT 目标。软件架构在恰当的粒度级别标识体系结构构建块。软件架构还标识那些构建块如何彼此相关,并进行文档记录。

与软件工程相关的体系结构涉及到将单个系统分解或划分为一组可迭代地、渐进地和独立地构造的部分。各个部分彼此具有显式的关系。当组合在一起时,各个部分就形成了系统、企业或应用程序的体系结构。

关于体系结构与设计之间的区别,存在一些混淆。正如 Clements P 等人 所指出的,所有体系结构都是设计,但不是所有设计都是体系结构。需要绑定以使系统满足其功能性和非功能性需求和目标的设计本质上是体系结构。体系结构将体系结构构建块视为黑盒,而设计则处理体系结构构建块的配置、自定义和内部工作。体系结构将软件组件与其外部属性绑定在一起。设计通常要比体系结构松散得多,因为它允许以更多的方式遵守组件的外部属性。设计还考虑用于实现组件内部细节的各种方法。

软件架构可以递归地使用。请考虑一个属于某个系统的软件架构组成部分的软件组件 (C1)。软件架构师将该组件及其应该公开的属性、功能和非功能特性及其与其他软件组件的关系交给系统设计人员。设计人员在分析软件组件 C1 之后,决定将该组件分解为更细粒度的组件(C11、C12 和 C13),其中每个组件提供可重用的功能,这些功能将用于实现 C1 的要求属性。设计人员详细设计了 C11、C12、C13 及其接口。

此时,对设计人员来说,C11、C12 和 C13 是体系结构构造(或组件);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值