Kruchten的4+1模型描述软件体系结构讲课稿_第1页
Kruchten的4+1模型描述软件体系结构讲课稿_第2页
Kruchten的4+1模型描述软件体系结构讲课稿_第3页
Kruchten的4+1模型描述软件体系结构讲课稿_第4页
Kruchten的4+1模型描述软件体系结构讲课稿_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Kruchten的4+1模型描述软件体系结构2 22022-5-18假定你是假定你是Module Designern你最近加盟一家公司,并被安排在一个新你最近加盟一家公司,并被安排在一个新项目的开发组中。虽然你富有经验,但是项目的开发组中。虽然你富有经验,但是对此项目所涉及的领域还是一个新手。系对此项目所涉及的领域还是一个新手。系统的高层体系结构设计已经完成。统的高层体系结构设计已经完成。n你的老板(项目经理)让你预计你将要完你的老板(项目经理)让你预计你将要完成的几个模块的开发时间。成的几个模块的开发时间。n你怎么办?你怎么办?6 62022-5-18假定你是假定你是Consultant(顾

2、问顾问)n面对这样的图,你会有什么反应?面对这样的图,你会有什么反应?7 72022-5-18体系结构描述方法体系结构描述方法n软件开发过程中各种角色之间交流设计思软件开发过程中各种角色之间交流设计思想的媒介想的媒介n进行上层分析的基础。此基础上可以验证进行上层分析的基础。此基础上可以验证体系结构设计方案,精炼或改变必要的方体系结构设计方案,精炼或改变必要的方案案n让别人理解系统的第一手资料让别人理解系统的第一手资料8 82022-5-18与与Module Designer交流交流n基本想法是什么?基本想法是什么?n我该做什么我该做什么 (如,实现哪些需求如,实现哪些需求) ?n我该在哪做我该

3、在哪做 (如,这项功能实现在哪里如,这项功能实现在哪里) ?n我和谁交互?接口是什么?我和谁交互?接口是什么?n有什么可以重用的代码?有什么可以重用的代码?n必须遵从什么约定必须遵从什么约定(质量目标、旧体系质量目标、旧体系/接口、预接口、预算等算等)?n有哪些硬性规定有哪些硬性规定(设计、接口、约束等设计、接口、约束等)?9 92022-5-18与顾问交流与顾问交流n体系结构的必要需求体系结构的必要需求(driving requirement)是什是什么么(如,如,performance, availability, security, modifiability, interoperabi

4、lity)?n各种体系结构视图是如何描述的?各种体系结构视图是如何描述的?抽象出来什么?抽象出来什么?功能怎样分解?功能怎样分解?功能怎样分配?功能怎样分配?使用什么硬件以及软件怎样布置在硬件上?使用什么硬件以及软件怎样布置在硬件上?n采用了哪些体系结构风格?采用了哪些体系结构风格?10102022-5-18这是什么?这是什么?11112022-5-18上图的毛病上图的毛病n很多事情没有说:很多事情没有说:组件类型组件类型连接件类型连接件类型圆圈和箭头代表什么?圆圈和箭头代表什么?这种布局的意义是什么?这种布局的意义是什么?为什么为什么CP要放在上层?要放在上层?n只画出方框和线条不是体系结构

5、,只是体只画出方框和线条不是体系结构,只是体系结构的开始系结构的开始12122022-5-18好的体系结构描述的必要元素好的体系结构描述的必要元素n需求陈述需求陈述商业环境、产品的背景、领域商业环境、产品的背景、领域n描述环境描述环境必须和什么系统交互、外部接口必须和什么系统交互、外部接口n使用体系结构图使用体系结构图用恰当的线框用恰当的线框简洁的说明简洁的说明13132022-5-18好的体系结构描述的必要元素好的体系结构描述的必要元素n考虑实现时的限制考虑实现时的限制但是仅在它们能影响体系结构设计的范围内但是仅在它们能影响体系结构设计的范围内n被限定的下层结构、处理器需求被限定的下层结构、

6、处理器需求通常包含其他结构图通常包含其他结构图n体系结构设计的原理体系结构设计的原理它怎样去符合需求与约束它怎样去符合需求与约束其他的设计其他的设计14142022-5-18其他方面其他方面n风格风格/产品线问题产品线问题设计可变的尺度设计可变的尺度体系结构的那个方面必须不被改变?体系结构的那个方面必须不被改变?n管理问题管理问题暗含开发团队的组织结构暗含开发团队的组织结构体系结构评审情况体系结构评审情况n其他设计问题其他设计问题代码重用、标准的运用代码重用、标准的运用风险分析风险分析运作、管理和维护运作、管理和维护15152022-5-18好描述好描述n线和框有不同的形状线和框有不同的形状/

