已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,设计构架(1),.,简短回顾,在前几节课我们学习了构架的商业性方面构架视图和结构质量属性实现质量属性的构架战术和模式这些构成了我们进行构架设计的背景知识生命周期中的构架设计构架形成团队结构创建骨架系统,.,软件生命周期,常见的软件生命周期模型瀑布模型瀑布模型将软件生命周期的各项活动规定为依固定顺序联接的若干阶段工作,形如瀑布流水,最终得到软件产品演化模型用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现。螺旋模型瀑布模型与演化模型相结合,并加入两者所忽略的风险分析所建立的一种软件开发模型。构架在软件生命周期中处于一个什么位置?,.,演化模型生命周期,软件概念,初步的需求分析,构架和系统核心的设计,交付最终版本,获取客户反馈,开发一个版本,汇总客户反馈,交付该版本,.,何时可以开始构架设计,首先要有需求但我们并不需要太多的需求来开始构架设计形成构架的因素包括功能需求质量需求商业需求这些需求我们成为构架驱动因素例如:第三章案例中介绍的A-7E航空电子系统的可修改性和性能需求第六章案例中的空中交通管制系统的可用性需求,.,决定构架驱动因素,识别构架驱动因素识别最高优先级的商业目标应该只有几个将这些商业目标转化为质量属性场景或使用案例从中选择对构架产生最大影响的部分这些就是构架驱动因素应该不多于10个,使用案例是对一个系统所执行的一系列动作的描述,通常功能属性的需求都可以由用户案例表达,.,属性驱动的设计(ADD),ADD是一种设计软件构架的方法,该方法根据软件的质量属性需求对系统进行分解一个递归的分解过程系统分解基于系统必须满足的质量属性每个阶段都选择战术和构架模式来满足一组质量属性的场景,然后对功能进行分配,以实例化由该模块所提供的模块类型ADD结果:得到一种粗粒度的划分,即模块分解视图和其他视图的最初的几个层次系统被描述为功能和功能之间交互的一组容器,.,案例分析车库门开关器(1),目标:为家庭信息系统(HIS)中的车库门开关器设计一个产品线构架开关器负责通过开关、远程控制或家庭信息系统来实现车门的升起或下降ADD的输入:一组需求使用用户案例表达的功能需求限制使用质量属性场景表达的质量需求,.,案例分析车库门开关器(2),车库门系统的质量属性场景对于产品线中的各种产品而言,用于开门和关门的设备和控制装置是不同的不同的产品中使用的处理器不同如果车库门在下降的过程中检测到一个障碍物,它必须在0.1秒内停止可以在家庭信息系统内使用产品相关的诊断协议来诊断和管理车库门开关器。因改可以直接产生一个反应该协议的构架,.,ADD步骤,1.选择要分解的模块从整个系统开始进行分解时,要求所有输入都是可获得的限制条件、功能需求、质量需求2.根据这些步骤对模块进行求精从具体的质量场景和功能需求集合中选择构架驱动因素选择或创建满足构架驱动因素的构架模式,确定所用战术需要的子模块实例化模块并根据使用案例分配功能,使用多个视图进行表示定义子模块的接口验证使用案例和质量场景并对其进行求精,使它们成为子模块的限制3.对需要进一步分解的每个模块重复上述步骤,.,选择要分解的模块,系统分解的步骤:系统子系统子模块示例中,系统指的是车库门开关器在这个级别的一个限制是:开关器必须能与家庭信息系统进行交互,.,2.a选择构架驱动因素,进行分解时,需要从质量属性场景和功能需求中选择相应的构架驱动因素构架驱动因素在模块的高优先级需求中在车库门系统中,已给出的4个场景就是构架驱动因素,它们给出了以下需求可修改性实时性能需求ADD的特点在于,对于模块的所有需求并非同等对待通过选择构架驱动因素,我们将问题简化为满足最重要的需求在满足最重要的需求的条件下,才满足不太重要的需求,.,选择构架模式(1),对于每个质量属性的需求,在构架设计中,我们都有相应的战术来实现它每个战术都有相应的成本每个战术都可以实现一个或多个质量属性,但是也可能对一些质量属性产生负面的影响通常我们会在构架设计中选择战术的组合来实现多个质量属性的平衡,.,选择构架模式(2),该步骤的目标是建立一个由模块类型组成的总体构架模式该模式通过组合选定的战术,满足构架驱动因素影响战术选择的两个因素驱动因素本身实现战术的模式对其他质量属性产生的副作用,.,选择构架模式(3)-示例,比如:为了达成系统的可修改性,一个经典的战术就是使用“解释器”模式但是使用解释器模式会对性能产生较大的负面影响是否使用“解释器”模式依赖于可修改性与性能的重要性对比一个可行的决策为:对总体模式的部分使用“解释器”,其他部分则使用其他战术,.,选择构架模式(4),按照案例分析中所提到的两个关键需求:性能和可修改性,我们可以使用学过的响应战术来满足可修改性战术回顾局部化变更防止连锁反应推迟绑定时间我们的案例中,可修改性场景主要与系统设计时出现的变更相关,因此我们可以使用“局部化变更”战术所采用的具体战术为:“语义一致性”和信息隐藏,.,选择构架模式(5),性能战术回顾资源需求提高计算效率资源仲裁优化调度算法资源管理无论是引入并发,还是维持数据或计算的备份,还是增加可用资源,都无助于提高车库门的响应速度,.,选择构架模式(6),最后选定和应用的具体战术语义一致性将处理用户接口、通讯和传感器的部分都放入各自单独的模块信息隐藏为通讯和传感器模块使用“虚拟机”技术,隐藏内部实现提高计算效率提高关键部分(瓶颈)的计算效率精心调度对关键性能计算进行调度,确保实时响应需求,.,应用了战术后导出的模式这并非唯一可导出模式这是一个满足了需求的模式,非关键性能计算,虚拟机,关键性能计算,用户界面,保证时限时间的调度程序,选择构架模式(7),.,实例化模块(1),前面的步骤确定了模块的分解结构,接下来要确定如何实例化这些模块类型在ADD方法中,功能的分配标准类似于其他设计方法实际的系统中往往有多个模块,每组功能都会有一个模块模块功能实例化升/降门(没有时限,非关键性能计算)诊断(非关键性能计算)障碍物检测(有时限,关键性能计算)通信、传感等(有可修改性需求,使用“虚拟机”技术),.,实例化模块(2),诊断,通讯虚拟机,障碍物检测,用户接口,保证时限时间的调度程序,升/降门,传感器/启发器虚拟机,.,分配功能(1),该步骤的目的是验证现有的分解时限所要求的功能防止功能的遗漏应用与父模块相关的用例可以让构架师更详细的了解功能的分布情况可能导致增加或删除子模块父模块的每个用例都可用子模块的一系列责任来表示,.,分配功能(2),为分解模块中的子模块分配责任还会帮助发现必要的信息交换这必须作为生产者/消费者关系记录下来信息交互的细节在这一步并不重要一些交互将引入模块间交互的特定模式比如:发布/订阅模式必须记录这些模式,对于受影响的模块而言,它们将转化为责任,.,用多个视图表示构架(1),通常使用三种主要的视图类型中,每种选择一个视图来表示构架(如果这些视图的表示还不足够怎么办?)模块分解视图为责任提供容器;确定模块间的主要数据流关系并发视图确定资源竞争、可能出现的死锁和数据一致性问题可能会发现模块的新责任比如对临界资源的并发访问必须在模块视图中对这个新责任进行记录可能导致新模块的产生比如:一个资源管理器,.,用多个视图表示构架
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版高血压常见症状分析及护理指导
- 天门科技馆介绍
- 视网膜病变的治疗方法
- 病房物品保管宣教
- 2025版代谢病常见症状及护理注意事项
- 铱星组网协议书
- 2025-2026学年安徽省宿州市五年级道德与法治上册期中考试试卷及答案
- 苏课新版二年级生物上册月考考试试题及答案
- 京津冀合作框架协议书
- 流感病常见表现及护理指南培训
- 水下玻纤灌浆施工方案
- 知识产权知识竞赛题库(含答案)
- 财务总监岗位招聘笔试题及解答(某大型团公司)2025年
- 团务知识技能培训方案课件
- 禅茶养生师初级考试试卷与答案
- 生鲜乳安全培训班课件
- 2025年公共行政学电大专科考试考点版
- 白内障患者术后并发症护理的护理查房
- 国家基层高血压防治管理指南(2025版)
- 2025年北京工程造价定额与计价规范解析
- 2025至2030中国南美白对虾行业市场发展分析及发展潜力与投资机会报告
评论
0/150
提交评论