系统架构过程2之架构分割.

上传人:我** 文档编号:114743709 上传时间:2019-11-12 格式:PPT 页数:64 大小:4.28MB
返回 下载 相关 举报
系统架构过程2之架构分割._第1页
第1页 / 共64页
系统架构过程2之架构分割._第2页
第2页 / 共64页
系统架构过程2之架构分割._第3页
第3页 / 共64页
系统架构过程2之架构分割._第4页
第4页 / 共64页
系统架构过程2之架构分割._第5页
第5页 / 共64页
点击查看更多>>
资源描述

《系统架构过程2之架构分割.》由会员分享,可在线阅读,更多相关《系统架构过程2之架构分割.(64页珍藏版)》请在金锄头文库上搜索。

1、软件系统架构实践,中国信息化培训中心 2013年 10月,课 程 目 录,二、系统架构之三分过程,(一)系统架构之架构分析-架构准备 (二)系统架构之架构分割-概要架构 (三)系统架构之架构分划-细化架构 (四)系统架构之非功能目标,(二)系统架构之架构分割,1、概要架构案例 2、概要架构概述 3、概要架构之初步设计 4、概要架构之高层分割 5、非功能需求考虑,CA阶段:重大需求塑造概要架构,案例一:小张以及他负责的PASS系统,CA阶段:重大需求塑造概要架构,案例一:小张以及他负责的PASS系统 “模块”+“接口”的设计有点行不通了,PASS系统有几个“可执行单元”还没有弄清楚 网络搜索中偶

2、然发现了下面的文字: 此时已到11点,小张来回考虑后,打印下这份文字离开了办公室,CA阶段:重大需求塑造概要架构,案例一:小张以及他负责的PASS系统 第二天,小张什么事没做,拿出A4纸写下了PASS系统的“5大因素”,CA阶段:重大需求塑造概要架构,案例一:小张以及他负责的PASS系统 概要架构不关心明确的接口定义,CA阶段:重大需求塑造概要架构,案例一:小张以及他负责的PASS系统 考虑目标中的1、2和3,得出概要架构的中间成果:,CA阶段:重大需求塑造概要架构,案例一:小张以及他负责的PASS系统 考虑目标中第4点持续可用性,得出概要架构的中间成果:,CA阶段:重大需求塑造概要架构,案例

3、一:小张以及他负责的PASS系统 考虑目标中第5点HIS差异性,得出概要架构成果:,(二)系统架构之架构分割,1、概要架构案例 2、概要架构概述 3、概要架构之初步设计 4、概要架构之高层分割 5、非功能需求考虑,CA阶段(概要架构)概述,概要架构定义: 满足“架构=组件+交互”的基本定义 对高层组件的“职责”进行笼统界定,并给出高层组件的相互关系 不应涉及接口细节 思考: 不同系统的架构,为什么不同? 架构设计中,应何时确立架构大方向的不同? (功能质量约束,概要架构设计),CA阶段(概要架构)概述,业界现状: 误将“概要架构”等同于“理想架构” 架构设计是功能需求驱动的,对吗? 架构设计是

4、用例驱动的,对吗? 实际上架构设计的驱动力:功能+质量+约束 误把“阶段”当“视图” 概要架构阶段还是概念视图? 阶段体现先后关系,视图体现并列关系 概要架构阶段根据重大需求、特殊需求、高风险需求形成稳定的高层架构设计成果,CA阶段(概要架构)概述,实践要领: 重大需求塑造概要架构,驱动力,功能 质量 约束,功能 质量 约束,驱动力,概要架构针对重大需求、特色需求、高风险需求,给出高层次的解决方案,问题1:过于理想化 问题2:未来修改很大,CA阶段(概要架构)概述,实践要领: 概要架构阶段的3个步骤,(二)系统架构之架构分割,1、概要架构案例 2、概要架构概述 3、概要架构之初步设计 4、概要

