基于模型驱动的嵌入式应用软件...

Preview:

Citation preview

基于模型驱动的嵌入式应用软件

可视化开发的企业级解决方案

北京华力创通科技有限公司

Hwa Create Co.,Ltd.

第 1 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

目 录 第一章 业界领先的 I-Logix公司 .............................................................................3 第二章 Rhapsody开发方法和功能特点 .................................................................3

2.1模型驱动的实时嵌入式应用软件开发方法 ....................................................3

2.2 Rhapsody 概述 ..............................................................................................3

2.3可视化建模 ........................................................................................................5

2.4 可执行模型 .......................................................................................................8

2.5 动态模型/代码的一致......................................................................................9

2.6自动化软件合成 ..............................................................................................10

2.7设计级的调试和测试 ......................................................................................10

2.8团队合作开发的广泛支持 ..............................................................................10 第三章 Rhapsody 5.0带来的新突破 ...................................................................11

3.1 Rhapsody 5.0主要增强的功能 ...............................................................11

3.2 Rhapsody 5.0支持 UML 2.0标准 ........................................................12

3.3 Rhapsody 5.0适用于系统工程设计 .......................................................17

3.4 Rhapsody 5.0 允许面向功能分解的结构化建模方式与面向对象建模方式共存 ..................................................................................................................20

3.5 Rhapsody 5.0 in C的优化......................................................................21

3.6 Rhapsody 5.0用于调度、性能和时间的扩展 .......................................21

3.7 Rhapsody 5.0的超链接 ...........................................................................22 第四章 Rhapsody附加软件.......................................................................................23

4.1 使用软件测试套件 ATG和 TestConduct进行测试 ..............................23

4.2实现嵌入式设备上网的工具包----Rhapsody Webify™ Tookit ...........25

4.3设计文档发布及维护工具----Rhapsody ReporterPLUS™...................26 第五章 Rhapsody应用领域和主要客户...................................................................27 第六章 Rhapsody应用实例.......................................................................................28

6.1 Rhapsody为洛克希德-马丁公司赢得“联合攻击战斗机”生产合同发挥了至关重要的作用 ......................................................................................................28

6.2以色列 ECI电信公司下一代交换平台项目 .................................................29 案例的要点 .......................................................................................................29 五种视图 ...........................................................................................................30 眼见为实 ...........................................................................................................30 从设计到实现 ...................................................................................................32

6.3 MCE的电梯控制单元采用 Rhapsody的软件开发工具 ........................33 第七章 Rhapsody的增值服务 .........................................35

第 2 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

1.客户服务 ....................................................36

2.专业服务 ........................................................................................................36 3.教育服务 ........................................................................................................36

Rhapsody的实时 UML .................................................................................36 Rhapsody工具基本培训 ..............................................................................36 Rhapsody工具专家培训 ..............................................................................36

第八章 论文摘要........................................................................................................37 1、《一种基于 UML的嵌入式实时应用软件开发环境》 ...............................37 2、《一种基于 UML的实时框架的分析与应用》 ...........................................37 3、《CASE工具 Rhapsody在综合接入服务器中的应用》.........................37

第 3 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

第一章 业界领先的 I-Logix公司

I-Logix 公司是复杂嵌入式系统设计和实现的领先的软件开发商和供应商,是对象管理组织(OMG)、蓝牙标准化组织(Bluetooth SIG)、国际自动化工程委员会(INCOSE)的成员,

嵌入式 Linux联盟的创始成员和统一建模语言(UML)的发明者之一。公司的核心技术来自

图形化的模型驱动开发方案,状态图的发明人即是 I-Logix公司的创始人 David Harel博士。产品市场涉及航空航天、国防科技、交通运输、医疗设备、电信电子、自动化控制等领域,

同时,在美国、欧洲和远东地区有办事处和分销商。 2000 年 5 月选定华力创通有限公司为中国大陆及香港地区 Rhapsody 产品独家代理。

2003年 7月华力创通公司成为 I-Logix公司全线产品的独家经销商。

第二章 Rhapsody开发方法和功能特点

2.1模型驱动的实时嵌入式应用软件开发方法 实时嵌入式软件开发的需求正以惊人的速度增长,从而迫切要求在更短的时间内,使用

较少的资源和预算来开发越来越复杂的软件。在全球经济一体化的今天,那种手工进行分析、

设计、实现、测试和软件部署的开发方法,不仅进程缓慢,而且容易出错,要想能够满足市

场的需求并处在领先的地位,必须更快更好更经济的开发出复杂的应用。在复杂嵌入式应用

和设备的数量飞速增长的今天,如何提高生产率是至关重要的。 在今天日益个性化的嵌入式设备中,软件已经成为决定设备成败的关键因素。而同时软件又是开发中风险最大和最消耗资源的部分。最近的一次由某著名的半导体厂商进行的研究

发现:每年芯片的容量和性能可以提升70%,而硬件设计的能力,因使用EDA的工具软件每年可以提高35%。但与此同时,软件设计的改善每年却仅不到10%。硬件和软件的设计和开发提高上的这种巨大的差异主要的原因在于在过去的30年中,软件的设计和开发过程并没有发生大的变化。实际上仅仅是在一些用来辅助进行系统和软件开发的工具上有一些改进而

已,而那些希望将需求分解、系统设计、软件实现与测试等工具联系在一起的工具都没有获

得成功,而只是在软件的编程、编译、链接和调试等较低的层次为程序员提供一些辅助工具。 进入 Rhapsody的崭新世界将为客户的软件系统带来最优化、可升级、可靠、可维护和

可重用的特点。Rhapsody 的客户,即使是初次使用它来开发产品,也可以提高他们的开发效率超过 30%。I-Logix公司通过他们的 Rhapsody家族的产品给软件的设计和开发带来了革命性的进步。

2.2 Rhapsody 概述 Rhapsody是遵循UML统一建模语言的模型驱动的(Model-Driven Development--MDD)

软件开发平台, Rhapsody能够最大限度的让系统、硬件、软件和测试工程师以更加灵活的和优化的方式协同开发和交流。Rhapsody不仅支持UML的可视化表示法,将系统各个层次结构完全模型化,还支持简便的通过按键(push-button)的形式执行、实现和测试这些模型。同时,作为业届优秀的嵌入式软件开发解决方案,Rhapsody具备全面的与第三方的著名工具

第 4 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

软件集成的能力,客户因此可以建立自己真实完备的开发环境。Rhapsody主要因为在以下介绍的六个关键技术方面有所突破,从而带来系统和软件的质量和开发速度的明显提高。

Rhapsody 支持三种实现的语言:C、C++和Ada ,根据客户设计的结构和行为模型,只需按键就可以产生以上三种语言的代码。

传统的系统开发和软件开发通常分为两个阶段:前端的分析和设计、后端的实现和测试,

二者顺次连贯起来。早期的一些CASE工具有助于辅助实现计划和分析阶段的自动化,而另一些工具提供了设计捕获的能力,以及最小化的代码框架的生成,但都无法将设计成果与代

码实现和各类文档相连。这种无关性导致需求规范从确定初始就与系统结构的设计相背离。

因为需求经常是不明确的,因此这种背离可能会一直延续到开发后面各个阶段。而当编码开

始的时候,实现会经常与设计的文档产生背离,从而给项目引入风险,降低系统的质量和可

维护性,从而导致开发周期的延长。 另外,这些CASE工具与无法感知系统的动态行为,因此无法解决系统集成过程中的缺

陷,因为除非到了系统集成阶段得以运行的时候,行为才能变的可知,而这个阶段通常是开

发过程的热点,研发团队为了在工程中添加新的功能,改进质量或者为了跟上时间表的进度

往往会采取一些走捷径的方法,可这样只会让情况变的更糟。无论开发团队纪律严明或者自

由松散,有一件事情可以确定,在开发的最后阶段才来验证系统的动态行为会给开发过程带

来巨大的风险。硬件设计在整个开发过程中都可以进行校验,而软件的开发直到开发的最终

才能确认是否无误。因此硬件设计的效率能够得到高速的提升,而软件的生产效率在过去数

年中并没有得到明显的提升也就不足为奇了。 Rhapsody与传统的设计过程不同,使得当问题产生的时候就能够很快的发现,从而避免

了到研发的最后阶段才发现问题而导致的高昂的修改成本。Rhapsody提供给系统和软件工程师一种基于模型驱动开发的迭代的工作环境,工程师能够快速分析系统,不断地进行系统和

软件设计的改变,快速高效地产生代码,预先测试产生分歧的改变,每一个设计商的决定都

可以在不间断的一致的测试中得到验证,而无需等到系统的集成阶段才来验证设计改变的正

