【精品ppt】北京大学软件工程国家工程研究中心 建设概要_第1页
【精品ppt】北京大学软件工程国家工程研究中心 建设概要_第2页
【精品ppt】北京大学软件工程国家工程研究中心 建设概要_第3页
【精品ppt】北京大学软件工程国家工程研究中心 建设概要_第4页
【精品ppt】北京大学软件工程国家工程研究中心 建设概要_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件体系结构(Software Architecture),讲义七:软件体系结构评估,客户对体系结构评估的认识(1),“复杂软件或复杂系统的体系结构涉及诸多难度较大的决策,对这些决策进行修改往往要付出高昂的代价。成功的产品开发和演化依赖于体系结构的选择是否恰当。你能承受由于不鉴别、不评估体系结构而带来的后果吗?”Alexander Ran (Nokia CSA)“如果体系结构是构建系统的基础,体系结构评估则是得到一个好体系结构的基础中的一部分。如何在构建系统之前对体系结构进行评估,确定它是否可行、是否适合要开发的系统?”Rich Hilliard (ConsentCache CTO),客户对体系结构评估的认识(2),“很多系统的性能或其他问题都是由于体系结构不当引起的。也就是说,这些问题早就存在,但通常很晚快要到最后期限时,或者更为糟糕的,在问题已经被炒得沸沸扬扬时才发现。在这种情况下采取补救措施会导致一系列问题:延期交付、成本超支、不能满足上市时间要求、损坏与客户的关系或其他类似问题。如果能尽早对若干个备选体系结构进行评估,从中选择一个合适的系统,就可以很容易地避免上述问题。”Connie U. Smith (L&S),体系结构是软件系统的基础,任何软件系统的基础都是其体系结构,即用独立开发的构件建造软件的方式,以及这些构件彼此交互和联系的方式性能、可修改性、可用性、安全性、可靠性、采用恰当的体系结构是项目成功的第一步。体系结构不当,必将导致灾难性的损失如果你所在组织的未来依赖于某系统或一系列相关系统的体系结构,怎样才能保证所采用的体系结构是恰当的?创建体系结构的实践日臻成熟我们可以确定出软件体系结构设计决策与按此体系结构设计出的一个或多个系统的质量和特性之间的因果关系。这就意味着可能根据所要开发的系统的质量目标和需求对体系结构进行评估,对体系结构决策进行分析,SA: 相关人员的交流工具,体系结构是系统的公共抽象,为相关人员提供了可以理解、讨论的共同语言用户:可用性、可靠性客户:进度、预算项目经理:进度、预算、开发效率、可控性开发人员:可实现性测试人员:可测性体系结构为大型复杂系统提供了一个可供各类相关人员进行早期决策的、复杂度受控的共同语言多视图逻辑、进程、实现、部署、Use Case功能、并发、代码、实现、物理,SA: 展示早期设计决策,软件体系结构是一组一致、合理的系统早期设计决策的集合,这些决策将影响系统多种性质体系结构的早期设计决策将允许或排除几乎所有的系统质量属性,例如性能、可修改性、安全性、可靠性体系结构将影响组织,通常在体系结构和组织结构之间有很强的对应关系,遵循“高内聚、低耦合”原则,人员注意力的分离必须同软件注意力的分离相匹配体系结构中的早期设计决策导致对实现的约束,如易于集成的商业构件的选择体系结构的早期设计决策应该围绕现有的基础设施,如框架、早期的骨架系统等,保持一个始终可运行的原型系统,对于鼓舞团队士气、增加顾客信心和为管理层提供评估依据都有益处,SA: 可复用、可传递的系统抽象,体系结构可以成为一个软件产品线的可复用资产基于体系结构的产品线正在被许多组织证明是重大的商业成功软件产品线开发面临着同单个产品开发不同的挑战尽管系统的解决方法并不是很成熟,但众多的研究和工业实验表明,基于体系结构的软件产品线能在生产率、上市时间和费用等方面产生数量级的改进,体系结构评估的原因,问题发现越早,解决问题的代价越小SA决定系统的属性性能(Performance)安全(Security)功能性(Functionality)可修改性(Changeability)SA决定项目的结构配置控制库(Configuration control libraries)进度和预算(Schedules and budgets)性能目标(Performance goals)团队结构(Team structure)文档化组织(Documentation organization)测试和维护(Testing and maintenance)所有的活动围绕体系结构安排SA评估是避免灾难的低成本手段,体系结构评估方法,SAAM:Software Architecture Analysis Method专用于对SA的可修改性和功能性进行评估ATAM:Architecture Tradeoff Analysis Method在SAAM基础上发展而来ARID:Active Reviews for Intermediate Designs适用于SA的可行性和适宜性进行测试,及对尚不完全的SA进行评估,体系结构评估的时机,一般情况SA确定之后,具体实现之前迭代或增量生命周期模型最近一次开发周期中通用情况SA生命周期的任何阶段早期SA确定之前,可以评估已有部分,也可以在若干项中选择例如:发现评审(discovery review),目的在于发现重要的系统需求,以及初步的解决方案后期SA已经确定,并且实现已完成适用于评估遗产系统,目的在于理解遗产系统的体系结构,以及能否满足要求的系统属性经验:进行评估的合适时机是,应该在开发小组开始制定依赖于体系结构的决策时,并且修改这些决策的代价超过体系结构评估的代价,体系结构评估的参与者,评估小组 (Evaluation team)主持评估,进行分析风险承担者 (Stakeholders):在该体系结构以及根据该体系结构开发的系统中有既得利益者用户:便于使用、功能丰富客户:按时完成、不超出预算项目决策者体系结构设计者构件设计者项目管理者(不推荐)项目开发组成员:编码人员、集成人员、测试人员、维护人员等,易于构建、复用资源、易于修改等,体系结构评估的结果,评估结果:一份报告,形式和内容随所用的方法而不同SA是否适合待开发系统候选的两个或多个SA方案,哪个更合适?适宜性(suitability):需考虑特定的环境根据SA开发的系统,满足质量目标。例如,性能要求、修改性、安全约束、行为功能SA可构建(buildable):在现有资源条件下,人员、预算、遗产软件、进度等适宜性只有在与构架及其对应系统的具体目标相关的上下文环境中才有意义评估将告诉我们哪些地方需要改进,理解质量属性,体系结构评估所关注的焦点是质量属性任何大系统的质量属性都是由其体系结构决定的体系结构决策对于能否实现质量属性具有深远的影响,因此成为体系结构评估关注的焦点体系结构评估的目标获取并提炼对质量属性需求的精确表述获取并提炼对体系结构设计决策的精确表述确定体系结构决策能否实现质量属性需求质量属性刻画外部刺激:导致体系结构作出反应或进行修改的操作响应:具体的、可测度的或可观察到的指标体系结构决策:对实现质量属性响应有直接影响的体系结构某些方面,质量属性分析的不确定性,质量属性没有被量化,它们存在于特定目标的上下文中,例如可修改性:相对于特定类型的改变安全:相对于特定类型的威胁可靠性:相对于特定类型的错误发生性能:相对于特定的评价标准产品线的适宜性:相对于产品线范围可建造性:相对于特定的时间和预算约束我们使用“场景(scenario)”描述上下文场景是描述了系统的某个风险承担者和系统之间的一次交互的简短陈述每个场景同一个特定的相关人员相联系,并针对特定的质量,如用户、维护者、开发者、客户,体系结构评估的输出结果(1/2),ATAM / SAAM / ARID的共同输出划分了优先级的质量属性需求从体系结构方法到质量属性的映射有风险决策和无风险决策ATAM的特有输出所使用的体系结构方法的分类为相关人员提供熟悉体系结构的材料针对所采用的方法和特定质量属性的分析方法能够用于后续体系结构演化的评估,避免走错方向,体系结构评估的输出结果(2/2),敏感点(Sensitivity Points)和权衡点(Tradeoff Points)敏感点是对于达到特定的质量属性响应至关重要的一个或多个构件(和/或构件关系)特性敏感点告诉设计人员或分析人员当试图理解一个质量目标是否达到时,需将注意力集中到什么地方权衡点是影响多于一个属性 (attribute) 的特性 (property),并且是多个属性的敏感点。例如,改变加密算法级别会对安全性和效率有显著影响权衡点是体系结构设计中最关键的决策,因此需要非常仔细地加以关注,体系结构评估的收益分析,体系结构分析可以发现潜在的问题,从而产生更好的体系结构把各相关人员召集到一起增进彼此的了解,对各自冲突的目标进行妥协迫使对具体质量目标做出清楚的表述场景提供了显式的质量基准为相互冲突的目标划分优先级迫使对SA做出清楚的解释提高体系结构文档的质量发现项目之间交叉复用的可能性来自项目之外的相关人员或评估小组,工作或熟悉更高组织的其他项目,这就为项目之间的交叉复用提供了可能提高SA实践水平增加时间和人员开销,ATAM评估方法,ATAM:Architecture Tradeoff Analysis Method(体系结构权衡分析方法)特点评估SA对特定质量目标的满足情况,揭示诸多质量目标之间的相互作用和权衡结构化的评估方法,可重复同样适合遗产系统的分析方法来源体系结构风格质量属性分析方法SAAM (Software Architecture Analysis Method),ATAM步骤简述(1/2),ATAM主要部分包括4组,共9个步骤:陈述,包括通过它进行的信息交流ATAM方法的陈述:评估负责人商业动机的陈述:项目经理或系统客户SA的陈述:系统设计人员调查与分析,包括对照体系结构方法评估关键质量属性需求确定体系结构方法:系统设计人员生成质量属性效用树(utility tree):说明构成系统“效用” 的质量属性(性能、有效性、安全性、可修改性、可用性) ,具体到场景层次,标注刺激/反应,并区分不同的优先级分析体系结构方法:基于步骤5识别出的高优先级的场景,说明和分析针对这些场景的体系结构方法。在这一步骤中,体系结构风险、非风险、敏感点和权衡点被识别出来,ATAM步骤简述(2/2),测试,包括对照所有相关人员的需求检验最新结果集体讨论并确定场景优先级分析体系结构方法:针对步骤7的高等级场景形成报告,包括陈述ATAM的结果结果的表述:包括方法、场景、特定属性的问题、效用树、有风险决策、无风险决策、敏感点和权衡点提示:上述步骤顺序并不严格,可根据需要适当调整,ATAM步骤详述(1/13),第1步:ATAM方法的陈述 评估负责人向参加会议的相关人员介绍ATAM方法。在这一步,要对每个人解释参与的过程,并留出解答疑问的时间,明确其他工作的环境和预期ATAM评估步骤简介用于获取信息和分析的技巧:效用树的生成、基于体系结构方法的获取和分析、对场景的集体讨论及优先级的划分评估的结果:场景及其优先级、用以理解和评估体系结构的问题、描述体系结构的动机需求并给出其优先级的效用树、所确定的一组体系结构方法、所发现的有风险决策、无风险决策、敏感点和权衡点等,ATAM步骤详述(2/13),第2步:商业动机的陈述 项目决策者从商业角度,向相关人员介绍系统概况和主要的商业动机系统最重要的功能技术、管理、经济、政治方面的任何相关限制与该项目相关的商业目标和上下文主要的相关人员体系结构的驱动因素,即促使形成该体系结构的主要质量属性目标,ATAM步骤详述(3/13),第3步:体系结构陈述 在适合的细节层次上描述体系结构,体系结构信息直接影响可能的分析及分析的质量。在进行更实质的分析之前,评估小组通常需要询问更多的有关体系结构的信息技术约束条件,诸如要求使用的操作系统、硬件、中间件等该系统必须要与之交互的其他系统用以满足质量属性需求的体系结构方法、样式、模式和采用的机制高层体系结构视图:功能、代码、并发、物理,ATAM步骤详述(4/13),第4步:确定体系结构方法体系结构方法定义了系统的重要结构,描述了系统演化、对更改的响应、对攻击的防范以及与其他系统的集成等强调体系结构方法和体系结构风格的确定,代表了所评估的体系结构用以事先具有高优先级的质量属性的手段,保证关键需求按计划得以实现的手段体系结构风格,包括构件类型及其拓扑结构的描述,对构件间数据和控制交互模式的描述和使用该样风格的优缺点的非正式表述体系结构的约束条件,对构件及其交互的约束,这些约束条件限定了满足质量属性需求的设计决策基于属性的体系结构风格(attribute-based architectural styles, ABASs),一种带有解释该风格如何实现某些质量属性的体系结构风格,ATAM步骤详述(5/13),第5步:生成质量属性效用树 评估小组与项目决策者合作,共同确定出该系统的最重要的质量属性目标,并设置优先级,进行进一步的细化,该步指导其他的分析 这种方式将所有风险承担者和评估小组的精力集中到对系统的成功与否具有重要意义的体系结构的方面上 效用树为我们提供了一种直接而有效地将系统的商业驱动因素转换为具体的质量属性场景的机制,该步骤的输出结果是对具体质量属性需求(以场景形式实现)的优先级的确定效用树中质量属性细化为场景确定最重要的质量属性目标,并设置优先级效用树设置优先级标准每个场景对系统成功与否的重要性体系结构设计人员所估计的实现这种场景的难度,ATAM步骤详述(6/13),举例:效用树样例,*场景 (Scenarios),场景是描述系统相关人员同系统一次交互的简短陈述使用场景的三重理由:简单创造和理解;便宜(不必花费太多时间就能产生);高效场景提供了把含糊的质量转变为某些具体事情的手段使用者:使用系统完成某些任务,类似于OO说法中的use case维护者:针对系统的变化,例如以某种方式升级操作系统或者增加一个新功能开发者:使用体系结构构造系统或预测它的性能产品线经理:如何复用体系结构,用于产品线的第二个工程中,可快速构造产品线的产品,*场景的结构,刺激:相关人员启动同系统进行交互的行为用户可以激活一个函数;维护人员可以对系统进行改变;测试人员可以运行一个测试用例;操作人员可以某种方式重新配置系统;等等环境:刺激发生时系统所处状态等系统状态如何?哪些非正常的条件在起作用?系统处于重负载吗?某个处理器是否宕机?某个通信信道是否流量过大?任何同理解场景相关的周边条件都应该被描述响应:系统通过体系结构将怎样对刺激进行反应函数执行了吗?测试是否成功?系统重配置是否发生?维护需要多大的工作量?,*场景的类型,Use Case场景:现有系统的典型应用,用于信息启发用户希望不重新输入项目数据的情况下,检查在不同财年的预算和实际发生数据(可用性)用户把一个图的布局从水平改为垂直,该图在1秒钟内被重新绘制(效率)成长场景 (Growth Scenarios):系统的预期变化在不影响系统延迟的情况下,改变显示以同时跟踪多个目标以少于1个人年的工作量,移植到同一家族的其他操作系统,或现有操作系统的新版本以少于1个人周的工作量,向系统增加新的消息类型探测场景 (Exploratory Scenarios):预期“压迫”系统的极端变化暴露设计的边界情况把底层Unix平台改变为Macintosh把25年历史的软件复用在新一代飞机上,ATAM步骤详述(7/13),第6步:分析体系结构方法 针对划分了优先级的质量需求(第5步)和采用的体系结构方法(第4步),评估它们的匹配情况与效用树中每个高优先级的场景相关的体系结构方法或决策,评估小组应该能够期望在前面第4步中已经得出了所有体系结构方法与每个体系结构方法相联系的待分析问题,这些问题是与对应于场景的质量属性相匹配的。问题可以来自于对这些方法的文档编写实践、关于体系结构的书籍、参加评估的风险承担者的经验等体系结构设计师对问题的解答风险、无风险、敏感点、权衡点的确认,ATAM步骤详述(8/13),体系结构方法分析模板,ATAM步骤详述(9/13),举例:体系结构方法分析示例,ATAM步骤详述(10/13),第7步:集体讨论并确定场景优先级 在第7步和第8步,评估组测试所理解的体系结构,场景被用作测试的主要手段 第5步确定的场景主要是从体系结构设计人员的角度看待系统的质量属性需求,这一步是从相关人员的角度讨论场景需讨论的场景:用例场景、生长场景、探测场景,这些场景可能同效用树的场景保持一致,也可能发现更多的驱动场景,这也是一个重要收获相关人员对场景投票确定优先级比较场景讨论结果和质量效用树新场景与效用树中的某个叶节点场景相匹配新场景成为效用树中某个已有分支的新叶节点新场景表达的是以前未曾考虑到的质量属性,因而与效用树中的任何分支都不匹配将场景讨论结果放到质量效用树当中,即系统体系结构设计和系统需求一致,ATAM步骤详述(11/13),效用树生成和场景集体讨论的差异,*风险承担者 (Stakeholders),体系结构评估的原则对高质量的评估,体系结构相关人员的积极参与是绝对必要的软件体系结构评估的质量在相当大的程度上依赖于你能够为之组织的相关人员的质量设计师或设计团队必须在评估现场,ATAM步骤详述(12/13),第8步:分析体系结构方法 在已确定了若干场景并进行了分析之后,评估小组就可以引导体系结构设计师在所描述的体系结构的基础上实现第7步中得出的最高优先级的场景,对相关的体系结构决策如何有助于该场景的实现做出解释与第6步类似对新增的场景,分析其体系结构方法;对不变的场景,进行检查,ATAM步骤详述(13/13),第9步:陈述结果 最后,需要把在ATAM分析中所得到的各种信息进行归纳总结,并呈现给相关人员 在这一陈述中,评估负责人概要介绍ATAM评估的各个步骤和得到的各种信息,包括商业环境、促成该体系结构的主要需求、约束条件和体系结构等,但最重要的结果如下:文档化的体系结构方法若干场景及其优先级基于质量属性的若干问题效用树风险、无风险、敏感点、权衡点形成风险主题,根据某些常见的基本问题或系统缺陷将风险分组,ATAM评估方法的阶段,以时间为维度,评估分为4个阶段,第0阶段:建立阶段合作关系的建立评估客户和评估人员之间准备工作组建评估小组,召开开工会议,进行准备第1阶段:第16步以体系结构为中心重点是获取体系结构信息并对其进行分析第2阶段:第79步以相关人员为中心重点是获知相关人员的观点,并验证第1阶段的结果第3阶段:后续阶段形成最终报告、对后续活动(如果有的话)做出规划评估小组在此阶段实现文档和经验的更新,第0阶段的工作,合作关系的建立评估人员和评估客户的交流评估客户应该是对所评估体系结构对应的项目有一定影响力的人,而且可以联系到很多位体系结构相关人员客户应对所要采用的评估方法有基本了解,并且知道在评估过程中都要做哪些工作客户应对所要评估的体系结构及其系统做出描述假设评估负责人已经决定可以进行评估,则应商谈并签署关于评估工作的合同或协议要解决好信息专有性问题。例如,评估小组可能需要签署不得泄漏该评估信息的协议准备工作组建评估小组角色:评估小组负责人,评估负责人,场景书记员,进展书记员,计时员,过程观察员,过程监督者,提问者召开评估小组开工会议就评估的经验和体会进行广泛的交流,同时指定每个成员要扮演的角色为第1阶段进行必要的准备,第1阶段的工作,完成第16步的工作通过收集足够多的信息,以决定:之后的评估工作是否可行、能否顺利展开如果不行,就可在为第2阶段的工作召集更多的相关人员之前,在第1阶段及时终止是否需要更多的体系结构文档如果需要,则应明确需要的是哪些类型的文档,以及应以什么形式提交这些文档哪些相关人员应参与第2阶段的工作在第一阶段的最后,评估出资人要保证让合适的相关人员参与第2阶段的工作,第2阶段的工作,在简要重复第16步工作的基础上,进行第79步的工作,第3阶段的工作,生成最终报告在ATAM评估快要结束时,必须撰写并提交最终的评估报告:做了哪些工作、有何发现、得出了什么结论等收集数据针对参与者/评估小组成员的改进意见调查,询问对评估实践的看法针对评估客户/评估小组成员的成本调查针对评估客户的长期收益调查更新工作产品仓库对在刚完成的评估中所用到的或所生成的工作产品进行维护,这将有助于更好地进行未来的评估工作,包括:成本/收益信息、场景、待分析的问题、参与者的意见、评估的最终报告,ATAM评估方法总结(1/3),场景的优势对场景的集体讨论和优先级的确定一般都有助于相关人员的交流,并能促进相互协作所生成的场景集经常是相关人员迄今为止所看到的对系统需求的最佳表示把“分析”加入到分析方法中确定质量属性效用树确定采用的体系结构方法分析体系结构方法对质量属性的满足程度,ATAM评估方法总结(2/3),ATAM方法的两个方面,ATAM评估方法总结(3/3),ATAM概念流图,ATAM案例研究(1/6),战场控制系统(Battlefield Control System, 简称BCS)该系统供部队的营级单位使用,用于在战场实时环境下控制部队的行军、战略和作战准备工作第1步:ATAM方法表述第2步:商业动机表述对系统所要辅助完成的在战场上执行的各种任务的介绍,并指出这些任务的具体需求支持一个指挥官节点,控制和指挥一组士兵及其装备与能够为它提供指挥与情报信息的其它系统交互定期收集当前执行任务的状态信息软件/硬件限制:要求极高的物理健壮性、能够适应来自与之交互的其它系统的消息格式的频繁变更,其它性能指标,ATAM案例研究(2/6),第3步:体系结构的表述,ATAM案例研究(3/6),第4步:确定体系结构方法客户机 / 服务器采用备用指挥官节点可用性采用一组针对领域的设计模式可修改性采用独立通信构件性能,ATAM案例研究(4/6),第5步:生成质量属性效用树,ATAM案例研究(5/6),第6步:分析体系结构方法针对备用指挥官节点方法可用性客户机 / 服务器方法可能存在单点故障关键刺激是由于受到攻击或因软硬件故障而导致的系统中某个节点(特别是指挥官节点)的崩溃可用性受指挥官节点崩溃速度和指挥官节点修复速度的影响有风险决策:不能生成新的备用节点可以提供多个备用节点,n个接收节点/ m个被动接收节点QA = g ( n , m )针对独立通信构件方法性能客户机 / 服务器方法可能服务器是一个潜在瓶颈无线调制解调器较低的速度(9600波特)是BCS系统的单个最重要的性能驱动因素使用性能模型的目的是,获取影响消息的大小和分布情况的体系结构决策QP = h ( n , m , CO ) CO指其他通信开销,ATAM案例研究(6/6),第7步:集体讨论并确定场景的优先级第8步:分析体系结构方法第9步:结果的表述可用性:QA = g ( n , m )性能:QP = h ( n , m , CO )总结阶段体系结构文档编写更明确的需求敏感点和权衡点体系结构风险:指挥官节点和备用节点之间的通信模式,被作为攻击目标,SAAM评估方法,SAAM (Software Architecture Analysis Method)主要分析体系结构的可修改性和功能评估方法描述场景、划分优先级、分析体系结构问题SAAM评估的输入一组场景SAAM评估的输出将代表了未来可能做的更改的场景与体系结构对应起来,显示出体系结构中未来可能具有较高复杂性的地方,估计预期工作量理解系统功能,比较多个体系结构支持的功能数量,SAAM评估步骤

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论