Rhapsody

| | 评论(1)

最近在用Rhapsody, 这个软件比Rational Rose强了不是一点点啊。不过最开始有点小挫折,自己摸索了一会总算搞定,我是用Rhapsody 7.5.1加上MS Visual Studo 9.0做编译器,这个9.0是MS官网上下的Visual Studio C++ Express版。极度讨厌微软的童稚也可以用cygwin. 编译会出现一些问题

1. Missing msmake.bat

自己写了一个,如下,注意把其中vcvars32.bat换成自己机器上的实际地址

D:\Program Files\IBM\Rational\Rhapsody\7.5.1\Share\etc\msmake.bat

@echo off
if "%2"=="" set target=all
if "%2"=="build" set target=all
if "%2"=="rebuild" set target=clean all
if "%2"=="clean" set target=clean
call "D:\Program Files\Microsoft Visual Studio 9.0\VC\bin\Vcvars32.bat" x86.
echo ``nmake.exe
nmake /nologo /S /F %1 %target% %3 %4 %5 %6

还遇到一小问题就是不认endl,必须std::endl,有点小烦恼,即使按说明在CPP_CG::Class::ImplementationProlog 里加了using namespace std也不管用,只好先全局用着。

2.链接错误,需要Rebuild一些库

cd D:\Program Files\IBM\Rational\Rhapsody\7.5.1\Share\LangCpp

..\etc\msmake.bat msbuild.mak

3. MBR(make build run)就可以了,会自动生成C++代码并编译。它支持Windows,Vxworks,Wondows CE,OSE,Nuccleus,Linux,ThreadX, QNX, pSOS.等多种平台。另外使用interrupt driven framework (IDF), 可以use Rhapsody in C++ without a OS. 这个framework提供了MOSMutex, OMOSTimer, OMOSThread, OMOSMessageQueue, OMOSSemaphore, OMOSEventFlag,OMContainer等class, 然后可以用abstract factory模式映射到各个平台的实现类。

这是我按培训教材做的一个例子,洗碗机

状态机图如下,用了三个并发的状态机

 

前面板图,熟悉LabVIEW的同学一定很有感触,这一前一后和LabVIEW的前后面板多么类似!不用写代码,直接画图就可以编译出可执行代码

 

总的来说,功能超出我的想象,比较fancy的一些有:

- automatically generate sequence diagram from state chart

- simulation mode: inject event

- simulated time model

-LabVIEW like panel view

也有部分功能并不太完善,例如自动生成test script的功能还很不好用,自动生成测试用的web page的功能也很原型。总的来说非常惊人,已经实现了UML图到代码的双向互通。Rhapsody最早是以I-Logix的产品,2006年Telelogic以0.8亿美元收购I-Logix,到2008年IBM又以8.45亿收购了Telelogic. Rhapsody工具包里有一个Gateway是做需求管理的,可以和Telelogic的DOORS互通,那么IBM原有的RequisitePro就被边缘化了看来。。。

延伸阅读:

1. Bruce Powel Douglass, Real time UML
2. COEN 120 - Real Time Computing Spring 2003 该课程就是用"UML实时系统开发"作为课本讲授vxworks和Rhapsody联合设计开发
3. Bruce Powel Douglass, Doing Hard Time

分类

评论(1)

胡不花 :

西洋奇技淫巧

发表评论


关于此日记

此日记由mach发表于June 25, 2010 5:24 AM

此Blog上的上一篇日记闭门书影音(6)

此Blog上的下一篇日记闭门书影音(7)

主索引归档页可以看到最新的日记和所有日记。

Powered by Movable Type 4.23-en