确性。这样,系统中每一个新增加的功能都建立在行为设计得到充分测试和验证基础之上,

这时工作的完成,才是真正的完成,且节约了开发时间、精力和费用。这些美好理想的实现

都得益于Rhapsody的特有的关键技术。

第 5 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

2.3可视化建模

图 1 通过用例图捕捉系统需求

Rhapsody使得系统 设计师和软件开发工程师可以在统一的可视化环境中使用标准的图形化的表示方法(UML)对客户需求进行分析和建模。高度直观和高度关联的图形化用户接口极大方便了用户的使用。UML与直观的图形用户接口的结合意味着项目无风险的快速启动。在Rhapsody中,用例(Use Cases)是进行功能需求分析的主要手段,而非功能性方面的需求,即某种功能被实现的程度,也可以通过UML中的对象约束语言(OCL)轻松实现。如此,系统和软件工程师可以准确的捕获系统的需求,从而驱动模型的实现。用例和它

们对应的行为可以通过其它的图来进一步细化,这些图有顺序图(Sequence Diagrams)、协作图(Collaboration Diagrams)、状态图(Statecharts)和活动图(Activity Diagrams)。Rhapsody允许工程师在白板方式(whiteboard fashion)下应用这些图描述系统结构,而不用涉及细节,从而使系统和开发工程师在开发过程中的每一步都能自由和充分的表达自己的想法。

第 6 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

图2 使用顺序图捕获关键场景用于执行和验证系统设计

图3 使用对象模型图捕捉系统静态结构

系统结构如节点的处理,通信通道,和软件组件都可以通过UML的部署图和组件图来构建,从而方便的在硬件/软件方面进行权衡。而详细的结构可以通过包(Package)、类和对象模型图来实现。另外,可以通过状态图,顺序图、活动图和协作图定义系统和软件行为

的细节。

第 7 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

图4 部署图描述了系统的硬件体系结构以及软件如何映射到不同的硬件节点

图5 状态图可以描述系统简单或复杂的行为,可以用到图中继承、并发、嵌套等许多特点

第 8 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

图6 此外,活动图用来描述工作流和算法行为

在Rhapsody中,所有UML模型的不同视图之间都是可紧密关联的,简单的鼠标点击就可实现模型之间的导航。在开发的任何阶段,都可以通过鼠标点击生成完整、精确和模板可

定制的文档。从软件的角度来看,无论是手写还是自动从Rhapsody中生成,代码都可以无缝的集成到UML的模型中。因此,代码可以说是模型的另一种视图,通过鼠标点击从模型中自动产生。更进一步,Rhapsody还提供强大的测试功能,而这种功能贯穿了整个开发过程。今天,许许多多的各行业实时嵌入式的应用因为使用Rhapsody基于UML的“从概念到代码”的强大功能而得到高效的开发和部署。

2.4 可执行模型

图7 可执行模型,可以在构件系统时对设计进行调试和验证

第 9 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

仅有UML的建模是不够的,为了真正提高开发效率,错误应该在开发早期得到清除,Rhapsody通过模型的执行做到了这一点。模型的执行允许系统工程师,软件工程师和测试工程师在开发的任何阶段都可以对系统进行验证。本质上讲,Rhapsody调试应用程序使用的图形表示与设计中用的完全一样。Rhapsody将UML设计转换成可执行的模型进行验证。例如在模型执行的过程中,状态图的高亮显示表示当前所处的状态;顺序图中的消息从一个组件

发送到另一个组件,实例的动态创建和销毁,以及显示不断改变的属性值都可以得到如实的

捕获和记录。这样系统工程师可以在软件工程师进行设计之前创建图形化的可执行的规范。

更进一步,软件工程师可以在提交验证测试之前执行和验证组件内部结构、之间接口和组件

的行为。接下来,测试组可以通过执行场景(scenarios)进行黑盒阶段测试。此外,Rhapsody提供了一个附加的,高度直观的,基于场景的测试生成和执行环境,ATG和TestConductor(见第四章),它利用了UML中的顺序图自动地验证设计模型,保证了设计的高质量。

2.5 动态模型/代码的一致

图8 通过ActiveCodeView功能实现模型/代码的双向定位和动态一致性修改

Rhapsody环境下的开发人员有选择在UML设计层或者源代码层工作的自由,用户可以完全根据手边的工作选择合适的工具,这将极大的加快开发周期。模型/代码相关性是Rhapsody独有的特色。采用这种技术,代码不再是设计过程的后台工作,变成了整个开发过程中与模型设计紧密结合的工作。在Rhapsody中,模型和代码可以简单理解为设计的两种视图。模型改变的同时更新代码,同样的,代码的改变也同时推动着模型的更新,这种一致性

可以是动态的,也可以在需要的时候触发。在Rhapsody里,你可以通过改变参数或者代码本身达到完全控制代码的目的。这种迭代双向的开发过程保证了设计和代码始终保持一致。在

传统的手工编码的过程中,或者其他使用黑盒代码生成技术地工具里,开发人员必须在不断

尝试和错误修改中产生需要的代码。但模型只要稍微一改,这个过程不得不没完没了重复去

做。Rhapsody允许开发人员在模型和代码中做出改变,只有当模型和代码之间保证了完全一致,才算得上真正的迭代式开发过程。你再不用担心设计文档背离你的实现。

第 10 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

2.6自动化软件合成 Rhapsody还提供更多的功能如可以生成高质量的支持中文的文档,从而避免了以往烦

琐、费时而且错误百出的文档编写过程,Rhapsody自动的生成软件应用所需的框架结构、运行库,makefile文件,通信方式、实施策略以及行为规范和设计文档。同时,Rhapsody允许在开发的任何阶段手工添加实现的细节,且能够自动的加到应用中。或许再没有更好的方式

确保设计和实现过程中所作决定之间的自如沟通了。生成不同的嵌入式环境下运行的代码的

工作在Rhapsody中只是简单的在下拉框中的选择而已,这是Rhapsody实时框架(real-time framework)带来的这种技术上的突破。这种技术极大缩短了针对不同嵌入式操作系统软件开发的移植工作,同样地,针对不同硬件结构保持相同逻辑设计也成为可能。从以往经验看,

很大一部分的开发时间耗费在用来创建应用的底层结构上。包括消息的处理,消息的构造和

分配,数据结构中不同容器的实现,设计模式的实现,操作系统的交互,状态的定义、时钟

的管理和进程间的通信。事实上,大多数开发者在这些工作上面一次次的重复。自动化软件

合成功能做好了这一切,这是通过以源代码形式以及编译好针对不同实时操作系统(RTOS)的二进制形式的实时框架来实现的。这样,开发者可以根据自己的目标环境来选择不同的实

时框架以生成自己的应用程序。Rhapsody的实时框架是专门为嵌入式实时应用所设计,而作为整个代码生成的一个部分,实时框架确保在整个工程中是一致的。而且,Rhapsody的实时框架是开放的、可扩展和可定制的,从而可以满足不同操作系统和架构的需要。另外,

Rhapsody应用甚至可以在没有操作系统资源受限的目标系统中通过IDF(基于中断的实时框架)运行。(详情见第三章第四节)

2.7设计级的调试和测试 图形化的模型调试可以在设计的早期进行,从而不用过多的花费就可以发现设计的功能

问题,这极大的缩短了开发周期提高了设计。另外,Rhapsody不仅允许在主机上进行设计级的调试,在目标机环境上同样可以。因为可以在主机环境下直观地调试设计的图形化的内容,

从而极大改善了应用的可见度,不用等待硬件设计好就可以开始绝大部分软件的调试。一旦

硬件设计完毕,很容易为目标硬件系统生成同样的可执行模型。Rhapsody还支持设计级和源代码级的混合调试,就是说开发者在图形的方式下一步步调试的同时,进行源代码级的调试。

利用源代码调试工具(如Tornado、VC++)在程序中加入断点,模型执行到断点处也可以停下来,同时利用源代码级工具提供的丰富的分析功能进行诸如内存变化分析、任务调度分析、

CPU执行负载分析等工作。模型/代码联合调试的方式,使得复杂应用的开发更快更健壮。

2.8团队合作开发的广泛支持 使用Rhapsody,开发团队如今已能够无缝和高效的在模型驱动的开发环境合作开发,

Rhapsody的集成开发技术,将系统级和软件级的设计、代码和文档进行共享、重用以及集成变得十分容易。即使开发团队的人员散布在世界各地,这种协作也同样很容易。

