您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 体系结构--第2章-质量属性
第2章质量属性•2.1需求分析与架构的关系•2.2功能和架构的关系•2.3架构和质量属性的关系•2.4质量属性及其场景描述•2.5限制条件•2.6架构本身的质量属性•2.7小结“当一个人无法温饱的时候,确实很难思虑精神层面的事情。但是不缺温饱的任何人,都应该有机会能够做一个高品德、有世界观、有社会责任感的人。”---李开复站在石头上许愿有一个故事:一艘船在大海中被困,风雨飘摇,一个船员对另一个船员说,现在最想做的事,是在沙发上抱着小女儿,看一场球赛。这个冬天,雪花飘得最密的时候,被困在停电停水的城市里的朋友对我说,现在最想得到的东西,是一根蜡烛。许愿,常被电影美化成想星星想月亮的浪漫,但事实是,愿望只是我们眼睛上方的一个苹果,看得到,摸不到。是的,全境是这样:我们脚踏在石头上,眼望苹果而许愿。每个人的石头都会不同,石头是我们拥有的东西。如果衣食住行都不愁,也许会想其他,饱暖以后还会有欲念。这是人之常情,人的欲望水涨船高,永无止境。需求包括三要素:•功能•质量•限制条件需求是架构设计的基础,但在需求阶段是无法弄清全部需求的,因此需求和架构设计之间的迭代是必要和有意义的。2.1需求分析和架构的关系•功能功能是指系统所能完成的工作。功能是构架设计的必要条件而非充分条件,因为不同架构具有相同的功能,它们的差别在于质量。随着软件开发水平的提高,如何满足功能已不是软件开发的主要矛盾,也不是构架层次上主要考虑的问题,构架设计主要考虑如何满足质量上的要求,但软件构架会限制各模块的功能划分,功能对架构设计有间接的影响。2.2功能和架构2.3构架和质量属性什么是质量属性—系统在其生命周期过程中所表现出的各种特征。1架构和质量属性的关系:•架构是获取许多质量属性的基础(上梁不正下梁歪)在架构设计过程中就应考虑到这些质量属性,并在架构层次上进行评估。•质量属性既和架构有关,也和具体实现有关。例如,系统设计时一般都会考虑设置密码来提供安全性,可是如果实现时SQL语句没写好,则可能被注入攻击。2质量属性之间的关系:•一个质量属性的获取对其他质量属性可能产生正面或负面的影响。•任何质量属性都不可能在不考虑其他属性情况下单独获取。例如:最开始银行没有为网上银行的客户提供从客户端到网站之间的加密手段,银行获得了性能和成本上的好处,但牺牲了客户的安全性,导致假网站频出,很多人不敢使用网银业务。后来,银行给客户提供了各种加密手段,如支付宝、UKey等,花费了一定的成本和牺牲了部分性能,但客户获得了安全。现在网银用户和网上交易额逐年递增。3质量属性可以分为两类:•运行时可见属性包括:可用性、性能、安全性、易用性•维护时可见属性包括:可修改性、可扩展性、可移植性、可集成性4质量属性的场景描述法传统关于质量属性的讨论中存在问题:•定义不具可操作性•可能会关注同一问题可用性、易用性和安全性都可能关心一个系统故障生活中我们通常根据情景(场景)对事物做出判断,它由人物、环境、事件、反应和结果等要素组成。心理测试题根据人们对某一情景的不同反应来判断其心理。预案则对不同状况进行假设并准备采取相应措施。小小说则用一个小故事说明一个(大)道理。在软件开发中,我们借助场景说明用户对功能和质量的要求,对应为用例场景和质量场景。这里的场景就是对某个实体与系统的一次交互的简要描述。质量属性场景就是通过对某个实体与系统的一次交互的简要描述说明一个有关质量属性的特定需求,它由六部分组成:•刺激源:可以是风险承担者、计算机系统等。•刺激:可以看作是一个事件。•环境:系统当前的状态。•制品:系统中对事件作出反应的部分,可以是整个系统或系统的某一部分。•反应:事件到达后系统的相关行为。•反应度量:对反应结果提供某种形式的衡量。质量属性不是处于隔离状态,只有在一定的上下文环境中才能做出有意义的评判。生成质量属性场景的目的和意义:•帮助构架师生成有意义的质量属性需求。•使质量属性需求的描述规范化。•某一场景是一类场景的代表,系统将以完全相同的方式对这些场景做出反应。刺激制品刺激源环境反应反应度量质量场景图质量场景创建的参与人员:·负责软件执行的人员—最终用户·负责管理系统的人员—系统管理员·负责更改系统运行时功能的人员—维护人员·负责系统规划的单位—客户·负责项目实施的单位—开发组织2.4系统质量属性的场景•可用性可用性(Availability)是指系统正常运行时间的比例,是通过两次故障之间的时间长度或在系统崩溃情况下能够恢复正常运行的速度来衡量的。平均正常工作时间平均正常工作时间+平均修复时间可靠性是指系统能够保持正常运行的能力,通常用平均无故障工作时间来衡量。可靠性和可用性都与构架密切相关。日常生活中,洗衣机、电冰箱等是用无故障工作时间来衡量。但对故障修复时间要求很短的系统,则常用可用性来衡量,如银行、证券和航天飞行等系统。α=X100%平均正常工作时间的加长是设计不易出错的系统,即在构架层次上把相关部分分离而实现。平均(脱机)修复时间的缩短主要通过设计容错性较好的构架来实现,也就是通过在构架中重复设置关键处理单元及其之间的通讯信道而实现,这是通过快速确定故障症结并快速替换故障组件来实现的。因此要设计易于更改的组件、易于确定故障症结的组件。下面是银行曾经使用过的双机热备份的例子。IBMRS/6000RAID磁盘阵列IBMRS/6000某银行储蓄系统可用性针对的是过错(fault)而不是失败(failure)。过错的例子:美国的勇气号火星探测器2004年在火星上出现故障时能自动进入故障运行模式,并通过地面技术人员得以修复。失败的例子:2006年10月我国发射的鑫诺二号直播卫星,由于技术上的原因导致卫星天线、太阳能帆板无法打开,2007年12月对鑫诺二号直播卫星进行了最后一次“抢救”,仍然无济于事,20亿投资打了水漂。嫦娥一号绕月卫星针对可能出现的错误就准备了148种预案。下面是嫦娥一号针对月食问题的解决方案—月食期冬眠。月食发生时,太阳光被挡住,嫦娥一号有近3小时无法通过太阳帆板吸收太阳能,失去了能量的源泉。而且如果温度太低,卫星上的仪器将有可能冻结,无法工作。在此期间需要蓄电池供给整星电源。此外,由于月球表面红外辐射复杂,造成绕月卫星的外部条件极为多变,保持内部设备温度十分困难。通过调整整星工作模式,月食期间尽量让功率负载降下来;同时,运用了一些新技术,在热控方面进行调整,以弥补整星热量补充不够的问题。当“嫦娥”卫星进入地球阴影区时,按照预设程序自行关闭遥测系统,卫星蓄电池的电量将合理分配,关闭能关的星载设备,节约能源,就像进入“冬眠”,只保证大脑和心脏运行。下面的场景图表示了嫦娥一号针对月食发生时的可用性。月食使之不能获得太阳能系统嫦娥一号正常运行尽可能降低工作负载90%的概率进入冬眠•性能性能是指系统的响应能力—即对外部刺激(事件)做出反应时所需要的时间或在某段时间内所处理的事件个数。在硬件条件一定的情况下,性能通常是系统中各组件间进行通信或交互的次数与数据量的函数,如函数之间的调用,参数的传递等。因此,性能与构架密切相关。我们可以通过观察服务请求的到达速率、处理时间、队列大小和延迟时间长短等指标了解系统性能。我们可以根据预计的工作负载,通过构建系统的随机队列模型来模拟该系统的性能并进行分析。下面的场景图表现了一个学生选课系统的性能。试图同时登陆系统选课系统平均响应时间5秒正常运行请求被处理500用户•安全性安全性是衡量系统在向合法用户正常提供服务的情况下,阻止非授权使用和抗拒拒绝服务攻击的能力。系统受到的威胁有多种,例如:§拒绝服务§IP源地址欺骗下面场景表现了病毒攻击上网计算机时系统的安全性。试图修改系统数据系统95%的病毒可被杀掉上网检测并杀毒病毒•易用性易用性可分为如下几个方面:§可学习性§可记忆性§错误避免§错误处理§满意度易用性与构架是密不可分的。•可修改性可修改性是进行快速修改并使修改代价尽可能低的能力,这种能力直接受到构架的限制。可修改性主要是所做修改的局部性的函数。构架决定了各个组件及其职责,因此也定义了各个组件需要修改时所处的状态,这些修改可以分为3类:§涉及一个组件的修改§涉及几个组件的修改§涉及整个构架的修改对系统的更改一般是由于拥有该系统的组织的商业目的发生了变化,这些变化包括:§功能的扩展或改变§删除不需要的功能§适应新的操作环境§结构的重新调整可修改性有时也称做可维护性。下面场景表现了学生选课系统的修改性。希望改变操作界面代码修改不产生副作用,在2小时内完成只修改界面代码或配置文件维护时用户•可移植性可移植性是系统能够在不同计算环境下运行的能力。这里所说的环境可能是硬件、软件或两者的组合。如果对任何特定计算环境的所有假设都仅包含在一个或几个组件中,那么就说该系统是可移植的。在构架中对与平台相关问题的封装常采用一个可移植层,它是一组软件服务的集合,使上层应用软件与其环境具有抽象接口,并且在移植时接口不变。可移植层是信息隐藏原则运用的结果。采用可移植层的缺陷是什么?可能不能发挥特定系统的最大效率!•可重用性可重用性是指要合理地设计系统,使系统的结构或其某些组件能够在以后的应用开发中重复使用。构架的各个组件就是重用的单位,一个组件的可重用程度依赖于它与其它组件的耦合程度。可重用性与构架密切相关,它还可以看作是可修改性或可集成性的特例。这相当于一个硬币的两面:建立的系统可修改导致了系统可重用。•可集成性可集成性是使独立开发的系统组件能够协同运行的能力,集成性依赖与:§组件的外部复杂性§组件之间的交互机制和协议§组件功能划分的清晰程度§组件接口的定义是否完整、合理可集成性表明了一个系统内个组件之间相互协作的能力,而互操作性衡量的则是一个系统与另一个系统的协作能力。互操作性案例分析楚天都市报2008年12月24号的新闻--客户名字太长,难住多家银行来自新疆湖北大学学生吐尔逊·司马义最近遇到一件难事:因为名字太长,到多家银行均无法办理业务,营业员要么称他的名字太长,要么说名字中间的间隔号打不出来,只能以“.”代替,其中某行电脑系统的客户姓名项最多只能输入4个汉字。此问题是2007年下半年开始出现的。当时银行与公安户政信息系统联网,银行系统无法显示姓名类似“吐尔逊·司马义”这样的客户在公安部门登记的户政信息,导致业务无法办理。此前,各银行遇到类似问题时,都通过变通办法办理业务。他们曾向上级单位反映,要求对系统进行升级,但一直未得到解决。限制条件质量属性功能需求2.5限制条件限制条件包括商业限制、技术限制、法律限制、社会限制等。限制条件会对系统架构产生直接影响,也会对系统功能和质量产生影响。从而间接影响架构。例如,“税务征收必须严格执行税务总局统一规定的税率”是税务系统必须遵守的一项限制。这项限制引出一个质量要求,即系统要具有可修改性,能根据要求调整税率设置;也引出一个功能,即提供税率设置功能。技术限制如系统必须运行在Linux操作系统上。法律限制如系统必须采用正版软件。社会限制如限制塑料袋,车辆分单双号,网络传播内容的分级。商业限制包括:•投放市场时间投放市场时间的缩短可以通过采用商用产品或以前项目中所构建的组件,如系统注册模块。将一个以前构建好的组件插入到系统中的能力依赖于系统的分解。•成本不同的构架会导致不同的开发成本。•预计的系统生命周期的长短一个可更改和可移植的系统会具有更长的生命周期,但显然会延长投放市场的时间。•目标市场通用软件和专门软件的策略有很大不同。•推出计划•和遗留系统集成2.6构架本身的质量属性•一致性构架应该以类似的方式做类似的事情。迈向一致性的最重要一步是有一个系统构架师。•正确性和完整性构架能够满足系统的各种需求及运行时的资源要求。•可构建性保证能够由指定的开发小组完成。2.7小结
本文标题:体系结构--第2章-质量属性
链接地址:https://www.777doc.com/doc-3624824 .html