软件体系结构期末复习
标签(空格分隔): 未分类
回顾课本和TTP课件
内容总概
-
( 软件危机 )主要包含两方面的问题:如何开发软件以满足对软件日益增长的需求;如何维护数量不断高速增长的已有软件。
-
软件体系结构的核心模型主要包括:(构件、连接件、配置约束)。
-
(软件重用技术)有助于提高软件开发的生产率,提高软件系统的可靠性,减少软件维护的负担。
-
(软件构件技术)是软件重用的核心与基础。
-
基于构件的软件开发的基本思想是
将用户需求分解为一系列的子功能构件,在开发过程中不必重新设计这些基本功能模块,只需从现有构件库中寻找合适的构件来组装应用系统。
第2章 、软件体系结构建模
1.建模概述
软件体系结构应该以模型的形式具体化。
2.建模语言
-
实践派风格:使用通用的建模符 ,强调实践可行性。
- 图形表示方法。
- 模块内连接语言。
- 基于构件的系统描述语言。
- UML描述方法。
-
学院派风格:使用了体系结构描述语言(ADL),侧重于软件体系结构形式化理论的研究。
- ADL集中描述了整个系统的高层结构。
- 有无工具的支持是ADL是否可用的重要标志。
- 软件体系结构模型的三个基本组成成分:构件、连接件和配置关系。
- 构件描述规范:(1)接口。(2)类型。(3)语义。(4)约束。(5)演化。(6)非功能特性。
- 连接件描述规范:考虑的内容与构件相似
- 配置关系描述规范:可理解性。组合能力。对异构的支持。可伸缩能力。进化能力。动态支持。
-
体系结构描述语言有
-
ACME的基本特征:
- 提供了基本的体系结构元素来描述系统的体系结构,并提供了相应的扩展机制。
- 提供了灵活的注解机制来描述系统的非结构性信息。
- 提供了可对软件体系结构风格进行重用的模板机制。
- 提供了一种开放的语义框架,可以对体系结构描述进行形式化推理。
-
Rapide 的五种子语言:
- 类型(Types)语言——定义接口类型和函数类型,支持通过继承已有的接口来构造新的接口类型;
- 模式(Pattern)语言——定义具有因果、独立和时序等关系的事件所构成的事件模式;
- 可执行(Executable)语言——包含描述构件行为的控制结构;
- 体系结构(Architecture)语言——通过定义同步和通信连接来描述构件之间的事件流;
- 约束(Constraint)语言——定义构件行为和体系结构所满足的形式化约束,其中约束为需要的或禁止的偏序集模式。
- Unicon的设计紧紧围绕着构件和连接件这两个基本概念。
- Wright的主要思想是把连接件定义为明确的、用协议的集合来表示语义实体,协议代表了交互的各个参与角色及其相互作用。
- Darwin使用接口来定义构件类型。
- Aesop的目标是建立一个工具包,为特定领域的体系结构快速构建提供设计支持环境。
- SADL语言提供了软件体系结构的文本化表示方法,同时保留了直观的线框图模型。
- MetaH主要支持实时、容错、安全、多处理和嵌入式软件系统的分析、验证以及开发。
-
ACME的基本特征:
-
UML与ADL之间的关系
- 体系结构描述语言ADL是一种描述体系结构模型的形式化工具。
- ADL是研究软件体系结构规范的出发点。
- 统一建模语言(Unified Modeling Language,UML)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统的文档。
-
基于UML的软件体系结构描述
-
UML应用于用例驱动的、以体系结构为中心的、迭代的和渐增式的开发过程。
-
Kruchten提出了“4+1”视图模型“。
- 逻辑视图,也称概念视图。主要支持系统功能需求的抽象描述。
- 开发视图,也称模块视图。主要侧重于描述系统的组织。
- 过程视图。主要侧重于描述系统的动态属性。
- 物理视图。主要描述如何把软件映射到硬件上。
- 软件架构是降低成本、改进质量、按时和按需交付产品的关键因素。以下关于软件架构的描述,错误的是(A)。
A. 根据用户需求,能够确定一个最佳的软件架构,指导整个软件的开发过程
B. 软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等
C. 软件架构设计需要确定组件之间的依赖关系,支持项目计划和管理活动
D.软件架构能够指导设计人员和实现人员的工作 - 下面哪种视图不属于软件体系结构中定义的“4+1”视图B)
A) 物理视图
B) 设计视图
C) 场景视图
D) 开发视图 - 在RUP (Rational Unified Process,统一软件开发过程)中采用“4+1”视图模型来描述软件系统的体系结构。在该模型中,最终用户侧重于(C),系统工程师侧重于(D)。
A. 实现视图
B. 进程视图
C. 逻辑视图
D. 部署视图 - 在基于构件的软件开发中,( A)描述系统设计蓝图以保证系统提供适当的功能;(B )用来了解系统的性能、吞吐率等非功能性属性。
A. 逻辑构件模型
B. 物理构件模型
C. 组件接口模型
D. 系统交互模型 - 软件体系结构的核心模型:(构件、连接件、配置约束)
- 软件框架设计的核心问题是:能否达到成型的体系结构方案级别的重用。(架构级别的重用)
-
软件体系结构风格的定义:由组织规则及结构构成,是描述领域中系统组织方式的惯用模式。是对某一特定领域中系统所共有的结构和语义特性的反映。
-
体系结构风格的分类:
-
数据流风格:
- 批处理序列
- 管道/过滤器(传统的编译器)
- 优点:
- 设计人员将整个系统的输入输出行为理解为单个过滤器行为的叠加与组合。
- 任何两个过滤器,只要它们之间传送的数据遵守共同的规约就可以相连接。
- 整个系统易于维护和升级。
- 支持并发执行。
- 缺点:
- 通常导致进程成为批处理的结构;
- 不适合处理交互的应用;
- 每个过滤器都增加了解析和合成数据的工作,导致系统功能下降;
- 其固有结构,决定了很难制定错误处理的一般性策略。
- 传统的编译器
- 将系统组织为多个独立的对象,每个对象封装其内部的数据,并基于数据对外提供服务。不同对象之间通过协作机制共同完成系统任务。面向对象体系结构如图所示:
- 重要设计决策及约束:
- 依照对数据的使用情况,用信息内聚的标准,为系统建立对象部件。每个对象部件基于内部数据提供对外服务接口,并隐藏内部数据的表示。
- 基于方法调用(Method Invocation)机制建立连接件,将对象部件连接起来
- 每个对象负责维护其自身数据的一致性与完整性,并以此为基础对外提供“正确”的服务。
- 每个对象都是一个自治单位,不同对象之间是平级的,没有主次、从属、层次、分解等关系。
- 优点:
一个对象对其他对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其他的对象;
对象将数据和操作封装在一起,提高了系统内聚性,减小了模块之间的耦合程度,使系统更容易分解为既相互作用又相互独立的对象集合;
继承和封装方法为对象重用提供了技术支持。 - 缺点:
如果一个对象要调用另一个对象,必须知道 它的标识和名称。
-
层次结构
-
层次风格组织成一个层次结构,通过分解,能够将复杂系统划分为多个独立的层次,每一层都具有高度的内聚性,并要求每一层为上层服务,并作为下层的客户,较高层面向特定应用问题,较低层则更具有一般性。如图:
-
-
两层C/S体系结构的处理流程如下图:
-
三层C/S结构体系结构的处理流程如下图所示:
-
-
B/S体系结构风格
-
浏览器/服务器结构(Browser/Server)B/S体系结构如图所示:
-
B/S结构的一个典型的例子是教务在线管理平台的系统架构,如下图所示:
-
事件驱动架构的组成如图所示:
-
数据库系统
-
超文本系统
-
黑板系统
黑板系统反映了信息共享,即:有一定数量的对象对统一中央数据结构进行操作,从而实现中央数据结构的持续更新。黑板体系结构如图:
-
-
C2体系结构风格
-
- CORBA体系结构风格具有以下优点:
- 实现了客户端程序与服务器程序的分离。
- 将分布式计算模式与面向对象技术结合起来,提高了软件重用效率。
- 提供了软件总线机制,软件总线是指一组定义完整的接口规范。
- CORBA能够支持不同的编程语言和操作系统,在更大的范围内,开发人员能够相互利用已有的开发成果。
5.基于体系结构的软件开发过程
6.习题
第3章 、软件体系结构风格
1.软件体系结构风格概述
2.常用的软件体系结构风格
-
-
Garlan和Show对体系结构的分类图:
RIA(Rich Internet Application) 体系风格
- RIA 将桌面型计算机软件应用的最佳用户界面功能性与Web应用程序的普遍采纳和低成本部署以及互动多媒体通信的长处集于一体,可以提供更直观、响应更快和更有效的用户体验,简化并改进了Web应用程序的用户交互。它不仅具备了桌面型系统的长处,包括在确认和格式编排方面提供互动用户界面、在无刷新页面之下提供快捷的界面响应时间、提供通用的用户界面特性,而且保留了Web的优点,并且支持双向互动声音和图像。
- 络上的所有事物都被抽象为资源;
- 每个资源对应一个唯一的资源标识符;
- 通过通用的连接器接口对资源进行操作;
- 对资源的各种操作不会改变资源标识符;
- 所有的操作都是无状态的;
- REST强调中间媒介的作用。
- 统一接口,简化了对资源的操作;
- REST的无状态性提高了系统的伸缩性(无状态性使得服务器端可以很容易的释放资源,
- 为服务器端不必在多个Request中保存状态)和可靠性(无状态性减少了服务器从局部错误中恢复的任务量);
- 基于缓存机制,提高了系统的处理性能和负载量;
- 实现真正意义上的软件部件的“即插即用”;
- 在二进制级上集成软件,避免重新编译内核功能,方便功能扩展和升级;
- 能够很好实现软件模块的分工和分期开发;
面向服务(Service Oriented Architecture,SOA)软件体系结构风格
- 服务是一种粗粒度、可发现、松耦合、自治的分布式组件。
- SOA是通过一定的原则来组合一系列可以相互交互的服务进行软件应用开发的一种架构解决方案。SOA本身不是一种具体的技术,而是一个组件模型,一种架构风格。
4.习题
-
下列哪个选项是描述系统的静态结构( A)
A.逻辑视图和开发视图
B.进程视图和物理视图
C.开发视图和物理视图
D.开发视图和进程视图 -
Unicon提供了一组预先定义的构件和连接件,这是为了达到( A)
A:提供对大量构件和连接件的统一访问;
B:区分不同类型的构件和连接件,以便对体系结构配置进行检查;
C:支持不同表达方式和不同开发人员的分析工具;
D:支持有构件的使用。 -
下列选项中关于ADL与其他语言的比较说法中错误的是( B)
A:ADL与需求语言的区别在于后者描述的问题空间,而前者则扎根与解空间中;
B: ADL与建模语言的区别在于后者对部分的关注要大于对整体的关注;
C:ADL与传统的程序设计语言的构成元素由许多相同和相似之处,又各自有着很大的不同;
D:ADL集中在构件的表示上。 -
软件架构模式描述了如何将各个模块和子系统有效地组织成一个完整的系统。诸如Word和Excel这类图形界面应用软件所采用的架构模式是(D )。
A.分层模式
B.知识库模式
C.面向对象模式
D.事件驱动模式 -
为了解决C/S模式中客户机负荷过重的问题,软件架构发展形成了(C )模式。
A. 三层C/S B. 分层
C.B/S D. 知识库 -
与基于C/S架构的信息系统相比,基于B/S架构的信息系统(C )。
A.具备更强的事务处理能力,易于实现复杂的业务流程
B.人机界面友好,具备更加快速的用户响应速度
C.更加容易部署和升级维护
D.具备更高的安全性 -
软件重用长期以来一直是软件工程界不断追求的目标。(√)
-
软件体系结构的核心由5种元素组成:构件、连接件、配置、端口和角色。其中,构件、连接件和配置是最基本的元素(√)
-
体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之前进行。(×)(需求分析之后,软件设计之前)
-
基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。(√)
-
层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。(×)
-
正交软件体系结构由组织层和线索的构件构成。(√)
-
SOA模型具有松散耦合、细粒度服务、标准化接口等特征。(×)(粗粒度,SOA是一个组件模型)
-
层次系统最广泛的应用是分层通信协议。(√)
-
MVC模式的中的M,V,C分别对应Model,View,Controller三种单词。
-
黑板系统主要由知识源、黑板和控制组件 组成。
-
什么是软件体系结构风格:软件体系结构风格是描述某一特定领域中系统组织方式的惯用模式。
-
请设计一个具体B/S结构登录模块的体系结构,并说明每层的作用:
答:该模块的B/S结构可分为三层:第一层:客户层(或表现层、界面层),第二层:业务逻辑层(或应用层、功能层、应用服务器层),第三层:数据层。
第一层只有浏览器,通过访问第二层的 页实现用户界面,即接受用户的名称、密码的输入,并向第二层传送用户名和密码,最后将登录结果显示出来;
第二层接受第一层的用户名和密码,并通过访问第三层判断用户合法性,最后将登录结果以 页形式返回给第一层;
第三层在数据库或文件中存储用户名和密码,并为第二层提供数据访问服务。
第4章 、特定领域的软件体系结构
1特定领域软件体系结构概述
- 特定领域软件体系结构(DSSA)的设计是系统级软件重用的主要研究内容之一
2 DSSA的定义及组成
- DSSA就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件框架。
- DSSA的定义:
- DSSA是软件构件的集合,以标准结构组合而成,对于一种特殊类型的任务具有通用性,可以有效地、成功地用于新应用系统的构建。在该定义中,构件是指一个抽象的具有特征的软件单元,它能为其他单元提供相应的服务。
- DSSA是问题元素和解元素的样本,同时给出了问题元素和解元素之间的映射关系。
- DSSA的特征
- 是对整个领域适度的抽象;
- 具有严格定义的问题域或解决方案域;
- 具备该领域固有的、典型的在开发过程中可重用元素;
- 具有普遍性,即可用于领域中某个特定应用的开发。
-
特定领域软件体系结构的双生命周期模型,如图:
7 基于特定领域软件体系结构的开发过程
-
基于DSSA的应用开发步骤及其相关的支持工具如下图:
-
DSSA和应用系统架构之间的关系,如图:
-
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!
-