Rhapsody还提供与市场上提供的优秀的配置管理工具和需求管理跟踪工具的接口,如ClearCase、PVCS、CVS、Doors等,加上Rhapsody提供的可视化的模型区分与合并功能,真正使基于模型驱动设计开发的团队协作成为可能。同时,Rhapsody提供对标准的XML格式的支持,无论开发者使用何种的UML产品,都可以方便的共享他们的设计成果。总之,开发人员对于合作设计和远程团队开发的选择不会因为Rhapsody而受到任何限制。

第 11 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

第三章 Rhapsody 5.0带来的新突破

Rhapsody 5.0为软件和系统设计师带来的新突破不仅表现在对于UML2.0最新标准诸如带有部分(parts)、端口、数据流的组成结构类,可分解的顺序图,功能增强的活动图,以及状态图继承等的支持,还表现在通过优化的代码生成策略,功能模块的建模,以及对于发

动机工业软件可靠性协会(MISRA)标准的支持为C和C++开发人员提供的新的工程能力。对于系统设计师,Rhapsody 5.0提供面向功能模块划分的建模能力,可以无缝地与面向对象模型共存于同一个开发环境。语言无关的数据类型的使用和创建,增强的系统结构建模能

力以及新增的用来定义需求且同时与各模型侧面绑定的需求模型元素(与即将被采用的系统

工程规范UML相兼容),Rhapsody 5.0包括许多增强的用户界面接口包括强大的特征文件的使用和定义,这样用户自定义的扩展(如权重、大小、时间、可靠性和安全性)可以方便

的应用于特定系统的创建。

3.1 Rhapsody 5.0主要增强的功能

Rhapsody5.0的主要改进表现在: 支持UML2.0 为系统工程增强的功能 面向功能分解结构化建模与面向对象建模方法共存于同一个开发环境 在资源受限环境下C语言的优化 用于调度、性能和时间的扩展 易用性的增强

I-Logix一直都在参与UML2.0规范的制订。新的标准中的一些特征如状态图的继承和组

合结构类的概念来自I-Logix的技术,软件和系统开发中的这些优秀特征在新的标准中得到了发扬光大。UML2.0主要关注的是系统结构的可扩展性,来自于Rhapsody的这些结构概念很大程度上提高了UML2.0表述系统结构的能力。 一直以来系统工程师没有很好的工具在系统级设计和分析,很多工程师试图使用UML

但发现1.X的规范在系统结构及需求建模能力的上薄弱。因此,OMG中的系统工程组织SIG提交了一份题为“UML for Systems Engineering”的RFP。I-Logix是这个提议的关键倡导者,其中许多观点在Rhapsody 5.0中都能得到体现,如功能模块建模(Functional Block modeling),自由格式的活动图(Free-Form Activity Diagrams),以及需求建模等。系统工程师在使用UML过程中常抱怨其以软件为中心的特点。如今Rhapsody 5.0允许定义和使用与实现语言无关的类型,这样系统工程师不必钻研软件代码而把精力放在系统模型本身

上。 另一使用 UML的群体为 C语言开发人员,特别是 8位和 16位资源严格受限环境下的

开发人员。如今 Rhapsody 5.0 允许这些工程师充分利用模型驱动开发方式的便利,因为从这些模型产生的代码已经可以运行在这些小处理器上。做到这一点的关键技术为 IDF(Interrupt Driven Framework中断驱动框架)。有了 IDF,模型产生的代码不再需要嵌入式操作系统的参与。另外,产生的代码在许多方面重新得到优化,这些轻重量级的代码可以

运行的既小又快。

第 12 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

3.2 Rhapsody 5.0支持 UML 2.0标准 制订UML2.0标准一个主要目的是为了解决结构的可扩展性问题,所以最直观的一个变

化是增加了通过组成结构类(Structured Classes)和结构顺序图(Structured Sequence Diagrams)体现的所谓UML超级结构(Superstructure)。

Rhapsody从1997年就已经支持了结构类的表示法,但是直到UML2.0才被采纳为标准。一个结构类由内部的部分(parts)组成,部分是其他类的原型实例。就是说,一个结构类定义了一组由其他类共同扮演的角色。

图9 组成结构图

图9展示了一个典型的结构图。电梯类由内部一组的部分(parts)组成:一个用于监测电梯门是否有阻隔的光电传感器,一个压力传感器,各类按钮,内层门,门控制器,楼层指

示灯,目的楼层组等。电梯类拥有自己的操作、属性和状态机,但类的组成结构图强调的是

内部的构造。结构类也可能有端口(Ports),但不是必需的。端口是结构类的网关,允许内部的部分类(parts)通过端口公布其服务。对于这些访问这些服务的客户端无需了解电梯的内部结构,只要拥有这些端口的访问权,就可以调用这些服务。端口是结构类与外部打

交道的代理,有效的隔离了内部的实现细节。而且大大改善了组成结构类的可移植性。端口

在图中显示为电梯类边缘的小方框。 端口是完全可选的,如果需要,电梯类可以自己提供所有的客户类需要的服务,在操作

的实现中调用不同部分(parts)的方法。端口只是简化符号,端口本身是类,所以拥有自己的类型,端口经常但不总是表现为定义于其上的接口(Interface)。这些接口或者为提供接口(Provided Interface,表示为棒棒糖)或者为需求接口(Required Interface表示为插口)。在图9中,PlannerInteractionPort没有接口,MovementPort表示为一个需求接口,而ElevatorPositionPort表示为一个提供接口。DoorInteractionPort同时拥有需求接口和提供接口。提供接口定义了可以通过端口访问的服务,而需求接口定义了与端口对接的其他服务器

提供的服务。一般来说,端口必须链接相兼容的接口,在大多数场合,他们是同一个接口,

第 13 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

只是一个端口提供另一个端口所需的接口。

图10 端口和接口(Ports and Interface)

端口的类型最终都是由定义其上的接口所决定(称为“contract”)。“Contract”很容易在Rhapsody里定义。图10展示了这些工作如何在端口特征对话框里完成的,只是鼠标的点击过程。 同样的,Rhapsody可以为端口、结构类、接口生成完全可执行的代码。不仅可以在主机

开发平台下执行同样可以在目标机上执行和调试(单步跟踪,设置断点,检查变量,插入事

件)。

图11 数据流

UML最新增加了信息流的表示。许多熟悉数据流建模的程序员对在UML1.x中没有相应的表示感到惋惜,如今在Rhapsody里可以进行数据流建模了。UML2.0里的信息流是一种联系元模型之间的依赖关系。图11表现了ElevatorController、Elevator、Floor和ElevatorShaft之间的数据流。关键字<<flow>>区分与其他依赖关系不同。

第 14 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

顺序图长久以来被公认是记录运行期工作情况的好工具。它可以明确清楚的捕获模型执

行时实例间的交互和角色。顺序图的主要局限在于其扩展性。当上百个消息穿梭于运行着的

数十个实例中间,记录和理解这些图变得富有挑战。UML2.0引入了交互片断的表示,顺序图可被交互片断分解,这些片断可以位于同一顺序图,也可以作为其他顺序图的参考。

图12 主顺序图

图12表示了电梯系统中各个对象之间潜在的较为复杂的交互。这些对象包括:Passenger(角色),一楼的“UpButton”按钮,“Elevator”(电梯)及其对应的“innerdoor”(内门),“Floor1”和对应的“outdoor”(外门),“Floor8”和对应的“outdoor”(外门),“Elevator Controller”(电梯控制器)及其“ElevatorShaft”(包含发动机,滑轮,牵引杆等拉动电梯从一层到另一层的装置)。与其在同一张图中画出它们之间的所有消息,不如把它们之间的交

互分解为相互较为独立的三个子图或者叫做交互片断(Interaction Fragments),在图四中得以引用。第一个交互片断叫做“FloorSelectionInteration”,处理“UpButton”如何发送消息给“ElevatorController”然后查询各个电梯的状态寻找到一个最为合适的电梯,命令这个电梯去响应这次请求。 第二段交互片断处理电梯是如何关上门的。这看似简单的动作其实并不简单,电梯有两

层门,内门和外门,它们之间必须以特定的方式通讯才能保证系统对于乘客的安全。 第三段交互片段处理当电梯到达指定一层后如何安全的把门打开。

第 15 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

图13 参考顺序图

从图12通过鼠标很容易转到引用的交互片段。图13显示了“DoorClosureInteraction”的交互片段。除了交互片段,生命线“lifeline”本身可以分解为交互场景。因此在rhapsody里,生命线在垂直和水平方向都可以被分割。顺序图中的这种信息的隐藏和分解技术特别适合描

述真实世界中复杂系统的行为。

图14 生命线的分解

