天 津 理 工 大 学 华 信 软 件 学 院
天津理工大学(华信软件学院)
实验指导书
课程名称:软件工程与UML建模
适应课程:
(1969216)
天 津 理 工 大 学 华 信 软 件 学 院 2
上机实验(三) 创建类和类图
一、实验目的:
在Rose 环境下创建类和类图, 完成应用案例的类图设计。 二、实验内容: (一)创建类
1)根据“需求陈述”提炼对象和类 2)分析对象,并将对象抽象成类 (二) 创建类图
建立类之间的关系(关联关系、泛化关系、聚集或组合关系、依赖关系等)创建类图。
(三) 综合应用练习。
三、操作步骤: (一) 创建类
1、启动Rose 2003进入后,在左面结构框内右击Logical View; 2、选New ?选Class Diagram ,再在Class Diagram下创建类; 3、给类命名(比如Course);
4、增加属性(右击框途中的类,选New Attribute); 5、添加类操作(右击框途中的类,选New Operation); (二) 建立类之间的关系
1.首先关联关系 (使用按钮工具,如果当前工具栏中没有,右击工具栏,然后添加相关按钮) 1) 单项关联; 2) 双向关联。
2.练习聚集和组合 (先建立关联,再右击靠近“整体”方的关联线,选Aggregate选项。) 3.然后泛化关系。 4.最后练习依赖关系。
四.实例练习(不能用课件及教材上的示例,要自己来想。) 1.举实例说明类之间的关联关系。
包括:单、双向关联、一对一关联、一对多关联、多对多关联、自反关联、限定关联和关联类。
2.举实例说明类之间的聚合(组合)关系。
3.举实例说明类之间的泛化(继承)关系。包括:单继承、多继承。 4.举实例说明接口与实现,抽象类与子类等。
五.综合应用:
(一)以“学生选课系统”为例建立类图 1.“学生选课系统”涉及到的类: 1) Database类
天 津 理 工 大 学 华 信 软 件 学 院 3
属性:
dbPath: String
操作:(以下列出部分操作)
Query Course() Add Course() Delete Course() Get dbPath() Set dbPath() …… 2) Student类 属性:
studentID: Int studentName: String 操作:
get StudentID() set StudentID() get StudentName() set StudentName() 3) Registrar类 属性:
registrarName: String regID: Int 操作:
get regID() set regID()
get registrarName() set registrarName() 4) Course类 属性:
courseID: Int courseName: String classroom: String teacher: string 操作:
createCourse() destroyCourse() getName() setName() getCourseID() setCourseID() getTeacher() setTeacher() ……
5) Control类 属性: (无) 操作:
verifyCourse() canAdd() queryCourse()
confirmDelete() canSelect() queryAssociation() 6)Form类
属性:(接口无属性) 操作:
getCourseInfo() showSuccessInfo() showConfirmPage() displayCourseList() querySelectCourse()
2. 创建上述类之间的关系;
① Student和Form之间-----单向关联(一对多) ② Registrar和Form之间-----单向关联(一对多) ③ Form和Course之间-----单向关联(一对多)
天 津 理 工 大 学 华 信 软 件 学 院 4
④ Control和Course之间-----单向关联(一对多) ⑤ Control和Form之间-----双向关联(一对多)
⑥ Control和Database之间-----单向关联(一对一)
3.完成类图(对象模型)的设计(以下是简化的类图参考图,详细的类图由同学们自己来完成。)
图3—1 学生选课系统简化类图
4. 生成代码。
可以针对某一个类,比如Course类,生成Java源代码, 操作如下: ① 设置参数: Tools ? Options ? Notation标签 ② 在Default 框中选Java;
③ 检查类中所有操作,确认它们都具有返回值类型;
④ 选种类Course,然后选:Tools ? Java/J2EE ? General code
⑤ 代码存放的路径(CLASSPATH entries)可以设为d:\\student_name\\code; 生成的代码如下:
//Source file: d:\\\\code\\\\Course.java public class Course {
private String courseName; private Int courseID;
private String classRoom; public Database theDatabase;
天 津 理 工 大 学 华 信 软 件 学 院 5
/** * @roseuid 44C6FA3000E6 */
public Course() { } /**
*@roseuid 4429D321008C */
public void getCourseID() { } /**
* @roseuid 4429D34700EA */
public void getCourseName() { } /**
* @roseuid 44C6F9AC0096 */
public void createCourse() { } /**
* @roseuid 44C6F9C403BC */
public void destroyCourse() { } }
注意:此例中已经对某些空格进行了压缩。其它类对应的Java代码,请学生自己完成。
(二)创建“图书管理系统”的类图(对象模型)ss 1.系统涉及到的类 ① Title类
属性:name: String ISBN: String Number of item: Int 操作:Add() Delete() Update() ② Borrower Information类
属性: name: String address: String tel: String 操作: Find() Query() delete() ③ Item类
属性: ID: Int
操作: Add() Delete() FindOnTitle() ④ Loan类
属性: time: Date
操作: Create() Destroy() ⑤ Reservation 类 属性: time: Date
操作: Create() Destroy() Find()
UML 新编实验指导书(实验三 类图)



