软件架构设计
软件架构的概念:
软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式及这些模式的约束组成
软件架构4+1视图:
- 逻辑视图:主要是整个系统的抽象结构表述,关注系统提供最终用户的功能,
- 开发视图;关注编程人员的软件管理
- 物理视图: 系统工程人员,关注系统拓扑、安装、通信等
- 处理视图: 系统集成人员,关注性能、可扩充性、吞吐量等
- 场景:关注最终用户需求,通常用UML用例图和活动图描述
软件架构风格的概念:
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式,定义了用于描述系统的术语表和一组指导构建系统的规则反映了领域中众多系统所共有的结构和语义特征,并指导如何将各个构件有效的组织成一个完整的系统
软件架构风格分类:
1.数据流风格
批处理序列: 组件为一系列固定顺序的计算单元,组件间只通过数据传递交互。每个处理步骤是一个独立的程序,每一步必须在前一步结束后才能开始,数据必须是完整的,以整体的方式传递。
管道-过滤器: 每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流,经过处理,产生输出数据流。
2.调用/返回风格
主程序/子程序: 单线程控制,把问题划分为若干个处理步骤,构件即为主程序和子程序,子程序通常可合成为模块。过程调用作为交互机制,即充当连接件的角色。调用关系具有层次性,其语义逻辑表现为主程序的正确性取决于子程序的正确性
面向对象: 构件是对象,对象是抽象数据类型的实例。在抽象数据类型中,数据的表示和它们的操作被封装起来,对象的行为体现在其接受和请求的动作,连接件即是对象间交互的方式,对象是通过函数和过程的调用来交互的
层次结构: 构件组织成一个层次结构,连接件通过决定层间如何交互的协议来定义,每层为上层提供服务,使用下一层的服务,智能看到与自己邻接的层。通过层次机构将大问题分解为若干小问题,隐藏问题复杂度,修改某层最多影响相邻的两层
3.独立构件风格
进程通信: 构件是独立的过程,连接件是消息传递,构件通常是命名过程,消息传递的方式可以是点对点、异步或同步的方式,以及远程过程调用等