“lifeline”可表示为系统或者子系统,其行为可以被进一步细分。图14所示的“lifeline”细分为了完整的交互图。图右上角的子系统“BaseStation”被下面的顺序图进一步细化,可以看到其行为表示成一系列的内部消息的传递。顺序图的这种垂直分割(通过分解lifeline)技术和水平分割(通过交互片段)技术第一次使得顺序图以清晰和容易被理解的方式捕捉高

度复杂的系统行为。

第 16 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

图15 状态图的继承 UML2.0规范另一个重大改进在于更加专业的状态图的继承,虽然Rhapsody用户发现很

久以来Rhapsody就具有了这种能力,但这次被写入了UML规范。状态图的继承是指子类可以继承父类的行为,并在此基础上进行扩展。图15展示了一个简单的例子。

图16 自由形式的活动图

Rhapsody中对象的活动图历来都是可以执行的,现在可执行的活动图已经可以用来描述一个操作。此外,增加了系统工程分析或者体系结构设计工作会用到的“free-form”(自由形式)的活动图表。“Swimlanes”(泳道)用于绑定各种不同的各种活动到一个操作或者一个静态结构中。图16所示,执行同一个任务两个不同的可操作元素,如何智能地实现

第 17 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

活动的聚集,解释和动态计划编制。

3.3 Rhapsody 5.0适用于系统工程设计 有许多系统工程师使用 Rhapsody,尤其是军事、航空、电信、汽车、和医疗设备领域

的工程师,他们一般不需要处理软件细节,但期望在高层专注于功能和系统结构分解,行为

规范和需求分析。为了迎合系统工程师利用模块图捕获总体系统结构的习惯,Rhapsody 5.0提供了无类型的“模块建模”手段。模块可以很笼统,如果需要也可以很具体。就是说,模

块无需定义为一个类,如果必要,指定模块为特定类型(比如结构类),然后为此类型加上

描述细节的端口(Ports)和接口。

图17 模块图(Block Diagram)

图17展示了一个典型的模块图,在此图中,没有涉及结构细节,但模块之间的关系和信息流被标注了出来。

第 18 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

图18 数据流和功能模块

信息流多用于传统的软件模块建模,如今在基于功能分解的模块图中被Rhapsody所支持。图17只是显示了一个大概的流程,更为详细的信息流在此基础上很容易构建(参见图18)。信息流能够携带多个数据项,可以设计为单向,也可以为双向。

图19 C4ISR体系框架中的OV-1图

信息流和功能模块建模能方便地支持C4ISR体系框架。如图19 OV-1(Operation Overview)所示,模块被原型化,并且以不同的图标表示出来,体现了计划任务中的可操作结构。连接不同可操作模块的信息流帮助任务的规划者理解战场中不同操作的作用。

第 19 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

UML2.0的一个局限是没有针对需求(requirement)的表示,这导致系统和软件设计师必须在日常工作中就理解和分析上出现的偏差反复进行沟通。Rhapsody引入了一个称为需求元素的新的元素,它是限制(Constraint)的一种,需求描述系统中不可缺少一个方面。图17显示了三种文本注解。第一种,也是最为简单的一种,为语义无关的注释。图中左上教的标签即为此中类型。第二种是限制(Constraint),一种用户自定义的施加于一个或者多个模型元素的完全形式化的规则。图中显示出了两种限制,其一指出一个滑轴有且只有一部电梯,

另一个指出一部电梯可以访问所有的楼层。最后一种文本注释即为需求元素,一种特定形式

的限制。图中底部的文本最为需求元素指出此需求应在ElevatorController模块中实现。限制和需求才是真正的模型元素,才可以在Browser中显示出来,如图20所示。因为他们是模型元素,所以才可以被查询、操作、报表、打印,甚至导出到DOORS(需求管理工具)中。

图20 工程管理中的需求元素 为了给系统设计师提供支持,Rhapsody提供了一套语言无关的数据类型方便系统设计师

指定何种信息流传递于模块、操作之间并被状态机处理。当选定实现语言之后,Rhapsody会为这些语言无关的数据类型生成语言相关的代码。

第 20 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

图21 语言无关类型

此外,这些独立类型可以是枚举类型、声明或者其他类型规范,都无需涉及代码一层。

3.4 Rhapsody 5.0 允许面向功能分解的结构化建模方式与

面向对象建模方式共存 采用模型驱动开发方法的客户多年以来一直有一个强烈的愿望就是期望UML建模工具

除了支持面向对象的开发思想之外也能够支持非面向对象建模思想,对于系统工程师特别是

C语言开发工程师而言,面向功能分解的结构化建模往往是更为习惯的工作方式。 Rhapsody 5.0允许工程师采用熟悉的表示符号创建带有数据流的功能模块图,而这完全

集成于标准UML2.0开发环境下。活动图作为系统工程师的重要视图,揭示了系统活动的功能流程,如今在Rhapsody 5.0环境下完全成为可执行的了。习惯于传统建模方式的系统工程师在活动图运行的同时观察和预测系统行为,同时与软件工程师的工作很好的在同一个开发

环境下进行。C语言开发者也可以同样受益于功能模块图,采用比面向对象方法更为擅长的功能分解的建模方法进行分析和设计。

图22 功能模块建模和UML2.0中的信息流为功能建模方法和面向对象建模方法架起了桥梁

第 21 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

3.5 Rhapsody 5.0 in C的优化 Rhapsody 5.0为Rhapsody in C的开发人员做了很大改进。包括优化了实时框架的调用、

使用Inlines代码、增加了Mutators和Accessors操作、对于VTBL框架的优化等。最为重要的是增加了基于中断的实时框架(IDF),使得Rhapsody的使用甚至无需依赖操作系统的运行。

通常Rhapsody假定应用程序运行于一个操作系统之上,一些机制依赖于操作系统提供的服务。但对于一些应用,RTOS过于奢侈,有的体现在资源上,有的体现在性能上,或者兼二有之。Rhapsody 5.0的IDF可以做到将一些Rhapsody模型应用于一些苛刻环境,比如8位,16位处理器或者内存空间小性能要求高的环境中。 很少的编译器支持 ANSI-C的“inline”指示。但简单的“inline”操作如“mutators”和

“accessors”却可以大大显著的降低代码大小。Rhapsody 5.0允许有选择的将这些操作变为宏(macros)操作。同样实现了关系操作的优化。

图23:通常的Mutator/Accessor代码

图24:inline类型的Mutator/Accessor 宏

VTBL是用来跟踪哪些对象在操作里被处理的一种结构。C++里,编译器自动构造这个结构,对于C语言,Rhapsody为编译器构造了一个VTBL。在资源受限的环境无需操作系统的环境中,Rhapsody对于VTBL的优化直接体现在产生的应用代码量的大大减少。 最后,MISRA 被许多汽车厂商以及他们的供应商采纳,其他领域如航空电子也在采纳

这种标准,Rhapsody 5.0生成的 C代码满足MISRA的标准。

3.6 Rhapsody 5.0用于调度、性能和时间的扩展 特征文件(Profile)是UML的一种特定形式,作为一种扩展形式极大的扩展了对于一些

特定领域的UML的可用性。特征文件主要由三种形式组成: Stereotypes,UML元素的一种特定类型 Tags(标签)和属性,特征文件中的特殊特征的名字-值对(pairs) 模型库,特定领域的类。

第 22 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

有很多不同领域的特征文件可用,对于 Rhapsody用户而言,最重要的要属 SPT(UML Profile for Schedulability, Performance, and Time)了。这个特征文件详细定义了 stereotypes和 tags 形式的有关资源管理、时间、并发的内容。此外,定义提供了标示这些模型可调度性和性能的属性,可以被其他调度、分析工具诸如 Tri-Pacific公司的RapidRMA™,和 Timesys公司的 TimeWiz™采用数学化的分析方法分析用户模型。

图25:Rhapsody 5.0的Profiles

如图 24所示,用户可以自由的定义自己的特征文件或者安装使用现成的特征文件。这些特征文件可被项目小组、公司或者相同行业公用以形成一致和共享的模块。

3.7 Rhapsody 5.0的超链接 模型可以十分复杂,所以在数十甚至上百张图中导航而不迷失方向是件比较困难的事

情。如果在加上其他的一些必须的工件,如word文档、PowerPoint演示、web主页等,理解这些相互关系几乎变成不可能的事情。Rhapsody提供增强的超链接(Hyperlinks)功能,可以方便的连接所有这些元素。图25 显示了超链接的browser视图。在这个例子中,链接了一个Word文档和一个特定的图。实际上,用户可以链接任意两个工作成果,可以是模型中的任意元素或者任意一个Word文档、ppt演示、web主页、项目计划或者其他文件。只需鼠标点击即可用相关工具打开需要的工件。

