1.软件架构风格概述
软件体系结构设计的核心问题:能否使用重复的体系结构模式,即能否达到体系结构级的软件重用。
于是,软件体系结构的风格和类型便成为了主要研究人员的主要研究对象。
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。其定义了用于描述系统的术语表和一组指导构件系统的规则。
2软件架构风格分类
(1) 数据流风格:包括批处理序列架构风格(Batch Sequential)和管理/过滤器架构风格(Pipes/Filters)。
(2) 调用/返回风格:包括主程序/子程序架构风格(Main Program and Subroutine)、数据抽象和面向对象架构风格(DataAbstraction and Object-Oriented)及层次结构架构风格(Hierarchical Layers).
(3) 独立构件风格:包括进程通信架构风格(Communicating Processes)和事件驱动架构风格(EventSystems)。
(4) 虚拟机风格:包括解释器架构风格(Interpreters)和基于规则的系统(Rule-based Systems)架构风格。
(5) 仓库风格:包括数据库架构风格(Database)和黑板架构风格(BlackBoards)
3.常用架构风格详细分析
3.1数据抽象与面向对象风格
目前软件界已普遍转向使用面向对象系统
原因:建立在数据抽象和面向对象的基础之上
数据的表示方法和相应操作具有独立性、封装性
构件是对象(即封装后的抽象数据类型的实例)
对象通过函数和过程的调用实现交互
图 3‑1数据抽象和面向对象风格的体系结构
优点:
1. 当前对象对其它对象隐藏自身的表示,即改变一个对象却不影响其它对象
2. 数据存取操作的问题可被分解成一些交互的代理程序的集合。
问题:
1.对象与对象之间的交互必须以知道对象的标识为前提,也就是说只要一个对象的标识改变了,就必须修改所有其他将要调用它的对象。
2.一旦修改某些调用对象的标识将可能带来一些未知的副作用。例如,A调用对象B,C也调用对象B,那么,C对B的调用做出某些修改所造成的对A的影响可能是料想不到的。