7、颜色,并有图例说明颜色,并有图例说明n用表格总结方案选择等等各种问题用表格总结方案选择等等各种问题n图并不试图去表达很多信息:把信息分散图并不试图去表达很多信息:把信息分散到需要表达它的各个视图中到需要表达它的各个视图中n每个体系结构视图必须在一页内完成每个体系结构视图必须在一页内完成n清晰地区分出哪些是体系结构视图,哪些清晰地区分出哪些是体系结构视图,哪些不是不是16162022-5-18坏描述坏描述n所有的线看起来都一样所有的线看起来都一样n箭头不代表任何涵义箭头不代表任何涵义n箭头代表很多涵义箭头代表很多涵义n实现与文档冲突实现与文档冲突n没有图例没有图例n太多的必要需求太多的必要需求1

8、7172022-5-18视图视图n系统需要多种视图来描述系统需要多种视图来描述其中的一小部分是描述体系结构的其中的一小部分是描述体系结构的n运行时视图运行时视图/动态视图动态视图(组件和连接件组件和连接件)在高层分解成组件和连接件在高层分解成组件和连接件n代码视图代码视图模块关联和依赖模块关联和依赖n使用使用/调用调用/和和共享数据共享数据文件和目录、工程和编译文件、版本控制文件和目录、工程和编译文件、版本控制n物理视图物理视图把计算单元分配到各个进程或处理器把计算单元分配到各个进程或处理器18182022-5-18阅读阅读nPhilippe Kruchten, Architectural B

9、lueprintsThe “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 /waisdata/toc/cd30560001toc.html19192022-5-18软件体系结构

10、建模的种类软件体系结构建模的种类 n结构模型结构模型n框架模型框架模型n动态模型动态模型n过程模型过程模型n功能模型功能模型 20202022-5-18n结构模型结构模型n 这是一个最直观、最普遍的建模方法。这种方这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、容,包括系统的配置、约束、隐含的假设条件、风格、性质等。风格、性质等。n n 研究结构模型的核心是体系结构描述语言。研究结构模型的核心是

11、体系结构描述语言。 21212022-5-18n框架模型框架模型n 框架模型与结构模型类似,但它不太侧重框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。描述结构的细节而更侧重于整体的结构。n n 框架模型主要以一些特殊的问题为目标建框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。立只针对和适应该问题的结构。22222022-5-18n动态模型动态模型n 动态模型是对结构或框架模型的补充,研动态模型是对结构或框架模型的补充,研究系统的究系统的“大颗粒大颗粒”的行为性质。例如,的行为性质。例如,描述系统的重新配置或演化。动态可以指描述系统的重新配置或演化。动

12、态可以指系统总体结构的配置、建立或拆除通信通系统总体结构的配置、建立或拆除通信通道或计算的过程。道或计算的过程。23232022-5-18n过程模型过程模型n 过程模型研究构造系统的步骤和过程。过程模型研究构造系统的步骤和过程。n 结构是遵循某些过程脚本的结果。结构是遵循某些过程脚本的结果。 24242022-5-18n功能模型功能模型n 功能模型认为体系结构是由一组功能构件功能模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。按层次组成,下层向上层提供服务。n 功能模型可以看作是一种特殊的框架模型。功能模型可以看作是一种特殊的框架模型。25252022-5-18 “4十十1”模

13、型模型 进程进程26262022-5-18 27272022-5-18 28282022-5-18 29292022-5-1830302022-5-18逻辑视图的体系结构:面向对象的分解逻辑视图的体系结构:面向对象的分解 31312022-5-18 逻辑视图的符号表示法逻辑视图的符号表示法 构件构件实例实例继承继承使用使用包含,聚集包含,聚集关联关联类层次类层次参数化类参数化类类服务类服务类类连接件连接件32322022-5-18 逻辑视图的风格逻辑视图的风格 逻辑视图的例子逻辑视图的例子 会话终端控制器转换服务连接服务编号计划33332022-5-18进程视图的体系结构:过程分解进程视图的体

14、系结构:过程分解 n过程体系结构考虑的是一些非功能性的需求,诸如性能、可用性等。过程体系结构考虑的是一些非功能性的需求,诸如性能、可用性等。它所要面对的问题有并发,分布,系统的完整性,容错能力等。它还它所要面对的问题有并发,分布,系统的完整性,容错能力等。它还要考虑怎样把过程体系结构与逻辑视图体系结构的要点相适应要考虑怎样把过程体系结构与逻辑视图体系结构的要点相适应对对某个对象的某个操作实际上是在哪个控制线程上发生的。某个对象的某个操作实际上是在哪个控制线程上发生的。n可以把过程体系结构分为几个抽象层次来描述,每个层次考虑不同的可以把过程体系结构分为几个抽象层次来描述,每个层次考虑不同的方面。