第 23 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

图26 超级链接

第四章 Rhapsody附加软件

4.1 使用软件测试套件 ATG和 TestConduct进行测试 业界分析家指出开发新产品花费的 70%的时间和 50%的费用都与测试相关。假若多数

测试行为都发生在开发过程的最

后阶段,那么这些数据不足为奇。

如今,使用更少的资源在更短的时

间内开发出更高质量产品的压力

日益增加,开发经理和软件工程师

需要不断的严格评估测试过程的

有效性。

软件开发不可避免的需要进

行测试。但是测试用例的来源以及

测试手段本身的公正性和标准性

却很难保证。

以 Rhapsody为基础,I-Logix提供了配套的测试套件 ATG和 TestConductor 来进行软

件开发的测试:

Rhapsody ATG(Automatic Test Generation):测试用例自动生成工具。软件测试中

极为关键的工作就是为测试形成高质量的测试用例,然后才是测试的执行。现在流行的测试

第 24 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

工具主要是支持后一部分工作,即测试的执行。ATG 根据 Rhapsody 中包含的需求信息和设

计信息,自动生成高覆盖率的测试用例。该用例有两个用途:1 用于对 Rhapsody的模型进

行测试,2 用于对最终形成的源代码进行测试。使用的方式因而也有两种:1 在开发过程中

进行自身的测试,2 对于外包的软件进行验收测试。用例生成规则符合最严格的美国 FAA

DO-178B/ED12B航空认证标准,也可由用户定制。产生的测试用例可以用于Rhapsody的UML模型测试模块 TestConductor,也可以脱离 Rhapsody 本身,由第三方的测试工具或测试仪

器对输出代码进行测试,如 VectorCast。

Rhapsody TestConductor:UML模型测试模块。用于 UML开发阶段,UML模型自身的遍

历验证和测试。适合模型原理性测试。I-Logix的 Rhapsody® TestConductor™是第一个遵循UML™(统一建模语言)规范,

基 于 场 景

(scenario)的实时嵌入式软件

测试生成和验

证套件。使用

Rhapsody TestConductor开发人员能够

在整个开发过

程中直接针对

系统需求测试

设计结果,在开

发过程的早期

就检测出设计

故障。实践证明早期的测试行为能够缩短开发周期,降低与测试相关的费用,与此同时还能

显著提高产品质量。

使用 ATG和 TestConductor 的工作过程如图所示。

特点

• 使用 UML顺序图以图形方式定义测试用例。 o 无需学习新的语言 o 利用需求驱动测试

• 使用桩、监视器和测试驱动技术 o 有助于进行交互式调试、功能测试和回归测试

• 使用实例参数化表示顺序图 o 重用场景以作为测试模式

• 根据系统边界驱动您的设计……同时监测所有的交互行为 o 允许广泛的回归测试

• 通过不同颜色编码的顺序图分析失败原因 o 形象的表示出实际运行的和期望的执行结果

第 25 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

o 无需比较顺序图 o 完整地纪录下问题重现的过程

这两个自动化工具可以有效提高测试的标准化和定量化水平。各个阶段的设计人员第一

次能在一个统一一致标准的环境下进行测试。有效的消除了由于测试手段本身不确定性而引

入的干扰因素。

4.2 实现嵌入式设备上网的工具包----Rhapsody Webify™

Tookit 在当今无处不在的计算市场,越来越多的实时嵌入式设备与 web 连接,在降低服务和

维护费用的同时也提高了实时数据的可用性。诸如电信交换机和路由器、打印机、传真机、

复印机、工业控制器、病人监视器等设备甚至人造卫星如今都已可以通过 web 来监控。这些设备的制造商认识到通过 web 互连进行远程监控能大大减少维护和服务费用,许多情况下,设备的重配置、设备的更新和维护在世界的任何角落都可以进行。

Rhapsody Webify Toolkit概述 Rhapsody® Webify Toolkit™具有三个基本功能: 首先,开发人员使用此开发工具只需要按钮的点击就能够为嵌入设备快速生成可以通过

web 进行监控的应用程序。这种 web 使能技术是指用户能通过任意一个 web 浏览器具有对设备的日志写入、观测、激励和监控的能力。 其次,Webify工具集通过自动生成设备的 HTML界面,极大加速了用户界面快速原型

的开发,使得开发人员能够快速和方便地激励系统并观察其反应。同样重要的是,这种基于

HTML 的设备界面具有高度的可配置性,因此可根据最终用户的需要提供深入监测设备的不同的视图。例如,开发人员需要看到所有设计元素,而维护技术人员只需要看到特定功能

的属性值。 第三,Rhapsody自动产生介于用户界面和设备的基础通讯代码,以便于通过 web 浏览

器控制和监视设备的运行。 Rhapsody Webify工具集应用于开发、部署和维护的各个阶段。开发早期主要用于新项

目的功能和性能的调试和快速原型化工作。对于现场设备,Rhapsody Webify工具集支持远程诊断和现场维护。这些功能显著的减少了产品进入市场的时间和维护的开销。

在 Rhapsody环境中生成应用程序

Rhapsody环境中,开发人员使用 UML分析、设计、实现和测试他们的实时嵌入式应用软件。Rhapsody能从 UML设计中自动生成产品级质量的 C、C++和 Java代码。Rhapsody Webify自动在应用程序中嵌入一个嵌入式 web服务器,封装了设备和用户界面之间的通讯细节。 另外,在代码生成的过程,开发人员能够灵活方便选择用于 web 显示的部件和属性。

做出选择之后,Rhapsody自动生成这些部件的 HTML界面。无论设备位于或使用于何处,都可以在浏览器中调用 HTML接口连接以激励和监视设备。

为什么 Rhapsody Webify Toolkit 是一个突破性的产品?

Web使能设备的传统手工开发过程十分繁重、乏味、耗时且耗钱。设备代码主要靠手写,应用系统的结构、行为和合作关系图纸都是手工绘制。程序员必须创建位于设备和终端

第 26 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

用户界面之间的通讯层软件,然后需要购买或者开发一个 web 服务器并且将其整合到设备代码中,接下来,开发图形用户界面以控制设备。最后一步,还需要手工为设备和浏览器部

署代码。 整个开发过程都要求开发者懂得如何修改设备代码以同 web 服务相连接,由于这些知识在嵌入式领域不是很常用,从而阻碍了开发者集中精力把工作做得更好。这些知识包括对

web开发和设计技术的深入了解,比如 JavaScript或者 CGI-bin等。所有这些元素都必须集成到应用程序中,并且通过一些协议(internet相关协议)相连。 Rhapsody Webify Toolkit的工作原理

使用 Rhapsody Webify工具集开发 web使能应用的过程容易得多。主要有以下四步:

在 Rhapsody中使用标准的 UML进行可视化设计。

开发人员选择将要通过 web监控的元素,在模型中版类化这些元素。

Rhapsody 为设备自动生成产品质量的代码,其中使用了 Webify 工具的“Get

Connected”技术。

应用软件在 Rhapsody中自动部署和执行。

可见,这样最终节省了大量时间,无需消耗额外的资源,降低了开发费用。

Rhapsody Webify Toolkit 的特点

• 需求验证:使用图形用户界面验证设备正确性

• 提高效率:将设备代码开发和界面开发合而为一

• 开发成员可以相互协作

• 增进开发人员与最终用户之间的交流

• 提供更多的灵活性:多语言支持- C/C++

• 节省时间和费用:提供内嵌的 web服务器(可选)

• 提供内嵌的文件系统(可选)

• 提供安全和访问控制,例如可靠性

总结 Rhapsody Webify工具集通过下列技术提高 web使能设备的开发效率: Web使能设备代码自动生成 控制设备的图形用户界面自动生成 底层通讯软件自动生成 方便项目组的协作 节省系统验证时间

4.3设计文档发布及维护工具----Rhapsody ReporterPLUS™ Logix公司的 Rhapsody® ReporterTM 软件简化了设计文档的发布工作以及在整个项目生

命周期的维护工作。Rhapsody Reporter能够直接从设计本身生成正式的 html文档、rtf文档、FrameMaker®以及Word®文档,并且能在设计改变时自动更新或者重新生成。在 Rhapsody应用软件开发平台上使用 Rhapsody Reporter的结果是使得设计、文档以及代码始终保持同步。此外,由于您可以生成 html文档,其网上发布的工作变得异常简单。

第 27 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

第五章 Rhapsody应用领域和主要客户

Rhapsody主要应用领域:电信、数据、消费电气、办公自动化、军事、航空、汽车制造、医疗设备、工业自动化等。Rhapsody 部分国内外典型客户名单。

