文档库 最新最全的文档下载
当前位置:文档库 › 第9章 软件体系结构评估

第9章 软件体系结构评估

第9章 软件体系结构评估
第9章 软件体系结构评估

第9章软件体系结构评估

9.1 体系结构评估概述

关注质量属性:性能,可靠性(容错、健壮性),可用性,安全性,可修改性(可维护性、可扩展性、结构重组、可移植性),功能性,可变性,可集成性,互操作性。

敏感点:构件(关系)特性。权衡点:影响多个质量属性的特性。

风险承担者:表9-1

场景:对系统的交互的简短描述。刺激、环境、响应。

9.2 软件体系结构评估的主要方式

1.基于调查问卷或检查表:比较自由灵活,结果主观。

2.基于场景:ATAM、SAAM,特定于领域,要了解领域和软件体系结构。

3.基于度量:客观、量化,设计完才能进行,要十分了解体系结构。

4.比较:表9-2

9.3 A TAM评估方法

目标:理解体系结构关于软件系统的质量属性需求决策的结果。

9.3.1 A TAM评估的步骤(九个)

1.描述ATAM方法:向风险承担者介绍ATAM。

2.描述商业动机:表9-3

3.描述体系结构:表9-4

4.确定体系结构方法:保证关键需求按计划实现。

5.生成效用树:使质量属性需求具体化,图9-1

6.分析体系结构方法:结果是体系结构方法或风格的列表。捕获框架:表9-5,例如:表9-6

7.讨论和分级场景:讨论用例场景和改变场景(成长场景和考察场景),设置优先级。投票,如表9-7,表9-8。

8. 分析体系结构方法:最高优先级场景映射到体系结构。

9.描述评估结果:七点。P268

9.3.2 A TAM评估的阶段

两个阶段:第一阶段以体系结构为中心,第二阶段以风险承担者为中心。

1.第一阶段:小型会议,关注1-6步。

2.第二阶段:体系结构文档化,给风险承担者书面阅读。

3.风险承担者:各步不同,表9-9

4.日程安排:表9-10(主要活动不变)。

9.4 SAAM评估方法

比较简单易学,快速评估。

9.4.1 SAAM评估的步骤

六步,图9-2。

1.形成场景:集中讨论,提出与收集。

2.描述体系结构:以参加者理解的形式。

3.分类和优先级:直接场景,间接场景,对场景设置优先级。

4.间接场景单个评估:列出所做改动,估计变更代价。表9-11

5.评估相互作用:暴露功能分配、结构分解。

6.形成总体评估:总体的权衡和评价。

7.日程安排:表9-12。

9.4.2 SAAM评估实例

查找关键词。

1.定义场景和角色:两个角色,四个场景。

2.描述体系结构:方案1,图9-3。方案2,图9-4。

3.评估体系结构:介绍四个场景,比较(P278),评估结果:表9-13。

《软件架构评估》读书笔记

软件架构设计读书笔记 小李飞刀 --写在前面,软件架构评估是一个大型项目成功的保证,不管是否完全按照书中的操作来完成,但这总是一个必须的过程。老外的技术方面的书一般都很实在,在提出一定的事实和相应的理论基础后,一般就会列出些很具体的方法,可操作性都比较强,当然,其实其理论在我们看来也没什么高深之处,可能是思维方式和长期教育环境的不同造成的,在我看来,他们的理论就是对自己的观点或者方法的一个形而上的逻辑证明,但恰恰这就是最重要的,如果在逻辑上就不具有可推导性,具体的方法再怎么说得天花乱坠也没有可信度,另外翻译得也不错,不象有些书,根本就是外行瞎折腾,翻译出来只有鬼才看得懂,不如直接去看原版。 建议有空详读原文,我把这些摘录下来是希望能有所参照。 《软件架构评估》学习笔记 〈Evluating Software Architectures〉Authors: Paul Clements, Rick Kazman, Mark Klein 清华大学出版社孙学涛朱卫东赵凯译 概念: 架构方法:就是一组架构决策,各个架构决策互相协调,共同实现所期望的质量属性目标。 架构评估:架构来自许多离散的决策,而这些决策是可以被分析和审查的。

ATAM:架构权衡分析方法Architectures Trade-off Analysis Method ATAM方法步骤: 共4大部分,9个步骤

以上步骤并不是固定的,有时必须对评估规划做某些动态的更改,以容许人员或架构信息的改变。ATAM评估方法的的阶段: 评估小组各成员的角色及其职责

商业目标分析结果表: 系统质量属性列表:

软件体系结构总结

第一章:1、软件体系结构的定义 国内普遍看法: 体系结构=构件+连接件+约束 2、软件体系结构涉及哪几种结构: 1、模块结构(Module) 系统如何被构造为一组代码或数据单元的决策 2、构件和连接件结构(Component-And-Connector,C&C) 系统如何被设计为一组具有运行时行为(构件)和交互(连接件)的元素 3、分配结构(Allocation) 展示如何将来自于模块结构或C&C结构的单元映射到非软件结构(硬件、开发组和文件系统) 3、视图视点模型 视点(View point) ISO/IEC 42010:2007 (IEEE-Std-1471-2000)中规定:视点是一个有关单个视图的规格说明。 视图是基于某一视点对整个系统的一种表达。一个视图可由一个或多个架构模型组成 架构模型 架构意义上的图及其文字描述(如软件架构结构图) 视图模型 一个视图是关于整个系统某一方面的表达,一个视图模型则是指一组用来构建 4、软件体系结构核心原模型 1、构件是具有某种功能的可复用的软件结构单元,表示了系统中主要的计算元素和数据存储。 2.连接件(Connector):表示构件之间的交互并实现构件

