资源预览内容
第1页 / 共64页
第2页 / 共64页
第3页 / 共64页
第4页 / 共64页
第5页 / 共64页
第6页 / 共64页
第7页 / 共64页
第8页 / 共64页
第9页 / 共64页
第10页 / 共64页
亲,该文档总共64页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印软件系统架构实践软件系统架构实践中国信息化培训中心2013年 10月ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印课 程 目 录ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印二、系统架构之三分过程(一)系统架构之架构分析-架构准备(二)系统架构之架构分割(二)系统架构之架构分割- -概要架构概要架构(三)系统架构之架构分划-细化架构(四)系统架构之非功能目标ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印(二)系统架构之架构分割1 1、概要架构案例、概要架构案例2、概要架构概述3、概要架构之初步设计4、概要架构之高层分割5、非功能需求考虑ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印CA阶段:重大需求塑造概要架构案例一:小张以及他负责的PASS系统ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印CA阶段:重大需求塑造概要架构案例一:小张以及他负责的PASS系统“模块”+“接口”的设计 有点行不通了,PASS系统有几个“可执行单元”还没有弄清楚网络搜索中偶然发现 了下面的文字:此时已到11点,小张来回考虑后,打印下这份文字离开了办公室ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印CA阶段:重大需求塑造概要架构案例一:小张以及他负责的PASS系统第二天,小张什么事没做,拿出A4纸写下了PASS系统的“5大因素”ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印CA阶段:重大需求塑造概要架构案例一:小张以及他负责的PASS系统概要架构不关心明确的接口定义ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印CA阶段:重大需求塑造概要架构案例一:小张以及他负责的PASS系统考虑目标中的1、2和3,得出概要架构的中间成果:ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印CA阶段:重大需求塑造概要架构案例一:小张以及他负责的PASS系统考虑目标中第4点持续可用性,得出概要架构的中间成果:ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印CA阶段:重大需求塑造概要架构案例一:小张以及他负责的PASS系统考虑目标中第5点HIS差异性,得出概要架构成果:ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印(二)系统架构之架构分割1 1、概要架构案例、概要架构案例2 2、概要架构概述、概要架构概述3、概要架构之初步设计4、概要架构之高层分割5、非功能需求考虑ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印CA阶段(概要架构)概述概要架构定义:满足“架构=组件+交互”的基本定义对高层组 件的“职责 ”进行笼统 界定,并给出高层组 件的相互关系不应涉及接口细节思考:不同系统的架构,为什么不同?架构设计 中,应何时确立架构大方向的不同?(功能质量约束,概要架构设计 )ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印CA阶段(概要架构)概述业业界现现状:误将“概要架构”等同于“理想架构”架构设计是功能需求驱动的,对吗?架构设计是用例驱动的,对吗?实际上架构设计的驱动力:功能+质量+约束误把“阶段”当“视图 ”概要架构阶段还是概念视图 ?阶段体现先后关系,视图 体现并列关系概要架构阶段根据重大需求、特殊需求、高风险 需求形成稳定的高层架构设计 成果ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印CA阶段(概要架构)概述实实践要领领:重大需求塑造概要架构 驱动力功能 质量 约束功能 质量 约束驱动力概要架构针对重大需求、特色需求、高风险需求,给出高层次的解决方案 问题1:过于理想化问题2:未来修改很大ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印CA阶段(概要架构)概述实实践要领领:概要架构阶段的3个步骤ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印(二)系统架构之架构分割1 1、概要架构案例、概要架构案例2 2、概要架构概述、概要架构概述3 3、概要架构之初步设计、概要架构之初步设计4、概要架构之高层分割5、非功能需求考虑ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计请检查 是否已经安装了rose2003工具(现在是EA建模软件了)ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计初步设计 的目标就是发现职责 ,运用“职责协 作链”原理画鲁棒图ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计初步设计 原则:初步设计 的目标是“发现职责 ”,为高层切分奠定基础初步设计 “不是”必须的,但当“待设计 系统”对架构师而言并无太多直接 经验时 ,则强烈建议进 行初步设计基于关键功能(而不是对所有功能)、借助鲁棒图(而不是序列图)进行初 步设计ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计鲁棒图的三种对象:边界对象对模拟外部环境和未来系统之间的交互进行建模。边界对象负责 接 收外部输入、处理内部内容的解释、并表达或传递 相应的结果。控制对象对行为进 行封装,描述用例中事件流的控制行为。实体对象对信息进行描述,它往往来自领域概念,和领域模型中的对象有良好的对应 关系。ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计鲁棒图与MVC的区别:ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计鲁棒图案例:为了实现销户 ,银行工作人员要访问 3 个“边界对象”: 活期账户销户 界面、磁条读取设备 、打印设备 (销户 、计算利息)ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计鲁棒图与鲁棒性鲁棒图用于检查 用例规约 是否正确和完善,用于系统分析软件系统的“鲁棒性”经常是指他的“健壮性”鲁棒图进行初步设计的10条经验ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计1)鲁鲁棒图图建模规则规则参与者只能与边界对象交谈。边界对象只能与控制对象和参与者交谈。实体对象也只能与控制对象交谈。控制对象能与边界对象交谈,也能与控制对象交谈,但不能与参与者交谈ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计2)鲁鲁棒图简图简 化建模语语法不关心“IF语句”怎么建模是一种非常特殊的类图ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计3)鲁鲁棒图图3种元素的发现发现 思路研究用例背后的场景,发现 不同的职责ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计4)鲁鲁棒图图增量建模对WinZip、WinRar压缩 工具的“压缩 ”功能进行建模首先识别 出了三个职责 :原文件压缩 包压缩 器(负责压缩处 理)ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计4)鲁鲁棒图图增量建模对WinZip、WinRar压缩 工具的“压缩 ”功能进行建模接下来,开始考虑职责间 关系,并发现 新职责 。“压缩 器”读“原文件”,最终生成“压缩 包”嗯,这里可以将“打包器”独立出来,它是受了“压缩 器”的委托而工作。哦,还有“字典”ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计4)鲁鲁棒图图增量建模对WinZip、WinRar压缩 工具的“压缩 ”功能进行建模继续 同样的思维方式(别忘了用例规约 定义的各种场景是你的输入,而且,没有文档化的用例规约 都没关系,你的头脑 中有吗?)。鲁棒图又引入了“压缩 配置”,它影响着“压缩 器”的工作方式,例如加密压缩 、分卷压缩或是其他。ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计4)鲁鲁棒图图增量建模对WinZip、WinRar压缩 工具的“压缩 ”功能进行建模压缩 功能还要支持显示压缩进 度、以及随时取消进行了一半的压缩 工作,所以,“你”又识别 出了“压缩 行进界面”和“监听器”等职责ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计5)实实体对对象持久化对对象 可以是内存中任何对象6)只对对关键键功能(用例)画鲁鲁棒图图7)每个鲁鲁棒图图 2-5 个控制对对象 控制对象不必太多太细,5 个是常见的上限8)勿关注细节细节初步设计 不应关注细节 。例如,回顾前面的“销户 ”的鲁棒图:每个对象,只标识对 象名,都未识别 其属性和方法。“活期账户销户 界面”,具体可能是对话 框、Web 页面、字符终端界面,但 鲁棒图中没有关心此细节问题 。“客户资 料”等实体对象,需要持久化吗?不关心,更不关心用 Table 还是用 File 或其他方式持久化。而且,也没有标识 控制流的严格顺序。ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计9)勿过过分关注 UI,除非辅辅助或验证验证 UI 设计设计 10)鲁鲁棒图图用例规约规约 的可视视化鲁棒图是设计 ,“系统”已经被切分成不同的职责单 元。而用例规约 是需求,其中出现的“系统”必定是黑盒(如下图)。所以,二者有本质区别ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计PASS系统练习统练习首先,识别 最“明显”的职责 。先识别 出了最不可或缺的、体现整个功能价值所在的“处方检查结 果”相关的几个职责 。ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计PASS系统练习统练习接下来,开始考虑职责间 关系,并发现 新职责 。检查结 果是如何产生的呢?“检查 ”这个控制对象,读取“处方”和“用药规则 ”信息,最终生成了“处方检查结 果”信息。ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计PASS系统练习统练习继续 同样的思维方式。PASS 系统自动检查处 方,是由 HIS 系统中医生工作站的调用触发的,“处方”信息也是通过某种方式(例如参数或 XML文件)从 HIS 医生工作站获得的ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计PASS系统练习统练习实时检查处 方最终的鲁棒图如下图 所示。它进一步考虑了“记录违规 用药”这一具体功能场景的支持。ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-初步设计PASS系统练习统练习概要架构设计时 推荐只对关键功能进行鲁棒图建模。例如,另一个关键功能“自动更新用药规则 ”的鲁棒图(5分钟画一下)ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印(二)系统架构之架构分割1 1、概要架构案例、概要架构案例2 2、概要架构概述、概要架构概述3 3、概要架构之初步设计、概要架构之初步设计4 4、概要架构之高层分割、概要架构之高层分割5、非功能需求考虑ZPEDU.ORGZPEDU.ORG讲义版权由中培教育所有,未经同意,不得转印概要架构-高层分割高层层分割
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号