1、电信/数据 2.消费电子/办公自动化 3.军事/航空

中兴通讯上海一所、二所、

南京研究所

大唐电信上海研究所

Agilent(安捷伦)

Alcatel (阿尔卡特)

苏州 Alcatel

Aselsan

Bell & Howell(贝尔)

Bell Atlantic

Cadant

CISCO(思科)

Divicom

ECI Telecomm(以色列电信)

Echostar Technologies

Elektrobit Limited

Ericsson(爱立信)

Ericsson Radio Systems

Glenayre Technologies

L3COM

Lucent(朗讯)

Luxcore

Motorola(摩托罗拉)

Motorola Broadband

Motorola Cellular

Motorola CIG

Motorola ISG

Motorola Multi Media

Next Level

Nokia(诺基亚)

Nortel Networks(北电)

Omnipoint

Panasonic(日本松下公司)

Racal Electronics

Siemens Telecom(西门子)

3Com

Texas Instruments (TI)

Thomson

Agilent Technologies

Applied Materials

Canon(日本佳能)

Crossroads

DataProducts

Dell Computers(戴尔)

EMC(最大电梯独立制造商)

Exabyte

Fujitsu(日本富士通)

FujiXerox

HP(惠普)

Hitachi(日立)

Intel(美国英特尔公司)

Kodak(科达)

Maxontics

Maxoptix

Mitsubishi Electric(三菱

电器)

Oki Electric(冲电气,日本

著名的电子公司)

Peerless

QTI

SanDisk Corporation

Seagate(美国希捷公司)

Sensar

SMART LLC

Sony(索尼公司)

WMS Gaming

Alenia-Marconi

GTE

Sony Electronics

Toshiba(日本东芝)

Westinghouse Electric

深圳桑达电子

北京 CII Tec公司

Alcatel

Allied Signal

Bae Systems

Ball Aerospace

Bofors Missiles

Bombardier

EADS

Eglin Air Force Base

FAA(联邦航空局)

Honeywall

Hughes

Intellitec

Israel Aircraft Industries

JPL(喷气推进实验所[美])

L3COM

Lockheed Martin(洛克西德

马丁)

Marconi Avionics

Mitre Corporation

Oerlikon Aerospace Inc.

Orbital Sciences

Naval Air Warfare Center

(NAWC)

Northrop Grumman

NSA(国家安全局)

Pratt & Whitney

Racal Radio Limited

Raytheon

Rafael

Sextant Avionique

THALES

TRW

电子、航空、航天、兵器、船

舶各部近 20家研究所

国家天文台

第 28 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

4.工业自动化 5.医疗设备 6.交通运输

ABB

AMD(美国 AMD公司)

Azad

Bell & Howell

Carrier

GE Industrial(通用重工)

KLA - Tencor

Matsushita

Mitsubishi

Otis Elevator(奥迪斯电梯)

QTI

Robicon

Rockwell

Siemens

Siemens A&D

Trane

United Technologies

Abbott Laboratories

AKSYS

Baxter Healthcare

CTI Cryogenics

CYTYC

GE Medical(通用电器医疗)

Medtronic

NOVA Biomedical

Sabratek

Xerox(施乐)

Sextant

Becker Automotive

Bosch und Blaupunkte Werke

Carrier

Clarion

Daimler Chrysler

Denso

Deuta Werke

EMC

Ford(福特汽车)

General Motors

Matsushita

Mazda(马自达汽车)

Mitsubishi

Motorola TCG

Peugeot

Siemens AT

Siemens A&D

Volkswagon AG(大众)

Volvo Pent沃尔沃汽车

第六章 Rhapsody应用实例

6.1 Rhapsody 为洛克希德-马丁公司赢得“联合攻击战斗机”

生产合同发挥了至关重要的作用 可视化应用软件开发平台提高了洛克希德-马丁公司软件开发过程的质量和

生产力

2001年12月17日,马萨诸塞州安德沃——I-Logix公司今天宣布Rhapsody(R)可视化开发

环境在开发被授予获胜的联合攻击战斗机(JSF)原型的过程中扮演了极为重要的角色。洛

马公司航空部在飞行器软件的一个重要部分的开发中应用了Rhapsody和统一建模语言(UML),

结果其开发效率得到显著提高。

选择由洛克希德-马丁公司主导并与诺斯罗普格鲁门公司(Northrop Grumman)和英国

宇航公司(BAe Systems)展开合作开发和生产JSF飞机的决定是在10月26日宣布的。洛马公司

目前正致力于项目下一阶段系统开发和示范(SDD)的工作。由于Rhapsody在飞行器软件开

发过程中发挥的关键作用,洛马公司表示将继续使用Rhapsody。被授予的这项为美国的空军、

海军和舰队以及英国空军和海军生产战斗机的合同金额在200亿美元以内。

“Rhapsody被选择将在JSF的开发中发挥如此重要的作用,I-Logix公司感到无比振奋”,I-Logix首席执行官Gene Robinson说,“我们将致力于发展与洛马公司持续的合作关系,协

第 29 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

助他们在软件开发过程中实现自动化。Rhapsody允许洛马项目组共享模型,交换规格说明并

测试和验证设计成果,从而加速开发过程提高生产效率。”

在系统开发和示范(SDD)阶段,洛马公司已经选择了Rhapsody这样一个基于UML的应用

软件开发环境作为开发工具,Rhapsody提供了一个迭代式开发过程,使得开发人员能够分析、

建模、设计、实现和验证嵌入式系统软件的行为。提前进行软件测试的功能在大大减少与手

工开发及编码相关的风险的同时缩短了整体的开发时间。Rhapsody能够被选中的关键在于其

开放的体系结构,Rhapsody提供了与得到广泛好评的单项优势软件工具,包括需求跟踪、配

置管理、测试、调试等工具的接口,形成了一个集成开发环境。

“洛克希德-马丁公司航空部应用Rhapsody和UML为获胜的JSF提案作了大部分的工作”,洛马公司JSF项目开发环境设计师说,“并且我们计划在目前已经赢得项目授权的情况下扩展其应用范围,洛克希德-马丁认识到Rhapsody能提高产品质量,缩短开发周期并且提高整体

的开发效率。”

洛马公司计划在JSF飞机的开发和交付过程中扩大Rhapsody可视化编程环境的应用。通

过从设计模型自动产生完全的具有产品级质量的代码,Rhapsody将工作的重点从编码转移到

设计上来,同时大大提高了总体生产水平。Rhapsody提供的高效的模型级调试手段增强并超

越了传统的代码级的调试策略。Rhapsody消除了乏味、耗时、手工且易错的软件开发步骤,

从而节省了时间,结果导致Rhapsody允许在缩短开发周期的同时更专注于软件的设计。

6.2以色列 ECI电信公司下一代交换平台项目 ECI 电信是以色列最大的电信公司,有超过 4000 人的雇员。公司被分成许多战略商业

部(SBU),ECI电信的交通网络 SBU正在设计和开发的一个项目:A::DAX,下一代的交换平台,使用的就是 I-Logix公司的 Rhapsody工具用以生成特色丰富的应用。

案例的要点

Dorit Kats是 ECI交通网络部的软件开发经理,她说:“我们部门使用 Rhapsody已经 3年了。开始我们只在一个小项目中(3个软件工程师)使用它,并对这个工具进行评估,很快,我们就认识到了这个工具带来的效率,并在更加大范围内推广使用开来。

使用 Rhapsody 之前,ECI 一直使用传统的代码编写技术,但发现提高开发实时嵌入式

系统的效率变得越来越困难。“使用传统的方法,保持设计视图和底层代码之间的同步极度

困难。”Katz评论说。“因为 Rhapsody在设计层进行工作,工程师能够更快的开发系统并且知道设计视图和底层代码一直保持一致。”

和通常的以 CASE 为中心的可视化开发产品不同的是:它们只能生成部分代码或者原

型框架代码,而 Rhapsody应用‘模型/代码’相关性技术使得工程师能通过设计层的控制进行全面代码控制,就是说设计层和代码层的任何改变都可以一致体现在各种模型元素上。“事

实上,”Katz 技术补充道,“模型和代码只是同一个事物的不同视角而已。这就保证了设计和代码在开发过程的各个阶段都保持一致。”

Rhapsody 与 ECI 电信的设计流程吻合的很好,公司可以以自己希望的方式去工作,而

第 30 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

不是被其他的一些工具所限被迫采用一种方式。采用所谓迭代开发方法,Rhapsody 连接着应用软件开发的所有设计过程,包括分析,行为验证,文档和代码的自动化生成以及测试。

