软件工程期末复习8-软件体系结构与设计模式

时间:2025-03-26 07:37:40

1.软件体系结构的概念

1.1 什么是软件体系结构
软件体系结构既决定系统的框架和主题结构,又决定系统的基本功能及某些细节特征。具体来说,软件体系结构是系统的一个或多个结构,包括以下几部分:
(1)软件的组成元素(组件)。
(2)这些(组件)元素的外部可见性。
(3)这些元素(组件)之间的相互关系。
1.2 软件体系结构的建模
研究软件体系结构的首要问题是如何表示软件体系结构,即如何对软件体系结构建模。根据建模的侧重点的不同,可以将软件体系结构的模型分为5种:结构模型、框架模型、动态模型、过程模型和功能模型。在这5个模型中,最常用的是结构模型和动态模型。
(1)结构模型
这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是体系结构描述语言。
(2)框架模型
框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。
(3)动态模型
动态模型是对结构或框架模型的补充,研究系统的"大颗粒"的行为性质。例如,描述系统的重新配置或演化。动态可能指系统总体结构的配置、建立或拆除通信通道或计算的过程。这类系统常是激励型的。
(4)过程模型
过程模型研究构造系统的步骤和过程。因而结构是遵循某些过程脚本的结果。
(5)功能模型
该模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。它可以看作是一种特殊的框架模型。
1.3 软件体系结构的分层模型
软件体系结构的层次模型从低到高分别是计算机硬件层、软件硬件层、基础控制描述层、资源和管理调度层、应用层。

2. 典型的软件体系结构风格

(1)数据流风格:批处理序列;管道/过滤器
(2)调用/返回风格:主程序/子程序;面向对象风格;层次结构
(3)独立构件风格:进程通讯;事件系统
(4)虚拟机风格:解释器;基于规则的系统
(5)仓库风格:数据库系统;超文本系统;黑板系统

3. 软件质量属性

质量属性可以分为3类:系统属性,商业属性和构架属性。

4. 分布式系统结构

4.1 多处理器体系结构
系统同时运行许多进程,这些进程分布在不同的处理器上。可以极大地提高系统的性能。
4.2 客户端/服务器体系结构
为解决传统二层模式与应用需求日益突出的矛盾,以交易中间件为基础框架的三层应用模式应运而生,三层结构以中间层管理大量的客户端并为其联接、集成多种异构的服务器平台,通过有效的组织和管理,在极为宽广的范围内将客户机与服务器进行高效组合。同时中间件开创的以负载平衡、动态伸缩等功能为代表的管理模式,已被广泛证实为建立关键业务应用系统的最佳环境,使在二层模式下不可能实现的应用成为可能,并为应用提供了充分的扩展余地。这种模式的成功应用已为许多国际大型企业在应用的开发和部署方面节省了大量的时间和金钱。由此促使越来越多的系统开发商和用户采用三层结构模式开发和实施其应用。
三层客户机/服务器模式的核心概念是利用中间件将应用的用户界面、业务逻辑和数据逻辑分为三个不同的处理层。
1. 表示层(用户界面):它的主要功能是实现用户交互和数据表示,为以后的处理收集数据,向第二层的业务逻辑请求调用核心服务处理,并显示处理结果。这一层通常采用VB,PB,DELPHI等语言编写,或采用浏览器实现
2. 应用逻辑层(业务逻辑):实现整个应用系统核心业务逻辑,通常把业务逻辑划分成一个个独立的模块,用中间件提供的API结合数据库提供的编程接口实现。客户端通过调用这些模块实现相应的业务操作。
3. 数据层(数据逻辑):数据库负责管理整个应用系统的数据资源,完成数据操作。中间层上应用程序在处理客户端的请求时,通常要存取数据库。
4.3 分布式对象体系结构
4.4 对等端体系结构
4.5 代理

5.体系结构框架

5.1 模型-视图-控制器(MVC)
V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。
M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
C即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
5.2 模型-视图-表示器(MVP)
由于对View的操作放在了Presenter中,所以View和Presenter的交互会过于频繁。如果Presenter过多地操作视图,往往会使得它与特定的 View联系过于紧密。一旦视图需要改变,那么Presenter也需要改变。
5.3 J2EE体系结构框架
J2EE的核心体系结构就是在MVC框架的基础上进行扩展得到的。J2EE模型是分层结构,中间是3层(表示层、业务层和集成层)包含应用的构件,客户层和资源层处于应用的外围。
5.4 PCMEF框架
表示-控制-中介-实体-基础。
PCMEF框架包含4层:表示层、控制层、领域层和基础层。
5.5 PCBMER框架
表示-控制器-Bean-中介-实体-资源

6.软件系统的设计模式

分为3种类型:创建型模式、结构型模型和行为型模型。