15、在最高层次上,过程体系结构可以被视为是一个逻辑网络的集方面。在最高层次上,过程体系结构可以被视为是一个逻辑网络的集合。每个独立执行的逻辑网络都是由通信程序合。每个独立执行的逻辑网络都是由通信程序( (即即“过程过程”) )构成的。构成的。这些逻辑网络分布在一个通过这些逻辑网络分布在一个通过LANLAN或或WANWAN连接起来的硬件资源集合上。连接起来的硬件资源集合上。多个逻辑网络可能同时存在,并共享同样的物理资源。多个逻辑网络可能同时存在,并共享同样的物理资源。34342022-5-18 过程视图的体系结构:过程分解过程视图的体系结构:过程分解 n软件被分为独立的任务的集合。每个任务是一个独立

16、的控制线程,可软件被分为独立的任务的集合。每个任务是一个独立的控制线程,可以在一个处理节点上独立单独调度。因此可以将任务分为主任务和辅以在一个处理节点上独立单独调度。因此可以将任务分为主任务和辅任务。主任务是需要单独解决的体系结构元素。辅任务是由于实现原任务。主任务是需要单独解决的体系结构元素。辅任务是由于实现原因而在本地加入的附加任务因而在本地加入的附加任务( (缓冲,超时,等等缓冲,超时,等等) ),例如可以将它们实,例如可以将它们实现为轻量级的线程。主任务通过一套完善定义的任务间通信机制进行现为轻量级的线程。主任务通过一套完善定义的任务间通信机制进行通信:同步的或异步的基于消息的通信服务

17、、远程过程调用、时间广通信:同步的或异步的基于消息的通信服务、远程过程调用、时间广播等。不应当假设通信中的主任务处于同一个过程中或处在同一个处播等。不应当假设通信中的主任务处于同一个过程中或处在同一个处理节点上。辅任务的通信可以采用共享内存的方式或其他双方约定的理节点上。辅任务的通信可以采用共享内存的方式或其他双方约定的方式。方式。 n基于过程体系结构设计图,可以估计出消息流和过程负荷。基于过程体系结构设计图,可以估计出消息流和过程负荷。 35352022-5-18 过程视图的符号表示法过程视图的符号表示法 构件事件广播双向消息远程过程调用消息未指定连接件循环进程简化进程进程36362022-

18、5-18过程视图的风格过程视图的风格 有多种风格适合过程体系结构。例如管道和过滤器、客户服务器及其有多种风格适合过程体系结构。例如管道和过滤器、客户服务器及其变体变体( (多客户单服务器,多客户多服务器多客户单服务器,多客户多服务器) )等。等。过程视图例子过程视图例子 控制器进程慢周期控制器任务快周期控制器任务主控制器任务终端进程37372022-5-18开发视图的体系结构:子系统分解开发视图的体系结构:子系统分解 38382022-5-18开发视图的符号表示法开发视图的符号表示法39392022-5-18开发视图的风格开发视图的风格40402022-5-18开发视图的例子开发视图的例子41

19、412022-5-18物理视图的体系结构:从软件到硬件的映射物理视图的体系结构:从软件到硬件的映射 42422022-5-18物理视图的符号表示法物理视图的符号表示法 43432022-5-18nACS系统的物理视图系统的物理视图C主KKKKKKKKF备份F主F备份F主C备份44442022-5-18具有进程分配的小型具有进程分配的小型ACS系统的物理视图系统的物理视图K会话进程F终端进程控制器进程45452022-5-18场景视图的体系结构:汇总场景视图的体系结构:汇总 46462022-5-18场景视图的符号表示法场景视图的符号表示法 场景视图的符号表示法中,构件的表示与逻辑视图非常相场景

20、视图的符号表示法中,构件的表示与逻辑视图非常相似,但是连接件的表示使用过程视图中的方法。注意,对似,但是连接件的表示使用过程视图中的方法。注意,对象的实例用细实线表示。在工具的使用方面,和在逻辑体象的实例用细实线表示。在工具的使用方面,和在逻辑体系结构类似,可以使用系结构类似,可以使用Rational RoseRational Rose绘制和管理对象场景绘制和管理对象场景图。图。 47472022-5-18场景视图的例子场景视图的例子 Joe Joe的电话的控制器检测到并证实了从挂起到取下的状态转变,的电话的控制器检测到并证实了从挂起到取下的状态转变,并且发送了消息来唤醒相关的终端对象。并且发送了消息来唤醒相关

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论