软件工程复习 第八章
第八章 软件体系结构
体系结构是研究系统各部分组成及相互关系的技术学科。它包括以下几个部分:
软件的组成元素(组件)
这些(组件)元素的外部可见特性
这些元素(组件)之间的相互关系。
体系结构模式
分层模式
将软件系统按照抽象级别逐层递增或递减的顺序划分为若干层次,每层由一-些抽象级别相同的构件组成。
每层的构件仅为其上的层次提供服务,并且它们仅使用其下层提供的服务。
一般而言, 顶层直接面向用户提供软件系统的交互界面,底层则负责提供基础性、公共性的技术服务,比较接近于硬件计算环境、操作系统或数据库管理系统。
层次之间的连接有两种形态:
高层构件向低层构件发出服务请求,低层构件在计算完成后向请求者发送服务应答。
低层构件主动探测或被动获知计算环境的变化事件后通知高层构件。
优势
松耦合。通过软件层次的划分和层间接口的规整,有效降低耦合度,系统各构件之间依赖关系的局部化。
可替换性。一个层次可被替换。
可复用性。具有良好定义的抽象级别和对外服务接口。
劣势
高层功能需要逐层调用下层服务,返回值、报错信息又需逐层上传,耗时
若低层服务还完成了最初的服务请求者不需要的冗余功能,性能损耗更严重。
管道过滤器模式
将软件系统的功能实现为一-系列的处理步骤,每个步骤封装在一个过滤器构件中,相邻过滤器之间由管道连接。一个过滤器的输入数据借助管道流向后续过滤器,作为其输入数据。
输入由数据源提供,它通过管道与过滤器相连。最终输出由源自某个过滤器的管道流向数据汇。数据源和汇通常为数据库、文件、其他软件系统和物理设备。
采用管道过滤器模式,可以通过升级、更换部分过滤器构件以及处理步骤的充足来实现软件系统的扩展和进化。此模式适合于采用批处理方式的软件系统,不适合与交互式、事件驱动的系统
黑板模式
将软件系统划分为黑板、知识源和控制器3类构件
黑板负责保存问题求解过程中的状态数据,并提供这些数据的读写服务
知识源负责根据黑板中存储的问题求解状态评价其自身的可应用性,进行部分问题求解工作,并将此工作的结果数据写入黑板
控制器负责监视黑板中不断更新的状态数据,安排知识源的活动
适合于没有确定的求解方法的复杂问题
优势:
知识源和控制器可灵活更换、升级。
知识源之间没有交互,知识源与控制器和黑板之间均通过接口交互,知识源可复用性好。
知识源的求解动作是探索性的,允许失败和试错。
劣势
问题求解性能较低,有时甚至无法预测求解时间。
不能确保得到最优解。
问题求解路径不确定,造成软件测试较为困难。
知识源和控制器两种构件的开发相当困难。
分布式体系结构
优势
资源共享。分布式系统允许硬件、软件等资源共享使用
经济性。
性能与可扩展性。
固有分布性。
健壮性。
多处理机体系结构
分布式系统的一个最简单的模型是多处理器系统,系统由许多进程组成,这些进程可以在不同的处理器上并行运行,可以极大地提高系统的性能。
由于大型实时系统对响应时间要求较高,这种模型在大型实时系统中比较常见。大型实时系统需要实时采集信息,并利用采集到的信息进行决策,然后发送信号给执行机构。虽然,信息采集、决策制定和执行控制这些进程可以在同一台处理器上统一 调度执行,但使用多处理器能够提高系统性能。
客户/服务器模式
客户机/服务器( client/server , C/S )体系结构是基于资源不对等且为实现共享而提出来的,由服务器、客户机和网络三部分组成。
在C/S体系结构中,客户机可以通过远程调用来获取服务器提供的服务,因此,客户机必须知道可用的服务器的名字及它们所提供的服务,而服务器不需要知道客户机的身份,也不需要知道有多少台服务器在运行。
瘦客户机模型
在瘦客户机模型中,数据管理部分和应用逻辑都在服务器上执行,客户机只负责表示部分。
瘦客户机模型的主要缺点:
它将繁重的处理负荷都放在了服务器和网络上,服务器负责所有的计算,这将增加客户机和服务器之间的网络流量。
目前个人计算机所具有的处理能力在瘦客户机模型中用不上。
胖客户机模型
在这种模型中,服务器只负责对数据的管理。客户机_上的软件实现应用逻辑和与系统用户的交互。
胖客户机模型能够利用客户机的处理能力,比瘦客户机模型在分布处理上更有效。
缺点:
开发成本较高
用户界面风格不一,使用繁杂,不利于推广使用
软件移植困难
软件维护和升级困难
三层C/S体系
为了解决以上问题,三层C/S体系结构应运而生。三层C/S体系结构中增加了应用服务器。可以将整个应用逻辑驻留在应用服务器上,而只有表示层存在于客户机上。
B/S体系
浏览器/服务器( browser/server , B/S )风格是三层体系结构的一种实现方式,其具体结构为浏览器/Web服务器/数据库服务器。B/S体系结构如下图所示。
B/S体系结构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。从某种程度上来说, B/S结构是一种全新的软件体系结构。
B/S体系结构具有以下优点:
基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。
B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网和统一服务的最现实的开放性基础。