之间的连接 特性:1)方向性2)角色3)激发性4)响应特征 第二章 1、软件功能需求、质量属性需求、约束分别对软件架构产生的影响 功能性需求:系统必须实现的功能,以及系统在运行时接收外部激励时所做出的行为或响应。 质量属性需求:这些需求对功能或整个产品的质量描述。 约束:一种零度自由的设计决策,如使用特定的编程语言。 质量原意是指好的程度,与目标吻合的程度,在软件工程领域,目标自然就是需求。 对任何系统而言,能按照功能需求正确执行应是对其最基本的要求。 正确性是指软件按照需求正确执行任务的能力,这无疑是第一重要的软件质量属性。质量属性的优劣程度反映了设计是否成功以及软件系统的整体质量。 系统或软件架构的相关视图的集合,这样一组从不同视角表达系统的视图组合在一起构成对系统比较完整的表达

软件体系结构试题库试题和答案

1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。答案:√ 依据页码:P4 2、可重用技术对构件库组织方法要求不仅要支持精确匹配,还要支持相似构件的查找。答案:√依据页码:P7 3、超文本组织方法与基于数据库系统的构件库组织方法不同,它基于全文检索技术。 4、答案:√依据页码:p8 5、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。 答案:√ 依据页码:P28 5、构件可以由其他复合构建和原子构件通过连接而成。() 答案:√ 依据页码:P37 6、体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色() 答案:√ 依据页码:P37 7、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。其中,构件、连接件和配置是最基本的元素() 答案:√ 依据页码:P37 8、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务() 答案:X 依据页码:P32、33 9、构件、连接件以及配置是体系结构的核心模型最基本的元素() 答案:√

10、HMB风格不支持系统系统自顶向下的层次化分解,因为它的构件比较简单。 答案:× 依据页码:P81 11、正交软件体系结构由组织层和线索的构件构成。 答案:√ 依据页码:P70 12、基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。 答案:√ 依据页码:P53 13、线索是子系统的特例,它由完成不同层次功能的构建组成,每一条线索完成整个系统中相对独立的一部分功能。() 答案:√ 依据页码:P70 14、层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。 答案:× 参考页码:P55 15、相交关系R是一个等价关系。 答案:√ 16、在软件设计中占据着主导地位的软件体系结构描述方法是图形表达工具。答案:√ 依据页码:104 17、Rapide是一种可执行的ADL,其目的在于通过定义并模拟基于事件的行为对分布式同步系统建模。 答案:×

软件体系结构期末大题

软件体系结构-期末大题

————————————————————————————————作者:————————————————————————————————日期: ?

1.基于构件的软件开发的优势是什么? 基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用2.尝试用自己的语言介绍Kruchten的“4+1”模型。 Kruchten 提出了一个"4+1"视图模型,从5个不同的视角包括包括逻辑试图、进程视图、物理视图、开发视图、场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5个试图结合在一起才能反映系统的软件体系结构的全部内容。

3.在希赛公司的一个财务管理系统,财务部要客户提供………… 4.不同的体系结构风格具有各自的特点、优劣和用途。试对管道-过滤器风格、事件驱动风格、分层系统、C2风格和基于消息总线的风格进行分析比较。P52-56 (1)管道和过滤器 特点: @使得软构件具有良好的隐蔽性和高内聚、低耦合的特点; @允许设计者将整个系统的输入输出行为看成是多个过滤器的行为的简单合成;

@支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来; @系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉; @允许对一些如吞吐量、死锁等属性的分析; @支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行?缺点:①通常导致进程成为批处理的结构。 ②不适合处理交互的应用。 ③因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。 (2)

软件架构-案例分析

票务系统架构案例分析?10.1 ATAM方法表述

?10.2 商业动机的表述 ?10.3 构架的表述 ?10.4 质量属性效用树 ?10.5 质量场景的构架分析 ?10.6 对系统构架的再分析 ?10.7 评审结论 10.1 ATAM方法表述 (1) 概述 ATAM(Architecture Tradeoff Analysis Method): SEI提出的一种软件构架评估方法。ATAM评估方法的主 要目的: 1) 提炼出软件质量属性需求的精确描述;

2) 提炼出构架设计决策的精确描述; 3) 评估这些构架设计决策,并判定其是否令人满意的实现了这些质量需求。 ATAM评估方法: 并非把每个可以量化的质量属性都进行详尽的分析,而是使众多的风险承担者(包括经理、开发人员、测试人员、用户、客户等等)都参与进来,由此而达到上述目标的。 ATAM是一种挖掘潜在风险,降低或者缓和现有风险的软件构架评估方法。因此,以下三点是评估中要特别注重的:风险、敏感点和权衡点。 (2) 构架涉众 ·普通用户 ·用户管理员

·票务管理员 ·开发人员 ·测试人员 (3) 评估步骤 ATAM主要分以下几个步骤: 1)ATAM描述; 2)商业动机表述; 3)软件构架表述;4) 确定构架方式; 5)生成效用树; 6)分析构架方式; 7)确定场景及其优先级; 8)进一步分析构架方式; 9)得出结论。

