~~
第一次笔记
一、绪论
软件体系结构的是逐步发展的:由六十年代的高级语言到70~80年代的面向过程开发,90年代的面向对象开发,以及2000年代的面向服务开发,2010年代的云与服务开发,直至现在的智能化软件开发。
从无体系结构到概念与理论体系的形成再到理论完善及普及应用。
1968年,软件体系结构出现,由NATO首次提出“Software Architecture"
1999年, IEEE 1471-2000标准发布,为软件架构的普及应用制定了标准化规范。
软件体系结构的定义驳杂多端,主要分类两大类:组成派与决策派。
组成派关注于软件本身将软件体系结构看作是构件与交互的集合
决策派关注于软件架构中的实体(人),将软件体系结构视为一系列重要设计决策的集合
根据组成派定义,我们可将软件体系结构的定义理解为:软件体系结构=组件+连接件+约束,
组件:具有某种功能的可重用的软件模块单元,表示了系统中主要是的计算单元和数据存储。
连接件:表示了组件之间的交互,简单连接件如:pipe, procedure-call, event broadcast。复杂的有:client-server通信协议,数据库与应用间的SQL连接。
约束:表示了组件与连接件的拓扑逻辑与约束。
软件体系结构的作用:“……the larger the project,the more essential the structing(1968)"----Edsger Dijkstra
二、数据流体系结构风格
1、基本构件(数据处理):构件接口,计算模型
2、连接件(数据流)
典型数据流风格:
Pipe and Filter
Process Control
Batch Sequential
批处理示例图如上
每个个处理步骤是一个独立的程序
每一步必须在前一步结束后由才能开始
数据必须是完整的,以整体的方式传递
批处理实例:基于Eclipse的代码重复检测工具。
管道过滤体系风格如上:
构件:Filters(过滤器)——处理数据流
将数据流变换成目标数据,增加/丰富,删减/浓缩,转换,分解,合并,是一个独立的实体。
连接件:Pipe(管道)——连接一个源和一个目的过滤器
单向流,可能具有缓冲区,管道形成传输图。
数据源源不断的产生,系统需要对这些数据进行若干处理(分析、计算、转换等)。
实例:Compiler,Unix pipes,Image Processing,Signal Processing,Voice and video streaming
优点:使构件具有良好的隐蔽性,高内聚,低耦合;支持软件复用,系统维护和增强系统性能简单,支持并行执行。
缺点:不适合交互处理的应用,系统性能不高。
两者区别: