第一章 软件体系结构概论
(一)考点
1:软件重用:
在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
2:软件体系结构的定义:
为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些
元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
(软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元
素之间的对应关系,提供了一些设计决策的基本原理。)
(二)了解点知识
1:软件危机的表现:(1)软件成本日益增长
(2)开发进度难以控制
(3)软件质量差
(4)软件维护困难
2:软件危机的原因:(1)用户需求不明确
(2)缺乏正确的理论指导
(3)软件规模越来越大
(4)软件复杂度越来越高
3:构件:
是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨
识的系统;结构上,它是语义描述、通信接口和实现代码的复合体。
4:构建组装:(1)基于功能的组装技术(采用子程序调用和参数传递的方式将构件组装起来)
(2)基于数据的组装技术(首先根据当前软件问题的核心数据结构设计出一个框
架,然后根据框架中各结点的需求提取构件并进行适应性修改,再将构件逐个分配至框架中的
适当位置。此后,构件的组装方式仍然是传统的子程序调用与参数传递)
(3)面向对象的的组装技术(构造法和子类法)
5:软件体系结构的意义:(1)体系结构是风险承担者进行交流的手段
(2)体系结构是早期设计决策的体现
①软件体系结构明确了对系统实现的约束条件
②软件体系结构决定了开发和维护组织的组织结构
③软件体系结构制约着系统的质量属性
④通过研究软件体系结构可能预测软件的质量
⑤软件体系结构使推理和控制更改更简单
⑥软件体系结构有助于循序渐进的原型设计
⑦软件体系结构可以作为培训的基础
(3)软件体系结构是可传递和可重用的模型
第二章 软件体系结构建模
(一)考点
1:软件体系结构的 5 种模型,最常用的是结构模型和动态模型
(1)结构模型。以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系
统的重要语义内容,包括系统的配置、约束、隐含的条件、风格、性质等。研究结构模型的核
心是体系结构描述的语言。
(2)框架模型。与结构模型类似,但不侧重描述结构的细节而更侧重于整体的结构。主要以一
些特殊的问题为目标建立只针对和适应该问题的结构。
(3)动态模型。对结构或框架模型的补充,研究系统的“大颗粒”的行为性质。动态可以指系
统总体结构的配置、建立或拆除通信通道或计算的过程。
(4)过程模型。研究构造系统的步骤和过程,因而结构是遵循某些过程脚本的结果。
(5)功能模型。有一组功能构件按层次组成,下层向上层提供服务。它可以看成是一种特殊的
框架模型。
2:“4+1”视图模型
逻辑视图(logic view):主要支持系统的功能需求,即系统提供给最终用户的服务。
开发视图(development view):也称模块视图(module view),主要侧重于软件模块的组织和管理。
进程视图(process view):也称为并发视图,侧重于系统的运行特性,主要关注一些非功能性的
需求,例如系统的性能和可用性。
物理视图(physical view):主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规
模、可靠性等。解决系统拓扑结构、系统安装、通信等问题。
场景(scenarios):可以看作那些重要系统活动的抽象,它使 4 个视图有机联系起来,从某种意
义上说场景是最重要的需求抽象。
注:逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。
3:体系结构的核心模型由五种元素组成:构件、连接件、配置(configuration)、端口(port)
和角色(role)。其中,构件、连接件和配置是最基本的元素。P36
(1)构件:具有某种功能的可重用的软件模块单元,表示了系统中主要的计算元素和数据存储。
构件有两种:复合构件和原子构件,复合构件由其他复合构件和原子构件通过连接而成;原子
构件是不可再分的构件,底层由实现该构件的类组成,这种构件的划分提供了体系结构的分层
表示能力,有助于简化结构的设计。
(2)连接件:表示了构件之间的交互,简单的连接件如管道(pipe)、过程调用(procedure call)、
事件广播(event broadcast)等,更为复杂的交互如客户-服务器(client-server)通信协议,数据
库和应用之间的 SQL 连接等。
(3)配置:表示了构件和连接件的拓扑逻辑和约束。
构件作为一个封装的实体,只能通过其接口与外部环境的交互,构件的接口由一组端口组成,
每个端口表示了构件和外部环境的交互点。
连接件作为建模软件体系结构的主要实体,同样也有接口,连接件的接口由一组角色组成。
4:软件体系结构的生命周期
(二)了解点知识
第三章 软件体系结构风格
(一)考点
1:管道与过滤器:
(1)每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据
流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出
便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将
一个过滤器的输出传到另一过滤器的输入。
2:支持基于事件的隐式调用:
(1)编辑器和变量监视器可以登录相应的 Debugger 的断点事件。当 Debugger 在断点处停下时,
它声明该事件,由系统自动调用处理程序,如编辑程序可以卷屏到断点,变量监视器刷新变量
数值。而 Debugger 本身只声明事件,并不关心哪些过程会启动,也不关心这些过程做什么处理。
3:仓库系统及知识库:P55
黑板系统主要由三部分组成:(1)知识源(2)黑板数据结构(3)控制
4:C2 风格中的系统组织规则:
(1)系统中的构件和连接件都有一个顶部和一个底部。
(2)构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与
构件之间的直接连接是不允许的。
(3)一个连接件可以和任意数目的其他构件和连接件连接。
(4)当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。
5:C2 风格特点:
(1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起
(2)所有构件之间的通信是通过以连接件为中介的异步消息交换机制来实现的。
(3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,
或某些构件共享特定控制线程之类的相关性假设。
6:C/S 体系结构的缺点:
(1)开发成本较高
(2)客户端程序设计复杂
(3)信息内容和形式单一
(4)用户界面风格不一,使用繁杂,不利于推广使用。
(5)软件移植困难
(6)软件维护和升级困难
(7)新技术不能轻易应用
7:三层 C/S 结构风格
C/S 将应用功能分为:表示层、功能层和数据层
(1)表示层:是应用层的用户接口部分,它担负着用户与应用间的对话功能。
(2)功能层:相当于应用层的本体,它将具体的业务处理逻辑编入程序中。
(3)数据层:就是数据库管理系统,负责管理对数据库数据的读写。
8:三层 C/S 结构优点:
(1)允许合理的划分三层结构的功能,使逻辑上保持相对独立性,能够提高系统和软件的可维
护性和可扩展性。
(2)允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别
适应于结构清晰的三层;并且这些平台和各组成部分可以具有良好的可升级性和开放性。
(3)应用各层可以并行开发,各层也可以选择各自最适合的开发语言。
(4)允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用
数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础。
9:B/S 不足之处:
(1)缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
(2)系统扩展能力差,安全性难以控制。
(3)在数据查询等响应速度上,要远远低于 C/S 体系结构。
(4)数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OnLine
Transaction Processing,OLTP)应用.
(C/S 结构的计算机应用系统网络负载较小)
10:异构结构风格:(C/S 与 B/S 混合软件体系结构的两种模型)
“内外有别”模型
优点:外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。企业内部用户的交
互性较强,数据查询和修改的响应速度较快。
缺点:企业外部用户修改和维护数据时,速度较慢,较烦琐,数据的动态交互性不强。
“查改有别”模型
该模型体现了 B/S 体系结构和 C/S 体系结构的共同优点。但因为外部用户直接通过 Internet 连接
到数据库服务器,企业数据容易暴露给外部用户,给数据安全造成一定的威胁。
(二)了解点知识
1:软件体系结构风格:
(1)管道与过滤器
(2)数据抽象和面向对象系统
(3)基于事件的系统
(4)分层系统
(5)仓库系统及知识点
(6)C2 风格
2:P61 三层 C/S 结构应用实例
3:B/S(Browser-Server,B/S)
第五章 统一建模语言
(一)考点
1:UML 结构的各组成元素:
(1)构造块:三种基本的构造块:事物(thing)、关系(relationship)和图(diagram)
(2)公共机制:
A:规格说明:
B:修饰:
C:公共分类:
D:扩展机制:
(3)规则:
2:事物:也称为建模元素,包括结构事物(structual things)、行为事物(behavioral things)、分组
事物(grouping things)和注释事物(annotational things)
3:用例之间的关系
(1)包含关系《include》:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能
够使用一个构件来实现某一个用例很重要的部分功能时,应该使用包含关系表示它们。提取出
来的公共用例称为抽象用例。
(2)扩展关系《extend》:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情
况可能发生多种事情,则可以断定将这个用例分为一个主用例和一个或多个辅助用例进行描述
可能更加清晰。
(3)泛化关系:用例可以被特别列举为一个或多个子用例,这被称作用例泛化。当父用例能够
被使用时,任何子用例也可以被使用。
4:类之间的关系 P133
(1)关联关系
(2)依赖关系
(3)泛化关系
(4)聚合关系
(5)组合关系
(6)实现关系将说明和实现联系起来
(7)流关系:将一个对象的两个版本以连续的方式连接起来
5:图形
(1)类图★★★
(2)对象图
(3)构件图
(4)组合结构图
(5)用例图
(6)顺序图
(7)通信图
(8)定时图
(9)状态图
(10)活动图
(11)部署图
(12)制品图
(13)包图
(14)交互概览图
6:P135--P144 各种图
1:UML 关系:
(1)依赖(dependencies)
(2)关联(association)
(3)泛化(generalization)
(4)实现(realization)
(二)了解知识点
第六章 可扩展标记语言
(一)知识点
1:XML 是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以表示。
2:XML 的作用:
(1)使得搜索更加有意义
(2)开发灵活的 Web 应用软件
(3)实现不同数据的集成
(4)使用于多种应用环境
(5)客户端数据处理与计算
(6)数据显示多样化
(7)局部数据更新
(8)与现有 Web 发布机制兼容
(9)可升级性
(10)压缩性能高
3:有效的 XML 文档(1)DTD 书 P160
(2)XML 模式(XML Schema)书 P161
(对 XML 数据文档的内容做出规定)参照 JAVAEE 考的内容
4:XML 样式语言 CSS 与 XSL
(1)CSS 可以在某种程度上把 HTML 文档中的排版格式信息与其他数据信息分离开。
(2)XSL 是专门用于 XML 文档的样式单语言,可以把 XSL 当成一种能够把 XML 转变成 HTML
的语言,一种能够筛选和排序 XML 文档中数据的语言,一种能够根据 XML 的数据数值格式化
XML 数据的语言。XSL 文档本身就是结构完整的 XML 文档。
5:各接口优缺点(XML 编程接口:解析 XML 文档从而能够利用 XML 中的数据)
(1)DOM
优点:DOM 提供了一组丰富的功能,用户可以用这些功能来解释和操作 XML 文档。
缺点:①DOM 构建整个文档驻留内存的树。如果文档很大,就会要求有极大的内存。
②DOM 创建表示原始文档中每个东西的对象,包括元素、文本、属性和空格。如果用户只关注
原始文档的那一小部分,那么创建那些永远不被使用的对象是极其浪费的。
③DOM 解释器必须在代码取得控制权之前读取整个文档。对于非常大的文档,这会引起显著的
延迟。
(2)SAX
优点:①SAX 解释器向代码发送事件。当解释器发现元素开始、元素结束、文本、文档的开头
或结束时,它会告诉用户。用户可以决定什么事情对自己重要,而且可以决定要创建什么类型
的数据结构以保存来自这些事件的数据。如果没有显示地保存来自某个事件的数据,它就被丢
弃。
②SAX 解释器根本不创建任何对象,它只是将事件传递给应用程序。
③SAX 解释器在解析开始的时候就开始发送数据。
缺点:①SAX 事件是无状态的
②SAX 事件不是持久的
(3)JDOM
极大的减少了用户必须必须编写的代码数量。JDOM 并不是做所有的事,但对于大多数用户要
做的解析,它可能正好适合用户的需求。
(4)JAXP
为不同的解析器提供了一个标准接口。
(5)接口选择
在实际应用中,为了选择合适的接口类型,需委理解所有接口的设计要点,而且需要理解应用
程序用 XML 档来做什么。考虑下面的问题将有助于找到正确的方法,
①要用 Java 编写应用程序吗? JAXP 使用 DOM.SAX 和 JDOM; 如果用 Java 编写代码,那么
应使用 JAXP 将代码与各种解析器实现的细节隔离。
②应用程序将如何部署?如果应用程序将要作为 Java applet 部署,那么会希望使要下我的代
码数量最小,SAX 解析器比 DOM 解析 25 小.而使用 JDOM 时,除了 SAX 或 DOM 解析器之外还
要求编写少量的代码。
③一旦解析了 XML 文档,还需要多次访同那些数据吗?如果需要回过头来访问 XML 文件
的已解析版本.DOM 可能是正确的选择。面 SAX 事件被触发时,如果以后霄要它,则由(开发
人员)自己决定以某种方式保存它。如果高要访问不曾保存的事件,则必须再次解析该文件:面
DOM 自动保存所有的数据。
④ 只需要 XML 源文件的少量内容吗?如果只需要 XML 源文件的少量内容,那么 SAX 可能
是正确的选择。SAX 不会为源文件中的每个东西创建对象。使用 SAX.要检查每个事件以了解
它是否与需要有美。然后相应地处理它。
⑤正在一台内存很少的机器上工作吗?若是,不管可能考虑到的其他因素是什么,SAX 都
是最佳选择。
6:(简答题)
XML 建模包括哪些方面
(1)描述具体数据
(2)描述数据结构和模式
(3)描述数据的表现
(4)描述数据中的位置
(5)描述数据中的链接关系
(6)描述数据的应用关系
7:在 XADL 2.0 中,对体系结构的描述主要由 4 个方面组成:构件、连接件、接口和配置。
8:XADL 2.0 模式的核心是实例模式:(5 种实例模式)
在实例模型结构中定义了 5 个方面的内容:构件实例(包括子体系结构)、连接件实例(包括
子体系结构)、接口实例、链接实例和通用组。
9:体系结构描述语言 XBA 主要围绕体系结构的三个基本抽象元素(构件、连接件和配置)。
10:采用 XBA 描述软件体系结构的主要优点:
(1)XBA 具有开放的语义结构。继承了 XML 的基于 Schema 的可扩展机制。
(2)利用 XML 的链接机制,可以实现体系结构的协作开发。
(3)易于实现不同 ADL 开发环境之间的模型共享。
(二)了解点知识
1:与 DTD 相比,XML 模式有如下几个优势;
(1)XML 模式使用 XML 语法。换句话说,XML 模式是一个 XML 文档,这意味着可以像处理任何其
他文档一样处理模式。例如,可以编写一个
XSLT(eXtensible
for Transformation,用于转换的可扩展样式表语
StylesheetLunguage