您好,欢迎访问三七文档
题型:填空、判断、简答(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、质量属性场景及质量属性战术。场景就是对某个实体与系统的一次交互的简要描述,质量属性场景是一个有关质量属性的特定需求,由六部分组成:刺激源:某个生成该刺激的实体(人、计算机系统或任何其他激励器)。刺激:该刺激是当刺激到达系统时需要考虑的条件。环境:该刺激在某些条件内发生。当刺激发生时,系统可能处于过载,或者正在运行,也可能是其他情况。制品:某个制品被刺激。这可能是整个系统,也可能是系统的一部分。响应:该响应是在刺激到达后所采取的行动。响应度量:当响应发生时,应该能够以某种方式对其进行度量,以对需求进行测试。质量属性战术:1.可用性战术恢复和修复是可用性的重要方面,为了阻止错误发展成故障,至少能够把错误限制在一定的范围内,从而使修复成为可能。1错误检测命令/响应、心跳和异常2错误恢复错误恢复由准备恢复和修复系统两部分组成。⑴表决。⑵主动冗余(热重启)。⑶被动冗余(暖重启/双冗余/三冗余)⑷备件。⑸Shadow操作。⑹状态再同步。⑺检查点/回滚。3错误预防⑴从服务中删除。⑵事务处理。⑶进程监视器。2.可修改性战术可修改战术的目标是控制实现、测试和部署变更的时间和成本。1局部化修改。目标是在设计期间为模块分配责任,以把预期的变更限制在一定范围内。⑴持语义的一致性。⑵预期期望的变更。⑶泛化该模块。⑷限制可能的选择。2防止连锁反应。修改所产生的一个连锁反应就是需要改变该修改并没有直接影响到的模块。⑴息隐藏。⑵持现有的接口。⑶制通信路径。⑷仲裁者的使用。3推迟绑定时间。3.性能战术性能战术的目标就是对在一定的时间限制内到达系统的事件生成一个响应。事件到达后系统或者对该事件进行处理,或者由于某些原因处理被阻塞。下面是产生响应时间的两个基本因素:资源消耗和闭锁时间资源消耗:包括CPU、数据存储、网络通信带宽和内存,但它也可以包括由设计中的特定系统所定义的实体。例如必须对缓冲器进行管理,并且对关键部分的访问必须是按顺序进行的。事件可以是各种类型的,每种类型的事件都经过了一个处理序列。闭锁时间:可能会由于资源争用、资源不可用或者计算依赖于另外一个还不能得到的计算结果而导致计算不能使用某个资源,从而阻止了计算的进行。●资源争用。●资源的可用性。●对其他计算的依赖性。1资源需求。事件流是资源需求的源。需求的两个特征是:资源流中的事件之间的时间(在事件流中多长时间进行一次请求);每个请求所消耗的资源是多少。减少等待时间的一个战术就是减少处理一个事件流所需要的资源。方法如下:●提高计算效率。●减少计算开销。●管理事件率。●控制采样频率。2资源管理3资源仲裁4.安全性战术1抵挡攻击对用户身份进行验证、对用户进行授权、维护数据的机密性、维护完整性、限制暴露的信息、限制访问2检测攻击对攻击可以进行人工检测或者是使用ID3从攻击中恢复恢复系统和数据、攻击者识别5.可测试性战术目标:允许在完成软件开发的一个增量后,较轻松的对软件进行测试1管理测试的输入和输出记录/回放、将接口与现实分离、特化访问路线/接口2内部监视6.易用性战术1运行时-在系统运行的时候采取行动支持易用性2设计时-考虑界面设计的频繁修改的特性3、软件体系结构的描述方法、描述标准;典型的软件体系结构描述语言。方法:1.图形表达工具2.模块内连接语言3.基于软构件的系统描述语言4.软件体系结构描述语言标准:IEEEP1471Rational典型的:1.WRIGHTWRIGHT语言旨在精确描述系统结构与抽象行为、体系结构风格的描述以及系统一致性完整性的验证等。根据WRIGHT语言作者的观点,一种体系结构描述语言应该至少提供两项内容:(1)无二义性的精确语义,并能够进行不一致性的检测。(2)一套支持系统属性推理的机制。还有一个目标是满足架构师自身的词汇表达要求。WRIGHT专注于抽象表述以及为架构师提供结构化表达系统信息的方法。2.C2C2的特色在于支持构件重置与图形他用户接口(GUI)重用。如今用户接口占据了软件的很大一部分并且重用度相当有限。C2着眼于构件的重用尤其是系统的进化——系统在运行时的动态改变。因此,C2的设计目标基于如下考虑:构件可能用不同的编程语言实现构件可能在同一时刻运行在分布、异构的并且没有共享地址空间的环境中运行时的结构可能发生改变可能发生的多用户交互可能使用多种工具集涉及多种媒体类型等。3.DarwinDarwin是一种陈述性语言,它为一类系统提供通用的说明符号,这类系统由使用不同交互机制的不同构件组成。它着眼于描述分布式软件系统。近来关于分布式系统维护的相关研究表明采用分布式构造可以降低构件的复杂度。但是,这一优势还不足以抵消由分布式结构带来的缺点以及结构复杂度的增加。Darwin的设计出发点正是要解决这样的问题。此外,Darwin同样支持动态结构说明。4.ACMEACME是一种交互式ADL,旨在为开发工具与环境提供交互格式。设计中关键点就在于综合各种独立开发的ADL工具,为交换结构信息提供媒介格式。除了交互这一基本目标之外,设计ACME还考虑了如下目标:(1)为实现结构分析与可视化提供表达模式。(2)为开发新的特定领域的ADL提供基础。(3)为体系结构信息表达提供标准。(4)这种语言必须便于读写表达。此外,ACME通过重表达的概念来支持分层描述。任意的构件与连接器都可以利用更详尽、更低层的描述被重新表达。5.xADL基于XML的体系结构描述语音xADL为架构师提供了更好的拓展性。xADL将用于快速地构造新的ADL。6.UMLUML是一种用可视化方法对软件系统进行描述、实施和说明的标准语言。支持用不同实现技术进行的软件开发全过程。4、软件产品线的定义,软件产品线在软件开发过程中的作用,软件产品线的双生命周期。软件产品线是一个适合专业的软件开发组织的软件开发方法,能有效地提高软件生产率和质量、缩短开发时间、降低总开发成本;也是一个新兴的、多学科交叉的研究领域。软件产品线是最大程度的软件重用,可以有效地降低成本、缩短产品面世时间、提高软件质量。双生命周期:最初的和最简单的软件产品线开发过程的双生命周期模型分成两个重叠的生命周期:领域工程和应用工程。两个周期内部都分成分析、设计和实现三个阶段。领域工程阶段有以下主要任务。领域分析:利用现有系统的设计、体系结构和需求建立领域模型。领域设计:用领域模型确定领域/产品线的共性和可变性,为产品线设计体系结构。领域实现:基于领域体系结构开发领域可重用资源(构件、文档、代码生成器)。应用工程在领域工程结果的基础上构造新产品。应用工程需要根据每个应用独特的需求,经过以下阶段,生成新产品。需求分析:将系统需求与领域需求比较,划分成领域公共需求和独特需求两部分,得出系统说明书。系统设计:在领域体系结构基础上,结合系统独特需求设计应用的软件体系结构。系统实现:遵照应用体系结构,用领域可重用资源实现领域公共需求,用定制开发的构件满足系统独特需求,构建新的系统。应用工程将产品线资源不能满足的需求返回给领域工程以检验是否将之合并入产品线的需求中。领域工程从应用工程中获得反馈或结合新产品的需求进入又一次周期性发展,称此为产品线的演化。SEI将产品线的基本活动分为三部分,核心资源开发(即领域工程)、产品开发(即应用工程)和管理。SEI模型特点:◎循环重复是产品线开发过程的特征,也是核心资源开发、产品线开发以及核心资源和产品之间协作的特征;◎核心资源开发和产品开发没有先后之分;◎管理活动协调整个产品线开发过程的各个活动,对产品线的成败负责;◎核心资源开发和产品开发是两个互动的过程,三个活动和整个产品线开发之间也是双向互动的。双生命周期模型图5、各种软件体系结构风格的特点、优点及缺点。A、管道过滤器风格特点及优点:(1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;(2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;(3)支持软件
本文标题:体系结构重点及答案
链接地址:https://www.777doc.com/doc-2707819 .html