软件架构实践86要点课件.ppt
《软件架构实践86要点课件.ppt》由会员分享,可在线阅读,更多相关《软件架构实践86要点课件.ppt(66页珍藏版)》请在三一办公上搜索。
1、软件架构实践SOFTWARE ARCHITECTURE IN PRACTICE软件系统设计与体系结构,软件架构实践第 8章基于关键需求的架构设计、验证测试与评审,8.1 理解架构设计中的关键需求8.2 基于关键需求的架构设计对策8.3 影响架构设计的关键机制8.4 架构设计的验证8.5 架构的集成测试8.6 架构设计与评审8.7 电梯控制系统的架构设计实现与评审8.8 本章小结与习题,第8章基于关键需求的架构设计、验证测试与评审,分析软件构架的原因 因为软件构架非常重要,它是风险承担者之间的交流平台,是早期设计决策的体现,可传递、可重用的模型;而且软件质量不可能在软件开发的最后阶段追加上去,必
2、须在设计之初就考虑到。,8.6 架构设计与评审,8.6 架构设计与评审,架构验证的两个目的是:验证架构设计的可行性和验证架构设计纪律的遵守程度。上二节的架构验证,解决的是第二个目标。本节讨论的话题,则是前者。那么,所谓架构设计的可行性验证,应该回答:在特定架构需求、设计策略和设计方案确定后,如果按此方案实现的话,是否可以满足架构需求。与先两节所讨论的架构验证不同,可行性验证往往是在系统还没有实现之前进行的。因为架构设计具有全局性、整体性和前瞻性,当系统已经完全开发完成,再发现架构设计的错误,将会付出加大的代价,是不能接受的。,8.6.1 针对架构设计基本要素的架构评审,1、架构设计的基本要素与
3、架构评审:这里所谓的架构设计的“基本要素”,主要是指架构设计的“物理、逻辑、开发、运行、数据”五个方面考虑因素。即指架构设计在这五个方面限制条件下,是否满足其特定的需求。显然,这五个要素,是架构设计的最基本考虑因素。2、针对基本要素的架构评审:针对五个基本素的架构设计评审,架构师应包括分别报告并接受审查以下一些内容:目标系统在这五个方面的具体需求和限制是什么?针对需求和限制的设计决策是什么?实现设计决策的方法是什么?通过一定的形式,例如:原型法、模拟运行环境、形式化方法等,对采用上述设计方法可能达到的实现效果,进行展示和预期,并接受老师的评审。,8.6.1 针对架构设计基本要素的架构评审,3、
4、效果展示与评审方法:在实现方法的效果评审中,应考虑采用按五个方面,进行分解的方法。如:根据需求的OMT方法,把用例图转化为静态的类图、动态的行为(状态图、时序图、协作图、活动图),以及反映系统架构的组件图和部署图时,应分别报告:系统设计和实现,是如何分别满足五个方面的特定需求和限制的。4、评审的关注点:评审老师应特别关注:作为系统架构设计的第一步和关键一步,系统一步步被分解为子系统、包、接口、实现类、对象和方法等,其分解的依据是什么?各逻辑单元的抽取与定义是如何体现对系统架构元素(模块、组件、包、子系统)进行划分和分离的?分离点在哪里?理由是什么?这些分离后的架构元素本身,是否满足:抽象是否与
5、系统目标相一致;是否与作为类的责任相一致;是否满足高内聚、松耦合的原则要求;是否可以委托给其他类;等等。,评审方法与技巧,构架评审技巧可以分为两大类,应用不同的技巧需要付出不同的代价,也能够得到不同的信息。 定性分析方法提问的技巧 1. 场景描述风险承担者和系统之间的具体交互 2.评审清单对同一领域的若干系统进行评估后提出的一组详细的问题 3.问卷适用于所有构架的若干问题的清单 定量分析的方法量化的技巧 1. 指标对构架可观察到的参数的量化度量与解释 2. 模拟、原型与实验,评审技巧的选用定性分析:场景-评审清单-问卷调查定量分析:利用系统原型或模拟系统来解答与性能相关的问题,评审方法与技巧,
6、评审的一般过程,评审环境与条件的准备评审环境预先规划项目代表风险承担者,组件负责人评审小组 评审小组的人员公证、客观、受尊重 成员必须专门从事评审工作 有对构架相关问题熟悉的人,其领导具有设计、评价经验 至少有一位该系统所属领域的专家 有专人负责文档、后勤,办公地点离评审对象近,组织的期望用合同明确 构架评审结束时应向谁报告什么内容 评审的标准是什么 向评审小组提供那些资源及人力 对评审小组和项目组以后的工作有什么期望 预计评审持续的最长时间 设定期望的目的是让所有人都理解评审结果的本质是判断可行性,而不是提供任何保证。评审的准备制定评审日程 系统需求文档 构架描述及介绍构架决策思想的材料 将
7、系统的质量属性和功能要求按重要程度排序出前面3-5个,评审实施 强调那些与构架相符或相悖的重要问题。 必须记载评审中所提的每个问题。 按问题的重要性进行分类。 评审结果 对评审中的各个问题都要做出正式的阐述,同时也要对赖以确定这些问题的数据做出相应的说明。,评审的一般过程,构架评审的主要指导原则如下:把由独立部门实施的正规的构架评审作为项目开发周期规划的一部分。选择评审的最佳时间,尽早预审一次。选择恰当的评审技巧。签署评审合同。限制所要评审的质量属性的个数。要保证评审小组中有构架方面的专家、领域专家、资料员及后勤员。一定要有系统设计师。收集各种场景数据,并在此基础上形成评审清单。,评审的一般过
8、程,8.6.2 针对关键质量属性需求的架构设计评审,ATAM(Architecture Tradeoff Analysis Method)是SEI提出的一种软件构架评估方法。ATAM评估方法的主要目的就是:1、提炼出软件质量属性需求的精确描述;2、提炼出构架设计决策的精确描述;3、评估这些构架设计决策,并判定其是否令人满意的实现了这些质量需求。,ATAM: 一种进行构架评估的综合方法,ATAM评估方法并非把每个可以量化的质量属性都进行详尽的分析,而是使众多的风险承担者(包括经理、开发人员、测试人员、用户、客户等等)都参与进来,由此而达到上述目标的。ATAM是一种挖掘潜在风险,降低或者缓和现有风
9、险的软件构架评估方法。因此,以下三点是评估中要特别注重的:1、风险;2、敏感点;3、权衡点。,ATAM的参与人员,ATAM(Architecture Tradeoff Analysis Method)一种构架权衡分析法。ATAM方法的特点是不仅可以揭示出构架满足特定质量目标的情况,而且可以使我们更清楚地认识到质量目标之间的联系。ATAM的中心问题是对用于构架评估的有限时间进行管理。ATAM要求以下3个小组的参与和合作: 评估小组 通常由3-5人组成,每个人要扮演多个角色,包括:场景和进展的提问者、记录者和决策者。,软件构架评估的输入与输出输入用场景集合捕获的质量要求输出评价,可能包括: 一个简
10、洁的构架表述 表述清楚的业务目标 构架决策到质量需求的映射 所确定的敏感点和权衡点集合 有风险决策和无风险决策 风险主题的集合,ATAM的输入和结果,ATAM的阶段,ATAM中的活动被分为四个阶段: 评估小组和项目决策者共同确定评估细节。 评估小组收集信息和分析。 风险承担者参与评估。 评估小组自我检查和改进,提交书面报告。,评估阶段的步骤,ATAM的分析评估阶段由9步组成:1、ATAM描述(方法、人员、步骤);2、商业动机表述;3、软件构架表述;4、确定构架方式;5、生成效用树;6、分析构架方式;7、确定场景及其优先级;8、进一步分析构架方式;9、得出结论。,8.6.3 一个架构评审案例的点
11、评,以下的架构评审案例来自网络,抄录在此并加以点评,只为教学所需,如对原作者或有不敬之处,请谅解。按照上节介绍的评审步骤(步骤一省略),在此一一简述如下,斜体字为方案原文:,二、商业动机表述(1)系统功能表述根据需求分析,系统功能被确定为:本系统是为中小型图书馆设计的基于网络的图书管理系统,应包括图书管理系统的所有基本功能。功能设置如下:系统设置、图书编目、借书卡管理、查询、图书借还管理、统计、图书续借和预约、数据备份。点评:可能由于篇幅所限,也可能原案例也是教学案例(学生的问题根子还是在老师),因此,需求分析的结果,才只有几个字,好在这个系统是大家都熟悉的、且业务操作核心(业务实体)就是数据
12、库的读写查,即使有理解的偏差,也偏不到哪里去。但是,从后面的分析可以看到,即使是这样简单的系统,仍然有需求目标不确定的情况,且导致问题多多。,评审实例小型图书管理系统的商业动机表述,评审实例小型图书管理系统的商业动机表述,2.1 商业表述介于技术力量与开发时间考虑,要求该系统能够继续改进完善。由于具体客户尚未开发,要求系统能满足多个不同客户的要求。本系统是为小型图书馆设计的基于网络的图书管理系统,系统容易使用。 系统希望能快速响应。根据表述的结果,质量属性被确定为如下划分:高优先级质量属性:可修改性、易用性、可配置性、性能重要但优先级低的属性。可用性、安全性、数据完整性、可测试性,评审实例小型
13、图书管理系统的商业动机表述,点评:从上述描述可以看出,被评审系统的开发目标,可能是只需要开发部分功能(原型),且没有真正的用户,目标数据库也很小。在这个目标下,提出来的质量属性目标,不是“为赋新诗强说愁”也没人相信。例如:仅以高优先和重要但优先级低的选排,看不出有什么依据。难道可用、安全、数据完整和可测试这些应用系统交付前期应达到的最基本目标,比可修改(交付后)、易用(运行期)、可配置(交付时)、性能(运行期)指标,优先级要低吗?所以,暂时理解为:我说低就低啦,反正高也好,低也好,也没有什么影响啦,就算它低吧。,评审实例小型图书管理系统的商业动机表述,2.2 质量属性的具体表述2.2.1 性能
14、1 动态数值要求在正常工作条件下,一定时间周期内要处理的数据需求峰值为200个。即平均处理的数据为200。并行处理200个用户申请2精度要求在数据库中提取数据时,要求数据记录定位准确;向数据库中添加数据时,要求输入准确。3时间特性要求响应时间较快,灵活性强。响应时间在人能忍受的等待范围内,设为5秒。,评审实例小型图书管理系统的商业动机表述,点评:上例所列性能指标虽都可通过实际模拟测试获得验证,但上述需求表述,均存在目标要求模糊不清,指标要求缺乏依据等情况。例如:动态数值要求的“并行处理数据需求峰值”,是指同时“在线用户数”,还是有效用户进程数(进程生命周期)、还是“完整交易过程数”?精度要求的
15、数据记录“定位准确”、“输入准确”要求,不知道是针对编码工程师,还是使用系统的用户。难道真的出现这样的问题,也是架构设计的问题?,评审实例小型图书管理系统的商业动机表述,点评:时间要求的“响应时间较快、灵活性强、人能忍受”等,作为技术指标,如同要求衣着“美观、大方、得体”一样,是见仁见智,无法实际测试的。唯有“5秒”这个指标,也反映了原作者可能没有什么实际系统开发经验。用户能够接受不论什么操作,只要5秒之内就可以验收吗?甚至,延时时间是以秒为单位的吗?具体不同操作,延时要求不同,一般以ms(毫秒)为单位,有些要细化到ns(纳秒)或多少个指令机器时间周期。可能用户并不能提出具体的目标描述,但作为
16、提交系统架构设计评审的评审目标,不是用户写的,不可以这么模糊的,否则,如何测试验证和评审?,评审实例小型图书管理系统的商业动机表述,2.2.2 可用性能迅速检测到图书管理系统存在的错误及疏忽,系统遇到各种问题,能较快返回出错的原因,以及提供系统管理员检测办法,及恢复办法,该系统平均修复时间经系统测试为60分钟,使得故障率降到最低。2.2.3 可修改性图书管理系统提供了更多扩展功能的空间,系统为模块化设计,能很好的与扩展功能相结合,使得以后的升级工作更为轻松,从而使得图书管理系统能获得更强生命力。,评审实例小型图书管理系统的商业动机表述,点评:其他属性的问题也是明显的,例如:使故障降到最低哪里是
17、最低,没有更低了?还有吧?使以后的升级工作更轻松那就等以后升级的时候再测我是否轻松吧;证明系统无重大BUG你证明给我看?什么时候能证明了,什么时候通过测试;使得系统被广大用户接受广大是多大?扩大使用人群面积你也帮我们来兼做市场吧,买不出去,我也不付你们软件开发的钱。,评审实例小型图书管理系统的商业动机表述,2.2.4 可配置性系统能够满足不同用户群的要求,对不同语言,底层数据库等能很好的支持,同时界面能根据不同客户要求来设计。2.2.5 安全性考虑到不同用户的权限不同,第一次进入该系统时应该向管理员申请注册一个用户名和密码,并完整的填写相关信息,同时存入数据库表中。这样管理员就可赋予不同用户不
18、同的权限。每位用户根据自己的身份不同,进入不同的用户界面。管理员有权力行使所有的管理功能,普通用户只能进行一般的查询。,评审实例小型图书管理系统的商业动机表述,2.2.6 完整性需求根据图书管理系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障2.2.7 可测试性系统经过软件设计人员、 图书馆以及普通用户多种测试,证明系统无重大BUG。2.2.8 易用性系统操作简单,界面人性化,能为普通用户迅速掌握使用方法,快速的使用本系统所提供简单明了的查询功能,从而使得系统能被广大用户接受,扩大使用人群面积。,评审实例小型图书管理系统的软件构架表述,MVC框架说明,评审实例小型图书管
19、理系统的软件构架表述,Structs框架说明Struts框架继承了MVC设计模式的特性,是J2EE体系架构的一种轻量级实现。Struts框架具有清晰性和灵活性,有利于图书管理系统的战术实现,评审实例小型图书管理系统的软件构架表述,Hibernate框架说明Hibernate位于应用程序的业务化和持久化层。根据O/R(对象/关系)映射技术思想,对JDBC进行了轻量级封装,提供面向对象的数据库服务中间件。使用Hibernate框架可以一种面向对象的方式来操纵和管理关系数据库。,评审实例小型图书管理系统的软件构架表述,组件和组件间的关系,评审实例小型图书管理系统的软件构架表述,(原案例在此没有说明文
20、字)点评:看样子目标系统使用的是SSH架构,但从前几张图上,看不出针对本系统关键质量属性需求的任何设计对策,甚至“人为”的设计痕迹完全是抄的MVC的原理图。这几张图可以用在任何SSH架构的系统设计中。换句话说,这是张“废纸”。那么,你们是在忽悠评审专家吗?,评审实例小型图书管理系统的软件构架表述,预约图书类图交互,评审实例小型图书管理系统的软件构架表述,(原案例在此没有说明文字)点评:类图属于架构描述工具之一,但很多人把类图当成是架构图的全部,这就错了。如上图:仅仅通过这一张类图,如何让评审者理解从质量属性需求,到架构对策和设计,到哪怕是模拟的目标实现和测试,来验证架构设计可行性?你的性能、可
21、用性、可修改性、可配置性、安全性体现在哪里?除非评审老师是假老师,否则,只会骂你你是在说我们都是“傻瓜”吗?你赶忙解释:战术描述还在后面。好,我们再看下去:,把用户的请求划分为3个优先级,优先响应较重要的请求,以保证重要数据不丢失。,系统对数据库进行备份。系统数据库崩溃后,系统能够进行数据库恢复,以使用户的数据不丢失。,可靠性,本系统用JAVA语言编写,可在WINDOWS,UNIX操作系统下运行。,在原有系统基础上,只需在页面中继续嵌入功能,开发难度低。,易实现性,jsp页面中加sql语句,减少了类的调用,性能,采用cookie技术,用户不须在每次登录时都输入用户名和密码,免除用户频繁输入密码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 架构 实践 86 要点 课件

链接地址:https://www.31ppt.com/p-1786865.html