第一章
构件
具有某种功能的
可复用的软件结构单元,为组装服务,可部署,具有规范的接口规约和显式的语境依赖
构件模型
构件模型是对构件本质特征的抽象描述,可以把它想象成一个类的组合,它封装了多个类,并具有一个或多个服务而提供了简单的接口。
构件重用
构件重用是指在软件开发过程中,复用已有的软件构件,并将其集成到新系统中,以实现软件生产的高效率、高质量和低成本。这里的构件可以是源代码、设计文档、测试用例等任何可重用的软件元素。
软件体系结构定义
由构件+连接件+拓扑结构+约束+质量属性组成
软件体系结构的作用
交流的手段,可复用可传递的模型,体现关键决策
软件体系结构的发展历史
汇编语言->数据流图控制流图->uml->以描述系统的高层抽象为中心,4+1模型
第二章
软件体系结构描述
非标准的图形符号,uml,mil.adl
(1)⾮标准图形符号描述:语义丰富、不精确、没有形式化基础;
(2)统⼀建模语⾔UML:语义丰富、相对精确、有少量的形式化基础;
(3)模块接⼝语⾔:语义⽐较丰富,但局限在实现级别,层次较低,语义精确,有编译器作保 证,没有或极少有形式化基础;
(4)体系结构描述语⾔ADL:语义不够丰富,语义精确,有形式化基础。
软件体系结构的核心概念
构件:可复用的软件体系结构单元
连接件:构件之间的交互并实现构件之间的连接
接口与服务 构件作为封装的实体,通过接口与外部环境交互,内部实现的功能以服务的形式体现出来并通过接口向外发布,进而产生与其他构件之间的关联
构件的粒度 构件的相对大小,规模,细节程度或关注程度的一个属性
连接 构件间建立与维护行为关联与信息传递的途径, 需要有实现连接的物质基础以及连接的协议支持
同步:过程调用开始,调用者必须等待被调用过程执行完成,才能执行后续任务
异步:过程调用开始,同时调用者不用等待,而是继续执行后续任务
软件体系结构模型
sa作用
利于交流
利于分析验证SA设计的优劣
指导开发人员开发
为之后的软件维护提供文档
Sa建模的三个层次
图形化模型,
形式化模型,
文档化模型
(1)图形化模型: 从不同的视⻆描述特定系统的体系结构,从⽽得到多个视图,并将这些视图组织起来以描述整体的SA模型;
(2)形式化模型: 在SA基本概念的基础上,选取适当的形式化或半形式化的⽅法来描述⼀个特定的体系结构;
(3)⽂档化模型: 记录和整理软件体系结构设计⽅案的各类细节。
使用多视图建模的原因
系统复杂,简单的一维模型无法描述
从多个角度建立模型,分别刻画某一方面的性质,体现关注点分离
4+1视图模型
逻辑视图 描述系统的功能 功能需求,系统最终提供给用户的服务,类图,活动图,顺序图
开发视图 描述系统子系统,模块之间的关系 模块视图,实现视图,开发期质量属性 可扩展可重用可移植易理解易测试,构件图
处理视图 描述系统进程以及之间的通信协作关系 ,运行期质量属性,类图,交互图,状态转换图
物理视图 描述系统如何被安装部署 安装与部署需求,部署图,包图
场景视图 描述系统典型场景与功能 用例视图,最终用户所需求的功能
系统的静态结构:逻辑视图,开发视图
系统的动态结构:物理视图,进程视图
软件体系结构的生命周期
非规范化描述->规范化描述->求精与验证->实施->演化与扩展->评价与度量->终结
第三章
软件体系结构风格概述
软件体系结构⻛格是指设计、组织和实现软件体系结构的各种惯⽤模式和习惯⽤法,是对⼀系列体系结构设计的抽象。
数据流体系结构风格
批处理
每一个处理步骤是独立的程序
每一步必须在前一步结束后才能开始
数据必须是完整的,以整体的方式传递
管道过滤器
系统分解为几个顺序的处理步骤,即是过滤器
这些步骤之间通过数据流进行连接,即是管道
每个过滤器都有一组输入与输出
过滤器从管道中读取输入的数据流,经过内部处理,然后产生输出数据流并写入管道中
管道过滤器的优点
高内聚,低耦合,
将复杂的输入输出看成多个过滤器行为的简单合成
支持软件复用
系统维护和增强系统性能简单
允许对一些如吞吐量,死锁等属性的分析
支持并行执行
管道过滤器的缺点
导致进程成为批处理的结构
不适合处理交互的应用
增加编写过滤器的复杂性,导致系统性能下降
批处理与管道过滤器的比较
相似点:
都把任务分解为一系列固定顺序的计算单元
彼此之间通过数据传递交互
不同点:
层次体系结构风格
系统分为若干个层次,每一个层次由一系列构件构成
下层构件向上层构件提供服务
上层构件被看作下层构件的客户端
交互只在相邻的层次之间发生
优点:基于抽象递增,支持功能增强,支持重用
缺点:难以分层
C/S 与 B/S体系结构风格
⼆层C/S、三层C/S、B/S,以及C/S与B/S混合架构⻛格示意图及其含义。
答:
B/S(browser/server): 浏览器-服务端架构,由浏览器向服务器发送请求,服务器向浏览器 ⻚⾯进⾏响应。
C/S(client/server): 客户端-服务端,由客户端应⽤向服务器发送⽹络请求,有服务端向客户端应⽤响应。客户端通常负责处理⽤户界⾯和输⼊数据,⽽服务器则负责处理应⽤程序逻辑和数据存储。
三层C/S,它将应⽤程序分成三个层次:表示层(Presentation Layer)、应⽤层(Application Layer)和数据层(Data Layer)。表示层负责处理⽤户界⾯,应⽤层负责处理应⽤程序逻辑, 数据层负责处理数据存储和检索。
B/S、C/S混合架构:指将B/S架构和C/S架构进⾏结合,通过服务器端的中间件来协调前端浏览器和后端应⽤程序之间的交互。在这种架构中,前端⽤户界⾯仍然是基于浏览器的Web应⽤程 序,但是通过中间件与后端服务器进⾏交互,后端服务器可以提供更多的应⽤逻辑和数据处理 功能。
胖客户端:客户端有较多的的业务处理逻辑
瘦客户端:客户端很少的业务处理逻辑
事件系统风格
事件系统包括发布,订阅,等基本过程
系统中的组件将发布事件到事件中心
其他组件可以订阅这个事件
当事件被传播时自动调用已经订阅了该事件的组件
该组件内部事件处理程序执行
每个事件订阅者有自己独立的事件处理程序
事件发布者不关心她所发布的事件如和被调用
‘
仓库风格
第四章
为什么引入soa
需求拉动,技术推动
什么是soa
面向服务的软件体系结构
Soa典型特征
分布式异构系统的集成与互操作
松散耦合
大数据量低频率访问
基于文本的信息传递
上下文无关
大粒度复用
Soa实现
Web服务,企业服务总线
第五章
中间件
一种软件,位于系统软件与应用软件之间,使得应用层中的各个应用成分实现跨网络的协同工作