体系结构蓝图―软件体系结构的4+1视图(中文版)_第1页
体系结构蓝图―软件体系结构的4+1视图(中文版)_第2页
体系结构蓝图―软件体系结构的4+1视图(中文版)_第3页
体系结构蓝图―软件体系结构的4+1视图(中文版)_第4页
体系结构蓝图―软件体系结构的4+1视图(中文版)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、本文根据多个并发视图的使用情况,描述了软件密集型系统体系结构的模型。多个视图使您能够独立处理每个“风险承担者”(最终用户、开发人员、系统工程师、项目经理)所关注的问题,并独立处理功能和非功能要求。本文介绍了五个视图,并提供了捕获每个视图的方法。这些视图是使用体系结构驱动、场景驱动和迭代开发过程设计的。引言在很多文章和书籍中,作者希望使用单一视图捕获所有系统体系结构点。如果仔细查看这些图例中的框和箭头,您会发现作者试图在单个视图中表达超出表达限制的蓝图。方块是表示执行的程式吗?还是表示源代码的程序块?还是物理计算机?还是逻辑功能的分组?箭头表示编译时的相关性吗?还是控制流量?还是数据流?通常它代

2、表很多东西。模式是否仅需要单个模式样式?软件体系结构中的缺陷有时是由于过早地划分软件或过分强调软件开发的单个方面(数据工程、运营效率、开发战略、团队组织等)造成的。在某些情况下,体系结构无法解决所有“客户”(或“风险承担者”,USC命名)的担忧。很多作者提到了Garlan Shaw 1、CMU的Abowd Allen和SEI的Clements等问题。为了弥补这一点,建议使用多个并发视图配置软件体系结构的说明。每个视图仅用于说明特定感兴趣区域的集合。体系结构模型软件体系结构用于处理高级别的软件设计和实现。以精心选择的格式装配多个结构元素,以满足系统主要功能和性能要求,并满足其他非功能要求,如稳定

3、性、伸缩性、可移植性和可用性。Perry和Wolfe使用Boehm进一步修改的精确公式表示。软件体系结构=元素、格式、关系/约束软件体系结构包括抽象、分解和组合、风格和美学。我们使用由多个视图或视角组成的模型来说明这一点。为了最终处理大型、要求苛刻的体系结构,此模型包含五个主要视图(图1比较)。逻辑视图(Logical View),设计的对象模型(如果使用面向对象的设计方法)。处理视图(Process View)-撷取设计的同步和同步特征。描述软件和硬件之间映射的物理视图(Physical View)反映了分布特性。开发视图,用于描述开发环境中软件的静态组织结构。体系结构说明(即,各种决策)可

4、以围绕这四个视图进行组织,并形成由一些“使用案例”(use cases)或“场景”(scenarios)描述的第五个视图。你可以看到,实际上软件架图1-“4 1”视图模型结构部分将在这些场景中演化,并在下面讨论。在每个视图中独立应用Perry Wolf的公式。即,定义使用的元素集(集合、容器、连接器)、捕获作业类型和模式、捕获关系和约束,以及将方案链接到特定要求。每个视图都是用唯一的表示法-蓝图描述的,设计者可以为每个视图选择特定的“体系结构样式”(architectural style),从而允许系统中的多个样式共存。依次查看这五个视图,并显示每个视图的目标:视图中的兴趣问题、如何显示相应的

5、体系结构蓝图以及用于描述和管理蓝图的工具。在PABX的设计中,我们在Alcatel Business System中做了什么,在Air Traffic Control system中举了一些例子。用于说明视图。4 1视图模型具有相当大的“普遍性”,因此,可以使用其他尺寸标注方法和工具,也可以使用其他设计方法(尤其是逻辑和过程)的分解。但是文中指出的这些方法都已经成功地运用到了实践中。逻辑结构面向对象分解逻辑体系结构主要支持功能要求,即为用户提供服务所需的功能。系统分解为一系列主要抽象(大多数),并在问题域中表示为对象或对象类。使用抽象、封装和继承的原理。分解不仅用于功能分析,还用于标识系统所有

