版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ModifiabilityanditsTactics1软件体系结构课程组可用性复习可用性的关注点故障提升可用性的策略故障检测故障恢复故障避免2目录可修改性的含义1提升可修改性的策略23目录可修改性的含义1提升可修改性的策略24可修改性的含义-概述(1/2)关注点修改的成本系统的哪些部分被修改修改发生的时间修改由谁来进行5可修改性的含义-概述(2/2)衡量指标修改完成的时间修改所花的人力成本修改所花的经济成本……6可修改性的含义-可修改性场景(1/3)刺激源谁进行的修改(开发者/管理员/用户)刺激要进行的具体修改7可修改性的含义-可修改性场景(2/3)制品修改系统的功能orUI
or交互的其他系统?环境在什么时间进行的修改?设计期间or开发期间or运行期间?修改的时间越迟,越不利8可修改性的含义-可修改性场景(3/3)响应操作人员要理解如何修改、进行修改操作、测试、部署响应衡量指标时间、成本9可修改性的含义-场景实例10本页图片来自网络目录可修改性的含义1提升可修改性的策略211提升可修改性的策略-概述目标降低修改的时间和成本方向1:限制修改范围让修改所影响的
软件范围尽可能的小方向2:延迟绑定时间让软件在运行期间仍可进行灵活修改12提升可修改性的策略修改发生、测试、部署(满足时间和预算要求)修改到来提升可修改性的策略-限制修改范围(1/6)模块高内聚、低耦合尽量把对程序的修改控制在一个模块内可以借助框架、中间件考虑到可能会发生的修改有助于评估模块间责任的划分让一个点的修改只影响一个模块避免完全无关的多个修改会影响同一个模块13提升可修改性的策略-限制修改范围(2/6)让模块通用“解释器”风格的思路14本页图片来自网络提升可修改性的策略-限制修改范围(3/6)隐藏信息面向对象机制中的可访问性(public/private)维持接口不变在接口不变的情况下,接口连接的双方可以独立变化15本页图片来自网络提升可修改性的策略-限制修改范围(4/6)限制通信路径设计模式中的Façade模式16提升可修改性的策略-限制修改范围(5/6)使用中介数据中介:共享数据的风格服务中介:设计模式中的bridge、factorymethod等模式17本页图片来自网络提升可修改性的策略-限制修改范围(6/6)命名服务器(nameserver)查询所需资源/对象的位置,解决位置依赖按需创建实例借助设计模式中的创建型模式18提升可修改性的策略-延迟绑定时间(1/4)配置文件修改配置文件,而不用修改代码19[Global]MessageTitle=智能自制内容工具Button[0]=确定(&O)Button[1]=取消(&C)Button[2]=关闭(&C)[Project]Title=新建项目Button[0]=名称:Button[1]=位置:Button[2]=浏览(&B)...Text[0]=当前目录已经存在,是否覆盖此目录?[PutCode]Title=请输入相应数字Button[0]=编号:Button[1]=如果存在相同编号直接覆盖<?xmlversion="1.0"encoding="utf-8"?><!--TheconfigurationfileforSMSvcHost.exe--><configuration><runtime><gcConcurrentenabled="false"/></runtime><system.serviceModel><!--SMSvcHostETWtracesareredirectedbydefaulttoanetwProviderIddifferentfromWCF'sdefault.--><diagnosticsperformanceCounters="Off"etwProviderId="{f18839f5-27ff-4e66-bd2d-639b768cf18b}"/></system.serviceModel></configuration>提升可修改性的策略-延迟绑定时间(2/4)发布-订阅模式软件体系风格部分已有介绍(事件系统)设计模式中的“观察者模式”20本页图片来自/langxuanlovehai/article/details/48375919提升可修改性的策略-延迟绑定时间(3/4)发布-订阅模式微博的例子21提升可修改性的策略-延迟绑定时间(4/4)多态用不同的子类,实现不同的功能22本页代码修改自/Shaun_Guo/article/details/79460421publicclassTest{publicstaticvoidmain(String[]args){
//定义为狗
Animal
a=newDog();a.eat();//变成猫a=newCat();a.eat();classAnimal{publicvoideat(){System.out.println(“进食");}}classDogextendsAnimal{publicvoideat(){System.out.println("狗吃肉");}}classCatextendsAnimal{publicvoideat(){System.out.println("猫吃鱼");}}可修改性总结可修改性的关注点修改的成本提升可修改性的策略限制修改范围延迟绑定时间2324欢迎各位同学交流讨论计算机科学与技术学院微信PerformanceanditsTactics25软件体系结构课程组可修改性复习可修改性的关注点修改的成本提升可修改性的策略限制修改范围延迟绑定时间26目录性能的含义1提升性能的策略227目录性能的含义1提升性能的策略228性能的含义-概述(1/3)关注点系统响应事件的速度和事件的数量和到达模式有关事件的来源用户的请求、本系统内部、本系统外部29性能的含义-概述(2/3)事件到达模式随机的在特定时间尺度(日、月、学期、年)有规律的30性能的含义-概述(2/3)事件到达模式随机的在特定时间尺度(日、月、学期、年)有规律的31性能的含义-概述(3/3)事件到达模式32本页图片来自网络性能的含义-概述(3/3)事件到达模式33本页图片来自网络性能的含义-性能场景(1/4)刺激源可能来自系统内部或外部刺激事件到来(需要响应)34性能的含义-性能场景(2/4)制品系统所提供的服务环境系统可能处于不同的模式(正常/紧急/超载)35性能的含义-性能场景(3/4)响应系统处理到来的事件,可能会导致状态的变化
36性能的含义-性能场景(3/4)响应系统处理到来的事件,可能会导致状态的变化
37性能的含义-性能场景(4/4)响应衡量指标处理事件所花的时间单位时间内处理事件的数目处理的错误率/丢失率38性能的含义-场景实例39本页图片来自网络目录性能的含义1提升性能的策略240提升性能的策略-概述目标在限定时间内响应事件获取资源+使用资源方向1:资源的需求方向2:资源的管理方向3:资源的仲裁41提升性能的策略响应事件(满足时间限制)事件到来提升性能的策略-资源的需求(1/3)在要处理的数据量不变的情况下,提高计算效率使用更高效率的算法减少处理事件时对资源的占用42提升性能的策略-资源的需求(1/3)在要处理的数据量不变的情况下,提高计算效率使用更高效率的算法减少处理事件时对资源的占用43提升性能的策略-资源的需求(2/3)减少要处理的数据总量控制事件到来的速率只抽取一部分请求来处理44本页图片来自网络深圳号导弹驱逐舰提升性能的策略-资源的需求(2/3)减少要处理的数据总量控制事件到来的速率只抽取一部分请求来处理45本页图片来自网络深圳号导弹驱逐舰提升性能的策略-资源的需求(3/3)限制执行时间在规定时间内得到近似解限制待处理事件队列长度直接放弃处理一部分事件46本页图片来自网络故宫节假日限流广州地铁站早晚高峰限流提升性能的策略-资源的管理(1/2)利用并发机制多线程、多进程、多核、多机……47本页图片来自网络华为麒麟990配备8核CPU+3核NPU+16核GPU提升性能的策略-资源的管理(1/2)利用并发机制多线程、多进程、多核、多机……48本页图片来自网络华为麒麟990配备8核CPU+3核NPU+16核GPU提升性能的策略-资源的管理(2/2)增加可用资源计算资源、存储资源、带宽资源……49阿里云的产品列表提升性能的策略-资源的管理(2/2)增加可用资源计算资源、存储资源、带宽资源……50阿里云的产品列表提升性能的策略-资源的仲裁(1/2)先来先服务固定优先级调度机场、车站的军人绿色通道51本页图片来自网络宜昌三峡机场的军人绿色通道提升性能的策略-资源的仲裁(1/2)先来先服务固定优先级调度机场、车站的军人绿色通道52本页图片来自网络宜昌三峡机场的军人绿色通道提升性能的策略-资源的仲裁(2/2)动态优先级不饿死最早deadline优先53本页图片来自网络餐馆通常为每桌轮流上菜急救室根据新伤者的情况调整抢救次序提升性能的策略-资源的仲裁(2/2)动态优先级不饿死最早deadline优先54本页图片来自网络餐馆通常为每桌轮流上菜急救室根据新伤者的情况调整抢救次序性能总结性能的关注点处理响应的速度提升性能的策略资源的需求资源的管理资源的仲裁5556欢迎各位同学交流讨论计算机科学与技术学院微信SecurityanditsTactics57软件体系结构课程组性能复习性能的关注点处理响应的速度提升性能的策略资源的需求资源的管理资源的仲裁58目录安全性的含义1提升安全性的策略259我们身边的安全3目录安全性的含义1提升安全性的策略260我们身边的安全3安全性的含义-概述(1/4)关注点在保证合法用户使用系统的前提下,抵抗对系统的攻击攻击(威胁)试图突破系统安全性防护的尝试61安全性的含义-概述(2/4)安全性的不同方面不可否认性私密性62本页图片来自网络安全性的含义-概述(2/4)安全性的不同方面不可否认性私密性63本页图片来自网络安全性的含义-概述(2/4)安全性的不同方面不可否认性私密性64本页图片来自网络安全性的含义-概述(3/4)安全性的不同方面完整性保证性65安全性的含义-概述(4/4)安全性的不同方面可用性审计(为了重建)66本页图片来自网络安全性的含义-安全性场景(1/4)刺激源攻击可能由人或其他系统发起刺激对系统的攻击(或试图突破系统安全保护)常见形式:窃取或修改信息、获取超权限的服务、降低系统可用性67安全性的含义-安全性场景(2/4)制品系统所提供的服务或系统中的数据环境系统可能处于不同的情况下(联网/未联网、在线/下线、在防火墙内/外)68安全性的含义-安全性场景(3/4)响应合法用户正常使用,拒绝非法用户的使用对攻击有威慑69本页图片来自网络安全性的含义-安全性场景(4/4)响应衡量指标发起攻击的难度从攻击中恢复的难度70本页图片来自网络安全性的含义-场景实例71本页图片来自网络目录安全性的含义1提升安全性的策略272我们身边的安全3提升安全性的策略-概述方向1:抵抗攻击方向2:检测攻击方向3:从攻击中恢复73提升安全性的策略-抵抗攻击(1/5)用户的证实密码、验证码、生物识别……用户的授权确认用户的操作是在其权限范围74本页图片来自网络提升安全性的策略-抵抗攻击(2/5)维持数据的保密性给数据和传输过程加密75本页图片来自网络提升安全性的策略-抵抗攻击(3/5)维持数据的完整性MD5码校验76提升安全性的策略-抵抗攻击(4/5)减少暴露关闭无用端口、自启动的服务、无线路由SSID等77本页图片来自网络提升安全性的策略-抵抗攻击(5/5)限制访问白名单、黑名单78本页图片来自网络提升安全性的策略-检测攻击软件和人结合入侵检测系统安全专家79提升安全性的策略-从攻击中恢复恢复状态使用“可用性”中的相关策略攻击者的识别也能震慑潜在的攻击者80目录安全性的含义1提升安全性的策略281我们身边的安全3我们身边的安全-古人智慧兵符、玉玺:认证身份封蜡:防篡改82本页图片来自网络我们身边的安全-用户名+密码特点革命性意义:区分开了身份和凭证用户名保证身份唯一,建立后不可修改密码保证身份安全,可修改风险单用户名大密码档猜测、多用户常见密码猜测撞库、拖库假Wifi热点83我们身边的安全-密保卡84特点基于“密码本”,典型的“双因素”安全思想实体卡无法被监听,刮刮卡防止被分发渠道翻拍本页图片来自网络我们身边的安全-密保卡风险伪“一次一密”,可能遭到位置累计攻击受卡面大小的约束,只能通过频繁更换解决实体卡印刷需要专用设备,成本较高85我们身边的安全-短信验证码特点典型的“双因素”安全思想只需利用现有电信服务,不需增加用户成本不适合多人使用同一账号风险滞后、收不到、被屏蔽移动网络被监听智能手机中的恶意程序窃听86我们身边的安全-动态口令特点基于随机数种子+时间,每隔一段时间(如1分钟)自动生成动态密码风险被破解87本页图片来自网络我们身边的安全-验证码特点区分真实用户和软件风险被程序破解、真实用户难以辨认88本页图片来自网络我们身边的安全-验证码89本页图片来自网络我们身边的安全-生物识别特点更换难度大风险伪造90本页图片来自网络安全性总结安全性的关注点尽量避免攻击对系统的影响提升安全性的策略抵抗攻击检测攻击从攻击中恢复9192欢迎各位同学交流讨论计算机科学与技术学院微信TestabilityanditsTactics93软件体系结构课程组安全性总结安全性的关注点尽量避免攻击对系统的影响提升安全性的策略抵抗攻击检测攻击从攻击中恢复94目录可测试性的含义1提升可测试性的策略295目录可测试性的含义1提升可测试性的策略296可测试性的含义-概述(1/1)关注点让软件的bug容易被测试出来验证软件产品与它的需求规格是否匹配(存在不符或缺失)使用最小的成本和工作量来验证软件的质量97软件测试是为了发现错误可测试性的含义-概述(1/2)测试的重要性一般软件项目40%的成本花在测试上大型软件项目出现故障,可能导致严重的后果如果能在体系结构层面提高可测试性,收益巨大98可测试性的含义-案例(1/3)软件bug引发的重大损失1985年,加拿大的Therac-25放射治疗机由于软件Bug而发生故障,向患者提供了致命的辐射剂量,造成3人死亡,3人严重受伤。1994年,国航空客A300因软件故障而坠毁,264人丧生1999年,软件漏洞导致美国12亿美元的军事卫星发射失败99可测试性的含义-案例(2/3)软件bug引发的重大损失2013-2016年,日产汽车由于安全气囊感应探测器的软件故障(软件可能探测不到副驾驶座上的乘客,导致发生事故时安全气囊无法打开),陆续在全球召回超过450万辆汽车2015-2017年,星巴克咖啡多次出现POS系统升级故障无法处理交易,最多时被迫临时关闭了北美区约60%的门店100可测试性的含义-案例(3/3)软件bug引发的重大损失2015年,伦敦彭博终端由于软件漏洞宕机,影响超过30万交易商,迫使政府推迟30亿英镑的债务出售2018年6月27日,阿里云出现大规模故障,原因为上线自动化运维系统触发未知Bug,导致部分产品访问链接不通,影响时间约半小时101可测试性的含义-可测试性场景(1/5)刺激源测试可能由不同的角色发起(开发者、单元测试人员、集成测试人员、系统管理员、用户……)刺激系统开发到达了里程碑可能是分析/设计/编码/集成阶段的结束,或系统完成开发102可测试性的含义-可测试性场景(2/5)制品一个设计、一段代码、整个系统……环境系统可能处于设计阶段/开发阶段/部署阶段/正常运行时103可测试性的含义-可测试性场景(3/5)响应理想的响应是可以进行测试,并且可以观察到测试结果当测试结果无法被观察到时,测试难度很大104本页图片来自网络可测试性的含义-可测试性场景(4/5)响应衡量指标白盒测试中的覆盖率语句覆盖判定覆盖/分支覆盖(判定可能是多个条件组合)条件覆盖:覆盖判定中的每个条件路径覆盖、判定条件覆盖、条件组合覆盖……未来继续发现bug的概率105本页图片来自网络可测试性的含义-可测试性场景(5/5)106本页图片来自网络可测试性的含义-场景实例107本页图片来自网络目录可测试性的含义1提升可测试性的策略2108提升可测试性的策略-概述目标让测试更轻松方向1:黑盒测试方向2:白盒测试109提升可测试性的策略检测出软件缺陷软件进行测试提升可测试性的策略-黑盒测试(1/4)记录/回放自动化/半自动化测试把接口和实现分离开不同的排序算法,使用相同的接口110总体思路:提供输入+捕获输出提升可测试性的策略-黑盒测试(4/4)提供专用的测试路径111本页图片来自网络主板上的DebugLED汽车上的OBD接口提升可测试性的策略-白盒测试内部监控IDE提供的断点等调试工具WinDbg等工具112本页图片来自网络提升可测试性的策略-常用的测试工具(1/4)Appium(APPUI测试)同时支持Android/iOS支持测试原生APP、WebAPP、混合APP支持Java/Python/PHP等多种语言支持Windows/Mac/Linux113本页图片来自网络提升可测试性的策略-常用的测试工具(1/4)Selenium(WebUI测试)支持主流的操作系统和浏览器模拟chrome浏览器操作支持Python自动化114本页图片来自网络JMeter(接口测试、性能测试)基于Java的测试工具可以测试测试静态和动态资源,如Java对象、数据库、FTP服务器等115本页图片来自网络提升可测试性的策略-常用的测试工具(1/4)可测试性总结可测试性的关注点让bug容易被测试出来提升可测试性的策略黑盒白盒116117欢迎各位同学交流讨论计算机科学与技术学院微信UsabilityanditsTactics118软件体系结构课程组目录易用性的含义1提升易用性的策略2119质量属性总结3目录易用性的含义1提升易用性的策略2120质量属性总结3易用性的含义-概述关注点让用户使用软件的难度降低不同方面如何方便用户入门?如何提高用户使用软件的效率?如何降低用户出错造成的影响?如何让软件适应用户的需求?如何提高用户的自信和舒适度?121易用性的含义-易用性场景(1/4)刺激源终端用户刺激终端用户希望学习系统的使用、提高系统使用效率、减少出错……122易用性的含义-易用性场景(2/4)制品整个系统环境系统处于运行时或配置时123易用性的含义-易用性场景(3/4)响应系统响应用户的要求响应衡量指标用户完成任务的时间用户出错的次数用户满意度用户操作的成功率124易用性的含义-场景实例125本页图片来自网络目录易用性的含义1提升易用性的策略2126质量属性总结3提升易用性的策略-概述目标让用户轻松方向1:运行时策略方向2:设计时策略127提升易用性的策略给予用户适当的反馈和支持用户的请求提升易用性的策略-运行时策略(1/5)系统猜测用户要完成的任务输入法联想、搜索引擎联想128本页图片来自网络提升易用性的策略-运行时策略(1/5)系统给用户适当的反馈提示拷贝文件所需的剩余时间、浏览器打开页面的进度129本页图片来自网络提升易用性的策略-运行时策略(1/5)系统给用户提供一致的体验鼠标提供DPI调整,适应不同的分辨率130本页图片来自网络提升易用性的策略-运行时策略(1/5)支持撤销操作减少误操作的影响131本页图片来自网络提升易用性的策略-设计时策略(1/5)把用户界面和系统其它部分隔离开MVC模式支持用户界面的独立修改(甚至用户可以自行修改用户界面)132本页图片来自网络目录易用性的含义1提升易用性的策略2133质量属性总结3质量属性总结可用性可修改性性能安全性可测试性易用性134质量属性总结-可用性可用性的关注点故障提升可用性的策略故障检测故障恢复故障避免135质量属性总结-可修改性可修改性的关注点修改的成本提升可修改性的策略限制修改范围延迟绑定时间136质量属性总结-性能性能的关注点处理响应的速度提升性能的策略资源的需求资源的管理资源的仲裁137质量属性总结-易用性易用性的关注点让用户“用得舒服”提升易用性的策略运行时策略设计时策略138质量属性总结-安全性安全性的关注点尽量避免攻击对系统的影响提升安全性的策略抵抗攻击检测攻击从攻击中恢复139140欢迎各位同学交流讨论计算机科学与技术学院微信软件体系结构评估Software
Architecture
Evaluation软件体系结构课程组目录体系结构评估1ATAM2Howdoweknowthatourarchitectureisappropriateforitsintendedpurpose?Inalargedevelopmentproject,anenormousamountofmoneymayberidingon(取决于)thearchitecture.Thefutureofcompanymaybeatstake(危险).Weneedtoevaluatethearchitecture(评估体系结构).体系结构评估-Now
what满足需求开发成本潜在危机体系结构评估Architectureevaluationisadevelopmentlife-cycleactivitywherebyseveralstakeholders(项目干系人)
analyzethesoftwarearchitecturetogetherinaformalorinformal(正式或非正式)
processusinganassessmenttechniquesuchasscenarios(场景).体系结构评估-定义EarlydetectionofproblemswiththeexistingarchitectureTheearlierinthelifecyclethatproblemsaredetected,thecheaperitistofixthem.ValidationofrequirementsArchitectureevaluationsuncovertheconflictsandtradeoffs,andprovideaforumfortheirnegotiatedresolutionForcedpreparationforthereviewManysystemsdonothaveanarchitecturethatisunderstandabletoalldevelopers.Theprocessofpreparingfortheevaluationwillrevealmanyoftheseproblems.Improved
architectures体系结构评估-whyThiswasprobablythefirstdocumentedsoftwarearchitectureanalysismethodandwasoriginallydevelopedtoanalyzeanarchitectureformodifiability.However,itisusefulforanalyzinganynonfunctionalaspectofanarchitecture.Itisfoundedontheuseofstakeholder-generatedscenariostoassessanarchitecture.Scenario-basedArchitectureAnalysisMethod(SAAM)体系结构评估-评估方法ThisisasuccessorofSAAMandisalsogainingwidespreaduse.Thismethodincorporatesqualityattributeutilitytreesandqualityattributecategoriesintheanalysisofanarchitecture.WhereasSAAMdoesnotexplicitlyaddresstheinteractionsbetweenqualityattributes,ATAMdoes.Thus,thetrade-offsarewithrespecttocompetingqualityattributes.ATAMisaspecializationofSAAM,specificallyfocusingonmodifiability,performance,availability,andsecurity.ArchitectureTrade-offAnalysisMethod(ATAM)体系结构评估-评估方法Thismethodconsidersthecomplexityofevaluationscenariosasthemostimportantriskassessmentfactor.SAAMFoundedonComplexScenarios(SAAMCS)Thismethodfocusesspecificallyonthequalityattributesofevolution(演化)
andreusability.ThismethodintegratesSAAMwithdomain-specific
andreuse-basedsoftwaredevelopmentprocesses.ExtendingSAAMbyIntegrationintheDomain(ESAAMI)SoftwareArchitectureAnalysisMethodforEvolutionandReusability(SAAMER)体系结构评估-评估方法Thismethodutilizesscenarios,simulation(仿真),mathematicalmodeling,andexperience-basedreasoning(基于经验的推理)forassessingqualityattributes.Thismethodalsoincorporatesanarchitecturedesignmethod.Scenario-BasedArchitectureReengineering(SBAR)Thisisanothermethodforanalyzingmaintainabilityusingscenarios,calledchangescenarios,whichrepresentmaintenancetasks.(体系结构级别上的软件维护预测)ArchitectureLevelPredictionofSoftwareMaintenance(ALPSM)Thismethodisbasedonformalandrigorous(严格精确的)qualityrequirements.SoftwareArchitectureEvaluationModel(SAEM)体系结构评估-评估方法目录体系结构评估1ATAM2TheATAMisamethodthathelpsstakeholdersasktherightquestionstodiscoverpotentiallyproblematicarchitecturaldecisions.Tradeoffs(折衷)canbeexplicitlyidentifiedanddocumented.Discoveredriskscanthenbemadethefocusofmitigation(减轻)activities:e.g.furtherdesign,furtheranalysis,prototyping.ATAM-概述ThepurposeoftheATAMisNOTtoprovidepreciseanalyses...thepurposeIStodiscoverriskscreatedbyarchitecturaldecisions.Wewanttofindtrends:correlationbetweenarchitecturaldecisionsandpredictionsofsystemproperties.ATAM-目标ThereareanumberofbenefitsfromperformingATAMevaluationsidentifiedrisksclarifiedqualityattributerequirementsimprovedarchitecturedocumentationdocumentedbasisforarchitecturaldecisionsincreasedcommunicationamongstakeholdersTheresultsareimprovedarchitectures.ATAM-BenefitsATAM的参与人员要求以下三类人员的参与和合作
评估小组Eachevaluationteamconsistsofaleaderandatleastthreeotherteammembers.ATAMteammembersmustbeexperiencedarchitects.ATAMleadersmusthaveexcellentcommunicationandfacilitationskills.项目决策者能够控制程序开发过程和授权变更的人员。通常包含项目经理,为开发买单的用户,和体系结构开发人员构架涉众涉众是与要开发的系统相关的一切人和事。体系结构对可修改性、安全性等质量属性的支持程度会直接影响到涉众人员的正常工作的进行。涉众不等于用户,通常意义的user是指系统的使用者,这仅是涉众中的一部分。涉众通常包括开发者,测试人员,集成人员,系统维护者,性能工程师,用户等等。ATAM-评估小组评估小组的角色角色职责理想的人员素质评估小组负责人准备评估…善于协调…评估负责人负责评估工作…能在众人面前表现自如…场景书记员将场景写到活动挂图上…未搞清楚某个问题之前坚持要求继续进行讨论…进展书记员记录评估进展情况…对构架理解透彻,能融会贯通快速理解技术问题计时员帮助评估负责人保证评估工作按时进行;…勇于不顾情面中断讨论,宣布时间已到过程观察员记录如何改进评估过程或评估如何偏离了原计划…善于观察和发现问题;熟悉评估过程…过程监督者帮助评估负责人记住并执行评估方法的各个步骤对评估方法的各个步骤非常熟悉;….提问者提出涉众或许未曾想到的关于构架的问题对构架有出色的见解;对涉众需要有敏锐的洞察力…ATAM-评估小组ATAMevaluationsareconductedinfourphasesATAM-评估阶段Thecustomerandasubsetoftheevaluationteamexchangeunderstandingaboutthemethodandthesystemwhosearchitectureistobeevaluated.Anagreementtoperformtheevaluationisworkedout.Acoreevaluationteamisfielded(登场).Phase0:thisphaseprecedesthetechnicalevaluationATAM-Phase0ATAMevaluationsareconductedinfourphasesATAM-评估阶段Phase1:focusedonelicitingdetailedarchitecturalinformationandanalyzingitinvolvesasmallgroupofpredominantlytechnically-orientedstakeholdersarchitecturecentrictopdownanalysisATAM-Phase1ATAM-Phase1ATAMstepsinbriefTechniquesutilitytree(效用树)generationarchitectureelicitationandanalysisscenariobrainstorming/mappingOutputsarchitecturalapproachesutilitytreeandscenariosrisks,non-risks,sensitivitypoints,andtradeoffs1.
TheevaluationteampresentsanoverviewoftheATAMATAM-Phase1businesscontextforthesystemhigh-levelfunctionalrequirementshigh-levelqualityattributerequirementsarchitecturaldrivers:qualityattributesthat“shape”thearchitecturecriticalrequirements:qualityattributesmostcentraltothesystem’ssuccess2.
Thecustomerdescribesbusinessdriversofthesystem.ATAM-Phase1technical
constraintssuchasanOS,hardware,ormiddlewareprescribedforuseothersystemswithwhichthesystemmustinteractarchitecturalapproachesusedtoaddressqualityattributerequirements3.
Designerpresentsanoverviewofthearchitecturedesign.ATAM-Phase1client-server3-tierEventdispatchermechanismpublish-subscriberedundanthardware4.
Identifycorearchitecturalapproaches.Theevaluatorsbegintoidentifyplacesinthearchitecturethatarekeytorealizingqualityattributegoals.ATAM-Phase15.
Identify,prioritize,andrefinethemostimportantqualityattributegoalsbybuildingautilitytree.Autilitytreeisatop-downvehicleforcharacterizingandprioritizingthe“driving”attribute-specificrequirements.(效用树是一个自顶向下的工具,用来刻画重要的需求)UtilityTree?ATAM-Phase1Utility
TreeThedrivingqualityattributesarethehigh-levelnodes(typicallyperformance,modifiability,security,andavailability).Scenariosaretheleavesoftheutilitytree.Output:acharacterizationandaprioritizationofspecificqualityattributePriorityATAM-Phase1ATAMPhase1-PresentArchitecture重要的构架信息4~8张幻灯片上下文图——系统所处的上下文环境;与系统有交互的人或其他系统模块或分层视图——描述系统功能分解的模块(可能是子系统或分层),加上对象,过程,函数及其关系(如过程调用,方法调用,回调,包含等)组件-连接件视图——进程,同步的线程,数据流,连接事件等配置视图——CPUs,存储,外设,传感器网络,通信设备,及在各处理器上运行的进程ATAMPhase1-PresentArchitecture构架方法、模式或采用的战术,包括它们实现了什么质量属性及这些方法如何实现这些属性的描述3~6张幻灯片商业产品(COTS)的使用及其选择/集成1~2张幻灯片对1~3个最重要的用例场景的介绍,如果可能,包括对每个场景的运行时资源使用情况的介绍1~3张幻灯片对1~3个最重要的变更场景的介绍,如果可能,根据所变更的模块或接口来描述变更的影响,即预计的变更的规模/难度1~3张幻灯片与实现促使形成该构架的需求相关的构架问题/风险2~3张幻灯片术语表1张幻灯片ATAMPhase1-GenerateQualityAttributeUtilityTreeIdentify,prioritize,andrefinethemostimportantqualityattributegoalsbybuildingautilitytree.Autilitytreeisatop-downvehicleforcharacterizingandprioritizingthe“driving”attribute-specificrequirements.(效用树是一个自顶向下的工具,用来刻画重要的需求)Thedrivingqualityattributesarethehigh-levelnodes(typicallyperformance,modifiability,security,andavailability).Scenariosaretheleavesoftheutilitytree.Output:acharacterizationandaprioritizationofspecificqualityattributeATAMPhase1-ScenariosScenariosareusedtorepresentstakeholders’interestsunderstandqualityattributerequirementsScenariosshouldcoverarangeofusecasescenarios:anticipatedusesofthesystemgrowthscenarios:anticipatedchangestothesystemexploratoryscenarios:unanticipatedstressestothesystemAgoodscenariomakesclearwhatthestimulusisthatcausesitandwhatresponsesareofinterest.ExampleScenariosUsecasescenarioRemoteuserrequestsadatabasereportviatheWebduringpeakperiodandreceivesitwithin5seconds.GrowthscenarioAddanewdataservertoreducelatencyinscenario1to2.5secondswithin1person-week.ExploratoryscenarioHalfoftheserversgodownduringnormaloperationwithoutaffectingoverallsystemavailability.ScenariosshouldbeasspecificaspossibleStimuli,Environment,ResponsesUseCaseScenarioRemoteuserrequestsadatabasereportviatheWebduringpeakperiodandreceivesitwithin5seconds.GrowthScenarioAddanewdataservertoreducelatencyinscenario1to2.5secondswithin1person-week.ExploratoryScenarioHalfoftheserversgodownduringnormaloperationwithoutaffectingoverallsystemavailability.ATAM-Phase1identifythearchitecturalapproachesaskqualityattributespecificquestionsforhighestpriorityscenariosidentifyandrecordrisksandnon-risks,sensitivitypointsandtradeoffs6.
Evaluationteamprobesarchitecturalapproachesfromthepointofviewofspecificqualityattributestoidentifyrisks.ATAM-Phase1Risks,Tradeoffs,Sensitivities,Non-RisksAsensitivitypointisapropertyofoneormorecomponents(and/orcomponentrelationships)thatiscriticalforachievingaparticularqualityattributeresponse.“Thelevelofconfidentialityinavirtualprivatenetworkmightbesensitivetothenumberofbitsofencryption.”ATAM-敏感点Risks,Tradeoffs,Sensitivities,Non-RisksAtradeoffpointisapropertythataffectsmorethanoneattributeandisasensitivitypointformorethanoneattribute.“Changingthelevelofencryptioncouldhaveasignificantimpactonbothsecurityandperformance.”ATAM-权衡点Risks,Tradeoffs,Sensitivities,Non-RisksAriskisapotentiallyproblematicarchitecturaldecision.“Thelevelofconfidentialityinavirtualprivatenetworkmightbesensitivetothenumberofbitsofencryption.”ATAM-风险决策Risks,Tradeoffs,Sensitivities,Non-RisksNon-risks
aregoodarchitecturaldecisionsthataredeemedsafeuponanalysis.“Assumingmessagearrivalratesofoncepersecond,aprocessingtimeoflessthan30ms,andtheexistenceofonehigherpriorityprocess,a1secondsoftdeadlineseemsreasonable.”(假定消息的到达速率是每秒一次,一次处理的时间小于30ms。如果对一个更高优先级的处理的响应时间要求是1秒钟,此系统可行)ATAM-无风险决策ATAMevaluationsareconductedinfourphasesATAM-阶段ATAM-Phase
2Phase2:involvesalargergroupofstakeholdersPhase2isstakeholdercentricfocusedonelicitingdiversestakeholderpointsofviewandonverificationofthePhase1results.How?Stakeholdersgeneratescenariosusingafacilitatedbrainstormingprocess.Scenariosattheleavesoftheutilitytreeserveasexamplestofacilitatethestep.ATAM-Phase
2Phase2:involvesalargergroupofstakeholdersPhase2isstakeholdercentricfocusedonelicitingdiversestakeholderpointsofviewandonverificationofthePhase1results.Phase
2ATAM-Phase
2Scenariosattheleavesoftheutilitytreeserveasexamplestofacilitatethestep.7.
Stakeholdersgeneratescenariosusingafacilitatedbrainstormingprocess.ATAM-Phase
2Thisstepcontinuestheanalysisstartedinstep6usingthenewscenarios.Continueidentifyingrisksandnon-risks.Continueannotatingarchitecturalinformation.8.
Identifythearchitecturalapproachesimpactedbythescenariosgeneratedinthepreviousstep.ATAM-Phase
2architecturalapproachesutilitytreeScenariosrisksandnon-riskssensitivitypointsandtradeoffsriskthemes9.
Recapitulate(概括)allthestepsoftheATAMandpresenttheATAMoutputs.ATAM-Phase
2ATAMPhase2-BrainstormandPrioritizeScenariosStakeholdersgeneratescenariosusingafacilitatedbrainstormingprocess.Scenariosattheleavesoftheutilitytreeserveasexamplestofacilitatethestep.Inphase2,eachstakeholderisallocatedanumberofvotesroughlyequalto 0.3×#scenariosATAMPhase2-BrainstormandPrioritizeScenariosATAMevaluationsareconductedinfourphasesATAM-阶段Phase3:primarilyinvolvesproducingafinalreportforthecustomeraswellasreflectinguponthequalityoftheevaluationandtheATAMmaterials.ExecutivesummaryDescriptionofATAMDescriptionofbusinessdriversandarchitectureListofphase1andphase2scenariosandutilitytreePhase1andphase2analysis:architecturalapproaches,decisions,risks,sensitivities,tradeoffs,andnon-risksRiskthemesNextstepsFinal
reportATAM-Phase
3ConceptualFlowofATAMATAMTheATAMisamethodforevaluatinganarchitecturewithrespecttomultiplequalityattributesaneffectivestrategyfordiscoveringtheconsequencesofarchitecturaldecisionsamethodforidentifyingtrends,notforperformingpreciseanalysesSummaryReference:EvaluatingSoftwareArchitectures:MethodsandCaseStudies,PaulClements,RickKazman,MarkKlein,AddisonWesley2001ATAM191欢迎各位同学交流讨论计算机科学与技术学院微信应用案例软件体系结构课程组本节内容KWIC案例分析1图书借阅系统案例分析2193In1974,Parnasproposedthefollowingproblem,TheKWIC(keyword-in-context)indexsystem(KWIC索引系统)软件体系结构研究的经典案例acceptsanorderedsetoflines(接受一些行)eachlineisanorderedsetofwords(每行有若干词)eachwordisanorderedsetofcharacters(每个词由若干字符组成)anylinemaybe“circularlyshifted”byrepeatedlyremovingthefirstwordandappendingitattheendoftheline(每行都可以循环移位:重复地把第一个词删除,然后接到行末)TheKWICindexsystemoutputsalistingofallcircularshiftsofalllinesinalphabeticalorder.(KWIC把所有行的各种移位情况按照字母表顺序输出)KWIC-Functional
RequirementsMaryShaw,DavidGarlan.SoftwareArchitecture:PerspectivesonanEmergingDiscipline.The3rdChapter.
AthirdwayforstylestobecombinedistoelaborateonelevelofAthirdwayforstylestothirdwayforstylestoAwayforstylestoAthirdforstylestoAthirdwaystylestoAthirdwayfortoAthirdwayforstylesbecombinedistocombinedistobeistobecombinedtobecombinediselaborateonelevelofonelevelofelaboratelevelofelaborateoneofelaborateonelevelAthirdwayforstylestobecombinedistocombinedistobeelaborateonelevelofforstylestoAthirdwayistobecombined
levelofelaborateone
ofelaborateonelevel
onelevelofelaborate
stylestoAthirdwayfor
thirdwayforstylestoAtoAthirdwayforstylestobecombinedis
wayforstylestoAthirdInput(输入)Circularshifts(循环移位)Order&Output(排序输出)KWIC-Functional
RequirementsACaseforKWICModifiability(可修改性)ChangeinAlgorithm(算法的变化):batchvs.incrementalChangeinDataRepresentation(数据表示方式的变化)linestorage,explicitvs.implicitshiftsEnhancementtosystemfunction(系统功能的可扩展性)e.g.,eliminatelinesstartingwithtrivialwordse.g.,inputlinesfromadatabaseorfromUIe.g.,delete,modifyoraddtolinesfromtheoriginalshiftedlinesPerformance(性能):Bothspaceandtime(时空复杂性)Reusability(系统构件的可复用性)Towhatextentcanthecomponentsserveasreusableentities.KWIC-Non-functional
Requirements采用“主程序-子过程”风格、对系统进行功能分解,是最自然的想法,也是“面向过程的编程”的主要思路。Decomposestheproblemaccordingtothefourbasicfunctionsperformed:input,shift,alphabetize,andoutput.(分为四个基本功能:输入、移位、排序、输出)Thesecomputationalcomponentsarecoordinatedassubroutinesbyamainprogramthatsequencesthroughtheminturn.(主程序按次序调用这四个模块)Dataiscommunicatedbetweenthecomponentsthroughsharedstoragewithanunconstrainedread-writeprotocol.(通过共享的数据存储和无约束的读-写协议在模块之间进行数据交换)KWIC-MainProgram/SubroutinewithSharedDataKWIC-MainProgram/SubroutinewithSharedDatachar[]chars_Charactersfromtheinputfilearestoredinacharacterarraynamedchars_.Wordsaredelimitedbyasinglespacecharacter.int[]line_index_Anintegerarray,whichkeepsindicesofcharactersfromthechar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年节假日保密员职责与技能考试试卷(名师系列)
- 2026年保密员岗位考核试题集1套
- 新生产力背景下人才需求特征与培养机制创新研究
- 2025四川省考评员答题题库附答案
- 中小企业盈利模式创新与市场环境适应性研究
- 可持续投资理念的经济价值研究
- 2025至2030中国水果夹心软糖行业深度研究及发展前景投资评估分析
- KTV销售培训课件
- 2025至2030中国可缠绕管道行业产业运行态势及投资规划深度研究报告
- 企业安全取证培训课件
- 利用EXCEL画风机特性曲线-模版
- 人体工效评估程序
- EPC工程总承包项目设计及施工的配合制度
- 西南大学PPT 04 实用版答辩模板
- 国家开放大学电大《政治学原理》形考任务1及4网考题库答案
- 管理百年智慧树知到答案章节测试2023年
- 国家开放大学《刑法学(1)》形成性考核作业1-4参考答案
- 工艺美术专业课程配套练习二
- 2022“博学杯”全国幼儿识字与阅读大赛选拔试卷
- 临床试验监查计划
- 安全吹哨人管理制度
评论
0/150
提交评论