实验指导书
课程名称:面向对象设计UML建模
适应课程:
(1460460/1460466/14606617)
编写者:李 光
上机实验(五) 创建包图和构件图
一. 实验目的:创建UML包图和构件图,把类图通过构件生成高级语言源代码。
二. 实验内容:
1.创建包图练习
2.按教科书P105—P108的示例,练习正向工程;
3.使用D:盘中的Clock.Java源代码进行逆向工程,检查所生成的构件和类。
4.按照“学生选课系统”所建立的类图进行正向工程:
(1)方法1:一对一映射(即一个类映射成一个构件,然后分别生成源代码);
(2)方法2:多对一映射(即多个类映射成一个构件,然后生成源代码);
5.按照“图书管理系统”所建立的类图进行正向工程;
6.按照同学自己所创建的类图进行正向工程(包括Java代码和C++代码)。
三.创建包图步骤:
1.创建一个新包
1)右击Logical View
2)选New ->Package
3)给包命名(比如:“企业综合信息管理系统”),并将其拖入右方绘图窗口
另一种方法是直接使用工具栏中的包按钮来作图。
2.在包中添加元素(比如:类、子包等)
1)右击“企业综合信息管理系统”包
2)选New ->Class
3) 为类命名(比如:Class A 。同理可增加Class B等)
4)右击“企业综合信息管理系统”包
2)选New ->Package
3)取名 “财务管理系统”
4)将其拖入右方窗口观看
3.增加(显示)包中信息(比如:在“财务管理系统”中增加两个类Class A、Class B)
1)右击作图窗口中的“企业综合信息管理系统”包
2)选Select Compartment Items…
3) 在Edit Compartment窗口选择要添加的类即可
4.增加包之间的依赖关系
5.根据以下陈述,创建 “企业综合信息管理系统”包模型
1)“企业综合信息管理系统”包括:“生产调度管理系统”、“市场管理系统”、“财务管理系统”、“进销存管理系统”、“人事、劳资管理系统”和“经理查询系统”。
2)“进销存管理子系统”由下属“销售管理子系统”、“采购管理子系统”和“库存管理子系统”组成。
四.创建构件图练习(请按上述实验内容来进行,但要注意以下几点:)
1.构件是UML物理元素。它可以是源代码,也可以是某种目标码;
2.同一应用中构件之间的依赖关系可以和类与类之间的关系不同。构件之间的依赖关系表明它们在编译、链接和执行之间的先后顺序。
3. 如果目标码为Java源代码时,可以由类图直接生成源代码,也可以将类映射到构件,再由构件生成java代码。 当多个类映射到一个构件时, 只有一个类是公有的(打开类的Specification, 选择⊙Public),即和构件名同名的类是公有的。这样才能顺利的生成整体Java代码。
4.目标码为C++源代码操作步骤:
1)首先,在Tools菜单下设置参数:
Tools Options Notation 在Default 下拉框中选中VC++
2)创建类
比如,Contract类,Sales Contract类,和 Product类, 并建立它们之间的关系:
3)Tools Visual C++ Component Assignment Tool…显示:
4)在VC++下创建一个工程名为“Sales Management”然后,分别将三各类拖入其中:
步骤如下:
首先,将右边窗口中的Contract 类拖到左窗口的VC++处,出现:
回答“是”,出现:
按Add按钮,出现:
在Project name栏中输入Sales Management 并确定路径。按OK,则出现:
默认选项表明创建的工程(Sales Management)作为动态链接库(DLL)形式出现。按Finish按钮 ,连续按OK按钮,回到“Component Assignment Tool”窗口。
单击Sales Management图标可知新创建的工程中,只包含Contract类。
类似地,可把Sales Contract类及Product类拖到左边窗口的Sales Management 工程中。
5) 这时,Rose 的Component View中自动产生构件,名为:
”Sales Management
6) 通过Model Assistant 设置类的特性
(1) 选中Contract类,通过Tools-VC++Model Assistant
得到:
(2) 首先在左窗口的类操作(Class Operations)下,选中前三项;
(3) 再考虑Attributes的sign Date下的set _signDate (Date&)操作。我们改写函数体如图所示:
(4) 同理对Sales Contract类和Product类进行设置。
7) 生成VC++代码:
选中Contract类
Tools Visual V C++ Update Code 即可看到生成的VC++代码。见下图:(有关Contract类的部分VC++代码)
五.评分标准
1.根据“学生选课系统”、“图书管理系统”和同学自己所建立的类图,正确通过构件生成框架代码(Java源程序)者,可以得到60-70分成绩.
2. 能对上述案例进行正向工程和逆向工程,并能对Clock.Java 源代码进行逆向工程者,可得到80分以上的分数.
3.能顺利完成由类图生成 C++代码者,可得到90分以上的分数.