没有合适的资源?快使用搜索试试~ 我知道了~
软件体系结构复习重点.docx
需积分: 10 19 下载量 184 浏览量
2019-05-13
12:30:11
上传
评论 4
收藏 617KB DOCX 举报
温馨提示
试读
14页
考试复习重点,软件工程必修课之一,软件体系结构,帮助需要的同学复习,未经授权不可转发。
资源推荐
资源详情
资源评论
软件体系结构复习重点
第 1 章 软件体系结构概论
1.软件危机的表现 :软件成本日益增长、开发进度难以控制、软件质量差、软件维护困难
2.软件危机的原因:用户需求不明确 、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高
3.如何克服软件危机:人们面临的不光是技术问题,更重要的是管理问题。管理不善必然导致失败。要提高软件
开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。在技术上,应该采用基于重用
的软件生产技术;在管理上,应该采用多维的工程管理模式。
4.构件的定义 :构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系
统;结构上,它是语义描述、通讯接口和实现代码的复合体。
5.构件模型的三个主要流派 :
(1).OMGObject Management Group , 对象 管 理 集 团 ) 的 CORBA (Common Object Request Broker
Architecture,通用对象请求代理结构)
(2).Sun 的 EJB(Enterprise Java Bean)
(3).Microsoft 的 DCOM(Distributed Component Object Model,分布式构件对象模型)。
6.构件管理:构件描述、构件分类与组织、人员及权限管理
(1)构件描述:构件模型是对构件本质的抽象描述,主要是为构件的制作与构件的重用提供依据
(2)构件分类与组织:关键字分类法、刻面分类法、超文本组织方法
(3)人员及权限管理:一般来讲,构件库系统可包括五类用户,即注册用户、公共用户、构件提交者、一般系
统管理员和超级系统管理员。
7.构件重用:检索与提取构件、理解与评价构件、修改构件、构件组装
(1)检索与提取构件:基于关键字的检索、刻面检索法、超文本检索法、其他检索方法
(2)理解与评价构件:构件的功能与行为、相关的领域知识、可适应性约束条件与例外情形、可以预见的修改
部分及修改方法
(3)修改构件:为了减少构件修改的工作量,要求开发人员尽量使构件的功能、行为和接口设计更为抽象化、
通用化和参数化。
(4)构件组装:
基于功能的组装技术:基于功能的组装技术采用子程序调用和参数传递的方式将构件组装起来。它要求库
中的构件以子程序/过程/函数的形式出现,并且接口说明必须清晰。当使用这种组装技术进行软件开发时,开发人
员首先应对目标软件系统进行功能分解,将系统分解为强内聚、松耦合的功能模块。然后根据各模块的功能需求
提取构件,对它进行适应性修改后再挂接在上述功能分解框架中。
基于数据的组装技术:首先根据当前软件问题的核心数据结构设计出一个框架,然后根据框架中各结点的
需求提取构件并进行适应性修改,再将构件逐个分配至框架中的适当位置。此后,构件的组装方式仍然是传统的
子程序调用与参数传递。这种组装技术也要求库中构件以子程序形式出现,但它所依赖的软件设计方法不再是功
能分解,而是面向数据的设计方法,例如 Jackson 系统开发方法。
面向对象的组装技术:·构造法:在子类中引进基类的对象作为子类的成员变量,然后在子类中通过成员变
量重用基类的属性和方法。 ·子类法:将新子类直接说明为库中基类的子类,通过继承和修改基类的属性与行为
完成新子类的定义。
体系结构重用属于设计重用,比代码重用更抽象。由于软件体系结构是系统的高层抽象,反映了系统的主要组成
元素及其交互关系,因而较算法更稳定,更适合于重用。
软件重用是指软件在环境和功能发生变化后,可通过局部修改和重组,保持整体稳定性,以适应新要求。
8.软件体系结构的定义:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素
的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的
组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
9.软件体系结构的意义:体系结构是风险承担者进行交流的手段、体系结构是早期设计决策的体现、软件体系结构
是可传递和可重用的模型。软件体系结构的核心模型由 5 中元素组成:构件、连接件、配置、端口和角色。其中
构件、连接件和配置是最基本的元素。
第 2 章 软件体系结构建模
1.软件体系结构建模的种类:结构模型、框架模型、动态模型、过程模型、功能模型
(1)结构模型:这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结
构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质等。 研
究结构模型的核心是体系结构描述语言。
(2)框架模型:框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要
以一些特殊的问题为目标建立只针对和适应该问题的结构。
(3)动态模型:动态模型是对结构或框架模型的补充,研究系统的“大颗粒”的行为性质。例如,描述系统的重新
配置或演化。动态可以指系统总体结构的配置、建立或拆除通信通道或计算的过程。
(4)过程模型:过程模型研究构造系统的步骤和过程。结构是遵循某些过程脚本的结果。
(5)功能模型:功能模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。功能模型可以看作
是一种特殊的框架模型。
2.“4+1”模型概述:Kruchten 在 1995 年提出了“4+1”的视图模型。“4+1”视图模型从 5 个不同的视角包括逻
辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面, 5
个视图结合在一起才能反映系统的软件体系结构的全部内容。
(1)逻辑视图:逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成
一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个
系统的各个不同部分的通用机制和设计元素。
(2)开发视图:也称模块视图,主要侧重于软件模块的组织和管理。件可通过程序库或子系统进行组织,这样,
对于一个软件系统,就可以由不同的人进行开发。
(3)进程视图:侧重于系统的运行特性,主要关注一些非功能性的需求。进程视图强调并发性、分布性、系统集
成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构。它也定义逻辑视图中的各个类的操作具体是
在哪一个线程中被执行的。
(4)物理视图:主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。解决系统拓扑
结构、系统安装、通讯等问题。
(5)场景:可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的
需求抽象。
逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。
3.软件体系结构生命周期包含哪些?
软件体系结构的建立应位于需求分析之后,软件设计之前。
(1)需求分析阶段:需求分析阶段的任务是根据需求,决定系统的功能,在此阶段,设计者应对目标对象和环境
作细致深入的调查,收集目标对象的基本信息,从中找出有用的信息,这是一个抽象思维、逻辑推理的过程,其
结果是软件规格说明。
(2)建立软件体系结构阶段:在这个阶段,体系结构设计师主要从结构的角度对整个系统进行分析,选择恰当的
构件、构件间的相互作用关系以及对它们的约束,最后形成一个系统框架已满足用户需求,为设计奠定基础。
(3)设计阶段:设计阶段主要是对系统进行模块化并决定描述各个构件间的详细接口、算法和数据类型的选定,
对上支持建立体系结构阶段形成的框架,对下提供实现基础。
(4)实现阶段:将设计阶段设计的算法及数据结构类型进行程序语言表示,满足设计体系结构和需求分析的要求
从而得到满足设计需求额目标系统。
第 3 章 软件体系结构风格
1.软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义了一个系统家族,
即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何
将这些构件和连接件组合起来的。体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将
各个模块和子系统有效地组织成一个完整的系统。
2.管道和过滤器:每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这
个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。这里的构件被
称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。
管道和过滤器风格的优点:
(1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;
(2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;
(3)支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;
(4)系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;
(5)允许对一些如吞吐量、死锁等属性的分析;
(6)支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。
管道和过滤器风格的缺点:
(1)通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计
者必须将每个过滤器看成一个完整的从输入到输出的转换;
(2)不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重;
(3)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能
下降,并增加了编写过滤器的复杂性。
3.数据抽象和面向对象组织:这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封
装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管
理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。
面向对象系统的优点:
(1)因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象;
(2)设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。
面向对象系统的缺点:
(1)为了使一个对象和另一个对象通过过程调用等进行交互,必须知道对象的标识。只要一个对象的标识改变
了,就必须修改所有其他明确调用它的对象;
(2)必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。例如,如果 A 使用了对象 B,C 也
使用了对象 B,那么,C 对 B 的使用所造成的对 A 的影响可能是料想不到的。
4.基于事件的隐式调用:构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程
在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的
触发就导致了另一模块中的过程的调用。
基于事件的隐式调用的优点:
(1)为软件重用提供了强大的支持。当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中。
(2)为改进系统带来了方便。当用一个构件代替另一个构件时,不会影响到其它构件的接口。
基于事件的隐式调用的缺点:
(1)构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其它构件是否会响应它。而且即使它
知道事件注册了哪些构件的构成,它也不能保证这些过程被 调用的顺序。
(2)数据交换的问题。有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓
库进行交互。在这些情况下,全局性能和资源管理便成了问题。
(3)既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。
5.分层系统:层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些
精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机(在另一些层次
系统中层是部分不透明的)。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。
分层系统的优点:
剩余13页未读,继续阅读
资源评论
Wyake
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功