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