本文基于多个并发视图的使用情况来说明描述软件密集型系统架构的模型
使用多重视图允许独立地处理各"风险承担人":最终用户、开发人员、系统工程师、项目经理等所关注的问题,并且能够独立地处理功能性和非功能性需求
本文分别对五种视图进行了描述,并同时给出了捕获每种视图的表示方法
这些视图使用以架构为中心的、场景驱动以及迭代开发过程来进行设计
引言 我们已经看到在许多文章和书籍中,作者欲使用单张视图来捕捉所有的系统架构要点
通过仔细地观察这些图例中的方框和箭头,不难发现作者努力地在单一视图中表达超过其表达限度的蓝图
方框是代表运行的程序吗
或者是代表源代码的程序块吗
或是物理计算机吗
或仅仅是逻辑功能的分组吗
箭头是表示编译时的依赖关系吗
或者是控制流吗
或是数据流吗
通常它代表了许多事物
是否架构只需要单个的架构样式
有时软件架构的缺陷源于过早地划分软件或过分的强调软件开发的单个方面:数据工程、运行效率、开发策略和团队组织等
有时架构并不能解决所有"客户"(或者说"风险承担人",USC 的命名)所关注的问题
许多作者都提及了这个问题:Garlan & Shaw 1、CMU 的 Abowd & Allen、SEI 的 Clements
作为补充,我们建议使用多个并发的视图来组织软件架构的描述,每个视图仅用来描述一个特定的所关注的方面的集合
架构模型 软件架构用来处理软件高层次结构的设计和实施
它以精心选择的形式将若干结构元素进行装配,从而满足系统主要功能和性能需求,并满足其他非功能性需求,如可靠性、可伸缩性、可移植性和可用性
Perry 和 Wolfe 使用一个精确的公式来表达,该公式由 Boehm 做了进一步修改: 软件架构 = {元素,形式,关系/约束} 软件架构涉及到抽象、分解和组合、风格和美学
我们用由多个视图或视角组成的模型来描述它
为了最终处理大型的、富有挑战性的架构