最终,Rhapsody关联着设计和代码的任何改变,时刻保证它们的一致。

五种视图 如今所有的电信领域的产品的开发都是在 Team环境中进行的,ECI电信的 A::DAX也

不例外。Katz领导的项目组,和大多数的嵌入系统开发 Team一样分为 4个独立的团队:系统,硬件,软件和测试。软件 Team按照关键子系统进一步被划分。

“Rhapsody支持我们在 Team中的开发方式,我们的工程师能够在同一个可视化开发环

境中将独立设计的工作集成到一起,”Katz评论说。Rhapsody用户在项目管理环境中共享设计模块,Rhapsody 在独立的工程工作区中保存着层次结构的包和部件,提供应用管理和裁减支持。工具同样提供给软件工程师利用五种不同但集成到一起的图形设计进行分析、设计、

代码实现的能力。 用例图 对象模型图 顺序图 状态图 活动图 每种视图都专注于设计的不同方面,这种对于标准模型的使用,大大简化了整体开发过

程。

眼见为实 用例图(Use Cases)尤其重要。用例图用以捕捉应用的主要功能并且用来描述系统的

明确特征,这事实上是一个非常优秀的方法,开发人员可以从定位系统特定功能的角度相互

沟通,而且用例图很容易被技术和非技术人员理解,同时它建立了一个以它为中心的捕获系

统功能需求的途径。Katz说:“用例图实际上即是系统规范,允许设计人员在更高的层次—系统特征层进行定义。

帮助 ECI电信软件工程师开发高效代码同样重要的还有对象模型图和顺序图。“对象模

型图显示你的系统中所有的对象”,Katz 接着说,“你可以在很高的抽象层开展工作,因为你在精确定义对象行为之前就可以定义对象之间是如何连接/沟通的了。”

对象模型图提供了一个图形化的方法用以捕捉软件元素和他们相应的关联。这些元素,

比如对象和包,被放置在一个‘画板’中,从‘调色板’中选择一个工具在需要的对象/包之间画一条线它们之间的关联就建立起来了。“这些图形化的关系会自动的转化为代码,这

样就省去了很多时间,“Katz 补充道。类图,和对象模型图类似,也可以在 Rhapsody 中使用,Katz的 Team中广泛的使用了类图(图一)。

第 31 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

图一:类图,此图表示了电信传输网络 SBU的一个包中类以及它们的关系

顺序图从另一个方面描绘了设计部件和环境之间的交互。设计部件的实例被放在水平的

轴线上,它们之间的交互比如事件,操作,或者超时按照事件的顺序放在垂直的轴线上。 “根本上讲,对象模型图是静态的而顺序图是动态的,”,Katz接着说。“这两张图对于开发我们的系统都扮演着重要的角色,特别是顺序图,从中我们收益更多。” 顺序图(图二)使 ECI 的程序员清楚地看到系统的动态实现而用传统的方法是不容易

看到的。

图二:顺序图,此图表示描绘了 SNMP(简单网络管理协议)

ECI 电信使用 Rhapsody 的状态图定义和设置对象的行为,状态图提供了一个简单的形式化的方式描述电信系统常见的复杂的事件驱动的系统。所有必需的表达行为的语义:状态,

历史属性,定时,转换和复合转换连接器在状态图工具板中都是可用的。“Rhapsody状态图

第 32 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

包括诸如定时,并发和继承等特性,这些特性让我们描绘出了一个清晰且完整的系统。“Katz说。

图三:状态图,此图是一个计数器的状态图

Rhapsody同样可以使用活动图。活动图用来描述实时软件部件和操作的过程或者算法。这种视图与流程图很相似所以很适合描述一个算法设计部件。同其他视图相关联,活动视图

可以发挥强大的辅助作用。 从设计到实现

Rhapsody 在开发的各个阶段为程序员提供产品级的源代码,满足了 ECI 电信的需求。这种能力是开放可扩展的实时可执行框架带来的,实时框架用于处理重复单调、容易出错然

而从设计到实现转换所必需的代码。实时框架可以看作完全面向用户的底层操作系统的抽

象,实时框架同样以源代码的方式提供给程序员。 除了实时框架,Rhapsody 自动生成需要的源代码,makefiles,甚至自动调用编译器和连

接器,使图形化的设计直接生成了完全的库或者可执行文件。 “我们对 Rhapsody 的这个特征印象深刻,自动生成的代码具有产品级的质量。”Katz

评论说。

第 33 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

图四:Rhapsody的浏览器提供了所有设计内容的浏览和控制,对设计的检查、划分、

修改和扩充都可以在一个集中的环境中进行

自动生成的代码同样可以用于最终产品之前的一些验证步骤,ECI公司开发人员使用这些代码驱动设计模型以在设计层进行调试。事实上,Katz的 Team还使用这些自动生成的代码驱动顺序图并产生调试跟踪文件以便针对项目最初的设计意图测试系统的性能和行为。

使用这种技术,程序员看到的代码最终运行在目标机中,是真实的,而不象其他系统(比

如 CASE 工具)那样,生成的只是应用程序的模拟模型代码。因此,程序员在开发的各个阶段对代码具有完全的控制。可以说,代码就是模型,模型就是代码。

结论:Rhapsody 将 ECI 电信的代码生成,调试,和验证提升到了图形化的设计层次。

结果生成了一个设计更好,代码质量更高,市场反映及时的产品。

6.3 MCE的电梯控制单元采用 Rhapsody的软件开发工具 Motion Control Engineering (MCE)公司,每年大约有 8000万美元的销售额,是世界上最

大的电梯控制和监控系统的独立制造厂商。MCE 正在不断努力,将高新人才和技术结合应用于提高电梯的性能,包括最基本的电梯安装、维护和操作功能。

早在 2000年,MCE就已经开始研制他们新一代的电梯控制器。研制的关键性就是能否

采用一种更先进的软件开发工具,并且在开发和维护一整套程序时可以不断地补充新的优

点。他们的决策集中于基于面向对象的统一建模语言(UML)的方法。操作系统最终选定vxworks,接下来便要选择一个适合的 UML工具。他们先后评估了 Project Technology Inc. Bridge Point,Rational Rose RT,RTI ControlSell等。最终,MCE选择了基于 UML的可视化应用开发平台—Rhapsody in C++。

2000年 4月,MCE的软件工程师们开始重新设计电梯的控制逻辑。这是 MCE首次使

用面向对象设计、统一建模语言(UML)和可视化应用开发平台,为此他们特地请来了 I-Logix

第 34 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

公司的专家针对以上三方面内容进行系统的培训。 “我们的软件开发人员很精通手工编写、汇编 C 语言的代码,但是他们在可视化应用

开发平台和 UML方面都没有经验。”MCE的 Gavin Arthurs说,“I-Logix的培训首先使我们学习了面向对象设计的基础原理,然后学习了 Rhapsody工具的特点和功能,最后学习怎样将它们结合起来使用,这种专业培训对于提高我们的队伍素质是非常有益的。”

进行电梯控制开发的第一步是详细了解基础需求,在最初的开发过程中,MCE 的软件

开发人员使用 Rhapsody中的用例图(Use Cases)捕捉到了他们的需求。接着在构建设计过程中,使用顺序图(Sequence Diagram)来开发模型和相关的核心层。一旦需求被确定后,MCE 开始着手使用状态图(Statechart)来开发控制逻辑部分。在使用电梯时,控制逻辑操控的是使用者输入状况(按住按钮)和电梯目前的状态(可能要去的方向),根据以上两种

情况做出选择,最终确定一种行为(例如停住或改变方向)。通过使用 Rhapsody,“目前使用者输入” 以及“目前的状态”会在状态图中被模拟出来,包括同时发生的状态都可以被模拟出来。通过状态图,系统自动生成代码,而且可以同时运行和调试设计层。通过测试,

开发人员可以在建模阶段就对设计进行调试。他们可以假设一个事件并且在状态模型图中观

察其结果。因此他们可以观察这个事件是怎样引发出一个举动来确保控制逻辑是按照原先设

计的来运行的。 “在可视化环境中开发我们的应用是非常关键的,因为一部电梯在开发时首先要建立使

用模型。”Arthurs 说,“使用状态图以及使状态图变得有意义,对于开发运行电梯的逻辑是至关重要的,特别是当团队合作时。相对于只是看代码而言,使用状态图更易于理解将要发

生的事情。” MCE使用 Rhapsody后获得的主要益处就是每个工程师都可以独立工作,而不用害怕丢

失数据。在项目初始阶段,每个工程师都会专注于他们被指派的领域,当项目评估需要合并

