1、软件体系结构软件体系结构软件体系结构软件体系结构Part 7:软件体系结构评估:软件体系结构评估Part 7Part 7:软件体系结构评估:软件体系结构评估P7-1P7-1、软件的属性、软件的属性P7-2P7-2、SASA评估组织评估组织P7-3P7-3、SASA评估方法评估方法Part 7Part 7:软件体系结构评估:软件体系结构评估P7-1-1P7-1-1、软件的功能属性、软件的功能属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性P7-1P7-1、软件的属性、软件的属性P7-1P7-1、软件的属性、软件的属性P7-1-1P7-1-1、软件的功能属性、软件的功能属性 概念概念
2、功能属性是系统能够完成所期望工作的功能属性是系统能够完成所期望工作的能力能力 在开发过程中,功能要求是在开发过程中,功能要求是惟一首先惟一首先要考虑的要考虑的 功能属性与质量属性是功能属性与质量属性是正交正交的,因为功能属性并不能的,因为功能属性并不能规定安全性、性能、可用性和易用性的等级规定安全性、性能、可用性和易用性的等级 功能在很大程度上是功能在很大程度上是独立于结构独立于结构的。实际上,如果功的。实际上,如果功能是系统的惟一需求的话,整个系统是一个根本没有能是系统的惟一需求的话,整个系统是一个根本没有内部结构的单一模块内部结构的单一模块 功能属性所关心的是:它如何与质量属性交互,以及功
3、能属性所关心的是:它如何与质量属性交互,以及如何限制质量属性的如何限制质量属性的 当质量属性很重要时,当质量属性很重要时,SASA会限制各种功能的分配会限制各种功能的分配P7-1P7-1、软件的属性、软件的属性P7-1-1P7-1-1、软件的功能属性、软件的功能属性 基于场景的功能捕捉基于场景的功能捕捉利用场景定义利用场景定义Use Case(Use Case(获取功能属性获取功能属性):):对于网上书店,顾客对于网上书店,顾客购买一件商品购买一件商品过程的过程的自然语言自然语言描述如下:描述如下:顾客浏览查询商品分类目录,找出所需要的商品;顾客浏览查询商品分类目录,找出所需要的商品;顾客决定
4、购买,给出自己的信用卡信息和送货地址;顾客决定购买,给出自己的信用卡信息和送货地址;商店检查信息卡的有效性,并确定发货时间,发出发货通知;商店检查信息卡的有效性,并确定发货时间,发出发货通知;同时商店发出确认成交的电子邮件给顾客。同时商店发出确认成交的电子邮件给顾客。购买商品购买商品Use Case列表描述P7-1P7-1、软件的属性、软件的属性P7-1-1P7-1-1、软件的功能属性、软件的功能属性 基于场景的功能捕捉基于场景的功能捕捉购买商品:购买商品:(a)(a)顾客浏览查询商品分类目录,找出所需要的商品;顾客浏览查询商品分类目录,找出所需要的商品;(b)(b)顾客准备结算;顾客准备结算
5、;(c)(c)顾客填写购货信息顾客填写购货信息(产品信息、数量,送货地址、日期等产品信息、数量,送货地址、日期等);(d)(d)系统显示价格和应付款项;系统显示价格和应付款项;(e)(e)顾客填写信用卡信;顾客填写信用卡信;(f)(f)系统检查信息卡的有效性,确认交易成功;系统检查信息卡的有效性,确认交易成功;(异常处理异常处理)(g)(g)系统确认发货时间,发出发货通知;系统确认发货时间,发出发货通知;(h)(h)系统确认成交的电子邮件给顾客。系统确认成交的电子邮件给顾客。列表描述信用卡有效性检查失败:则允许顾客重新输入信用卡信息,并重复信用卡有效性检查失败:则允许顾客重新输入信用卡信息,并
6、重复(g)(g)、(h)(h)成功场景成功场景(Scenario)检查失败检查失败的场景的场景两场景组成一个两场景组成一个Use CaseP7-1P7-1、软件的属性、软件的属性P7-1-1P7-1-1、软件的功能属性、软件的功能属性 基于场景的功能捕捉基于场景的功能捕捉描述的特点描述的特点:(a)(a)一个一个Use CaseUse Case只描述一个活动者使用一项单一的系统功能的情况;只描述一个活动者使用一项单一的系统功能的情况;(b)(b)描述了活动者与系统在交互过程中双方所做的事情;描述了活动者与系统在交互过程中双方所做的事情;(c)(c)清楚地描述了活动者与系统双方的对话过程;清楚地
7、描述了活动者与系统双方的对话过程;(d)(d)只描述做什么,不描述怎么做;只描述做什么,不描述怎么做;Use Case 是对是对一个一个活动者使用系统的活动者使用系统的一项一项功能或服务时,功能或服务时,与系统所进行的交互过程的与系统所进行的交互过程的一段一段文字描述序列。文字描述序列。场景可以非常自然地对系统的功能场景可以非常自然地对系统的功能(属性属性)进行捕捉!进行捕捉!Part 7Part 7:软件体系结构评估:软件体系结构评估P7-1-1P7-1-1、软件的功能属性、软件的功能属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性P7-1P7-1、软件的属性、软件的属性P7-1
8、P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性概述质量属性场景质量属性场景质量属性基于SA的实现策略实现策略与SA模式的关系P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 概述概述 商业目的决定了商业目的决定了SASA必须满足的一些质量性质必须满足的一些质量性质 重新设计系统往往不需要改变功能,而是为了满足某些重新设计系统往往不需要改变功能,而是为了满足某些质量属性质量属性 没有任何一个质量属性完全依赖于设计、实现和部署的没有任何一个质量属性完全依赖于设计、实现和部署的 软件结构确定了软件结构确定了SA
9、SA对质量属性的支持,但不是惟一的。对质量属性的支持,但不是惟一的。如:即使理想的SA,但可读性很差的代码也会使系统难于修改 系统的性能:是一个既依赖于、又不完全依赖于系统的性能:是一个既依赖于、又不完全依赖于SASA的质的质量属性。量属性。如:性能受构件间通讯的数据量、为每个构件所分配的功能、分配共享资源的方式等这些SA相关方面的影响;也受所选择实现功能的算法、算法的编码方式等非SA因素的影响 质量属性的实现不能以孤立的方式实现。质量属性的实现不能以孤立的方式实现。任何一个质量属性的实现都会对其它的质量属性带来积极或消极的影响P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、
10、软件的质量属性、软件的质量属性 质量属性场景描述模板质量属性场景描述模板质量属性场景的6个组成部分刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性场景描述模板质量属性场景描述模板 刺激源刺激源:生成刺激的实体(人、系统或其它)刺激刺激:当刺激到达系统时需要考虑的条件 环境环境:刺激在某些条件内发生 制品制品:被刺激的事物。可能是整个系统或系统的一部分 响应响应:刺激到达时所采取的行动 响应度量响应度量:当响应发生时,应该能够以某种方式进行度量,以便对需求进行测试,并明确质量属性
11、需求质量属性场景的质量属性场景的6 6个组成部分:个组成部分:P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性场景在质量属性需求中扮演的角色场景在质量属性需求中扮演的角色与与 用况用况(由场景构成由场景构成)在功能需求中扮演的角色在功能需求中扮演的角色相同相同常见的常见的6 6个质量属性:个质量属性:可用性可用性可修改性可修改性性能性能安全性安全性可测试性可测试性易用性易用性P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性可用性可用性可用性与系统故障及其后果相关。
12、可表示为:可用性可用性的一般场景的可能取值刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应内部、外部(错误)忽略、崩溃、时间(太早、太迟)、响应(用不正确的值)修复时间、可用性、可获得/降级的间隔时间记录(故障)、通知(用户或系统)、禁止、继续(正常/降级)、不可用(修复期间)正常、降级操作极高可用性的资源:进程、存储、处理器、通讯平均修复时间平均正常工作时间平均正常工作时间P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性可用性可用性可用性场景样例:“在正常操作期间,进程收到了一个未曾预料到的消息。该进程通知操作人员
13、收到了这一消息,并继续操作(没有停机)”刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应系统外部未曾预料到的消息没有停机通知操作人员继续操作正常操作进程P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性可用性如何检测系统故障如何检测系统故障系统故障发生的频率系统故障发生的频率出现故障时会发生什么情况出现故障时会发生什么情况错误不体现出来时不能成为故障错误不体现出来时不能成为故障允许系统有多长时间非正常运行允许系统有多长时间非正常运行什么时候可以安全地出现故障什么时候可以安全地出现故障如何防止故障的发生如何防止故障的发生
14、发生故障时要求进行哪些通知发生故障时要求进行哪些通知可用性可用性所关注的方面包括:P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性可修改性可修改性可修改性一般场景的可能取值刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应开发人员、系统管理人员、最终用户希望增加/删除/修改/改变功能、质量属性、容量根据所影响的元素的数量度量的成本、努力、资金;该修改对其它功能或质量属性所造成影响的程度查找SA中修改的位置,进行修改且不会影响其它功能,测试所做修改,部署所做修改在设计、构建、编译、运行时系统用户界面、平台、环境、与目标系
15、统交互的系统可修改性可修改性是有关变更的成本问题。它关注修改什么(制品)和何时以及谁来进行更改(环境)P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性可修改性可修改性可修改性场景样例:“开发人员希望改变用户界面,以使屏幕背景变为兰色。这需要在设计时改变代码。需要在3小时内改变代码,并对修改后的代码进行测试,行为中将不会出现副作用的影响”刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应开发人员希望改变用户代码在3小时内改变不产生副作用设计时代码P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量
16、属性、软件的质量属性 质量属性质量属性性能性能性能的一般场景的可能取值刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应大量的独立源中的一个,可能来自系统内部定期事件到达;随机事件到达;偶然事件到达等待事件、期限、吞吐量、抖动(变化)、缺失率与数据丢失(太忙而不能处理)处理刺激;改变服务级别正常模式;超载模式系统性能性能是与时间有关,基本上与事件发生时,系统在多长时间内作出响应有关。事件(中断、消息、用户请求或时间已到)发生时,系统必须对其作出响应P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性性能性能性能场景样例:用
17、户随机启动了在正常操作下每分钟1000次的交易,处理这些交易的平均等待时间为2秒刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应用户的集合随机启动交易平均等待时间为2秒交易被处理在正常操作下系统P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性性能 在软件工程发展的大部分时间内,在软件工程发展的大部分时间内,性能一直是促使系统性能一直是促使系统SASA发展的重要驱发展的重要驱动力。它也动力。它也经常影响其它质量属性的经常影响其它质量属性的实现实现。随着硬件性价比的急剧下降和软件随着硬件性价比的急剧下降和软件开发成本的提
18、高,其它质量属性的地开发成本的提高,其它质量属性的地位已经与性能这一属性不相上下了!位已经与性能这一属性不相上下了!P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性安全性安全性安全性是衡量系统向合法用户提供服务的同时,阻止非授权使用的能力。安全性安全性一般场景的可能取值刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应正确识别、非正确识别或身份未知的个人或系统(来自内或外部);经过了授权/未经授权而访问了有限/大量的资源试图显示数据、改变/删除数据、访问系统服务、降低系统服务的可用性用成功的概率表示、避免安全防范措施所
19、需要的时间/努力/资源;检测到攻击的可能性;确定攻击或访问/修改数据和/或服务的个人的可能性;在拒绝服务攻击的情况下仍然可以获得服务的百分比;恢复数据服务;被破坏的数据/服务和/或被拒绝的合法访问的范围对用户进行身份验证;隐藏用户身份;阻止/允许对数据和/或服务的访问;授权或收回对数据和/或服务的许可;在线/离线、联网/断网、连接有防火墙/直接连接到网络系统服务,系统中断的数据根据身份记录访问/修改或试图访问/修改数据或服务;以一种不可读的格式存储数据;识别无法解释的对服务的高需求;通知用户或另外一个系统并限制服务的可用性P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的
20、质量属性、软件的质量属性 质量属性质量属性安全性安全性安全性场景样例:“一个经过身份验证的个人,试图从外部站点修改系统数据;系统维持了一个审核跟踪,并在一天内恢复了正确的数据”刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应通过了身份验证的个人试图修改信息在一天内恢复校正数据在正常操作下系统中的数据系统保持审核跟踪P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性可测试性可测试性可测试性是经过测试揭示软件缺陷的容易程度(通常是基于运行的测试)可测试性可测试性的一般场景的可能取值刺激源刺激源制品制品环境环境响应度量响应度
21、量刺激刺激响应响应单元开发人员;增量集成人员,系统验证人员,客户验收测试人员,系统用户已完成的分析、构架、设计、类和子系统集成;所交付的系统已执行的可测试语句的百分比;如果存在缺陷出现故障的概率;执行测试的时间;测试中最长依赖链的长度;准备测试环境的时间设计、开发、编译或部署时设计过程,一段代码或完整的应用提供对状态值的访问、提供所计算的值、准备测试环境P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性可测试性可测试性可测试性场景样例:“单元测试人员在一个已完成的系统构件上执行单元测试,该构件为控制其行为和观察其输出提供了一个接口
22、;在3小时内测试了85%的路径”刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应单元测试人员执行单元测试在3小时内测试了85%的路径在构件完成时系统的构件构件具有控制行为的接口,并且构件的输出是可观察的P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性易用性易用性易用性关注的是:对用户来说完成某个期望任务的容易程度和系统所提供的用户支持的种类。易用性易用性一般场景的可能取值刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应最终用户想要学习的系统特性、有效使用系统、使错误的影响最低、系统适应用户需求、对系统满意
23、任务时间、错误数量、解决问题数量、用户满意度、用户知识的获取、成功操作在总操作中的比例、损失的时间/丢失的数据量在运行时或配置时系统系统提供一个或多个响应来支持“学习系统特性”:帮助系统与环境联系紧密;界面为用户所熟悉;在不熟悉的环境下界面是可以使用的。等(参备注)P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 质量属性质量属性易用性易用性易用性场景样例:“想把错误的影响降到最低的用户,希望在运行时取消用户的操作,取消在1秒内发生”刺激源刺激源制品制品环境环境响应度量响应度量刺激刺激响应响应用户使错误的影响最低取消在1秒内完成运行时系统希望取消
24、当前操作P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性质量属性质量属性其它质量属性互操作性:互操作性:刺激刺激可能是与另外一个系统进行互操作的请求;响应响应可能是支持互操作的一个新接口或一组接口;响应度量响应度量可以是时间方面的困难性、要修改接口的数量,等等。可扩充性可扩充性:是通过修改系统容量来捕获的。可移植性:可移植性:是通过可修改性可修改性来体现的。商业质量属性商业质量属性:上市时间、成本收益、所希望系统的生命期的长短、目标市场、推出计划、与老系统集成等-往往由以上的直接质量属性来体现。往往由以上的直接质量属性来体现。P7-1P7-1、软
25、件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性质量属性质量属性其它质量属性SASA质量属性质量属性:概念完整性概念完整性:在各个层次上统一系统设计的根本指导思想 正确性和完整性正确性和完整性:是SA满足系统的各种需求及其运行时的资源要求的必备条件 可构建性可构建性:保证由指定的开发小组在规定的时间内及时开发系统,并允许在开发过程中做某些更改的SA属性P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性场景总结场景总结为什么采用这种简单而中庸的机制为什么采用这种简单而中庸的机制(场景场景):场景创建和理解比较简单 场景创建
26、、理解和使用的成本低廉 场景的生成和使用不需要任何的培训 场景表达系统的各种需求非常有效 场景有:将开发时间模糊的质量属性转化为具体的形式的作用 场景能帮助我们理解诸如性能或可用性这样的运行时间的质量属性P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性场景总结场景总结场景的分类场景的分类(根据根据ATAMATAM):用况场景用况场景:描述了用户期望的与已开发完成的、正在运行的系统的交互 生长场景生长场景:对系统更改的表述 探察场景探察场景:预计将会压垮系统的极端更改。目的是暴露出当前设计的极限或边界,系统很少针对这种类型的更改而设计,但将来可能成
27、为真实的需求,所以要搞清楚这种更改的影响 在进行在进行SASA评估时,一般要求精确地得出具体评估时,一般要求精确地得出具体的质量目标,并作为判断的质量目标,并作为判断SASA优劣的标准。而场优劣的标准。而场景这种表达提供了良好机制。景这种表达提供了良好机制。P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 总结总结质量属性质量属性定定 义义描描 述述可用性可用性系统能正常运行系统能正常运行的时间比的时间比经常用两次故障之间的时经常用两次故障之间的时间长度、或出现故障时系间长度、或出现故障时系统能恢复正常的速度来表统能恢复正常的速度来表示示可修改性
28、可修改性 能快速的以较高能快速的以较高的性价比对系统的性价比对系统运行更改的能力运行更改的能力通常以某些更改为基准,通常以某些更改为基准,通过考察这些更改的代价通过考察这些更改的代价来衡量来衡量性能性能系统的响应能力系统的响应能力 常用单位时间段内处理事常用单位时间段内处理事件的的个数或完成某个事件的的个数或完成某个事务处理所需的时间来表示。务处理所需的时间来表示。P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 总结总结(续续)质量属性质量属性定定 义义描描 述述安全性安全性系统向合法用户提供系统向合法用户提供服务的同时,能阻止服务的同时,能阻
29、止非法授权使用的企图非法授权使用的企图或拒绝服务的能力或拒绝服务的能力安全性是根据系统安全性是根据系统受到的安全威胁的受到的安全威胁的类型来分类的类型来分类的可测试性可测试性 是经过测试揭示软件是经过测试揭示软件缺陷的容易程度缺陷的容易程度可测试语句的百分可测试语句的百分比;出现故障的概比;出现故障的概率;执行测试的时率;执行测试的时间等间等可靠性可靠性系统能够长时间运行系统能够长时间运行的能力的能力用平均无故障时间用平均无故障时间来衡量来衡量P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 总结总结(续续)质量属性质量属性定定 义义描描 述述可
30、移植性可移植性系统能在不同系统能在不同计算机环境下计算机环境下运行的能力运行的能力如果移植到新的系统需要如果移植到新的系统需要做些更改,则可移植性就做些更改,则可移植性就是一种特殊的可修改性是一种特殊的可修改性功能性功能性系统完成所期系统完成所期望工作的能力望工作的能力一项任务的完成需要系统一项任务的完成需要系统中许多或大多数构件的相中许多或大多数构件的相互协作互协作可变性可变性SASA经过扩充或经过扩充或更改而成为新更改而成为新SASA的能力的能力新的新的SASA应该符合预先的规应该符合预先的规划,可变机制可能是运行划,可变机制可能是运行时、编译时、构建时或编时、编译时、构建时或编码时的机制
31、码时的机制P7-1P7-1、软件的属性、软件的属性P7-1-2P7-1-2、软件的质量属性、软件的质量属性 总结总结(续续)质量属性质量属性定定 义义描描 述述可子集性可子集性支持子系统生支持子系统生成的能力成的能力是可变性的一个特例。可子是可变性的一个特例。可子集性能促进渐进增量式的开集性能促进渐进增量式的开发发概念完整概念完整性性能在各个层次能在各个层次上将系统设计上将系统设计统一起来的根统一起来的根本思想本思想应该以类似的方式完成类似应该以类似的方式完成类似的工作。概念完整性的的工作。概念完整性的SASA应应该表现出较好的一致性,其该表现出较好的一致性,其数据和控制机制的数量比较数据和控
32、制机制的数量比较少、所用的模式也不多少、所用的模式也不多Part 7Part 7:软件体系结构评估:软件体系结构评估P7-1P7-1、软件的属性、软件的属性P7-2P7-2、SASA评估组织评估组织P7-3P7-3、SASA评估方法评估方法P7-2P7-2、SASA评估组织评估组织概述概述n软件体系结构分析与评估软件体系结构分析与评估体系结构分析体系结构分析:是指分解系统,并分是指分解系统,并分析其组成析其组成要素要素、要素之间的、要素之间的联系联系及其及其复杂性复杂性。体系结构评估体系结构评估:是指对系统的某些值是指对系统的某些值得得关心的属性关心的属性进行评价和判断。评估进行评价和判断。评
33、估的结果可用于确认潜在的的结果可用于确认潜在的风险风险,并检,并检查设计阶段所得到的系统的查设计阶段所得到的系统的质量需求质量需求。P7-2P7-2、SASA评估组织评估组织概述概述n评估的原因评估的原因(1)质量问题是当今软件系统开发的一质量问题是当今软件系统开发的一个主要问题个主要问题19721972年,年,ParnasParnas使用模块化和信息隐藏作为使用模块化和信息隐藏作为一种高层系统分解的手段来改善系统的灵活一种高层系统分解的手段来改善系统的灵活性和可理解性。性和可理解性。19741974年,年,StevensStevens等引入耦合和聚集的概念来等引入耦合和聚集的概念来评估不同程
34、序分解。评估不同程序分解。目前,学术界与工业界逐渐意识到:软件体目前,学术界与工业界逐渐意识到:软件体系结构与软件的质量属性有密切的关系。系结构与软件的质量属性有密切的关系。P7-2P7-2、SASA评估组织评估组织概述概述n评估的原因评估的原因(2)问题发现地越早,解决问题的代问题发现地越早,解决问题的代价越小价越小SASA是设计阶段的产物,对系统或项目的开是设计阶段的产物,对系统或项目的开发有深远的影响发有深远的影响SASA决定着项目的结构:配置、进度与预算、决定着项目的结构:配置、进度与预算、性能指标、开发小组结构、文档组织、测性能指标、开发小组结构、文档组织、测试和维护等,都是围绕着试
35、和维护等,都是围绕着SASA展开的。展开的。P7-2P7-2、SASA评估组织评估组织概述概述n评估的原因评估的原因(3)软件开发人员对软件开发人员对SA实际上无法测实际上无法测试试场景可以表达软件的功能和质量属性,为SA“测试”带来可能性。P7-2P7-2、SASA评估组织评估组织概述概述n评估的益处评估的益处特别是在预测质量属性方面特别是在预测质量属性方面,相当于提前对软件进相当于提前对软件进行了行了“测试测试”;可以增加交流,提高涉众对可以增加交流,提高涉众对SA的认识的认识,起到重要起到重要的交际效益;的交际效益;督促督促SA设计师更能详细编写设计师更能详细编写SA文档,迫使提高文档,
36、迫使提高SA文档的质量,对文档的质量,对SA作出更为清晰的解释;作出更为清晰的解释;为相互冲突的目标划分优先级为相互冲突的目标划分优先级;发现项目之间交叉复用的可能性;发现项目之间交叉复用的可能性;提高提高SA实践的水平;实践的水平;有益于该组织未来所从事的项目开发。有益于该组织未来所从事的项目开发。P7-2P7-2、SASA评估组织评估组织概述概述n评估的时机评估的时机一般选择在:明确了一般选择在:明确了SA之后、具体实现之前。之后、具体实现之前。如果是重复使用某个规定的或渐增的如果是重复使用某个规定的或渐增的SA,则可,则可在最近一次周期中进行在最近一次周期中进行SA评估。评估。实际上,实
37、际上,SA评估可在任何时期进行:评估可在任何时期进行:早期:早期:不必等到SA的内容完全确定。即对已经做出的或正在考虑的决策都可以进行评估。但是,一般不会这样做,即使做,也是发现性评审。后期:后期:在SA实现已经完成时的评审。一般用于评审老系统。应该在开发小组开始制定依赖于应该在开发小组开始制定依赖于SASA的决策,且修改的决策,且修改这些决策的代价超过这些决策的代价超过SASA评估的代价时,实施评估的代价时,实施SASA评估。评估。P7-2P7-2、SASA评估组织评估组织概述概述n体系结构层次评估技术体系结构层次评估技术在体系结构层次,主要有两类基本的评估技术:在体系结构层次,主要有两类基
38、本的评估技术:质询质询(定性定性)和和度量度量(定量定量)质询技术:质询技术:针对体系结构质量属性的定性问题。针对体系结构质量属性的定性问题。包括包括基于场景基于场景的、的、基于检查表基于检查表的和的和基于问卷基于问卷的。的。度量技术:度量技术:针对体系结构的定量度量,用于回针对体系结构的定量度量,用于回答特定的问题,处理特定的软件属性。度量技术答特定的问题,处理特定的软件属性。度量技术包括度量包括度量标准标准、仿真仿真、原型原型和和经验经验等方法等方法质询技术比度量技术应用更为广泛。质询技术比度量技术应用更为广泛。P7-2P7-2、SASA评估组织评估组织概述概述n评估方法评估方法q基于场景
39、的方法基于场景的方法(SAAM,ATAM等等)P7-2P7-2、SASA评估组织评估组织概述概述n为什么要使用场景来描述系统的质量属性为什么要使用场景来描述系统的质量属性 尽管人们希望通过评估体系结构,决定以此尽管人们希望通过评估体系结构,决定以此为基础的系统是否满足特定的属性或质量,但由为基础的系统是否满足特定的属性或质量,但由于这些抽象的于这些抽象的质量属性相当模糊质量属性相当模糊,并且缺少评估,并且缺少评估体系结构的支持,因此分析起来很麻烦,也就是体系结构的支持,因此分析起来很麻烦,也就是说软件体系结构的质量度量必须在具体的执行或说软件体系结构的质量度量必须在具体的执行或开发开发环境下环
40、境下进行才有意义。因此采用进行才有意义。因此采用场景场景来表达来表达体系结构的上下文相关性。体系结构的上下文相关性。P7-2P7-2、SASA评估组织评估组织概述概述描描 述述方法目标方法目标该方法的特定目标是什么该方法的特定目标是什么质量属性质量属性对多少个、哪些质量属性进行评估对多少个、哪些质量属性进行评估SA描述描述关系哪些关系哪些SA的视图的视图评估技术评估技术方法中包含哪些技术方法中包含哪些技术参与者参与者评估过程涉及哪些系统的参与者评估过程涉及哪些系统的参与者方法的活动方法的活动 以何种顺序、何种方式、使用评估技以何种顺序、何种方式、使用评估技术,完成该方法的特定目标;该方法术,完
41、成该方法的特定目标;该方法描述了什么结果描述了什么结果方法验证方法验证是否在实际中得到了验证是否在实际中得到了验证P7-2P7-2、SASA评估组织评估组织参与者参与者评估小组:评估小组:评估的实施者和分析者角色角色(8)职职 责责理想的人员素质理想的人员素质评估评估小组小组负责负责人人准备评估;与评估准备评估;与评估客户协调;保证满客户协调;保证满足客户的需求;签足客户的需求;签署评估合同;组建署评估合同;组建评估小组;负责检评估小组;负责检查最终报告的生成查最终报告的生成和提交和提交善于协调、安排,有善于协调、安排,有管理技巧。善于同客管理技巧。善于同客户交流。能够按时完户交流。能够按时完
42、成任务成任务P7-2P7-2、SASA评估组织评估组织参与者参与者评估小组:评估小组:评估的实施者和分析者角色角色(8)职职 责责理想的人员素质理想的人员素质评估评估负责负责人人负责评估工作。促负责评估工作。促进场景的得出;管进场景的得出;管理场景的选择及设理场景的选择及设置优先级;促进评置优先级;促进评估。为现场评估提估。为现场评估提供帮助供帮助能在众人面前表现自能在众人面前表现自如,善于指点迷津。如,善于指点迷津。对对SA问题有深刻的理问题有深刻的理解,富有解,富有SA评价的经评价的经验。能够从冗长的讨验。能够从冗长的讨论中得出有价值的东论中得出有价值的东西,或能判断何时讨西,或能判断何时
43、讨论已无意义,应进行论已无意义,应进行调整调整P7-2P7-2、SASA评估组织评估组织参与者参与者评估小组:评估小组:评估的实施者和分析者角色角色(8)职职 责责理想的人员素质理想的人员素质场景场景书记书记员员在得出场景的过程在得出场景的过程中负责将场景写在中负责将场景写在白板上。务必用达白板上。务必用达成一致的措辞来表成一致的措辞来表达每个场景,否则达每个场景,否则就继续讨论就继续讨论写一手好字。能够在写一手好字。能够在未搞清楚某个问题前未搞清楚某个问题前坚持要求继续讨论。坚持要求继续讨论。能够快速理解所讨论能够快速理解所讨论的问题并提出其要点的问题并提出其要点P7-2P7-2、SASA评
44、估组织评估组织参与者参与者评估小组:评估小组:(续续)角色角色(8)职职 责责理想的人员素质理想的人员素质进展进展书记书记员员以电子形式记录评估的进展情况。捕获原始场景。捕获促使每个场景的问题。捕获与场景相对应的SA解决方案。打印出要分发给各参与人员所采用的场景的列表打字速度快,质量高。工作条理性好,从而能够快速查找信息。对SA核心问题理解透彻。能够融会贯通搞清技术问题。勇于打断正在进行的讨论以验证对某个问题的理解,从而保证所获取信息的准确性P7-2P7-2、SASA评估组织评估组织参与者参与者评估小组:评估小组:(续续)角色角色(8)职职 责责理想的人员素质理想的人员素质计时计时员员帮助评估
45、负责人保证评估工作按进度进行。在评估阶段帮助控制用在每个场景上的时间敢于不顾情面中断讨论,宣布时间已到P7-2P7-2、SASA评估组织评估组织参与者参与者评估小组:评估小组:(续续)角色角色(8)职职 责责理想的人员素质理想的人员素质过程过程观察观察员员记录评估工作哪些地方有待改进或偏离了原计划。在评估完成后,负责汇报评估的过程,指出应吸取哪些教训,以便在未来评估中加以改进。还负责向整个SA评估小组报告某次评估的实践情况善于观察和发现问题。熟悉评估过程。曾参加过采用该SA评估方法进行的评估P7-2P7-2、SASA评估组织评估组织参与者参与者评估小组:评估小组:(续续)角色角色(8)职职 责
46、责理想的人员素质理想的人员素质过程监过程监督员督员帮助评估负责人记住并执行评估方法的各个步骤对评估方法的各个步骤非常熟悉。愿意并能够以不连续的方式向评估负责人提供指导提问者提问者提出涉众未曾想到的关于SA的问题对SA和涉众的需求具有敏锐的观察力。了解同类系统,敢于提出有争议的问题,并能不懈地寻求其答案。熟悉相关的质量属性P7-2P7-2、SASA评估组织评估组织参与者参与者涉众:涉众:就是该就是该SASA及根据该及根据该SASA开发的系统中有即得利益的人开发的系统中有即得利益的人涉涉 众众定定 义义所关心的问题所关心的问题系统的生产者系统的生产者SA设计师设计师负责系统的SA以及相互竞争的质量
47、需求间进行权衡的人对其它涉众提出的质量需求进行缓解和调停开发人员开发人员编程人员和设计人员SA描述的清晰与完整、各部分的内聚性和偶合性、清晰的交互机制维护人员维护人员系统初次部署完成后对系统更改的人可维护性,确定出某个更改发生后必须对系统中哪些地方进行改动的能力集成人员集成人员负责构件集成(组装)的开发人员与开发人员相同P7-2P7-2、SASA评估组织评估组织参与者参与者涉众涉众(续续):涉涉 众众定定 义义所关心的问题所关心的问题系统的生产者系统的生产者(续)(续)测试人员测试人员负责系统测试的开发人员集成、一致的错误处理协议;受限的构件偶合、构件的高内聚性、概念完整性标准专家标准专家负责
48、搞清所开发软件必须满足的标准细节的开发人员对所关心问题的分离、可修改性、互操作性性能工程师性能工程师分析系统的工作产品,以确定系统是否满足其性能及吞吐量需求的人员易理解性、概念完整性、性能、可靠性安全专家安全专家负责保证系统满足其安全性需求的人员安全性P7-2P7-2、SASA评估组织评估组织参与者参与者涉众涉众(续续):涉涉 众众定定 义义所关心的问题所关心的问题系统的生产者系统的生产者(续)(续)项目经理项目经理负责各小组配置资源、保证开发进度、保证不超出预算,负责与客户打交道的人SA层次上结构清晰,便于组建小组;任务划分结构、标志进度和期限等产品线经理产品线经理或拥有复用或拥有复用权的人
49、权的人设想该SA和相关资产怎样在该组织的其它开发中得以利用的人可复用性、灵活性P7-2P7-2、SASA评估组织评估组织参与者参与者涉众涉众(续续):涉涉 众众定定 义义所关心的问题所关心的问题系统的消费者系统的消费者客户客户系统的购买者开发的进度、总体预算、系统的有用性、满足客户(市场)需求的情况最终用户最终用户所实现系统的使用者功能性、可用性应用开发者应用开发者(对产品线对产品线SA而言而言)利用该SA及其它已有复用构件,通过将其实例化而构建产品的人SA的清晰性、完整性、简单交互机制、简单裁减机制任务专家、任务专家、任务规划者任务规划者知道系统将会怎样使用以便实现战略目标的客户代表,视野比
50、最终用户更为广阔功能性、可用性和灵活性P7-2P7-2、SASA评估组织评估组织参与者参与者涉众涉众(续续):涉涉 众众定定 义义所关心的问题所关心的问题系统服务人员系统服务人员系统管理员系统管理员负责系统运行的人(如果与用户不同的话)容易找到可能出现问题的地方网络管理员网络管理员管理网络的人员网络性能、可预见性服务代表服务代表为系统在该领域中的使用和维护提供支持的人使用性、可服务性、可裁减性P7-2P7-2、SASA评估组织评估组织参与者参与者涉众涉众(续续):涉涉 众众定定 义义所关心的问题所关心的问题接触系统或与系统交互的人接触系统或与系统交互的人该领域或团该领域或团体的代表体的代表类似
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。