10.2 商业动机的描述 项目经理从开发组织和客户角度,来表述票务系统的商业目标,综合如下: ?从开发组织角度:开发一个模块性强、实时高效、界面良好、与外部其他系统兼容良好的系统,这使得开发组织能够把整个产品或某个模块卖给其他客户,同时由于良好的界面和业务处理效率而受市场欢迎。 ?从客户角度:系统容易操作,可维护性好、系统稳定、可以及时准确的处理用户的在线订票或查询业务。根据上述目标,质量属性可以划分为两类:高优先级质量属性: 1)性能 2)安全性 3)易用性

软件体系结构课后作业及答案

一次 就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。 答:使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量,大量使用构建,软件的灵活性和标准化程度可得到提高。 2、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的 答:参加了一个网页管理系统的开发,该项目重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。在过程中使用了代码的复用、设计结果的复用、分析结果的复用、测试信息的复用等。 3、为什么要研究软件体系结构? 答:1.软件体系结构是系统开发中不同参与者进行交流和信息传播的媒介。 2.软件体系结构代表了早期的设计决策成果。 3.软件体系结构可以作为一种可变换的模型。 4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成? 答:构件()可以是一组代码,如程序的模块;也可以是一个独

立的程序(如数据库的服务器); 连接件()是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等; 限制():用于对构件和连接件的语义说明。 5、在软件体系结构的研究和应用中,你认为还有哪些不足之处? 答:(1)缺乏同意的软件体系结构的概念,导致体系结构的研究范畴模糊。 (2)繁多,缺乏同意的的支持。 (3)软件体系结构研究缺乏统一的理论模型支持。 (4)在体系结构描述方便,尽管出现了多种标准规范或建议标准,但仍很难操作。 (5)有关软件体系结构性质的研究尚不充分,不能明确给出一个良体系结构的属性或判定标准,没有给出良体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用。(6)缺乏有效的支持环境软件体系结构理论研究与环境支持不同步,缺乏有效的体系结构分析、设计、方针和验证工具支持,导致体系结构应用上的困难。 (7)缺乏有效的体系结构复用方案。 (8)体系结构发现方法研究相对欠缺。 二次

软件体系结构的质量特性

软件体系结构的质量特性 摘要:众所周知的是,为了降低风险和减少构建软件系统的困难,人们在软件开发过程的早期应该首先考虑质量问题。此外,系统的结构驱动着整个开发过程。 备用的结构中非功能性质量需求的实现决定了选择衔接整个系统的便利结构。这一议题在可靠的变革的应用程序构建中非常重要。软件开发的思想并没有在这一重要阶段给与很多细节关注。这篇文章详述了软件体系结构的质量特性,并且介绍了一种基于??? ??????标准的技术。???模型的质量特性被精炼成为一种属性。而这种属性可被度量以增加体系结构的信息。我们的技术通过比较各自的质量属性的值从一组候选中挑选出适当的体系结构。并以一个关于监制系统技术应用程序为例说明。我们的方法有助于在体系结构分析过程中正确选择的决定。它可以很容易的被并入一般软件开发的过程或者一种特别的体系结构设计思想。 简介:在软件开发早期阶段以非功能需求为目标的质量需求极大的影响了软件系统的体系结构。但是,系统核心功能需求的提取在初始的系统结构的确定上扮演着重要的角色。另一方面,质量需求在软件设计阶段需要平衡 ??????? ?? ?●? ?????。仅仅在最近,精确的软件体系结构设计的重要性(并不是局限于笔纸图画符号的设计方式)为了可靠的系统结构而蓬勃的发展起来 ????????? ?? ?●??????? ?????? ?????? ? ?◆????? ??????。那些包括 ??????◆????? ????????●???? ????????? ???●???? ????????? ??◆????●??? ??? ? ??●????? ???◆?? 现代的应用软件需要一个早期的体系结构 的 定义来满足可维护行和可靠性之类的质量需求。这些对于在架构之下的软件系统全部功能性需求目标的完成是至关重要的。特殊的,使用网络服务的新的信息系统,比如基于网络的电子商务应用程序,没有过多关心软件工程的时

软件体系结构期末复习题概述

《软件体系结构》期末复习题 简答题: 1、软件体系结构建模的种类有: 结构模型、框架模型、动态模型、过程模型、功能模型。 2、“4+1”视图模型从5个不同的视角包括: 逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。 3、构件:是具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。 连接件:表示构件之间的交互。 配置:表示构件和连接件的拓扑逻辑和约束。 端口:表示构件和外部环境的交互点。 角色:定义了该连接交互的参与者。 4、画出“4+1”视图模型图,分析各部分的原理和功能。 5、软件体系结构风格: 是描述某一特定应用领域中系统组织方式的惯用模式。 6、软件体系结构 (Software Architecture) 软件体系结构以组件和组件交互的方式定义系统,说明需求与成品系统之间的对应关系,描述系统级别的可伸缩性、能力、吞吐量、一致性和兼容性等属性。软件体系结构由组件、连接件和属性组成。 7、分层系统的优点有: 1)支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解; 2)支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层; 3)支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可

