[计算机]Kruchten的4+1模型描述软件体系结构ppt课件_第1页
[计算机]Kruchten的4+1模型描述软件体系结构ppt课件_第2页
[计算机]Kruchten的4+1模型描述软件体系结构ppt课件_第3页
[计算机]Kruchten的4+1模型描述软件体系结构ppt课件_第4页
[计算机]Kruchten的4+1模型描述软件体系结构ppt课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、1 12022-3-26五、软件体系构造形式化方法五、软件体系构造形式化方法 课外阅读课外阅读2 22022-3-26Kruchten的的4+1模型描绘软件体系构造模型描绘软件体系构造 n本章参考本章参考Philippe Kruchten ?Architectural BlueprintsThe “4+1 View Model of Software Architecture?3 32022-3-26假定你是假定你是Module Designern你最近加盟一家公司,并被安排在一个新你最近加盟一家公司,并被安排在一个新工程的开发组中。虽然你富有经历,但是工程的开发组中。虽然你富有经历,但是对此

2、工程所涉及的领域还是一个新手。系对此工程所涉及的领域还是一个新手。系统的高层体系构造设计已经完成。统的高层体系构造设计已经完成。n你的老板工程经理让你预计你将要完你的老板工程经理让你预计你将要完成的几个模块的开发时间。成的几个模块的开发时间。n你怎么办?你怎么办?4 42022-3-26假定你是假定你是Module Designern你来开发你来开发A2和和A3,怎么开场?,怎么开场?5 52022-3-26假定你是假定你是Consultant参谋参谋n你是一个请来的参谋,对一个体系构造设你是一个请来的参谋,对一个体系构造设计进展评估。计进展评估。Modifiability和和Performa

3、nce是重要的体系构造质量因素。是重要的体系构造质量因素。n你会询问什么样的信息?你会询问什么样的信息?6 62022-3-26假定你是假定你是Consultant参谋参谋n面对这样的图,你会有什么反响?面对这样的图,你会有什么反响?7 72022-3-26假定你是假定你是Consultant参谋参谋n面对这样的图,你会有什么反响?面对这样的图,你会有什么反响?8 82022-3-26体系构造描绘方法体系构造描绘方法n软件开发过程中各种角色之间交流设计思软件开发过程中各种角色之间交流设计思想的媒介想的媒介n进展上层分析的根底。此根底上可以验证进展上层分析的根底。此根底上可以验证体系构造设计方案

4、,精炼或改变必要的方体系构造设计方案,精炼或改变必要的方案案n让别人理解系统的第一手资料让别人理解系统的第一手资料9 92022-3-26与与Module Designer交流交流n根本想法是什么?根本想法是什么?n我该做什么我该做什么 如,实现哪些需求如,实现哪些需求 ?n我该在哪做我该在哪做 如,这项功能实如今哪里如,这项功能实如今哪里 ?n我和谁交互?接口是什么?我和谁交互?接口是什么?n有什么可以重用的代码?有什么可以重用的代码?n必须遵从什么约定必须遵从什么约定质量目的、旧体系质量目的、旧体系/接口、预接口、预算等算等?n有哪些硬性规定有哪些硬性规定设计、接口、约束等设计、接口、约束

5、等?10102022-3-26与参谋交流与参谋交流n体系构造的必要需求体系构造的必要需求driving requirement是是什么什么如,如,performance, availability, security, modifiability, interoperability?n各种体系构造视图是如何描绘的?各种体系构造视图是如何描绘的?抽象出来什么?抽象出来什么?功能怎样分解?功能怎样分解?功能怎样分配?功能怎样分配?使用什么硬件以及软件怎样布置在硬件上?使用什么硬件以及软件怎样布置在硬件上?n采用了哪些体系构造风格?采用了哪些体系构造风格?11112022-3-26这是什么?这是什么