6、部分的公共机构和设计元素。使用Rational/Booch方法,使用类图和类模板中的方法4表示逻辑模式。类图用于显示一组类及其逻辑关系(关联、使用、关联、继承等)。类似的类可以分为类的集合。类别样板会专注于单一类别,强调主要类别工作,并识别主要物件性质。如果需要定义对象的内部行为,请使用状态转换图表或状态图表执行此操作。可以在“类功能”(class utilities)下定义公共机制或服务。对于数据驱动的应用程序,可以使用其他形式的逻辑视图,例如E-R图,而不是面向对象的方法(OO approach)。逻辑视图的表示法逻辑视图的显示方法来自Booch符号4。这个表达相当简单,只考虑具有结构意义

7、的项目。特别是在这种设计水平上,大量的修饰作用不大。我们使用Rational Rose吗?为了支持逻辑体系结构设计。图2-逻辑蓝图表达逻辑视图的样式逻辑视图中的样式使用面向对象的样式,主要设计准则是希望在整个系统中保持单一、一致的对象模型,并避免对每个情况或过程的轻率类和机制进行技术说明。逻辑结构蓝图示例图3显示了Tlic PABX体系结构的关键类。图3-a. tlic pabx的逻辑蓝图b .空中交通系统的蓝图PABX在终端之间建立通信连接。终端可以是电话设备、中继(例如连接到中央办公室)、缆线(从PABX专线连接到PABX线)、电话线路、缆线、ISDN等。徐璐其他线路徐璐受其他接口卡支持。

8、线路控制器对象的作用是解码和注入接口卡中的所有信号,徐璐转换特定于接口卡的信号和一致的小事件集(启动、停止、数字化等)。Controller对象同时承载所有实时约束。此类派生许多子类以满足各种接口类型。Terminal对象的责任是保持终端状态并代表线路协调服务。例如,使用numbering plan服务解释拨号。Conversation表示会话中的一系列终端。Conversation使用Connection Service(目录、逻辑物理映射、路由)和在终端之间建立语音路径。图3 b示出了包含8个类的类别(例如,类分组)的空中交通管理系统的顶级类图(例如,类分组)。流程体系结构分解进程流程体系

9、结构考虑了非功能性要求,如性能和可用性。解决并发、分布式、系统完整性、容错问题和逻辑视图的主要抽象如何与进程结构协调,即对象的操作在哪个控制线程上实际执行。流程体系结构可以用多层抽象来描述,每一层徐璐针对不同的问题。在最高级别,流程体系结构可以看作是独立运行的通信程序(称为“processes”)的一组逻辑网络,这些资源分布在通过LAN或WAN连接的一组硬件资源中。多个逻辑网络可以同时共存,共享相同的物理资源。例如,独立逻辑网络可以用于支持脱机系统和联机系统的分离,也可以用于支持软件的模拟版本和测试版本的共存。进程是组成执行单元操作的组。进程表示可以执行策略控制进程体系结构(例如启动、恢复、重

10、新配置和关闭)的层次结构。此外,您还可以不断重复该过程,以提高处理负载的分布式或提高可用性。软件分为一系列单独的任务。作业是可以在处理节点上单独计划的独立控制线程。接下来,我们可以区分主要任务和辅助任务。主要任务是唯一可以处理的体系结构元素。辅助任务是作为实施原因引入的本地附加任务(定期活动、缓冲区、暂停等)。可以部署为Ada任务或轻量级线程。主要任务的通信路径是明确定义的交互任务通信机制,如基于消息的同步或异步通信服务、远程过程调用、事件广播等。辅助任务通过遇到或共享内存进行通信。在同一流程或流程节点中,主要任务渡边杏对该分配进行任何假设。消息流、进程负载可以根据进程蓝图进行评估,使用虚拟负