以定义一组标准的接口,而允许各种不同的实现方法。 8、分层系统的缺点有: 1)并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来; 2)很难找到一个合适的、正确的层次抽象方法。 9、 B/S体系结构的优点有什么? 答:1)基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。 2)B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。 10、B/S体系结构的缺点有什么? 答:1)B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。 2)B/S体系结构的系统扩展能力差,安全性难以控制。 3)采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。 4)B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。 11、DSSA 答案:DSSA就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构 11、软件体系结构的动态性主要分为: 交互式动态性、结构化动态性、体系结构动态性等三类。 12、请画出基于构件的动态系统结构模型画。 13、软件产品线 产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定需求。这些系统遵循一个预描述的方式,在公共的核心资源(core assets)基础上开发的 14、SOA 即service-oriented architecture,面向服务架构。它是一个组件模型,它 将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接 口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于 实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的 系统中的服务可以以一种统一和通用的方式进行交互。 14、RIA

软件体系结构作业(完整版)

第一章: 1.根据自己的经验,谈谈对软件危机的看法。 软件危机是指软件生产方式无法满足迅速增长的计算机需求,开发和维护过程出现的一系列问题。 以下几个原因导致:(1)软件自身特点 (2)开发人员的弱点 (3)用户需求不明 (4)缺乏正确理论指导 (5)开发规模越来越大 (6)开发复杂度越来越高 可以通过软件生命周期的模型和软件工具的使用来缓解危机,通过程序自动化和软件工业化生产的方法实现软件标准化的目标,进一步缓解软件危机带来的影响。 软件危机有利有弊,除了带来许多麻烦,也给我们带来许多挑战,克服危机的过程,我们在技术上和创新上都有了一个提升,也算是间接为软件产业的发展做了贡献。 2.什么是软件重用,软件重用的层次可以分为哪几个级别? 软件重用:是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。可以分为三个层次: (1)代码重用(2)设计结果重用(3)分析结果重用 3.什么是可重用构件?相对于普通的软件产品,对可重用构件有何特殊要求? 可充用构件表示软件重用过程中,可重用的软件构件元素。 可重用构件的特殊要求: (1)可重用构件应该具有功能上的独立性与完整性; (2)可重用构件应该具有较高的通用性; (3)可重用构件应该具有较高的灵活; (4)可重用构件应该具有严格的质量保证; (5)可重用构件应该具有较高的标准化程。 4.基于构件的软件开发的优势是什么?基于构件的软件开发面临哪些挑战和困难? 优势:基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降 低了软件开发的费用 困难和挑战:没有可依据的参考,可用资源和环境缺乏,开发难度高,而各方面需求增长速度与日剧增,更新和升级的跟进是一个不小的挑战.此外,在同 一系统采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所 要面对的一个严峻的问题 挑战和困难:

最新软件体系结构期末试题+答案

1.以下关于系统性能的叙述中,不正确的是(17)。(17)A. 常见的Web服务器性能评估方法有基准测试、压力测试和可靠性测试B. 评价Web服务器的主要性能指标有最大并发连接数、响应延迟和吞吐量C. 对运行系统进行性能评估的主要目的是以更好的性能/价格比更新系统D. 当系统性能降到基本水平时,需要查找影响性能的瓶颈并消除该瓶颈 2某公司欲对其内部的信息系统进行集成,需要实现在系统之间快速传递可定制格式的数据包,并且当有新的数据包到达时,接收系统会自动得到通知。另外还要求支持数据重传,以确保传输的成功。针对这些集成需求,应该采用(21)的集成方式。(21)A. 远程过程调用 B. 共享数据库C. 文件传输 D. 消息传递 3 在RUP中采用“4+1”视图模型来描述软件系统的体系结构。在该模型中,最终用户侧重于(26),系统工程师侧重于(27)。(26)A. 实现视图 B. 进程视图 C. 逻辑视图 D. 部署视图(27)A. 实现视图 B. 进程视图 C. 逻辑视图 D. 部署视图 4.某银行系统采用Factory Method方法描述其不同账户之间的关系,设计出的类图如下所示。其中与Factory Method中的“Creator”角色相对应的类是(33);与“Product” 角色相对应的类是(34)。(33) A. Bank B. Account C. Checking D. Savings(34) A. Bank B. Account C. Checking 5.是一个独立可交付的功能单元,外界通过接口访问其提供的服务。(35)A. 面向对象系统中的对象(Object)B. 模块化程序设计中的子程序(Subroutine)C. 基于构件开发中的构件(Component)D. 系统模型中的包(Package) 6 软件的横向重用是指重用不同应用领域中的软件元素。(31)是一种典型的、原始的横向重用机制。(31)A. 对象 B. 构件 C. 标准函数库 D. 设计模式

论软件系统架构评估-系统架构师高级

