[计算机软件及应用]Kruchten的4+1模型描述软件体系结构.ppt
-
资源ID:25223380
资源大小:954.50KB
全文页数:41页
- 资源格式: PPT
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
[计算机软件及应用]Kruchten的4+1模型描述软件体系结构.ppt
计算机软件及应计算机软件及应用用Kruchten的的4+1模模型描述软件体系结构型描述软件体系结构 2 27/10/2022Kruchten的的4+1模型描述软件体系结构模型描述软件体系结构 n本章参考本章参考Philippe Kruchten Architectural BlueprintsThe “4+1” View Model of Software Architecture 3 37/10/2022假定你是假定你是Module Designern你最近加盟一家公司,并被安排在一个新你最近加盟一家公司,并被安排在一个新项目的开发组中。虽然你富有经验,但是项目的开发组中。虽然你富有经验,但是对此项目所涉及的领域还是一个新手。系对此项目所涉及的领域还是一个新手。系统的高层体系结构设计已经完成。统的高层体系结构设计已经完成。n你的老板(项目经理)让你预计你将要完你的老板(项目经理)让你预计你将要完成的几个模块的开发时间。成的几个模块的开发时间。n你怎么办?你怎么办? 4 47/10/2022假定你是假定你是Module Designern你来开发你来开发A2和和A3,怎么开始?,怎么开始? 5 57/10/2022假定你是假定你是Consultant(顾问顾问)n你是一个请来的顾问,对一个体系结构设你是一个请来的顾问,对一个体系结构设计进行评估。计进行评估。Modifiability和和Performance是重要的体系结构质量因素。是重要的体系结构质量因素。n你会询问什么样的信息?你会询问什么样的信息? 6 67/10/2022假定你是假定你是Consultant(顾问顾问)n面对这样的图,你会有什么反应?面对这样的图,你会有什么反应? 7 77/10/2022假定你是假定你是Consultant(顾问顾问)n面对这样的图,你会有什么反应?面对这样的图,你会有什么反应? 8 87/10/2022体系结构描述方法体系结构描述方法n软件开发过程中各种角色之间交流设计思软件开发过程中各种角色之间交流设计思想的媒介想的媒介n进行上层分析的基础。此基础上可以验证进行上层分析的基础。此基础上可以验证体系结构设计方案,精炼或改变必要的方体系结构设计方案,精炼或改变必要的方案案n让别人理解系统的第一手资料让别人理解系统的第一手资料 9 97/10/2022与与Module Designer交流交流n基本想法是什么?基本想法是什么?n我该做什么我该做什么 (如,实现哪些需求如,实现哪些需求) ?n我该在哪做我该在哪做 (如,这项功能实现在哪里如,这项功能实现在哪里) ?n我和谁交互?接口是什么?我和谁交互?接口是什么?n有什么可以重用的代码?有什么可以重用的代码?n必须遵从什么约定必须遵从什么约定(质量目标、旧体系质量目标、旧体系/接口、预接口、预算等算等)?n有哪些硬性规定有哪些硬性规定(设计、接口、约束等设计、接口、约束等)? 10107/10/2022与顾问交流与顾问交流n体系结构的必要需求体系结构的必要需求(driving requirement)是什是什么么(如,如,performance, availability, security, modifiability, interoperability)?n各种体系结构视图是如何描述的?各种体系结构视图是如何描述的?抽象出来什么?抽象出来什么?功能怎样分解?功能怎样分解?功能怎样分配?功能怎样分配?使用什么硬件以及软件怎样布置在硬件上?使用什么硬件以及软件怎样布置在硬件上?n采用了哪些体系结构风格?采用了哪些体系结构风格? 11117/10/2022这是什么?这是什么? 12127/10/2022上图的毛病上图的毛病n很多事情没有说:很多事情没有说:组件类型组件类型连接件类型连接件类型圆圈和箭头代表什么?圆圈和箭头代表什么?这种布局的意义是什么?这种布局的意义是什么?为什么为什么CP要放在上层?要放在上层?n只画出方框和线条不是体系结构,只是体只画出方框和线条不是体系结构,只是体系结构的开始系结构的开始 13137/10/2022好的体系结构描述的必要元素好的体系结构描述的必要元素n需求陈述需求陈述商业环境、产品的背景、领域商业环境、产品的背景、领域n描述环境描述环境必须和什么系统交互、外部接口必须和什么系统交互、外部接口n使用体系结构图使用体系结构图用恰当的线框用恰当的线框简洁的说明简洁的说明 14147/10/2022好的体系结构描述的必要元素好的体系结构描述的必要元素n考虑实现时的限制考虑实现时的限制但是仅在它们能影响体系结构设计的范围内但是仅在它们能影响体系结构设计的范围内n被限定的下层结构、处理器需求被限定的下层结构、处理器需求通常包含其他结构图通常包含其他结构图n体系结构设计的原理体系结构设计的原理它怎样去符合需求与约束它怎样去符合需求与约束其他的设计其他的设计 15157/10/2022其他方面其他方面n风格风格/产品线问题产品线问题设计可变的尺度设计可变的尺度体系结构的那个方面必须不被改变?体系结构的那个方面必须不被改变?n管理问题管理问题暗含开发团队的组织结构暗含开发团队的组织结构体系结构评审情况体系结构评审情况n其他设计问题其他设计问题代码重用、标准的运用代码重用、标准的运用风险分析风险分析运作、管理和维护运作、管理和维护 16167/10/2022好描述好描述n线和框有不同的形状线和框有不同的形状/颜色,并有图例说明颜色,并有图例说明n用表格总结方案选择等等各种问题用表格总结方案选择等等各种问题n图并不试图去表达很多信息:把信息分散图并不试图去表达很多信息:把信息分散到需要表达它的各个视图中到需要表达它的各个视图中n每个体系结构视图必须在一页内完成每个体系结构视图必须在一页内完成n清晰地区分出哪些是体系结构视图,哪些清晰地区分出哪些是体系结构视图,哪些不是不是 17177/10/2022坏描述坏描述n所有的线看起来都一样所有的线看起来都一样n箭头不代表任何涵义箭头不代表任何涵义n箭头代表很多涵义箭头代表很多涵义n实现与文档冲突实现与文档冲突n没有图例没有图例n太多的必要需求太多的必要需求 18187/10/2022视图视图n系统需要多种视图来描述系统需要多种视图来描述其中的一小部分是描述体系结构的其中的一小部分是描述体系结构的n运行时视图运行时视图/动态视图动态视图(组件和连接件组件和连接件)在高层分解成组件和连接件在高层分解成组件和连接件n代码视图代码视图模块关联和依赖模块关联和依赖n使用使用/调用调用/和和共享数据共享数据文件和目录、工程和编译文件、版本控制文件和目录、工程和编译文件、版本控制n物理视图物理视图把计算单元分配到各个进程或处理器把计算单元分配到各个进程或处理器 19197/10/2022阅读阅读nPhilippe Kruchten, Architectural BlueprintsThe “4+1” View Model of Software Architecture, IEEE Software 12 (6), 1995, pp. 42-50nRelease 6A Segment/Design Specification for the ECS Project, Section 4.4. NASA Report 305-CD-600-001, pages 4-160-185. March 2001 http:/edhs1.gsfc.nasa.gov/waisdata/toc/cd30560001toc.html 20207/10/20223.1 “4十十1”模型模型 21217/10/2022 22227/10/2022 23237/10/2022 24247/10/2022 25257/10/20223.2 逻辑视图的体系结构:面向对象的分解逻辑视图的体系结构:面向对象的分解 26267/10/20223.2.1 逻辑视图的符号表示法逻辑视图的符号表示法 27277/10/20223.2.2 逻辑视图的风格逻辑视图的风格3.2.3 逻辑视图的例子逻辑视图的例子 28287/10/20223.3 过程视图的体系结构:过程分解过程视图的体系结构:过程分解 n过程体系结构考虑的是一些非功能性的需求,诸如性能、可用性等。过程体系结构考虑的是一些非功能性的需求,诸如性能、可用性等。它所要面对的问题有并发,分布,系统的完整性,容错能力等。它还它所要面对的问题有并发,分布,系统的完整性,容错能力等。它还要考虑怎样把过程体系结构与逻辑视图体系结构的要点相适应要考虑怎样把过程体系结构与逻辑视图体系结构的要点相适应对对某个对象的某个操作实际上是在哪个控制线程上发生的。某个对象的某个操作实际上是在哪个控制线程上发生的。n可以把过程体系结构分为几个抽象层次来描述,每个层次考虑不同的可以把过程体系结构分为几个抽象层次来描述,每个层次考虑不同的方面。在最高层次上,过程体系结构可以被视为是一个逻辑网络的集方面。在最高层次上,过程体系结构可以被视为是一个逻辑网络的集合。每个独立执行的逻辑网络都是由通信程序合。每个独立执行的逻辑网络都是由通信程序( (即即“过程过程”) )构成的。构成的。这些逻辑网络分布在一个通过这些逻辑网络分布在一个通过LANLAN或或WANWAN连接起来的硬件资源集合上。连接起来的硬件资源集合上。多个逻辑网络可能同时存在,并共享同样的物理资源。例如,逻辑网多个逻辑网络可能同时存在,并共享同样的物理资源。例如,逻辑网络的概念可用于区分在线处理系统和离线处理系统。络的概念可用于区分在线处理系统和离线处理系统。 29297/10/20223.3 过程视图的体系结构:过程分解过程视图的体系结构:过程分解 n软件被分为独立的任务的集合。每个任务是一个独立的控制线程,可软件被分为独立的任务的集合。每个任务是一个独立的控制线程,可以在一个处理节点上独立单独调度。因此可以将任务分为主任务和辅以在一个处理节点上独立单独调度。因此可以将任务分为主任务和辅任务。主任务是需要单独解决的体系结构元素。辅任务是由于实现原任务。主任务是需要单独解决的体系结构元素。辅任务是由于实现原因而在本地加入的附加任务因而在本地加入的附加任务( (缓冲,超时,等等缓冲,超时,等等) ),例如可以将它们实,例如可以将它们实现为轻量级的线程。主任务通过一套完善定义的任务间通信机制进行现为轻量级的线程。主任务通过一套完善定义的任务间通信机制进行通信:同步的或异步的基于消息的通信服务、远程过程调用、时间广通信:同步的或异步的基于消息的通信服务、远程过程调用、时间广播等。不应当假设通信中的主任务处于同一个过程中或处在同一个处播等。不应当假设通信中的主任务处于同一个过程中或处在同一个处理节点上。辅任务的通信可以采用共享内存的方式或其他双方约定的理节点上。辅任务的通信可以采用共享内存的方式或其他双方约定的方式。方式。 n基于过程体系结构设计图,可以估计出消息流和过程负荷。基于过程体系结构设计图,可以估计出消息流和过程负荷。 30307/10/20223.3.1 过程视图的符号表示法过程视图的符号表示法 31317/10/20223.2.2 3.2.2 过程视图的风格过程视图的风格 有多种风格适合过程体系结构。例如管道和过滤器、客户服务器及其有多种风格适合过程体系结构。例如管道和过滤器、客户服务器及其变体变体( (多客户单服务器,多客户多服务器多客户单服务器,多客户多服务器) )等。等。3.2.3 3.2.3 过程视图的例子过程视图的例子 32327/10/20223.4 开发视图的体系结构:子系统分解开发视图的体系结构:子系统分解 33337/10/20223.4.1 3.4.1 开发视图的符号表示法开发视图的符号表示法 34347/10/20223.4.2 3.4.2 开发视图的风格开发视图的风格 35357/10/20223.4.3 3.4.3 开发视图的例子开发视图的例子 36367/10/20223.5 物理视图的体系结构:从软件到硬件的映射物理视图的体系结构:从软件到硬件的映射 37377/10/20223.5.1 物理视图的符号表示法物理视图的符号表示法 38387/10/20223.6 场景视图的体系结构:汇总场景视图的体系结构:汇总 39397/10/20223.6.1 场景视图的符号表示法场景视图的符号表示法 场景视图的符号表示法中,构件的表示与逻辑视图非常相场景视图的符号表示法中,构件的表示与逻辑视图非常相似,但是连接件的表示使用过程视图中的方法。注意,对似,但是连接件的表示使用过程视图中的方法。注意,对象的实例用细实线表示。在工具的使用方面,和在逻辑体象的实例用细实线表示。在工具的使用方面,和在逻辑体系结构类似,可以使用系结构类似,可以使用Rational RoseRational Rose绘制和管理对象场景绘制和管理对象场景图。图。 40407/10/20223.6.2 场景视图的例子场景视图的例子 Joe Joe的电话的控制器检测到并证实了从挂起到取下的状态转变,的电话的控制器检测到并证实了从挂起到取下的状态转变,并且发送了消息来唤醒相关的终端对象。并且发送了消息来唤醒相关的终端对象。 终端分配一些资源,并告诉控制器发出拨号音。终端分配一些资源,并告诉控制器发出拨号音。 控制器受到数字并将它们发送给终端。控制器受到数字并将它们发送给终端。 终端使用号码规划来分析数字流。终端使用号码规划来分析数字流。 当一个有效序列的输入完成,终端打开一个对话。当一个有效序列的输入完成,终端打开一个对话。图 场景的雏形本地呼叫选择阶段 41417/10/2022阅读原文,完成作业阅读原文,完成作业n逻辑体系结构的类有哪逻辑体系结构的类有哪4 4个重要特征个重要特征。n简述简述“4+1”模型的迭代方法模型的迭代方法场景驱动场景驱动法的思想和优点。法的思想和优点。n软件的体系结构设计阶段形成哪些文档。软件的体系结构设计阶段形成哪些文档。