生成组合
1、添加关联
2、设置重数为1:1
3、设置主类为aggregate
4、设置主体类为 navigable
4、设置主类为按值传递
示例:
一个进程由pcb, code, date三部分组成。
其类图表示如下:
![组合](https://i-blog.csdnimg.cn/blog_migrate/2c745457c01e7c5a617a0415bb6087a4.jpeg)
设置方法:
1、在工具栏选择 "association" (关联),从process类连接到pcb类。
2、编辑role B 属性 open specital , role B detail ,multiplic(重数) 为1,勾选 "Aggregate",不勾选"navigable"。containment of Data (传递方式)为by value。
3、编辑role A 属性 role A detail ,填写role名称为 pcb ,勾选"navigable" ,不勾选 "Aggregate",containment of Data (传递方式)为by value。
在rose中,元件类为A 而 主体类为B,这与我们的习惯思维主体在前,部分在后不同。因为rose认为,a是server,而b 是client,A为B提供服务。这大概是西方与中国文化的不同吧。也可能正因为此,rose不区分“组合”与“聚合”(甚至于UML建模精粹中也说“把它(组合)想像成建模安慰剂”)。
其生成的主体类 Process的.h代码如下,完整的代码见附件。
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4fd96b3cf02f4c7b5c8964ac8167f7af.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)