类图
添加设计包和类图
1. 在浏览器中右击Packages目录,选择Add New Package。重命名包名为Design。
2. 右击Design包,选择Add New|Diagrams|Class Diagram。在New Diagram对话框中输入Entity Class。单击OK。
3. 在Design包下,再创建两张名为Boundary Class和Control Class的类图。
添加边界类和实体类
1. 双击Boundary Class类图,出现类图绘图区。
2. 单击工具箱Diagram Tools组下的类按钮,单击绘图区左侧。将缺省的类名Class_n改为CashierUI。(也可以双击该类,在弹出对话框的Name框修改)
3. 右击CashierUI类,选择Format,在Font页签调整字体为合适大小,单击确定。调整类框到合适大小,使得类名称字符全部显示。
4. 右击CashierUI类,选择Make Default,在Make Default对话框的Item组选中New Element Size复选框,在Level组选择Project单选钮。单击OK。
5. 双击CashierUI类,在Class属性框中,单击Stereotype下拉框,选择《New》。在Stereotype对话框中,把Name框的文本改为Boundary。单击OK关闭Stereotype对话框。单击OK关闭Class属性框。
6. 在CashierUI类的右侧,添加SupermarketSystemInterface类。
7. 双击SupermarketSystemInterface类,在Class属性框中单击Stereotype下拉框,选择Boundary in Design。单击OK关闭Class属性框。
8. 双击Entity Class类图,出现类图绘图区。
9. 添加以下名称的类:Sale、Cashier、Payment、SalesLineItem、ProductDescription,布局如下。
添加属性
1. 双击Sale类,在Class属性框的Attributes页签单击<New>,命名新增加属性为SN,Visibility列表选择Private,Type列表中选择char *。
2. 继续为Sale类增加以下属性:
名称:saleDateTime,类型:long,可见性:Private
名称:total,类型:float,可见性:Private
单击OK关闭Class属性框。
4. 右击Sale类,选择Display Options,在Display Options对话框的Compartments页签的Compartment下拉列表选择Attribute,在Show组中选择All单选钮。在Compartment下拉列表选择Operation,在Show组中选择All单选钮。单击确定关闭对话框。
5. 拖动Sale类的右下角,调整类的大小使得所有属性都显示出来。
6. 给Cashier类添加如下属性:
名称:name,类型:char *,可见性:Private
名称:workNumber,类型:char *,可见性:Private
设置显示选项,使得该类的属性和操作全部显示。
7. 给Payment类添加如下属性:
名称:amount,类型:float,可见性:Private
名称:amountPay,类型:float,可见性:Private
名称:amountChange,类型:float,可见性:Private
设置显示选项,使得该类的属性和操作全部显示。
8. 给SalesLineItem类添加如下属性:
名称:quantity,类型:int,可见性:Private
名称:itemTotal,类型:float,可见性:Private
设置显示选项,使得该类的属性和操作全部显示。
9. 给ProductDescription类添加如下属性:
名称:SN,类型:char *,可见性:Private
名称:unitPrice,类型:float,可见性:Private
设置显示选项,使得该类的属性和操作全部显示。
添加关联
1. 单击工具箱Diagram Tools组下的关联图标,单击Sale类,再单击SalesLineItem类。可以看到两个类之间建立了关联关系。
2. 右击Sale和SalesLineItem之间的关联线,选择Display Options,在Display Options对话框中,取消选择Name。单击OK,可以看到标签文字被删除。右击关联线,选择Make Default,在Make Default对话框的Level组选择Project单选钮。单击OK。
3. 双击Sale和SalesLineItem之间的关联线,出现Association属性框。在End1(itsSalesLineItem)页签的Multipilicity下拉列表选择*,Aggregation Kind组选择Composition单选钮。在End2(itsSale)页签的Multipilicity下拉列表选择1。单击OK关闭Association属性框。
3. 单击工具箱Diagram Tools组下的关联图标,单击Sale类,再单击Cashier。
4. 双击Sale和Cashier之间的关联线,出现Association属性框。在End2页签(itsSale)的Multipilicity下拉列表选择*。单击OK关闭Association属性框。
5. 继续建立Sale和Payment之间、SalesLineItem和ProductDescription之间的关联,多重性如下所示。
添加泛化
1. 鼠标圈住Entity Calss类图上的所有类,向下移动为新增类腾出空间。
2. 添加两个类Manager和Employee,位置如下。
3. 展开浏览器的Packages-->Design-->Classes-->Cashier-->Attributes,按住Ctrl键选中Cashier的两个属性,拖动到Employee类。
4. 设置显示选项,使得Employee类的属性和操作全部显示。
5. 单击工具箱Diagram Tools组下的泛化图标,单击Cashier类,再单击Employee类。单击泛化图标,单击Manager类,再单击Employee类。
6. 查看Process Sale用例的规约,检查是否有类图中未包含的信息。
7. 为ProductDescription类添加属性,名称:description,类型:char*,可见性:Private。