6、?12122022-3-26上图的缺点上图的缺点n很多事情没有说:很多事情没有说:组件类型组件类型连接件类型连接件类型圆圈和箭头代表什么?圆圈和箭头代表什么?这种布局的意义是什么?这种布局的意义是什么?为什么为什么CP要放在上层?要放在上层?n只画出方框和线条不是体系构造,只是体只画出方框和线条不是体系构造,只是体系构造的开场系构造的开场13132022-3-26好的体系构造描绘的必要元素好的体系构造描绘的必要元素n需求陈述需求陈述商业环境、产品的背景、领域商业环境、产品的背景、领域n描绘环境描绘环境必须和什么系统交互、外部接口必须和什么系统交互、外部接口n使用体系构造图使用体系构造图用恰当的

7、线框用恰当的线框简洁的说明简洁的说明14142022-3-26好的体系构造描绘的必要元素好的体系构造描绘的必要元素n考虑实现时的限制考虑实现时的限制但是仅在它们能影响体系构造设计的范围内但是仅在它们能影响体系构造设计的范围内n被限定的下层构造、处理器需求被限定的下层构造、处理器需求通常包含其他构造图通常包含其他构造图n体系构造设计的原理体系构造设计的原理它怎样去符合需求与约束它怎样去符合需求与约束其他的设计其他的设计15152022-3-26其他方面其他方面n风格风格/产品线问题产品线问题设计可变的尺度设计可变的尺度体系构造的那个方面必须不被改变?体系构造的那个方面必须不被改变?n管理问题管理

8、问题暗含开发团队的组织构造暗含开发团队的组织构造体系构造评审情况体系构造评审情况n其他设计问题其他设计问题代码重用、标准的运用代码重用、标准的运用风险分析风险分析运作、管理和维护运作、管理和维护16162022-3-26好描绘好描绘n线和框有不同的形状线和框有不同的形状/颜色,并有图例说明颜色,并有图例说明n用表格总结方案选择等等各种问题用表格总结方案选择等等各种问题n图并不试图去表达很多信息:把信息分散图并不试图去表达很多信息:把信息分散到需要表达它的各个视图中到需要表达它的各个视图中n每个体系构造视图必须在一页内完成每个体系构造视图必须在一页内完成n明晰地区分出哪些是体系构造视图,哪些明晰

9、地区分出哪些是体系构造视图,哪些不是不是17172022-3-26坏描绘坏描绘n所有的线看起来都一样所有的线看起来都一样n箭头不代表任何涵义箭头不代表任何涵义n箭头代表很多涵义箭头代表很多涵义n实现与文档冲突实现与文档冲突n没有图例没有图例n太多的必要需求太多的必要需求18182022-3-26视图视图n系统需要多种视图来描绘系统需要多种视图来描绘其中的一小部分是描绘体系构造的其中的一小部分是描绘体系构造的n运行时视图运行时视图/动态视图动态视图组件和连接件组件和连接件在高层分解成组件和连接件在高层分解成组件和连接件n代码视图代码视图模块关联和依赖模块关联和依赖n使用使用/调用调用/和和共享数

10、据共享数据文件和目录、工程和编译文件、版本控制文件和目录、工程和编译文件、版本控制n物理视图物理视图把计算单元分配到各个进程或处理器把计算单元分配到各个进程或处理器19192022-3-26阅读阅读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. N

11、ASA Report 305-CD-600-001, pages 4-160-185. March 2001 /waisdata/toc/cd30560001toc.html20202022-3-263.1 “4十十1模型模型 21212022-3-26 22222022-3-26 23232022-3-26 24242022-3-2625252022-3-263.2 逻辑视图的体系构造:面向对象的分解逻辑视图的体系构造:面向对象的分解 26262022-3-263.2.1 逻辑视图的符号表示法逻辑视图的符号表示法 27272022-3-263.2.2 逻

12、辑视图的风格逻辑视图的风格3.2.3 逻辑视图的例子逻辑视图的例子 28282022-3-263.3 过程视图的体系构造:过程分解过程视图的体系构造:过程分解 n过程体系构造考虑的是一些非功能性的需求,诸如性能、可用性等。过程体系构造考虑的是一些非功能性的需求,诸如性能、可用性等。它所要面对的问题有并发,分布,系统的完好性,容错才能等。它还它所要面对的问题有并发,分布,系统的完好性,容错才能等。它还要考虑怎样把过程体系构造与逻辑视图体系构造的要点相适应要考虑怎样把过程体系构造与逻辑视图体系构造的要点相适应对对某个对象的某个操作实际上是在哪个控制线程上发生的。某个对象的某个操作实际上是在哪个控制

