Handbook of Software Architecture 软件架构手册 [原创翻译]

1. 引言
软件架构是软件工程学中一个正高速发展的子研究和实践领域.
软件架构是程序或计算系统的结构,包括软件组件、那些组件的外部可见的属性,以及那些组件之间的关系.

软件架构对于系统非常重要的原因
A. 起到与涉众交流的作用
B. 是系统初步的设计决定
C. 是系统一个灵活的抽象

软件架构提供了一个通用的语言来表达不同的涉众对系统的担忧,
如果没有这样的一种语言,就会使系统非常难于理解和领会,
以至于不能尽早决定系统的质量和可用性.

软件架构是软件系统构建,修改和分析的技术蓝图.

 

 

2. 架构是涉众交流的工具


2.1 架构结构
架构结构是一种描述和规约.这些描述和规约被多个涉众使用和遵守.
架构师设计完成系统的整体架构结构,而专业专家则精炼和实现各自负责的视图.

架构结构通常包括视图:
 功能视图(logical view)
 代码视图(code view)
 开发视图(structural view)
 并发视图(process/thread view)
 物理视图(deployment view)

2.1.1 功能视图
功能视图是系统功能和功能间关系的抽象.
功能视图的组件包括:功能,系统的关键抽象,领域元素.
功能视图组件的关系是依赖和数据流.
功能视图的用户是领域工程师,项目流程设计者和最终的用户.

2.1.2 代码视图
代码视图是程序员看得到的东西.
代码视图的组件是一些类,对象,过程,函数,以及由这些元素抽象/组合而成的子系统,层和模块.
代码视图组件的关系是方法调用以及诸如is-a-module-of 的包含关系.
代码视图的用户是程序员,设计者,当然也有可能或者某人既是程序员又是设计者.

2.1.3 开发视图
开发视图是程序开发者可见的另一个视图,但该视图与代码视图完全不同.
开发视图是不同程序员和程序维护人员生成,修改,管理的原代码打包结构化的视图.
开发视图的组件是文件,目录,其他形式的组件也是可能的,比如将原代码存储在数据库中.
开发视图文件和目录之间的关系是包含关系.
开发视图的用户除了是程序员和程序维护人员外还有项目经理和配置管理员.

2.1.4 并发视图
并发视图考虑哪些进程和线程需要创建,以及它们之间如何进行交互和共享资源.
并发视图的组件是进程和线程.
并发视图组件的关系是数据流,事件和同步机制.
并发视图的用户是那些需要考虑系统如何部署,担心系统性能和可行性,以及系统集成和系统测试的人员.

2.1.5 物理视图
物理视图描述了系统如何部署硬件资源.
物理视图的组件是计算机,传感器,触发器,存储器等等.
物理视图组件的关系典型的情况是网络或者其他通信设备(如卫星或总线).
物理视图的用户是硬件和系统工程师,他们负责系统的发布,安装和更新(甚至实时更新).

 

2.2 场景
场景是用户如何使用系统和修改系统的简单描述.
场景往往分为两类:
* 用例:系统每个功能面的流程描述.
* 变例:系统修改方案的描述

场景被用于:
* 理解和验证一个架构: 通常情况是架构师,设计师,程序员通过一起运行某个场景来完成架构的理解和验证
* 架构交流: 特别是对于在项目中还没有主要职责的人员
* 结合视图: 视图很少孤立存在,视图通常相互映射.场景有助于视图映射过程的实现.
* 理解架构的局限性: 当一个架构很难满足和适应某个场景时,我们可以更好的理解架构的局限性.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值