实验指导说明书
① Student和Form之间-----单向关联(一对多)
② Registrar和Form之间-----单向关联(一对多) ③ Form和Course之间-----单向关联(一对多) ④ Control和Course之间-----单向关联(一对多) ⑤ Control和Form之间-----双向关联(一对多) ⑥ Control和Database之间-----单向关联(一对一)
3.完成类图的设计(以下是参考类图)
图3—1 学生选课系统简化类图 4. 生成代码。
可以针对某一个类,比如Course类,生成Java源代码, 操作如下: ① 设置参数: Tools ? Options ? Notation标签 ② 在Default 框中选Java;
③ 检查类中所有操作,确认它们都具有返回值类型;
④ 选种类Course,然后选:Tools ? Java/J2EE ? Generate code
⑤ 代码存放的路径(CLASSPATH entries)可以设为d:\\code或编辑(Edit)一个路径名. 生成的代码如下:
//Source file: d:\\\\code\\\\Course.java
11
实验指导说明书
public class Course {
private String courseName; private Int courseID;
private String classRoom; /**
* @return Boolean */
public Boolean getCourseID() { } /**
* @return Boolean */
public Boolean getCourseName() { } /**
* @return Boolean */
public Boolean createCourse() { } /**
* @return Boolean */
public Boolean destroyCourse() { }
}
注意:此例中已经对某些空格进行了压缩。其它类对应的Java代码,请学生自己完成。 (二)以“借书”(Lend Book)为主题创建“图书管理系统”的类图 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
12
实验指导说明书
操作: Create() Destroy()
⑤ Reservation 类 属性: time: Date
操作: Create() Destroy() Find() 2. 上述类的关联
1) Title 与 Borrower Information 之间的关联
2) Title 与 Item 之间的关联(学生自己填写)
3) Item 与 Borrower Information 之间的关联(学生自己填写) 4)完成类图(对象模型)的设计 (学生自己完成)
(三) 创建“网上购物系统”中 与“Add Item to Shopping Cart”对应的类图 1.分析“Add Item to Shopping Cart”涉及到的类
1) CartInterface(或Interface)类 属性: (无) 操作: AddItem() 2) CartManager(或CartMgr)类 属性: (无) 操作: AddItem() 3)ProductMgr 类 属性: (无)
操作: GetProduct()
4) Product类 属性:
ProductID:Int ProductName:String UnitPrice:Double
操作: FindProduct() 6) CartItem类
属性: Number of Items inCart:Int 操作: Add Item to Cart()
2.建立关系,(增加版型)创建类图。(请同学自己完成) 3.创建构件图(请学生自己完成) 4.类映射到构件; 见实验(五)
13
实验指导说明书
5.生成Java代码(请学生自己完成) (四)创建类图补充实例练习 A. 根据以下每一组类绘制类图
1)学校、操场(playground)、校长(principal)、学校人员、教师、食堂(dining room)、 设施(facilities)、教室、学生、机房、计算机、课桌、椅子、书本。 2)文件系统、文件、磁盘(disc)、目录文件(directory file)、磁道(track)、扇区(sector)、ASCII文件、二进制文件。
B. 给每个类添加属性和方法(至少2个属性,2个操作)
C. 绘制一个类模型来描述“无向图”(Undirected Graph)。无向图由一组顶点(vertex)和边(edge)组成。每个边均连接顶点对。(模型只捕获图的结构,不考虑外形等方面的问题) D. 绘制一个类模型来描述“有向图”(Directed Graph)。有向图由一组顶点(vertex)和边(edge)组成。每个边均连接顶点对,但边是有方向的。(模型只捕获图的结构,不考虑外形等方面的问题)
E.以医院管理信息系统为背景根据以下类构造类图:(属性和操作从略)
医院(Hospital)、门诊部(Outpatient Department)、药房(Pharmacy)、住院部(Inpatient Department)、病人(Patient)、病房(Ward)、病床(Bed)、住院病人(Inpatient)、门诊病人(Outpatient)、药品(Drug)、用药纪录(Record on drug) F. 选择填空:
供选择的答案 ①——⑤
Circle , Arc , Point , Polygon , Line
G.给上述5个类添加属性和方法(至少2个属性,2个操作)
14
实验指导说明书
H.某音像出租店,要记录图书、唱碟和客户租借信息。现已设计了两个类Book和CD 如下:
(1)经过分析,上述两个类重复内容(属性和方法)较多,于是又打算定义一个Loan类,表示Book类和CD类的重复部分。请画出上述三个类构成的优化类图。 (2)如果再引入一个History类来记录所有租借Book和CD的历史, 请画出上述四个类构成的类图。(只画出类的框架结构) 六. 评分标准
1.能根据“学生选课系统” 、“图书管理系统”的需求陈述正确找出类、正确识别类的主要属性和操作、并建立类与类之间的关系,并在上述基础上完成类图设计者,可得到80分; 2.能正确完成创建类图补充实例练习者,能得到90以上分数。
上机实验(四) 数据建模
一. 实验目的:UML数据库设计,对象模型和数据模型之间相互转换。 二. 实验内容:
1.应用UML元素(包、构件、类、操作)及其关系(关联、聚集、组合关系)来模拟数据库的模式、库结构、表结构、视图、域、索引、主键、 外键、约束、触发器、存储过程,以及表与表之间的关系。
2.以包为单位进行对象模型和数据模型之间的转换。 3.在《Schema》下编写存储过程;并创建表的触发器。 4.正向工程生成SQL源代码
三. 实验过程: (一)数据建模
首先要设置参数:Tools ? Options ? Notation标签 在Default框中选 Analysis 1.创建表
(1)创建数据库对象
15