13、线程上发生的。n可以把过程体系构造分为几个抽象层次来描绘,每个层次考虑不同的可以把过程体系构造分为几个抽象层次来描绘,每个层次考虑不同的方面。在最高层次上,过程体系构造可以被视为是一个逻辑网络的集方面。在最高层次上,过程体系构造可以被视为是一个逻辑网络的集合。每个独立执行的逻辑网络都是由通信程序合。每个独立执行的逻辑网络都是由通信程序即即“过程过程构成的。构成的。这些逻辑网络分布在一个通过这些逻辑网络分布在一个通过LANLAN或或WANWAN连接起来的硬件资源集合上。连接起来的硬件资源集合上。多个逻辑网络可能同时存在,并共享同样的物理资源。例如,逻辑网多个逻辑网络可能同时存在,并共享同样的物理

14、资源。例如,逻辑网络的概念可用于区分在线处理系统和离线处理系统。络的概念可用于区分在线处理系统和离线处理系统。 29292022-3-263.3 过程视图的体系构造:过程分解过程视图的体系构造:过程分解 n软件被分为独立的任务的集合。每个任务是一个独立的控制线程,可软件被分为独立的任务的集合。每个任务是一个独立的控制线程,可以在一个处理节点上独立单独调度。因此可以将任务分为主任务和辅以在一个处理节点上独立单独调度。因此可以将任务分为主任务和辅任务。主任务是需要单独解决的体系构造元素。辅任务是由于实现原任务。主任务是需要单独解决的体系构造元素。辅任务是由于实现原因此在本地参加的附加任务因此在本地

15、参加的附加任务缓冲,超时,等等缓冲,超时,等等,例如可以将它们,例如可以将它们实现为轻量级的线程。主任务通过一套完善定义的任务间通信机制进实现为轻量级的线程。主任务通过一套完善定义的任务间通信机制进展通信:同步的或异步的基于消息的通信效劳、远程过程调用、时间展通信:同步的或异步的基于消息的通信效劳、远程过程调用、时间播送等。不应当假设通信中的主任务处于同一个过程中或处在同一个播送等。不应当假设通信中的主任务处于同一个过程中或处在同一个处理节点上。辅任务的通信可以采用共享内存的方式或其他双方约定处理节点上。辅任务的通信可以采用共享内存的方式或其他双方约定的方式。的方式。 n基于过程体系构造设计图

16、,可以估计出消息流和过程负荷。基于过程体系构造设计图,可以估计出消息流和过程负荷。 30302022-3-263.3.1 过程视图的符号表示法过程视图的符号表示法 31312022-3-263.2.2 3.2.2 过程视图的风格过程视图的风格 有多种风格合适过程体系构造。例如管道和过滤器、客户效劳器及其有多种风格合适过程体系构造。例如管道和过滤器、客户效劳器及其变体变体多客户单效劳器,多客户多效劳器多客户单效劳器,多客户多效劳器等。等。3.2.3 3.2.3 过程视图的例子过程视图的例子 32322022-3-263.4 开发视图的体系构造:子系统分解开发视图的体系构造:子系统分解 33332

17、022-3-263.4.1 3.4.1 开发视图的符号表示法开发视图的符号表示法34342022-3-263.4.2 3.4.2 开发视图的风格开发视图的风格35352022-3-263.4.3 3.4.3 开发视图的例子开发视图的例子36362022-3-263.5 物理视图的体系构造:从软件到硬件的映射物理视图的体系构造:从软件到硬件的映射 37372022-3-263.5.1 物理视图的符号表示法物理视图的符号表示法 38382022-3-263.6 场景视图的体系构造:汇总场景视图的体系构造:汇总 39392022-3-263.6.1 场景视图的符号表示法场景视图的符号表示法 场景视图

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

温馨提示

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

评论

0/150

提交评论