论软件系统架构评估 摘要 2016年7月,我所在的公司为全国各级人民检察院开发了行贿犯罪档案互联网查询系统的产品,我担任系统架构师职务,主要负责软件架构和安全体系设计的工作,该项目是基于互联网,为单位、企业和个人等公众群体提供7*24小时的行贿犯罪档案查询申请服务,同时兼顾行贿犯罪预防宣传工作的网站系统。 本文结合作者的实践,以行贿犯罪档案互联网查询系统为例,论述软件系统的架构评估,首先分析软件系统架构评估中所普遍关注的质量属性,阐述其含义并分析本项目的风险点、敏感点和权衡点,然后详细说明本项目软件系统架构评估中采用的具体评估方法、实施过程和效果,最后总结本项目系统架构评估不足,同时提出一些解决办法。经过项目组近一年的努力,本产品已顺利开发完成,目前,已在浙江、云南等多个省上线使用,取得客户和公司领导的一致好评。 正文 对于软件系统来说,所关注的一个主要问题便是质量,尤其对于大规模的复杂软件系统更是这样。软件体系结构对于确保最终系统的质量有重要的意义。对一个系统的体系结构进行评估,是为了在系统被构建之前预测它的质量,并不需要精确的评估结果,通过分析体系结构对于系统质量的主要影响,进而提出SA的改进。因此,软件体系结构评估的目的是分析SA潜在的风险,并验证设计中提出的质量需求。 2015年7月,我所在的公司为全国各级人民检察院开发了行贿犯罪档案互联网查询系统的产品,我担任系统架构师职务,主要负责软件架构和安全体系设计的工作。本文结合作者的实践,以行贿犯罪档案互联网查询系统为例,论述软件系统的架构评估,首先分析软件系统架构评估中所普遍关注的质量属性,阐述其含义并分析本项目的风险点、敏感点和权衡点,然后详细说明本项目软件系统架构评估中采用的具体评估方法、实施过程和效果,最后总结本项目系统架构评估不足,同时提出一些解决办法。

软件体系结构评估

计算机093 09416612 恽小燕 软件体系结构评估 近几年来,软件体系结构(Software Architecture ,SA) 成为软件工程发展的一个热门方向。随着对软件体系结构研究的深入开展,逐渐形成了以软件系统的体系结构形式化描述、风格、建模、评估、软件产品线以及基于软件体系结构的软件开发过程等为主要研究内容的一个新领域。对一个系统的体系结构进行评估,是为了在系统被构建之前预测它的质量,并不需要精确的评估结果,通过分析SA体系结构对于系统质量的主要影响,进而提出改进。因此,软件体系结构评估的目的是分析潜在的风险,并检验设计中提出的质量需求。本文主要讨论三种有代表性的方法,它们可以指导评估人员成功地对系统的体系结构进行评估。这三种方法是: 基于场景的体系结构分析方法(SAAM) 、体系结构权衡分析方法(ATAM) 、体系结构级别上的软件维护预测(ALPSM) 。 1.主要的术语 (1)软件体系结构 定义:软件体系结构定义很多,本文采用为大多数人所接受的一种定义:“软件系统或计算系统的软件体系结构就是系统的一个或多个结构,它包括软件组件,这些组件的外部可见属性以及组件之间的相互关系”。这个定义仅仅关注系统内在的方面,而大多数的分析方法都是基于这个定义的。 这个定义具有如下的含义: ①SA 是一个或多个系统的抽象。SA 以抽象的组件(Com2ponent) 来表示系统,这些组件具有外部可见属性,并且相互之间是有联系的,这种联系有时被称为连接件(Connector) 。 ②SA 是一种可重用、可传递的系统抽象,而组件的细节部分不属于体系结构的范畴。 ③系统由多个结构组成,通常也称为视图(View) 。任何一个视图只能表示SA 的部分内容,而不是全部。 (2)质量属性 质量属性是一个组件或一个系统的非功能性特征。软件质量在IEEE 1061中定义,它体现了软件拥有所期望的属性组合的程度。另一个标准ISO/IEC Draft 91262 1定义了一个软件质量模型。依照这个模型,共有六种特征:功能性、可靠性、可用性、有效性、可维护性和可移植性,并且它们被分成子特征,根据各个软件系统外部的可见特征来定义这些属性。 (3)风险承担者( Stakeholder) 风险承担者就是对体系结构及根据该体系结构开发的系统有自己的要求的人员。风险承担者涉及面很广,可能是最终用户、开发人员、项目经理等。比较特殊的一类人员是项目决策者,即对评估结果感兴趣,并有权作出影响项目未来开发决策的人。体系结构设计师也是很特殊的一位风险承担者,一定要让他参加整个评估过程。 (4)场景( Scenario) 场景就是对于风险承担者与系统的交互的简短描述。比如用户可能会描述如何使用该系统来完成某项功能,这时场景就很类似于面向对象技术中的用例。在评估过程中,使用场景将那些模糊的不适用于分析的质量属性需求描述转换为具体的易于理解的表述形式。 评估技术在体系结构层次上有两类评估技术:询问和度量。本文讨论的评估方法都至少采用了这两种技术中的一种,或是两种技术的结合(常同时混合使用,如下文讨论的ATAM就是一种混合方法) 。 a.询问技术。生成一个体系结构将要问到的质量问题,可适用于任何质量属性,并可用于对开发中任何状态的任何部分进行调查。询问技术包括场景、调查表、检查列表。调查表是通用的、可运用于所有软件体系结构的一组问题;而检查列表则是对同属一个领域的多个系

软件体系结构作业___一__、二章