5、架构之高层分割 5、非功能需求考虑,概要架构-初步设计,请检查是否已经安装了rose2003工具 (现在是EA建模软件了),概要架构-初步设计,初步设计的目标就是发现职责,运用“职责协作链”原理画鲁棒图,概要架构-初步设计,初步设计原则: 初步设计的目标是“发现职责”,为高层切分奠定基础 初步设计“不是”必须的,但当“待设计系统”对架构师而言并无太多直接 经验时,则强烈建议进行初步设计 基于关键功能(而不是对所有功能)、借助鲁棒图(而不是序列图)进行初 步设计,概要架构-初步设计,鲁棒图的三种对象: 边界对象对模拟外部环境和未来系统之间的交互进行建模。边界对象负责接 收外部输入、处理内部内容的

6、解释、并表达或传递相应的结果。 控制对象对行为进行封装,描述用例中事件流的控制行为。 实体对象对信息进行描述,它往往来自领域概念,和领域模型中的对象有良好的对应关系。,概要架构-初步设计,鲁棒图与MVC的区别:,概要架构-初步设计,鲁棒图案例: 为了实现销户,银行工作人员要访问 3 个“边界对象”: 活期账户销户界面、磁条读取设备、打印设备(销户、计算利息),概要架构-初步设计,鲁棒图与鲁棒性 鲁棒图用于检查用例规约是否正确和完善,用于系统分析 软件系统的“鲁棒性”经常是指他的“健壮性” 鲁棒图进行初步设计的10条经验,概要架构-初步设计,1)鲁棒图建模规则 参与者只能与边界对象交谈。 边界对

7、象只能与控制对象和参与者交谈。 实体对象也只能与控制对象交谈。 控制对象能与边界对象交谈,也能与控制对象交谈,但不能与参与者交谈,概要架构-初步设计,2)鲁棒图简化建模语法 不关心“IF语句”怎么建模 是一种非常特殊的类图,概要架构-初步设计,3)鲁棒图3种元素的发现思路 研究用例背后的场景,发现不同的职责,概要架构-初步设计,4)鲁棒图增量建模 对WinZip、WinRar压缩工具的“压缩”功能进行建模 首先识别出了三个职责: 原文件 压缩包 压缩器(负责压缩处理),概要架构-初步设计,4)鲁棒图增量建模 对WinZip、WinRar压缩工具的“压缩”功能进行建模 接下来,开始考虑职责间关系

8、,并发现新职责。“压缩器”读“原文件”,最终生成“压缩包”嗯,这里可以将“打包器”独立出来,它是受了“压缩器”的委托而工作。哦,还有“字典”,概要架构-初步设计,4)鲁棒图增量建模 对WinZip、WinRar压缩工具的“压缩”功能进行建模 继续同样的思维方式(别忘了用例规约定义的各种场景是你的输入,而且,没有文档化的用例规约都没关系,你的头脑中有吗?)。鲁棒图又引入了“压缩配置”,它影响着“压缩器”的工作方式,例如加密压缩、分卷压缩或是其他。,概要架构-初步设计,4)鲁棒图增量建模 对WinZip、WinRar压缩工具的“压缩”功能进行建模 压缩功能还要支持显示压缩进度、以及随时取消进行了一

9、半的压缩工作,所以,“你”又识别出了“压缩行进界面”和“监听器”等职责,概要架构-初步设计,5)实体对象持久化对象 可以是内存中任何对象 6)只对关键功能(用例)画鲁棒图 7)每个鲁棒图 2-5 个控制对象 控制对象不必太多太细,5 个是常见的上限 8)勿关注细节 初步设计不应关注细节。例如,回顾前面的“销户”的鲁棒图: 每个对象,只标识对象名,都未识别其属性和方法。 “活期账户销户界面”,具体可能是对话框、Web 页面、字符终端界面,但 鲁棒图中没有关心此细节问题。 “客户资料”等实体对象,需要持久化吗?不关心,更不关心用 Table 还是用 File 或其他方式持久化。 而且,也没有标识控

10、制流的严格顺序。,概要架构-初步设计,9)勿过分关注 UI,除非辅助或验证 UI 设计 10)鲁棒图用例规约的可视化 鲁棒图是设计,“系统”已经被切分成不同的职责单元。而用例规约是需求,其中出现的“系统”必定是黑盒(如下图)。所以,二者有本质区别,概要架构-初步设计,PASS系统练习 首先,识别最“明显”的职责。先识别出了最不可或缺的、体现整个功能价值所在的“处方检查结果”相关的几个职责。,概要架构-初步设计,PASS系统练习 接下来,开始考虑职责间关系,并发现新职责。检查结果是如何产生的呢?“检查”这个控制对象,读取“处方”和“用药规则”信息,最终生成了“处方检查结果”信息。,概要架构-初步

