收藏 分销(赏)

体系结构重点及答案.docx

上传人:a199****6536 文档编号:9901881 上传时间:2025-04-12 格式:DOCX 页数:36 大小:132.36KB 下载积分:12 金币
下载 相关 举报
体系结构重点及答案.docx_第1页
第1页 / 共36页
体系结构重点及答案.docx_第2页
第2页 / 共36页


点击查看更多>>
资源描述
体系结构重点及答案 36 2020年4月19日 文档仅供参考,不当之处,请联系改正。 题型:填空、判断、简答(30分)、综合应用(2x15分) 在第11章中以下四题选考两题: ① ADD基于体系结构的设计与普通系统结构设计的区别 普通体系结构设计方法是先按功能划分模块,后看系统满足相应质量,即以功能为主要矛盾,质量为次要矛盾来设计软件; ADD是将模块分解过程建立在软件必须满足的质量属性之上,再把功能作为模块的实例化来把功能附加在模块上。即先满足质量,在对功能进行分配。即以质量为主要矛盾, 功能为次要矛盾来进行体系结构设计。 ② ADD体系结构的设计步骤 0. 样本输入。系统要满足的功能、质量及受到的限制。 1. 选择要分解的模块。 ① 从整个系统开始。系统à子系统à模块 首先要分解的就是系统本身,它是最大的等待分解的模块。 ① 进行分解时,要求的所有输入都应该是可获得的 限制条件、功能需求、质量需求。 2. 根据下列步骤对模块进行求精: a. 从具体的质量场景和功能需求集合中选择构架驱动因素。先找到比较重要的功能、重要的质量场景及重要的限制条件,可是个数不能太多。 b. 选择或创立满足构架驱动因素的构架模式,确定所用战术需要的子模块。 c. 实例化模块并根据用例分配功能,使用多个视图进行表示。(把功能分配到模块上,实现功能的划分。) d. 定义子模块的接口。(确定各模块以何种方式进行交互) e. 验证用例和质量场景并对其进行求精,使它们成为子模块的限制。 3. 对需要进一步分解的每个模块重复上述步骤。这样递归的过程一般不超过2~3步。 ③ ATAM评估方法的基本步骤 a) 描述ATAM方法、 b) 描述商业动机、 c) 描述体系结构、 d) 确定体系结构方法、 e) 生成质量属性效用树、 f) 分析体系结构方法、 g) 讨论和分级场景、 h) 分析体系结构方法(是第六步的重复)、 i) 描述评估结果。 ④ 从哪些方面评估软件体系结构,为什么要评估软件体系结构 (1)性能是指系统的影响能力,即要经过多长时间才能对某个事件作出响应,或者在某段事件内系统所能处理的事件的个数。 (2)可靠性是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。 (3)可用性是系统能够正常运行的时间比例。经常见两次故障间的时间长度或在出现故障时系统能够恢复正常的速度来表示。 (4)安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。 (5)可修改性是指能够快速的以较高的性能代价比对系统进行变更的能力。 (6)功能性是系统所能完成所期望的工作的能力。 (7)可变性是指体系结构经扩充或变更而成为新体系结构的能力。 (8)可集成性是指系统能与其它系统协作的程度 (9) 互操作性是指与其它环境或者系统本身相互作用的能力。 理由:所谓软件体系结构的分析评估,就是事先经过代价低廉的评估活动来识别软件结构中存在的潜在风险,找出软件体系结构中影响系统质量的主要因素及改进措施,并在此基础上检验软件的质量需求是否在具体设计中得到实现,并预见未来软件质量。 软件体系结构在软件开发和管理中扮演者越来越重要的角色,软件体系结构设计对软件质量有着至关重要的影响,对此最终确保系统的质量有重要的意义。软件体系结构评估,是对系统的某些值的关心的属性进行评估和判断。评估的结果可用于确认潜在的风险,并检查设计阶段系统需求的质量,在系统被实际构造之前,预测其属性质量。 1、 软件体系结构的定义,影响软件体系结构的因素;软件体系结构在软件系统中的作用。 软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。(软件体系结构是某个软件或计算系统的一个或多个结构,它们由软件元素、这些元素的外部可见属性以及这些元素之间的关系组成。) 因素:系统涉众的影响,受开发组织的影响,受设计师的素质和经验的影响,受技术环境的影响 作用:1.规范软件开发的基本架构;2.便于开发人员与用户的沟通;3.模块化、层次化设计,有利于减少返工,提高效率;4.便于系统开发前、后期的筹备与服务。 2、质量属性场景及质量属性战术。 场景就是对某个实体与系统的一次交互的简要描述,质量属性场景是一个有关质量属性的特定需求,由六部分组成: n 刺激源:某个生成该刺激的实体(人、计算机系统或任何其它激励器)。 n 刺激:该刺激是当刺激到达系统时需要考虑的条件。 n 环境:该刺激在某些条件内发生。当刺激发生时,系统可能处于过载,或者正在运行,也可能是其它情况。 n 制品:某个制品被刺激。这可能是整个系统,也可能是系统的一部分。 n 响应:该响应是在刺激到达后所采取的行动。 n 响应度量:当响应发生时,应该能够以某种方式对其进行度量,以对需求进行测试。 质量属性战术: 1.   可用性战术  恢复和修复是可用性的重要方面,为了阻止错误发展成故障,至少能够把错误限制在一定的范围内,从而使修复成为可能。 1>     错误检测 命令/响应、心跳和异常 2>     错误恢复 错误恢复由准备恢复和修复系统两部分组成。 ⑴表决。 ⑵主动冗余(热重启)。 ⑶被动冗余(暖重启/双冗余/三冗余) ⑷备件。 ⑸Shadow操作。 ⑹状态再同步。 ⑺检查点/回滚。 3>     错误预防 ⑴从服务中删除。 ⑵事务处理。 ⑶进程监视器。 2.       可修改性战术 可修改战术的目标是控制实现、测试和部署变更的时间和成本。     1> 局部化修改。目标是在设计期间为模块分配责任,以把预期的变更限制在一定范围内。 ⑴ 持语义的一致性。     ⑵预期期望的变更。     ⑶泛化该模块。    ⑷限制可能的选择。 2> 防止连锁反应。修改所产生的一个连锁反应就是需要改变该修改并没有直接影响到的模块。 ⑴ 息隐藏。 ⑵ 持现有的接口。 ⑶ 制通信路径。 ⑷ 仲裁者的使用。 3>推迟绑定时间。 3.       性能战术 性能战术的目标就是对在一定的时间限制内到达系统的事件生成一个响应。事件到达后系统或者对该事件进行处理,或者由于某些原因处理被阻塞。下面是产生响应时间的两个基本因素:资源消耗和闭锁时间 资源消耗:包括CPU、数据存储、网络通信带宽和内存,但它也能够包括由设计中的特定系统所定义的实体。例如必须对缓冲器进行管理,而且对关键部分的访问必须是按顺序进行的。事件能够是各种类型的,每种类型的事件都经过了一个处理序列。 闭锁时间:可能会由于资源争用、资源不可用或者计算依赖于另外一个还不能得到的计算结果而导致计算不能使用某个资源,从而阻止了计算的进行。 ●     资源争用。 ●     资源的可用性。 ●     对其它计算的依赖性。 1>     资源需求。事件流是资源需求的源。需求的两个特征是:资源流中的事件之间的时间(在事件流中多长时间进行一次请求);每个请求所消耗的资源是多少。 减少等待时间的一个战术就是减少处理一个事件流所需要的资源。方法如下: ●     提高计算效率。 ●     减少计算开销。 ●     管理事件率。 ●     控制采样频率。 2> 资源管理 3> 资源仲裁 4. 安全性战术 1>抵挡攻击 对用户身份进行验证、对用户进行授权、维护数据的机密性、维护完整性、限制暴露的信息、限制访问 2>检测攻击 对攻击能够进行人工检测或者是使用ID 3>从攻击中恢复 恢复系统和数据、攻击者识别 5. 可测试性战术 目标:允许在完成软件开发的一个增量后,较轻松的对软件进行测试 1> 管理测试的输入和输出 记录/回放、将接口与现实分离、特化访问路线/接口 2>内部监视 6. 易用性战术 1>运行时-在系统运行的时候采取行动支持易用性 2>设计时-考虑界面设计的频繁修改的特性 3、 软件体系结构的描述方法、描述标准;典型的软件体系结构描述语言。 方法:1.图形表示工具 2.模块内连接语言 3.基于软构件的系统描述语言 4.软件体系结构描述语言 标准:IEEE P1471 Rational 典型的:1.WRIGHT WRIGHT语言旨在精确描述系统结构与抽象行为、体系结构风格的描述以及系统一致性完整性的验证等。根据WRIGHT语言作者的观点,一种体系结构描述语言应该至少提供两项内容: (1)无二义性的精确语义,并能够进行不一致性的检测。 (2)一套支持系统属性推理的机制。还有一个目标是满足架构师自身的词汇表示要求。WRIGHT专注于抽象表述以及为架构师提供结构化表示系统信息的方法。 2.C2 C2的特色在于支持构件重置与图形她用户接口(GUI)重用。如今用户接口占据了软件的很大一部分而且重用度相当有限。C2着眼于构件的重用特别是系统的进化——系统在运行时的动态改变。 因此,C2的设计目标基于如下考虑: l 构件可能用不同的编程语言实现 l 构件可能在同一时刻运行在分布、异构的而且没有共享地址 空间的环境中 l 运行时的结构可能发生改变 l 可能发生的多用户交互 l 可能使用多种工具集 l 涉及多种媒体类型等。 3.Darwin Darwin是一种陈述性语言,它为一类系统提供通用的说明符号,这类系统由使用不同交互机制的不同构件组成。它着眼于描述分布式软件系统。 l 近来关于分布式系统维护的相关研究表明采用分布式构造能够降低构件的复杂度。 l 可是,这一优势还不足以抵消由分布式结构带来的缺点以及结构复杂度的增加。Darwin的设计出发点正是要解决这样的问题。 另外,Darwin同样支持动态结构说明。 4.ACME ACME是一种交互式ADL,旨在为开发工具与环境提供交互格式。设计中关键点就在于综合各种独立开发的ADL工具,为交换结构信息提供媒介格式。除了交互这一基本目标之外,设计ACME还考虑了如下目标: (1)为实现结构分析与可视化提供表示模式。 (2)为开发新的特定领域的ADL提供基础。 (3)为体系结构信息表示提供标准。 (4)这种语言必须便于读写表示。 另外,ACME经过重表示的概念来支持分层描述。任意的构件与连接器都能够利用更详尽、更低层的描述被重新表示。 5.xADL 基于XML的体系结构描述语音xADL为架构师提供了更好的拓展性。xADL将用于快速地构造新的ADL。 6.UML UML是一种用可视化方法对软件系统进行描述、实施和说明的标准语言。 支持用不同实现技术进行的软件开发全过程。 4、软件产品线的定义,软件产品线在软件开发过程中的作用,软件产品线的双生命周期。 软件产品线是一个适合专业的软件开发组织的软件开发方法,能有效地提高软件生产率和质量、缩短开发时间、降低总开发成本;也是一个新兴的、多学科交叉的研究领域。 软件产品线是最大程度的软件重用,能够有效地降低成本、缩短产品面世时间、提高软件质量。 双生命周期:最初的和最简单的软件产品线开发过程的双生命周期模型分成两个重叠的生命周期:领域工程和应用工程。两个周期内部都分成分析、设计和实现三个阶段。 领域工程阶段有以下主要任务。 u 领域分析:利用现有系统的设计、体系结构和需求建立领域模型。 u 领域设计:用领域模型确定领域/产品线的共性和可变性,为产品线设计体系结构。 u 领域实现:基于领域体系结构开发领域可重用资源(构件、文档、代码生成器)。 应用工程在领域工程结果的基础上构造新产品。 应用工程需要根据每个应用独特的需求,经过以下阶段,生成新产品。 u 需求分析:将系统需求与领域需求比较,划分成领域公共需求和独特需求两部分,得出系统说明书。 u 系统设计:在领域体系结构基础上,结合系统独特需求设计应用的软件体系结构。 u 系统实现:遵照应用体系结构,用领域可重用资源实现领域公共需求,用定制开发的构件满足系统独特需求,构建新的系统。 应用工程将产品线资源不能满足的需求返回给领域工程以检验是否将之合并入产品线的需求中。 领域工程从应用工程中获得反馈或结合新产品的需求进入又一次周期性发展,称此为产品线的演化。 SEI将产品线的基本活动分为三部分,核心资源开发(即领域工程)、产品开发(即应用工程)和管理。 SEI模型特点: ◎循环重复是产品线开发过程的特征,也是核心资源开发、产品线开发以及核心资源和产品之间协作的特征; ◎ 核心资源开发和产品开发没有先后之分; ◎ 管理活动协调整个产品线开发过程的各个活动,对产品线的成败负责; ◎ 核心资源开发和产品开发是两个互动的过程,三个活动和整个产品线开发之间也是双向互动的。 双生命周期模型图 5、各种软件体系结构风格的特点、优点及缺点。 A、管道过滤器风格 特点及优点:   (1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;   (2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;   (3)支持软件重用。   (4)系统维护和增强系统性能简单。   (5)允许对一些如吞吐量、死锁等属性的分析;   (6)支持并行执行。 缺点: 1. 往往导致系统处理过程的成批操作。 2.不适合处理交互的应用。 3.因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作、这样就导致了系统性能下降,并增加了编写过滤器的复杂性。 B、 数据抽象和面向对象系统风格 特点: 信息隐藏,只经过接口与外界交互,内部的设计决策则被封装起来 隐藏数据表示,经过隐藏数据表示来增强抽象度,维护数据表示格式的完整性 模拟现实世界,对名词而不是对动词编程,每个对象也定义了它所能执行的动作,以及能够作用在它上面的动作 优点: 1.因为对象对其它对象隐藏它的表示,因此能够改变一个对象的表示,而不影响其它的对象; 2. 设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。 3.继承关系,实现代码级的重用。 缺点: 1 为了使一个对象和另一个对象经过过程调用等进行交互,必须知道对象的标识。只要一个对象的标识改变了,就必须修改所有其它显式调用它的对象。 2 必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。 3 继承往往使得设计变得复杂,引入的多层对象结构使得维护困难。 C、基于事件的系统风格(隐式调用)特点: 1.事件的触发者并不知道哪些构件会被这些事件影响。 2.这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用。 3.因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。 优点: 1. 为软件重用提供了强大的支持; 2. 为改进系统带来了方便; 缺点: 1. 构件放弃了对系统计算的控制; 2. 数据交换的问题; 3. 既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。 D、事件驱动风格 特点: 1.系统是由若干子系统或元素所组成的一个整体。 2.系统有一定的目标,各子系统在某一种消息机制的控制下,为了这个目标而协调行动。 3.在某一种消息机制的控制下,系统作为一个整体与环境相适应和协调 。 4.在一个系统的若干子系统中,必定有一个子系统起着主导作用,而其它子系统则处于从属地位。 5.任一系统和系统内的任一元素,都有一个事件收集机制和一个事件处理机制,经过这种机制与周围环境发生作用和联系。 优点: (1)便于重用。 (2)对事件的并发处理将提高系统性能; (3) 具有良好的可扩展性。 (4)定义了包含执行子系统和管理子系统的类层次结构,实现了对客户的透明。 (5)简化客户代码。 (6)使整个系统的设计更具有一般化。使用者能够很容易添加新的子系统。 (7)健壮性:一个构件出错将不会影响其它构件。 缺点: (1)构件削弱了自身对系统计算的控制能力。 (2)事件驱动风格中存在数据交换问题。大量数据的交互往往无法由事件携带,从而带来性能问题。 (3)存在的另一个问题是数据共享。 (4)系统中各个对象的逻辑关系变得更加复杂。 E、分层系统风格 特点:基于可增加抽象层的设计 优点: 1. 支持基于抽象程度递增的系统设计,使设计者能够把一个复杂系统按递增的步骤进行分解; 2. 支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层; 3. 支持重用。 缺点: 1. 并不是每个系统都能够很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来; 2. 很难找到一个合适的、正确的层次抽象方法。 3. 跨层使用可能会损坏整个系统模型。 F、仓库系统(黑板)风格 特点: 当把整个问题分解成子问题时,各个子问题涵盖了不同的领域知识和解决方法。每一个子问题的解决需要不同的问题表示方式和求解模型。在多数情况下,找不到确定的求解策略。这与把问题分解成多个求解部分的功能分解形成对照。 优点: 1. 便于多客户共享大量数据,它们不用关心数据是何时出现的、谁提供的、怎样提供的。 2. 便于添加新的作为知识源代理的应用程序,也便于扩展共享的黑板数据结构。 3. 可重用的知识源。 4. 支持容错性和健壮性。 G、C2风格 特点: 1.系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起; 2.所有构件之间的通信是经过以连接件为中介的异步消息交换机制来实现的; 3.构件间相对独立,构件之间依赖性较少。 H、客户/服务器风格 特点: 客户端应用程序是针对一个小的、特定的数据集;对某一条记录进行封锁,而不是对整个文件进行封锁,因此保证了系统的并发性,并使网络上传输的数据量减到最少,从而改进了系统的性能。 优点: 1. C/S 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。 2. 系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都能够适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。 3. 在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个DBMS进行编码。将大的应用处理任务分布到许多经过网络连接的低成本计算机上,以节约大量费用。 缺点: 1.开发成本较高 2. 客户端程序设计复杂 3.信息内容和形式单一 4.用户界面风格不一,使用繁杂,不利于推广使用 5.软件移植困难 6.软件维护和升级困难 7. 新技术不能轻易应用 I、三层C/S结构风格 特点:表示层是图形化的、事件驱动的,功能层是过程化的,数据层是结构化和非过程的,三层进行明确分割,并在逻辑上独立。 优点: 1. 允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,能提高系统和软件的可维护性和可扩展性。 2. 允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;而且这些平台和各个组成部分能够具有良好的可升级性和开放性。 3.应用的各层能够并行开发,能够选择各自最适合的开发语言。 4.利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,为严格的安全管理奠定了坚实的基础。 缺点: 1. 三层C/S结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。 2. 设计时必须考虑三层间的通信方法、通信频度及数据量。这和提高各层的独立性一样是三层C/S结构的关键问题。 J、浏览/服务器(B/S)风格 特点:主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。从某种程度上来说,B/S结构是一种全新的软件体系结构。 优点: 1.基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。 2. B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。 缺点: 1.B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。 2. B/S体系结构的系统扩展能力差,安全性难以控制。 3. 采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。 4. B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。 K、公共对象请求代理体系结构风格(CORBA) 特点: 1.引入中间作为事务代理,完成客户机向服务对象方(Server)提出的业务请求; 2.实现客户与服务对象的完全分离,客户不需要了解服务对象的实现过程以及具体位置; 3.提供软总线机制,使得在任何环境下、采用任何语言开发的软件只要符合接口规范的定义,均能够集成到分布式系统中; 4.CORBA规范软件系统采用面向对象的软件实现方法开发应用系统,实现对象内部细节的完整封装,保留对象方法的对外接口定义。 L、正交软件体系结构风格 特点: 1.正交软件体系结构由完成不同功能的n(n > 1)个线索(子系统)组成; 2. 系统具有m(m > 1)个不同抽象级别的层; 3.线索之间是相互独立的(正交的); 4.系统有一个公共驱动层(一般为最高层)和公共数据结构(一般为最低层)。 优点: 1.结构清晰,易于理解。 2.易修改,可维护性强。 3.可移植性强,重用粒度大。 M、基于层次消息总线的体系结构风格(HMB) 特点:由构件模型、构建接口、消息总线、构建静态结构和构件动态行为组成。 优点:方便支持运行时刻的系统演化 N、异构结构风格 特点:一个完善的系统可能由各种各样的体系结构风格组成,具体的组成方法要依据系统需求和各种体系结构风格的优势来确定。 优点:帮助开发人员更好地理解整个系统和品质特征,能够恰当运用体系结构风格的系统。设计出的系统要满足需要的质量属性。 缺点:不能受限于某种体系结构的风格具体形式。 O、互连系统构成的系统及其体系结构(SIS)风格 特点:系统能够分为若干不同部分,每个部分作为单独的系统独立开发,整个系统经过一组互连系统实现,履行系统的职责是其之间相互通信。 优点: 1. 降低复杂性 2. 提高系统开发的并行性 3. 提高系统可维护性 缺点:资源管理开销增大,开发进度无法同步。 P、特定领域软件体系结构(DSSA)风格 特点: 1.一个严格定义的问题域和/或解决域 2.普遍性 3.对整个领域的合适程度的抽象 4.具备领域固定的、典型的在开发过程中可重用元素 优点: 1. 系统开发、维护的工作量大幅度减少,整个应用系统的构件重用程序相当大。 2. 便于系统开发的组织管理 3. 系统有较好的环境适应性 Q、面向服务的体系结构风格(SOA) 特点:是一个组件模型,服务之间定义良好的接口而将其联系起来。接口是采用中立的方式进行定义,所有的功能都定义成了独立的服务,服务之间经过交互、协调作业从而完成业务的整体逻辑,所有服务经过服务总线或流程管理器来连接服务和提高服务请求的路径。 优点:松散耦合,基于行业标准,可重用的服务,同步服务调用RPC方式,异步服务调用-文档方式,利用现有组件开发,数据访问服务,组合服务,共享的或企业的基础架构服务,细粒度服务,粗粒度服务 6、体系结构商业周期 软件体系结构(SA)是技术、商业和社会等诸多因素作用的结果,而软件SA的存在反过来又会影响技术、商业和社会环境,从而影响未来的SA。我们把这种相互影响的周期-------从环境到SA又返回到环境------称作SA商业周期。 7、激发模型 8、4+1 模型 n 1.功能视图是系统功能及其关系的抽象。 ¨ 功能视图由功能、关键系统抽象和领域元素组成。这种视图中,各部分之间有依赖关系和数据流关系。 ¨ 该视图的使用者是领域工程师、产品线设计师和系统的最终用户。 ¨ 这些风险承担者是从功能性、数据在各部分之间的流动、软件体系结构所应支持的功能性的变化等角度来考虑这一视图的。 2.并发视图 n 在部署复杂系统时,一般将该系统打包成一组进程或线程,并将这些进程或线程配置到各计算资源。在确定要创立哪些进程或线程、它们之间如何通信、怎样共享(或竞争)资源等问题时,并发视图是必不可少的步骤之一。 n 该视图的组成部分是进程和线程,它们经过数据流、事件、对共享资源的同步等进行交互。 n 该视图的使用者是关心系统部署、系统性能和可用性的人士以及负责系统集成或测试的人员。 n 该视图用于作出关于系统性能、可用性及其部署的推断。 n 在这一部分中,每个进程都被复制为3份,并群集为操作单元小组。操作单元中的每个进程都被分配给不同的处理器,但该视图有意未表示出这一信息。各个操作单元按照客户机服务器方式组织起来。 n 每个操作单元都由主地址空间(primaryaddressspace,简称PAS)进程和备用地址空间(standbyaddressspace,简称SAS)进程组成。 n 主地址空间进程经过数据管理消息向其辅助进程发送数据,从而实现备用地址空间进程与主地址空间进程的同步。如果主地址空间进程出现了故障,某个备用地址空间进程就会被提升为主地址空间进程。 n 要注意,该视图没有说明每个操作单元的功能,也没有说明进程是如何分配给各个处理器的。如前所述,这些信息是有意省略的。 3.开发视图 开发视图是开发人员所看到的视图。 n 它是作为仓库的源代码结构视图,由各个使用者(程序员或维护人员)创立、修改或管理。 n 该视图一般由文件和目录(虽然也有将所有源文件放入数据库之类的其它组织形式)组成,文件和目录之间主要是包含关系。 n 除了程序员和维护人员之外,开发视图的使用者还有项目经理和配置管理人员等。 n 风险承担者使用该视图考虑系统的可修改性/可维护性、对系统的开发及测试工作进行划分,并控制配置管理和系统的版本。 4.物理视图 u 物理视图描述了从硬件资源的角度来看系统是如何部署的。 u 如果系统小、功能简单,其物理视图同样也简单:可能所有的处理都是在一台计算机上完成的。 u 但对复杂的系统而言,可能要用到许多传感器、执行器、存储设备、网络及计算机。 u 该视图的组成部分是处理器、传感器、执行器和存储器。各部分之间的关系常常体现为网络或其它通信设备(如通信卫星或无线调制解调器)。 u 该视图的使用者是除了性能、可用性、可扩展性和安全性之外,还要兼顾系统交付、安装和升级(有些情况下,要在系统运行时进行升级)等工作的硬件或系统工程师。 u 逻辑视图。元素为“关键的抽象”,在面向对象中表示为对象或对象类。这是一个模块视图。 u 进程视图。该视图解决了功能的并发和分布问题。这是一个组件—连接器视图。 u 开发视图。该视图展示了软件模块、库、子系统和开发单元的组织。它是一个分配视图,将软件映射到了开发环境中。 u 物理视图。该视图将其它元素映射到了处理和通信节点上,它也是一个分配视图(有些人把它叫做部署视图)。 u 视图是在构建或分析软件体系结构时,分离问题的一种手段。 u 使用不同的视图,可使我们从不同的角度研究软件体系结构。 u 经常能够借助各种视图或者是各种视图的融合或重叠得到关于软件体系结构的有用信息。 u 选用能够表示软件体系结构重要信息的视图。 9、青鸟构建模型 青鸟构件库就是采用刻面分类方法对构件进行分类的,这些刻画包括以下内容: ◇ 使用环境 使用(包括理解/组装/修改)该构件时必须提供的硬件和软件平台(platform)。 ◇ 应用领域 构件原来或可能被使用到的应用领域(及其子领域)的名称。 ◇ 功能 在原有或可能的软件系统中所提供的软件功能集合。 ◇ 层次 构件相对于软件开发过程阶段的抽象层次,如分析、设计、编码等。 ◇ 表示方法 用来描述构件内容的语言形式或媒体,如源代码构件所用的编程语言环境等。 10、异构体系结构 所有的体系结构不但有很紧密的联系,而且在大多数情况下是被一起使用的。 对于一个实际的系统,甚至不能判断它是A风格、B风格还是C风格,因为没有足够的理由把它归为任何一种独立的体系结构风格。这种系统类型能够被称为复合系统,这种系统的构建模式被称为异构风格的集成。 1.“内外有别”模型 在该模型中,企业内部用户经过局域网直接访问数据库服务器,软件系统采用C/S体系结构;企业外部用户经过Internet访问Web服务器,经过Web服务器再访问数据库服务器,软件系统采用B/S体系结构。 优点:外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。 缺点:企业外部用户修改和维护数据时,速度较慢,较烦琐,数据的动态交互性不强。 2.“查改有别”模型 在该模型中,不论用户是经过什么方式(局域网或Internet)连接到系统,凡是需要执行维护和修改数据操作的,就使用C/S体系结构;如果只是执行一般的查询和浏览操作,则使用B/S体系结构。 “查改有别”模型体现了B/S体系结构和C/S体系结构的共同优点。 因为外部用户能直接经过Internet连接到数据库服务器,企业数据容易暴露给外部用户,给数据安全造成了一定的威胁。 上图展示了一个虚拟系统,它整合了许多体系结构风格。能够把整个系统当成一个分层系统(1)。这样它能够被分成两层:第1层是原始数据生成层,第2层是解释层。 n 在第1层,主要的组成部分是管道-过滤器(2)子系统。 (1)第1个过滤器中的数据能够被送到第2个过滤器中。 (2)当第2个过滤器收到数据时,将会产生相应的信息,然后将此信息传送到事件队列构件和服务提供对象构件中。 (3)当事件队列不为空时,它将会激发相应的对象来处理这个事件,并完成任务。这是一个典型的事件驱动(3)体系结构风格的例子。 (4)当服务提供对象构件接收到由第2个过滤器传来的信息时,它将把这些信息记录在信息库里。 u 它就像是在数据共享风格中的黑板(4) 。在这个信息库中,所有的信息、知识和规则被记录下来。 u 当“事件驱动”部分想要完成某些任务时,它可能需要从这个信息库里获取一些有用的信息,然后根据其中的规则完成正确的行动。 这部分能够被看成数据共享与反馈控制环风格(5)的结合。因为所有的数据在构成的信息库里被共享,其它部分能够从信息库中存储和获取数据。用户能够经过向信息库中记录新的数据来更新它。这也具有反馈控制环风格的特点。 n 在第2层解释器(6)中,来自第1层中的数据被解释。 (1)当解释数据时,构件必须知道上下文、解释规则和解释器的状态。因此这部分具有状态构件、规则构件和数据构件。 (2)当解释时产生的所有错误和程序缺陷被记录在数据库里。 n 最后,输出解释完毕的数据。 n 从这个例子中,能够看出一个完善的系统可能由各种各样的体系结构风格组成,具体的组成方法要依据系统需求和各种体系结构风格的优势来确定。 n 体系结构风格只是被广泛用于软件工程领域的一些常见词汇集,能帮助开发人员更好地理解整个系统和品质特征。 n 可是不能受限于某种体系结构的风格具体形式。 n 所设计的最好的系统不是特意包含“所谓的”结构体系风格,而是能够恰当运用体系结构风格的系统。设计出的系统要满足需要的质量属性。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服