第一章 1.根据自己的经验,谈谈对软件危机的看法 答:软件危机是指软件生产方式无法满足迅速增长的计算机需求,开发和维护过程出现的一系列问题。 它主要由以下几个原因导致:(1)软件自身特点 (2)开发人员的弱点 (3)用户需求不明 (4)缺乏正确理论指导 (5)开发规模越来越大 (6)开发复杂度越来越高 可以通过软件生命周期的模型和软件工具的使用来缓解危机,通过程序自动化和 软件工业化生产的方法实现软件标准化的目标,进一步缓解软件危机带来的影 响。 软件危机有利有弊,除了带来许多麻烦,也给我们带来许多挑战,克服危机的过 程,我们在技术上和创新上都有了一个提升,也算是间接为软件产业的发展做了 贡献。 2.什么是软件重用,软件重用的层次可以分为哪几个级别 答:软件重用,是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。可以分为三个层次: (1)代码重用(2)设计结果重用(3)分析结果重用 3. 什么是可重用构件相对于普通的软件产品,对可重用构件有何特殊要求 答:可充用构件表示软件重用过程中,可重用的软件构件元素。 可重用构件的特殊要求: (1)可重用构件应该具有功能上的独立性与完整性; (2)可重用构件应该具有较高的通用性; (3)可重用构件应该具有较高的灵活; (4)可重用构件应该具有严格的质量保证; (5)可重用构件应该具有较高的标准化程。 4.基于构件的软件开发的优势是什么面临哪些困难和挑战 答:优势:基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,以更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降 低了软件开发的费用 困难和挑战:没有可依据的参考,可用资源和环境缺乏,开发难度高,而各方面需求 增长速度与日剧增,更新和升级的跟进是一个不小的挑战.此外,在同一系统采用多 个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻的问 题 5.描述三种应用最为广泛的构件技术规范COM、CORBA和EJB各自的特点 答:COM:COM无需重新编译,对象就可以增添新的功能,还能够透明地向另一个过程或另一台机器上的对发送RPC调用; CORBA:CORBA用IDL来描述对象接口,可以满足异种语言间的通信问题。

软件体系结构期末试题答案