11、设计,PASS系统练习 继续同样的思维方式。PASS 系统自动检查处方,是由 HIS 系统中医生工作站的调用触发的,“处方”信息也是通过某种方式(例如参数或 XML文件)从 HIS 医生工作站获得的,概要架构-初步设计,PASS系统练习 实时检查处方最终的鲁棒图如下图 所示。它进一步考虑了“记录违规用药”这一具体功能场景的支持。,概要架构-初步设计,PASS系统练习 概要架构设计时推荐只对关键功能进行鲁棒图建模。例如,另一个关键功能“自动更新用药规则”的鲁棒图(5分钟画一下),(二)系统架构之架构分割,1、概要架构案例 2、概要架构概述 3、概要架构之初步设计 4、概要架构之高层分割 5、非功

12、能需求考虑,概要架构-高层分割,高层分割两种实践套路: “一步到位”还是“两步到位”,概要架构-高层分割,切系统为系统的架构师设置: 案例:BOSS系统包含网管、服务、计费、客户关系管理,概要架构-高层分割,切系统为系统:,概要架构-高层分割,切系统为系统 案例:SAAS模式的软件租用平台架构设计 高层功能描述如下:,概要架构-高层分割,切系统为系统 案例:SAAS模式的软件租用平台架构设计 切系统为系统的思维过程:,概要架构-高层分割,切系统为系统 案例:SAAS模式的软件租用平台架构设计 切系统为3个系统:,概要架构-高层分割,切系统为子系统 案例:PM系统 高层用例图:,概要架构-高层分

13、割,切系统为子系统 案例:PM系统 高层分割,采用经典的4层架构:,概要架构-高层分割,分层式概要架构实践,“3+1”种流派 Layer:逻辑层 Tier:物理层 按通用性分层 技术堆叠,概要架构-高层分割,分层式概要架构实践,“3+1”种流派 Layer:逻辑层,上层使用下层观念 不关注物理划分,也不关注通用性,概要架构-高层分割,分层式概要架构实践,“3+1”种流派 Tier:物理层,分布部署在不同机器上 案例:J2EE,概要架构-高层分割,分层式概要架构实践,“3+1”种流派 Tier:物理层,分布部署在不同机器上 案例:中国电信全球眼系统,概要架构-高层分割,分层式概要架构实践,“3+

14、1”种流派 通用性分层:通用性越多,所处层次越靠下,概要架构-高层分割,分层式概要架构实践,“3+1”种流派 技术堆叠:不是独立的架构模式,是上面三种分层的进一步说明,概要架构-高层分割,PASS系统案例练习 从初步设计到高层分割(5分钟用前面的结果进行分割),概要架构-高层分割,PASS系统案例练习 PASS系统之Layer设计,概要架构-高层分割,PASS系统案例练习 PASS系统之Tier设计,概要架构-高层分割,PASS系统案例练习 PASS系统引入通用性分层 通过质疑“可重用性”,与各种HIS连接,引出“医生模块通用性SDK”,(二)系统架构之架构分割,1、概要架构案例 2、概要架构

15、概述 3、概要架构之初步设计 4、概要架构之高层分割 5、非功能需求考虑,概要架构-考虑非功能需求,考虑非功能性需求要趁早,概要架构-考虑非功能需求,通过“目标-场景-决策表”分析非功能需求 案例:PM Tool系统,概要架构-考虑非功能需求,通过“目标-场景-决策表”分析非功能需求 案例:PASS系统练习 可重用性考虑,概要架构-考虑非功能需求,通过“目标-场景-决策表”分析非功能需求 案例:PASS系统练习 持续可用性、安全性考虑,概要架构-考虑非功能需求,通过“目标-场景-决策表”分析非功能需求 案例:PASS系统练习 考虑非功能需求后的架构设计:,谢谢大家 !,Questions or comments?,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号