时再将模型融合起来。使用 Rhapsody,设计的最初阶段就会结合使用“增加模型”的功能。原则上开发人员要独立工作一段时间,然后定期将模型结合起来,就这样不断循环下去。这

种方法在处理多个并行开发时是非常有效的。 当开始建模并且通过官方许可后,工程师们开始正式使用 Rhapsody,并将政府结构管

理结合起来。然后,电梯操控器才可以进行调试、设计。作为一个开发团队,他们要将所有

的技术融合使项目运转起来,确保项目是按照原先设计的来进行的,并且如此循环进入下一

个阶段。Rhapsody 在这种协同处理方面是很容易做到的。另外,在档案系统中,Rhapsody的分级存储系统也使得原本复杂的存储原理变得简单,并且使潜在的组织结构得以在将来重

复使用。 “在同一个模型中,外在原理和组成以及结构配置对于管理主机和目标机是非常有帮助

的。”Arthurs说。 Rhapsody 的实时框架是建立在层次和项目结构的信息交流上的。像上面提及的一样,

在引入 Rhapsody之前,MCE的研发人员都是使用手写的汇编和 C语言。这种代码需要 5~6台处理器作为目标机,这对于操作系统来说无疑是没有好处的。

第 35 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

“因此,数据交换的过程在硬件配置很低并且驱动困难的状态下进行,大部分的问题都

将出现在数据交换期和潜伏期,”Arthurs说。现在,MCE可以从 Rhapsody的框架分类中受益,例如使用 OMReactive、OMEvent等来实现基本的操作系统功能,包括在目标机之间不同步的数据交换。Rhapsody 还可以帮助整个队伍提高设计水平,同时节省研发的时间和精力。

在目前开发的整体过程中,MCE 可以得到系统自动生成的代码。这些代码被用来测试

不同阶段的应用以确保设计是正确的。代码运行在 PC机上时也可以对应用进行调试,而且其结果也会被自动地反馈到模型中去,接着在 VxWorks 上进行配置。设计层的调试可以同时在主机和目标机上进行。这点非常重要,这使工程师们可以专注于设计而不是编写代码。

Rhapsody 的框架,特别是用于实时嵌入式操作系统的设计可以确保当实时构造如 times、semaphores和 threads,当操作系统确定后,可以自动产生。无论是用Windows或 VxWorks,MCE都将主要的工作集中在设计层,并且将所有 Rhapsody生成的代码用于应用中。

“使用 Rhapsody 另一大好处就是可以将逻辑运行在主机上,将我们的 PC 机作为目标

机,然后在逻辑器件上进行检测和调试,原先我们是不可能做到这点的。大部分的测试都是

直接在硬件上完成的,因为我们不可能在 PC机上进行仿真,但实际上我们并不喜欢使用硬件。Rhapsody 引领我们进入一种逻辑上的思维方式,在开发初期无需使用硬件就可以进行调试。”Arthurs 说,“这非常重要,现在我们可以专注于将应用与硬件结合起来并且得出正确的信息。这种逻辑方式被调试后的结果是非常有帮助的,而且在及时性和节省代码方面是

也是非常先进的。” 通过使用 Rhapsody,MCE可以使用一种可视的、基于 UML的应用开发平台来研制新

一代的电梯操控技术。在开发阶段,他们得益于这种可视化的高度逻辑应用,不但可以促进

工程师之间的交流与协作,而且使用高质量的代码使他们可以预先进行调试和测试,另外在

主机和目标机上同时配置那些代码。使用 Rhapsody,他们可以掌握近 15年的发展状况,将它应用于产品中并且在 2年内配置在一个新的平台上。

MCE对使用 Rhapsody继续进行开发项目坚定不移。“当我们选择 Rhapsody时,就是选

择了未来软件开发的新方式。”Arthurs说。

第七章 Rhapsody的增值服务

_ __________________________________________________________ 客户服务 专业服务 教育服务

I-Logix 公司一直致力于向全球客户提供最高质量的技术支持,并设立了专门的客户服务中心全

心全意为用户提供准确、及时、高效的服务,不

仅通过回答技术问题,发送资料,以及提供建议

第 36 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

帮助客户,而且为客户工作的各个阶段提供广泛的培训和咨询。

1.客户服务

技术支持

维护合同保证您可以通过电话、传真或者 email的方式得到技术支持工程师的帮助,他们全面了解 I-Logix公司的产品并且能够随时回答您的问题,诊断故障所在,确定工作环境,并且从客户工作角度提出改进建议。 下载中心 这里您有权下载软件补丁和发行版软件、下载技术文档和白皮书,同时可以查询我们的

常见问题解答,登陆用户电子公告板和数据库。

2.专业服务

项目启动 Rhapsody 项目启动服务为客户的软件工程师小组提供具体应用咨询,有助于他们启动

自己的项目。项目启动服务为期 4天,在客户处指导执行。通过这种 4日集中指导,使客户能够运用 UML和 Rhapsody软件把我们的软件产品模型转换为客户的“上等模型”。由于各项目小组和工程的需求不同,在项目启动之前对产品的准确特性应进行讨论和商榷。项目启

动服务结束后,客户将能够运用 Rhapsody软件的核心功能,他们自己的工程将取得可观的进展。 咨询和指导

I-Logix 咨询专家可以向项目组提供网上的临时开发资源。咨询专家提供有助于加速新项目组开发进度的具有实用价值的专家意见,帮助分析培训所需,提供成功所必要信息和专

业技术。然后这些专家将参与您的项目组,帮助您使用 C++和 UML进行实时软件地分析设计、详细说明的撰写、项目的进度安排、代码的实现和项目的测试。我们咨询队伍从业人员

都具有开发和部署任务关键系统和安全关键系统超过 12年的经验,他们能够在软件选择,项目组管理,和技术采纳方面提供专家级的建议。

3.教育服务

Rhapsody的实时 UML 这个四天的课程讲授面向对象软件开发的概念和技术,介绍统一建模语言(UML)和

ROPES过程,ROPES过程提供了一个讨论运用 UML及其概念元素的具体环境,学员通过使用 I-Logix公司的 Rhapsody可视化开发工具将实现在培训中所学的概念。

Rhapsody工具基本培训 这个 3 天的课程讲授面向对象软件开发的概念和技术,学习的过程中您可以选择使用

Rhapsody in C,C++或者 Java。通过手把手的训练,学员能够实现在培训中介绍的概念。

Rhapsody工具专家培训 这个 3天的高级培训课程讲授面向对象开发的概念和技术,学习的过程中您可以选择使

用 Rhapsody in C,C++或者 Java。通过手把手的训练,学员能够实现在培训中介绍的概念。

第 37 页

http://www.hwacreate.com.cn 电话:(010)82823303 传真:(010)82803295

第八章 论文摘要

1、《一种基于 UML的嵌入式实时应用软件开发环境》

一种基于 UML的嵌入式实时应用软件开发环境

尚利宏 刘建峰 熊运鸿* 金惠华

摘 要 嵌入式软件的应用与开发是当今计算机软件发展的一个热点。本文首先对传统嵌入

式软件的开发方法和环境进行了阐述,分析指出了他们的优缺点。接着介绍了迭代式软件开

发方法以及通用建模语言 UML,在此基础上提出了基于 UML的嵌入式软件开发环境,并对它

的组成与结构进行了分析。最后简单介绍了 I-Logix公司新推出的基于 UML的面向嵌入式应

用的软件开发环境——Rhapsody。

关键词 UML,嵌入式系统,实时系统,迭代增量式开发方法

2、《一种基于 UML的实时框架的分析与应用》

一种基于 UML的实时框架的分析与应用

左光 张永平 熊运鸿

摘 要 使用 UML进行基于框架的实时开发是当今软件发展的一个热点。本文首先阐述了在

嵌入式开发中应用实时框架的优点,接着介绍了 Rhapsody实时框架的体系结构,在此基础上 具体分析了这个框架中和实时相关的元素及其代码生成策略。最后简单介绍了我们应用这个框架对一个通讯协议的实现。

关键词 UML,嵌入式系统,实时系统,H.323,框架

3、《CASE工具 Rhapsody在综合接入服务器中的应用》

CASE工具 Rhapsody在综合接入服务器中的应用

秦遵明 黄峰

摘 要 文章介绍了综合接入服务器采用 UML设计的方法和途径,以及怎样使用 Rhapsody 工

具进行软件构架的设计和实现。实践证明,在大型实时嵌入式系统的设计开发中,使用这种

方法可以有效的加快项目的开发进度,保证软件开发的质量。

关键字 综合接入服务器 UML Rhapsody 嵌入式

Recommended