1. File|New,新建名为Dishwasher的项目。
1. 展开Object Model Diagrams包,双击Model1。在Model1对象模型图上放置一个类,名为Dishwasher。
2. 为Dishwasher类增加以下属性:
rinseTime,Visibility:Private,Type:int,Initial Value:0
washTime,Visibility:Private,Type:int,Initial Value:0
dryTime,Visibility:Private,Type:int,Initial Value:0
cycles,Visibility:Private,Type:int,Initial Value:0
3. 为Dishwasher类增加以下操作:isDried、isInNeedOfService、isRinsed、isWashed和setup,返回类型如下图。
4. 为各个操作添加实现,如下:
1. 在浏览器中展开Packages,右击Default包,选择Add New|Type。在属性框中的General页签,修改Name为MAX_CYCLES,并确认Kind选中Language。在Declaration页签输入:
const int %s = 3;
2. 单击OK关闭属性框,可以看到Default包下面多了一个Type目录,下面有MAX_CYCLES类型。
1. 展开浏览器的Components包,把DefaultComponent改为Test,把下面的DefaultConfig改成Debug。
2. 设置Debug配置,将Instrumentation Mode改为Animation。Environment设为合适的环境,选择创建Dishwasher的初始实例。
3. 选择Code|Generate/Make/Run看看是否成功构建。
★如果提示找不到编译环境,可修改安装文件夹下Share\etc子文件夹中的msvcmake.bat文件,例如:C:\ProgramData\IBM\Rational\Rhapsody\8.1.4\Share\etc\msvcmake.bat。修改set VS_PATH=后面的信息,让它指向正确的路径。
1. 为Dishwasher类添加一个状态图。拖动鼠标,尽量扩大状态图绘图区的面积。
2. 在状态图上添加状态active,把active状态的面积放到尽可能大。
3. 单击工具箱Diagram Tools组下的与线图标,单击active状态内的左侧某处,再单击active状态内的右侧某处,可以看到分区线出现。
4. 再添加一条与线,得到下图:
5. 右击其中一个分区,选择Display Option。在弹出对话框的Show Name组选择Name单选钮。单击OK。针对另两个分区做同样的操作。
6. 将三个并发状态分别命名为running、service和mode。
7. 单击工具箱顶上的戳记模式,单击状态
,为状态图添加以下状态。
8. 添加历史连接器以及名称为done的图形连接器
。
9. 为每个状态机添加缺省迁移。
10. 继续添加迁移(Transition)和动作(Action),如下图。
11. 双击normal状态,在Action on entry栏输入cycles=0;,单击OK。这是为normal状态添加入口动作。单击normal状态右上角的图标,让入口动作显示出来。
1. 选择Code|Generate/Make/Run。单击动画工具栏上的Go Idle图标,在浏览器中可以看到生成了Dishwasher的实例。双击该实例,可以看到实例的属性值和链接对象。
2. 右击Dishwasher[0],选择Open Instance Statechart,打开实例状态图。可以看到三个分区中都有活动状态。
3. 右击动画状态图绘图区,选择Generate Event,确认当前选中事件为evStart,单击Generate,单击Close。
4. 单击动画工具栏上的Go图标,观看动画。
5. 重复产生evStart事件4次,可以看到service分区活动状态变为faulty。双击Dishwasher[0],查看对象属性值。
6. 生成evService事件,可以看到sevice区的活动状态变回normal。
http://www.umlchina.com/training/course171125.htm
11月25-26日(周六日)成都软件需求设计UML全程实作公开课
http://www.umlchina.com/training/courseadzoom.htm
11月14日(周二)19:30-22:30 Rational Rhapsody建模