2. Rhapsody工作环境与项目结构

Rhapsody 是 IBM 面向基于模型的系统工程(MBSE)与嵌入式软件开发的建模工具,其工作环境围绕“模型仓库 + 图形编辑器 + 代码/仿真引擎”三部分组织。理解它的界面布局与项目结构,是后续所有建模活动的前提。本节从安装后的界面构成讲起,逐步展开项目、包、模型的层级组织方式,视图与透视图的切换逻辑,以及模型存储与团队协作的基础机制。

安装与界面布局

Rhapsody 通常以 Eclipse 插件形式安装(Rhapsody Developer for Eclipse),也可作为独立应用运行。安装完成后首次启动,会要求指定工作空间(Workspace)目录,该目录用于存放 Eclipse 层面的工程元数据,而真正的模型文件(.rpy)则存放在项目目录中,两者不要混淆。

主界面由若干可停靠的视图区域组成,典型布局如下:

  • 浏览器(Browser):位于左侧,以树形结构展示整个模型的包、类、图、状态机等元素,是模型导航的核心。
  • 图形编辑区(Diagram Canvas):中央区域,用于绘制用例图、类图、状态图、序列图、活动图等。
  • 属性面板(Features / Properties):右侧或下方,显示当前选中元素的属性、操作、端口、参数等。
  • 输出与日志视图(Output / Log):底部,显示代码生成、编译、仿真、检查(Check Model)的结果信息。
  • 工具栏与菜单:顶部,包含新建图、代码生成、仿真启动、模型检查等常用命令。

这些视图并非固定不变,用户可以通过 Window → Show View 打开或关闭,也可以拖动标签页重新排布。建议初学者保留默认布局,待熟悉后再按个人习惯调整。

项目、包与模型的层级组织

Rhapsody 的模型组织遵循“项目(Project)→ 包(Package)→ 模型元素(Model Element)”的层级。一个项目对应一个 .rpy 模型文件,项目内部可以创建多个包,包内再放置类、接口、状态机、图等元素。包的作用类似于文件系统中的文件夹,用于逻辑分组和命名空间隔离。

例如,一个典型的嵌入式控制系统项目可以这样组织:

Project: MotorControl.rpy
├── Package: Requirements        (需求相关元素)
├── Package: SystemArchitecture  (系统架构:子系统、接口)
├── Package: SoftwareComponents  (软件组件:类、状态机)
├── Package: HardwareInterface   (硬件接口:端口、信号)
└── Package: TestAndVerification (测试用例、仿真配置)

包可以嵌套,形成多级命名空间。在浏览器中,包节点展开后显示其内部元素;双击某个图节点即可在编辑区打开对应图形。需要注意的是,Rhapsody 中的“模型”是逻辑概念,一个项目就是一个模型,包只是模型内部的划分,不要与 Eclipse 的工程(Project)混淆。

视图与透视图

Rhapsody 借用了 Eclipse 的“透视图(Perspective)”概念。透视图是一组视图的预定义组合,针对不同任务场景切换。常见的透视图包括:

  • Modeling(建模):默认透视图,突出浏览器、图形编辑区和属性面板,适合日常建模。
  • Debug(调试):增加断点、变量监视、调用栈等视图,用于仿真调试。
  • Code(代码):突出代码编辑器与代码生成相关视图,便于查看生成的 C++/C/Java 代码。

切换透视图通过 Window → Perspective → Open Perspective 完成。透视图切换不会改变模型内容,只改变界面视图的排列。理解这一点很重要:模型数据始终保存在 .rpy 文件中,透视图只是观察和操作模型的不同“窗口”。

模型存储与团队协作基础

Rhapsody 模型以 .rpy 文件为核心,该文件是文本格式(XML 风格),记录了所有模型元素及其关系。此外,项目目录中还会生成 .rpy 相关的辅助文件,如 .rpyx(配置)、.dpx(依赖)等。模型文件可以纳入版本控制系统(如 Git、SVN、ClearCase)进行管理。

团队协作时,建议遵循以下基础实践:

  • 将 .rpy 文件及必要的配置文件纳入版本控制,忽略编译输出目录(如 Debug、Release)。
  • 避免多人同时编辑同一个 .rpy 文件;若必须并行,应通过包级拆分或使用 Rhapsody 的模型分割(Model Split)功能降低冲突。
  • 提交前执行 Check Model,确保模型一致性,减少合并时的语义冲突。
  • 使用 Rhapsody 的“Compare/Merge”功能对比不同版本的模型差异。
Rhapsody 的 .rpy 文件是文本格式,但直接手工编辑容易破坏模型结构,建议始终通过工具界面操作,版本控制只用于存储和差异查看。

本节知识图解

下图将 Rhapsody 的工作环境、项目层级、透视图切换与存储协作关系整合在一起,帮助建立整体认知。

Rhapsody 工作环境与项目结构总览 界面布局(Eclipse 透视图) 浏览器 模型树导航 图形编辑区 绘制各类图 属性面板 元素属性/操作 输出/日志 生成/仿真结果 工具栏:新建图 / 代码生成 / 仿真 / 检查 项目 / 包 / 模型层级 Project: MotorControl.rpy Requirements SystemArch SoftwareComp HardwareIF TestAndVerif 嵌套包… 包可嵌套,形成多级命名空间 透视图(Perspective) Modeling 建模透视图 浏览器 + 图形编辑 + 属性 Debug 调试透视图 断点 + 变量 + 调用栈 Code 代码透视图 代码编辑器 + 生成视图 切换透视图不改变模型数据 模型存储与团队协作基础 模型文件 MotorControl.rpy (XML 文本格式) 辅助文件 .rpyx 配置 / .dpx 依赖 随模型一同管理 版本控制 Git / SVN / ClearCase 忽略 Debug/Release 输出 协作要点 避免同时编辑同一 .rpy 提交前 Check Model 工作空间(Workspace)存放 Eclipse 元数据;项目目录存放 .rpy 模型文件,两者不要混淆。 模型数据始终保存在 .rpy 中,透视图只改变视图排列,不改变模型内容。 团队协作核心:版本控制 + 包级拆分 + 提交前模型检查,降低合并冲突。

通过本节,你应当能够:识别 Rhapsody 主界面的五个核心区域;理解项目、包、模型元素的层级关系;区分透视图切换与模型数据变更;并掌握将模型纳入版本控制的基本做法。这些是后续建模、代码生成与仿真调试的操作基础。