精品文档服务器性常见的Web17)。(17)A. 1.以下关于系统性能的叙述中,不正确的是(服 务器的主要性能指标有最大WebB. 能评估方法有基准测试、压力测试和可靠性测试评价/对运行 系统进行性能评估的主要目的是以更好的性能并发连接数、响应延迟和吞吐量C. D. 当系统性能降到基本水平时,需要查找影响性能的瓶颈并消除该瓶颈价格比更新系统 需要实现在系统之间快速传递可定制格式的数2某公司欲对其内部的信息系统进行集成,据包, 并且当有新的数据包到达时,接收系统会自动得到通知。另外还要求支持数据重传,远程过)A. (21)的集成方式。(21以确保传输的成功。针对这些集成需求,应该采用 消息传递 D. 程调用 B. 共享数据库C. 文件传输 ”视图模型来描述软件系统的体系结构。在该模型中,最终用户侧中采用“4+13 在RUP逻C. B. 进程视图 27)。(26)A. 实现视图重于(26),系统工程师侧重于(部署D. C. 逻辑视 图)A. 实现视图 B. 进程视图 D. 辑视图部署视图( 27 视图 方法描述其不同账户之间的关系,设计出的类图如.某银行系统采用Factory Method4”Product; 与“33”角色相对应的类是() Method下所示。其中与Factory 中的“Creator )33。((34)角色相对应的类是)(34 Checking D. SavingsB. A. Bank Account C. A. Bank B. Checking C. Account 面向对A. 35 是一个独立可交付的功能单元,外界通过接口访问其提供的服务。()5.基于构 件开发C. Subroutine)B. (Object)模块化程序设计中的子程序(象系统中的对象 Package)Component中的构件()D. 系统模型中的包( 是一种典型的、原始的31)(6 软件的横向重用是指重用不同应用领域中的软件元素。 设计模式标准函数库构件对象)(横向重用机制。31A. B. C. D. 精品文档. 精品文档 描述系统设计蓝图以保证系统提供适当的功能;)在基于构件的软件开发中,(367. B. 用来了解系统的性能、吞吐率等非功能性属性。(36)A. 逻辑构件模型37()逻辑构 件模)A. D. 系统交互模型(37组件接口模型物理构件模型C. 系统交互模型 D. 物理构件模型C. 组件接口模型型 B. )的状38)基于CORBA基础设施定义了四种构件标准。其中,(8.对象管理组织(OMG服C. B. 加工构件态信息是由构件自身而不是由容器维护。(38)A. 实体构件会话构件 D. 务构件业务数据的综合计算分通常需要将任务分配到不同的逻辑计算层。9分布式系统开发中, 数 D. C.数据处理层)。(39A. 表示逻辑层 B. 应用逻辑层析任务属于(39) 据层时,应将数据层和数据处理层放置于服)(4010 在客户机/服务器系统开发中,采用B. A. 表示逻辑层和表示层放置于客户机。(40)分布式表示结构务器,应用逻辑层、分布式数据

软件体系结构论文:一种面向方面软件体系结构模型

软件体系结构论文:一种面向方面软件体系结构模型 摘要: 为了分离软件系统中的核心关注点和横切关注点,通过引入面向方面软件开发的思想设计了一种面向方面软件体系结构模型,并详细分析了该模型的三个基本构成单元,即构件、连接件和方面构件。最后通过一个网上支付实例验证了该模型具有一定的理论意义和实用价值。 关键词: 面向方面软件体系结构;横切关注点;构件;连接件;方面构件 20世纪60年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上,然而随着软件系统规模越来越大,对总体的系统结构设计和规格说明变得异常重要。随着软件危机程度的加剧,软件体系结构(software architecture)这一概念应运而生。软件体系结构着眼于软件系统的全局组织形式,在较高层次上把握系统各部分之间的内在联系,将软件开发的焦点从成百上千的代码上转移到粒度较大的体系结构元素及其交互的设计上。与传统软件技术相比,软件体系结构理论的提出不仅有利于解决软件系统日益增加的规模和复杂度的问题,有利于构件的重用,也有利于软件生产率的提高。面向方面软件开发(AOSD)认为系统是由核心关注点(corn concern)和

横切关注点(cross-cutting concern)有机地交织在一起而形成的。核心关注点是软件要实现的主要功能和目标,横切关注点是那些与核心关注点之间有横切作用的关注点,如系统日志、事务处理和权限验证等。AOSD通过分离系统的横切关注点和核心关注点,使得系统的设计和维护变得容易很多。 Extremadura大学的Navasa等人[1]在2002年提出了将面向方面软件开发技术引入到软件体系结构的设计中,称之为面向方面软件体系结构(aspect oriented software architecture,AO-SA),这样能够结合两者的优点,但是并没有给出构建面向方面软件体系结构的详细方法。 尽管目前对于面向方面软件体系结构这个概念尚未形成统一的认识,但是一般认为面向方面软件体系结构在传统软件体系结构基础上增加了方面构件(aspect component)这一新的构成单元,通过方面构件来封装系统的横切关注点。目前国内外对于面向方面软件体系模型的研究还相对较少,对它的构成单元模型的研究更少,通常只关注方面构件这一构成单元。方面构件最早是由Lieberherr等人[2]提出的,它是在自适应可插拔构件(adaptive plug and play component,APPC)基础之上通过引入面向方面编程(AOP)思想扩展一个可更改的接口而形成的,但它关于请求接口和服务接口的定义很模糊,未能给出一个清晰的方面构件模型。Pawlak等人

软件体系结构考试要点

一、填空(每题1分,共10分) 二、名词解释(每题2分,共20分) 1、B/S 2、C/S 3、HMB 4、DSSA 5、ADL 6、XML 7、ATAM 8、Web Service 9、MTTF10、SOAP 11、WSDL 12、UDDI 13、SAAM 14、MVC 15、Artifact-Driven 16、Use-Case-Driven 17、Domain-Driven 18、Pattern-Driven 19、构件20、连接件21.、MTBF 22、敏感点23、权衡点24、直接场景25、间接场景 26、质量属性效用树 三、问答题(40分) 1、构件描述模型有哪几种? 2、理解并比较构件分类的三种方法:关键字分类法、刻面分类法和超文本组织方法,它们 是如何组织的?如何在其中检索构件?每种方法各有什么优缺点? 3、了解软件体系结构的四个发展阶段。 4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成? 5、至少掌握三种经典软件体系结构风格。 6、试分析和比较B/S,二层C/S和三层C/S,指出各自的优点和缺点。 7、请对MVC风格体系结构进行介绍,并说明该风格的优缺点。 8、在正交软件体系结构中,什么是完全正交结构?在实际使用时是不是必须严格遵守结构 正交?使用正交软件体系结构有什么优点? 9、层次系统结构和基于消息的层次系统结构有什么区别? 10、体系结构描述语言与程序设计语言有什么区别? 11、ACME中定义了哪七种体系结构实体?ACME中的类型和风格是什么含义? 12、了解基于XML的软件体系结构描述语言。

13、简要介绍Krutchten的“4+1”视图模型。 14、设计模式的基本成分有哪几个?请简单介绍其各个基本成分。 15、为什么要评估软件体系结构?从哪些方面评估软件体系结构? 16、软件体系结构评估的主要方法有哪三种?请简单解释每种方法。 17、SAAM和ATAM评估方法的基本步骤分别是什么? 18、Web服务有哪些核心技术,这些技术是如何在Web服务中发挥作用的。 四、看图答题(30分) 1、请根据P38图3-5介绍黑板系统的组成。 2、请根据P59图3-26解释HMB风格的构件模型。 3、请根据P60图3-27解释消息总线的属性和服务。 4、请根据P147图5-2介绍体系结构设计方法的元模型。 5、请根据P167图6-1简要介绍基于体系结构的软件开发过程的各个步骤。并说明各个步骤的必要性何在?或者说,它们在软件生命周期中都起到了什么作用? 6、请根据P207图8-1分析服务提供者、服务请求者和服务注册中心三者的作用,以及它们之间的工作流程。 7、请根据P229图8-11介绍UDDI的具体工作步骤。

软件体系结构最终版

一、填空题 1软件体系结构核心模型由构件、连接件、配置组成。作用于这些要素或连接关系上的限制条件:约束,质量-性能 2.sa风格具有已经被熟知的特性,并且可以复用 3."4+ 1”视图模型从5个不同的视角包括:逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。 4.在层次系统中,两种通用的分层方法分别是(严格分层和松散分层) 5.在三层cs结构中,中间层可能是什么类型的服务器:应用服务器 6.解释器的三种策略:(1)传统解释器(2)基于字节码的解释器(3)JIT(即时)编译器 7.构件作为一个封装的实体,只能通过(接口)和外部环境交互,构件内部所实现的功能是以(服务)形式体现出来 8.在数据流风格中,用(数据字典)定义了相应的数据流图表达拓扑结构 9.在分层系统中,由上而下的信息和控制通常被描述成(请求),由下而上的方式被描述成(通知) 10.在分层系统的设计过程中,需要定义每层之间的接口,接口的类型包括:(黑盒接口和白盒接口) 11.三层cs体系风格是由什么构成的:表示层、功能层、数据层 二、选择题 1.表示业务逻辑和工作流,应该采用的uml图是什么:活动图 2._对象,_子程序,_构件,_包,这些哪一个是独立可交付的功能单元,外界通过接口访问它提供的服务:基于构件开发中的构件 3.同步调用消息和异步调用消息(下列哪句话是真的,哪句话是假的) 4.某游戏公司预开发一个大型多人技术战略游戏,针对这个目标,公司应该采用什么样的架构风格合适:解释器 5.三层cs体系结构中,什么是最重要的构件:中间件 6.在uml提供的图中,哪种图用于描述系统与外部系统及用户之间的交互:用例图 7.在c/s系统中,数据库服务器的(功能)任务: 安全性要求 访问并发性的控制 前端的客户应用程序的全局数据完整性 备份和恢复 8.与cs体系结构相比,bs体系结构的不足之处:BS体系结构缺乏对动态页面的支持能力,没有集成有效的支持能力 9.在rup(软件开发过程生命周期的图表)中,采用4+1视图模型来描述软件系统的体系结构,在这个模型中,最终用户侧重于逻辑视图,系统工程师侧重于哪种视图:部署视图 10.如果对银行的atm常用功能进行建模,用什么图来表示这个系统的功能需求:逻辑视图 三、名词解释 1.软件体系结构风格:是描述某一特定应用领域中系统组织方式的惯用模式。

2016年下半年软件水平考试(高级)系统架构师下午(论文)真题试卷

2016年下半年软件水平考试(高级)系统架构师下午(论文) 真题试卷 (总分:10.00,做题时间:90分钟) 一、选答题(总题数:5,分数:10.00) 1.选答题(满分)1、从下列试题中任选1道解答,请在答卷上用“○”圈住选答的试题编号。若答题超过1道,则按题号最小的1道题评分。2、解答应分摘要和正文两部分。在书写时,请注意以下两点:①、摘要字数在400字以内,可分条叙述,但不允许有图、表和流程图。②、正文字数为2000-3000字,文中可以分条叙述,但不要全部用分条叙述的方式。3、解答时字迹务必清楚,字迹不清,将不评分。(分数: 2.00) __________________________________________________________________________________________ 解析: 2.论软件系统架构评估对于软件系统,尤其是大规模的复杂软件系统来说,软件的系统架构对于确保最终系统的质量具有十分重要的意义,不恰当的系统架构将给项目开发带来高昂的代价和难以避免的灾难。对一个系统架构进行评估,是为了:分析现有架构存在的潜在风险,检验设计中提出的质量需求,在系统被构建之前分析现有系统架构对于系统质量的影响,提出系统架构的改进方案。架构评估是软件开发过程中的重要环节。请围绕“论软件系统架构评估”论题,依次从以下三个方面进行论述。1.概要叙述你所参与架构评估的软件系统,以及在评估过程中所担任的主要工作。2.分析软件系统架构评估中所普遍关注的质量属性有哪些?详细阐述每种质量属性的具体含义。3.详细说明你所参与的软件系统架构评估中,采用了哪种评估方法,具体实施过程和效果如何。 (分数:2.00) __________________________________________________________________________________________ 正确答案:(正确答案:一、简要描述所参与架构评估的软件系统,并明确指出在评估过程中承担的主要工作。二、分析软件系统架构评估中所普遍关注的质量属性,并详细阐述每种质量属性的具体含义。系统架构评估中普遍关注的质量属性包括:(1)性能性能是指系统的响应能力,即需要多长时间才能对某个事件做出响应,或者在某段事件内系统所能处理的事件个数。经常用单位事件内所处理事务的数量或系统完成某个事务处理所需的时间来对性能进行定量表示。(2)可靠性可靠性是软件系统在应用或者系统错误面前,在意外或者错误使用的情况下维持软件系统的功能特性的基本能力。(3)可用性可用性是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。(4)安全性安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。 (5)可修改性可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力,包括可维护性、可扩展性、结构重构、可移植性。(6)功能性功能性是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。(7)可变性可变性是指体系结构经扩充或变更而成为新体系结构的能力。(8)互操作性互操作性是指作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。如程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题。三、针对作者实际参与的软件系统架构评估,说明所采用的评估方法,并描述其具体实施过程和效果。现软件评估中的主要评估方法包括SAAM(Scenarios-based Architecture Analysis Method)和ATAM(Architecture TradeoffAnalysis Method,体系结构权衡分析方法)。作者可选择某种评估方法展开实际项目的系统评估。) 解析: 3.论软件设计模式及其应用软件设计模式(Software Design Paaem)是一套被反复使用的、多数人知晓的、经过分类编目的代码设计经验的总结。使用设计模式是为了重用代码以提高编码效率、增加代码的可理解性、保证代码的可靠性。软件设计模式是软件开发中的最佳实践之一,它经常被软件开发人员在面向对象软件开发过程中所采用。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在实际应用中都有相应的原型与之相对,每种模式都描述了一个在软件开发中不断重复发生的问题,以及对应该原型问题的核心解决方案。请围绕“论软件设计模式及其应用”论题,依次从以下三个方面进行论述。1.概要叙述你参与分析和开发的软件系统,以及你在项目中所担任的主要工作。2.说明常用的软件设计模式有哪几类?

相关文档