11、载实现“空”进程体系结构并测量目标系统的性能。Filarey et al .如他的Eurocontrol实验中所述。进程视图的表示我们使用的处理视图的表示法从Booch最初建议用于Ada任务的表示法扩展。同样,使用的表示法侧重于体系结构上的重要因素。(图4)图4-流程蓝图表达我们使用TRW的unas 0(Universal Network Archit Echure Services)产品构建和实施流程和任务集(包括冗馀扩展),将其集成到流程网络中。UNAS包含支持上述表示法的软件体系结构生命周期环境(sale)工具。SALE允许以图形方式描述进程体系结构,包括可能的交互任务通信路径的规范说明

12、。这意味着相应的Ada或C源代码将从该路径自动生成。使用此方法指定和实施流程体系结构的优点在于可以轻松修改,而不会对应用程序软件造成太大影响。进程视图的样式许多样式可以应用于进程视图。例如,Garlan和Shaw的分类1可以实现管道和筛选器(Pipes and filters)或客户端/服务器、各种客户端/单个服务器和多个客户端/多个服务器的变体。对于更复杂的系统,可以使用K.Birman描述的ISIS系统中的流程分组方法和其他标记方法和工具。流程蓝图示例图5-tlicpabx流程路线图(部分)所有终端都由单个Termal process处理,其中Termal process由输入队列中的消息

13、驱动。Controller对象在构成控制过程的三个操作之一中执行:Low cycle rate task扫描所有非活动终端(200毫秒),并启用High cycle rate task(10毫秒)扫描清单中的终端。其中,high cycle rate将传递到Main controller task以解释状态更改,并将消息发送到相应的终端进行通信。其中,Controller进程的通信通过孔刘内存进行。开发体系结构分解子系统开发体系结构侧重于软件开发环境中物理模块的组织。软件打包为一个或多个开发人员可以开发的小程序块(库或子系统)。子系统可以构成组件层次结构,每个层次结构提供了上一层次结构中定义良

14、好的接口。系统的开发体系结构由模块和子系统图表示,显示了“输出”和“输入”关系。整个开发体系结构只能在所有软件元素都被识别时说明。但是,您可以列出控制开发框架的规则(块、编组和可见性)。大多数情况下,开发体系结构考虑的内部要求与开发困难、软件管理、重用和通用性、工具集、编程语言的限制等有关。开发体系结构视图是各种活动的基础,如需求分配、团队工作分配(或团队机构)、成本评估和计划、项目进度监控、软件重复使用、可移植性和安全性。是产品线构建的基础。制定蓝图的表达方法同样,使用Booch方法的变形只考虑具有结构意义的项目。图5-制定路线图显示方法Rational的Apex开发环境支持开发体系结构的定

15、义和实施,以及上述分层策略和设计规则的实施。Rational Rose可以在模块和子系统层绘制开发蓝图,并支持开发源代码(Ada,C)流程的正向和逆向工程。开发视图的样式最好使用图层样式定义4到6个子系统图层。每个级别都有定义完善的角色。设计规则是子系统依赖于同一层次或子层次的子系统,因此,可以最大限度地减少具有复杂模块从属关系的网络的开发量,获得分层简单策略。图6-Hughes航空交通系统(HATS)的五层开发体系结构示例图6显示了加拿大Hughes Aircraft开发的Air Traffic Control system套件的五层开发组织结构。与图3 b中描述的逻辑体系结构相对应的开发体

16、系结构。第1层和第2层构成了复盖整个与域无关的产品线的分布式基础结构,并保护了各种硬件平台、操作系统或商业产品(如数据库管理系统)。第三层向此基础架构添加了ATC框架,形成了特定领域的软件体系结构。使用此框架,您可以在第4层上创建功能选择板。第5层严重依赖客户和产品,包括大多数用户界面和外部系统界面。72子系统分布在5个层中,每个层包含10到50个模块,可以用其他蓝图表示。物理体系结构软件到硬件映射物理体系结构侧重于系统的非功能性要求,如可用性、可靠性(容错)、性能(吞吐量)和伸缩性。软件在计算机网络或处理节点上运行,需要将已识别的各种元素(网络、进程、任务和对象)映射到其他节点。我们希望使用不同的物理配置。一个用于开发和测试,另一个用于其他地点和其他客户的部署。因此,软件到节点映射必须具有很高的灵活性,并且对源代码的

温馨提示

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

评论

0/150

提交评论