UML实验指导书.docx
《UML实验指导书.docx》由会员分享,可在线阅读,更多相关《UML实验指导书.docx(13页珍藏版)》请在冰豆网上搜索。
![UML实验指导书.docx](https://file1.bdocx.com/fileroot1/2023-5/20/875cb4b2-602e-458c-b09f-e4c7585acca2/875cb4b2-602e-458c-b09f-e4c7585acca21.gif)
UML实验指导书
UML实验指导书
实验指导说明书 《面向对象设计UML建模》 ---08本新版 上机实验创建用例及用例图 一.实验目的:
在Rose2003环境下设计应用系统的UML用例图。
二.实验内容:
根据用户“需求陈述”创建UseCase框图。
包括:
案例1.绘制“自动饮料机售货”的UseCase框图案例2.用例之间的三种关系练习 案例3.设计“网上学生选课系统”的UseCase框图案例4.设计“图书管理系统”的UseCase框图三.操作步骤:
案例1. ①建立用例图的步骤:
。
右击UseCaseView。
选New?
UseCaseDiagram。
起名,比如:
BuyDrink 。
双击BuyDrink图标,这时工具栏变成适合UseCase作图的形式。
。
设计UseCaseDiagram.②“自动饮料机售货”需求陈述:
“顾客通过自动饮料售货机,可以方便地买到一听饮料。
而自动饮料售货机除了卖给顾客饮 料外,还具备以下功能:
·供应商可以向自动饮料售货机添加饮料;·收银员可以从自动饮料售货机取钱.”经过分析可知自动饮料售货机系统涉及到的名词及概念有:
Customer Supplier Cashier Buydrink Setdrink TakemoneyOpenmachine Closemachine 显然,前三个名词为参与者.后面的那些功能为UseCase. ③绘制自动饮料售货机售货的用例图.(提示:
首先找出参与者和用例之间的关系,建立初步用例图,然后细化用例建立用例之间的《include》或《extend》关系。
)案例2.用例之间的三种关系练习 ·分析用例之间的“泛化关系”、“include”和“extend”关系。
·在Rose下创建包括以上三种关系的UseCase图。
案例3. ⑴“学生选课系统”需求陈述:
管理员通过系统界面进入,建立本学期要开的课程,并把这些信息保存到Database中。
管理员可以对设置的课程进行增加、删除或改动。
学生通过客户浏览器并根据学号和密码进入选课界面;学生可以进行三种操作:
查询已选课程,选课及付费。
⑵经过需求分析可知:
系统用户有:
管理员 学生(Student);本系统的UseCase包括:
选课 查询(QueryCourse)付费(PayforCourse) 增加课程(AddCourse)修改课程(ModifyCourse) 删除课程(DeleteCourse)。
⑶设计UseCaseDiagram. 案例4.根据“图书管理系统案例”绘制UseCase图和顺序图 需求描述如下:
1)系统使用良好的图形用户界面; 2)在此界面下,只有图书管理员才能和系统直接交互对话; 3)借阅者可通过图书管理员进行借书,还书(Returnitem),预定和取消预定。
条件是:
借阅人必须事先注册.方可借书; 4)当预定的图书归还时,或新购进时,通知预定人,当预定的书已经借到时,预定自动取消;5)为简单起见我们常用“标题”和“书目”对图书进行划分。
标题指的是书名,书目指的是具体一册书; 6)所有图书均预先登记.不同的书按书名(Title)区分,而且同名的书可以有多本(item),它们按书号区分; 7)图书管理员可以方便的建立,删除修改标题及借阅者信息,增加和删除书目,也可以查询图书和借阅者信息。
a)试做出系统的初始UseCase图 b)于多个UseCase都具有寻找标题和寻找借阅者部分, 2 实验指导说明书 试绘制改进的UseCase图(可在原UseCase图上改进)。
*案例5.(选作)根据“网上购物系统”案例,绘制初始UseCase图。
⑴“网上购物系统”涉及到的参与者如下:
Customer(客户)WarehouseManager(库房经理)ShippingService(供货服务)PurchaseManager(采购经理) CreditSystem(信用系统)⑵“网上购物系统”涉及到的UseCase如下:
BrowseWebSite(浏览网站) AddItemtoShoppingCart(给购物推车添加物品)ViewShoppingCart(查看购物推车) PurchaseIteminShoppingCart(购买购物推车中的商品)RemoveItemfromShoppingCart(从购物推车中删除商品)BrowseItemforSale(浏览销售的商品) ProvideFeedback(提供反馈信息) StockInventory(盘点) rnItemtoStock(返回库存商品) ShipOrder(提供订单) AddNewItemforSale(增加新销售商品) RemoveItemforSale(取消某销售商品) PurchaseInventory(购买库存)⑶分别以客户,库房经理,和采购经理为中心建立UseCaseDiagram.参考答案:
。
以客户为中心建立的初始UseCaseDiagram. 图1-1网上购物系统用例图 。
以库房经理和采购经理为中心建立的初始UseCaseDiagram请学生自己画出。
3 实验指导说明书 四.评分标准 1.正确完成案例1—3者可以得到70分; 2.正确完成案例1—3,同时正确完成案例4者,可以得到85分; 3.完成1和2项任务,同时又完成案例5者,或者在建模过程中有创造性者可以给90分以上分数。
上机实验创建交互图 一.实验目的:
在Rose环境下创建UML交互图二.实验内容:
(一).根据“学生选课系统”案例,分别创建:
选课,查询(QueryCourse),增加课程(AddCourse),付费(PayforCourse),修改课程(ModifyCourse)和删除课程(DeleteCourse),所对应的主脚本的顺序图。
并分别转化为对应的协作图。
(二).根据“图书管理系统”的用例图,创建:
借书(LendItem)用例所对应的顺序图.*(三).根据“网上购物系统”的用例图,创建:
浏览网站和添加物品到购物推车(AddItemtoShoppingCart)所对应的顺序图.三.操作步骤:
(一).以“SelectCourse”为例,完成“学生选课系统”的顺序图 1.分析事件流 1)学生进入选课主界面; 2)学生点击选课按钮;3)系统显示所有课程信息;4)学生选择课程;5)系统验证课程是否可选;6)系统显示课程选择成功; 7)用例结束。
2.创建顺序图总体步骤:
1)寻找对象,上述案例涉及的对象有:
Form(或Interface),CourseControl Database(注意:
Database亦可看成参与者) 4 实验指导说明书 2)参与者;Student3)将消息加进图中。
3.在Rose下操作步骤:
1)Tools?
Options?
Diagram标签,确保有关参数选中。
(比如:
SequenceNumbering)2)打开实验所创建的“网上学生选课系统”的UseCase框图3)右击UseCaseView选New?
SequenceDiagram4)新图标命名为SelectCourse即可 5)双击新窗口,并将浏览器中的参与者(Student)拖入新窗口中。
6)在新窗口中利用CreateaObject工具按钮创建对象并正确命名.7)在顺序图中增加消息.完成顺序图设计.①SelectCourse的顺序图:
图2—1选课顺序图 4.按上述步骤,参照选课顺序图,完成:
查询(QueryCourse),增加课程(AddCourse),付费(PayforCourse),修改课程(ModifyCourse)和删除课程(DeleteCourse)所对应的主脚本的顺序图设计.注意事项:
5
实验指导说明书 1.Database可以看作对象,也可以看作参与者,视情况而定.2.顺序图中的界面对象可命名为Form,也可命名为Interface等.3.在顺序图中可以根据具体情况增设Control对象. 4.若有两个以上的参与者,应将主参与者放在顺序图最左方,次参与者放在顺序图最右方。
②QueryCourse的顺序图:
③AddCourse的顺序图:
④ModifyCourse的顺序图:
⑤DeleteCourse的顺序图:
图2—2删除课程顺序图⑥PayforCourse的顺序图:
5.按F5键并检查每个顺序图对应的协作图。
(二).根据“图书管理系统”用例图中的“Lenditem”绘制对应的顺序图.1.分析事件流 1).借书者提出结束申请; 2).管理员选择借书选项(等同于发出借书命令)3).系统查找标题(Title); 4).系统查找该标题下的有效书目; 6 实验指导说明书 5).系统核查借书者信息(BorrowerInformation);6).办理借书(即产生一条新借书记录).2.寻找相关对象 1)LendWindow(或Form) 2)Title 3)BorrowerInformation4)Loan 5)Item3.寻找参与者 直接参与者只有:
Librarian. 注意:
Student为间接参与者(见问题陈述),所以不能在顺序图中出现.4.将消息加进框图中,完成顺序图设计. ⑦LendItem(借书)的顺序图:
图2—3借书顺序图 (三).根据“网上购物系统”的用例图,创建:
浏览网站和添加物品到购 物推车(AddItemtoShoppingCart)所对应的顺序图. 1.分析事件流,以“AddItemtoShoppingCart”为例:
1)顾客提出欲将某商品,比如白袜子(WhiteSocks)添加到购物推车中;2)系统把该请求通过用户界面找到CartMgr;3)通过CartMgr找到ProductMgr;4)通过ProductMgr找到Product 5)CartMgr完成把WhiteSocks装入购物推车中.2.寻找相关对象 1)Interface 2)CartMgr 3)ProductMgr 7 实验指导说明书 4)Product 5)CartItem3.参与者仅为顾客(Customer) 4.将消息添加到框图中,完成顺序图设计. ①BrowseWebSite的顺序图:
②AddItemtoShoppingCart(添加物品到购物推车)的顺序图:
图2—4向购物推车添加商品顺序图 四.评分标准 1.仅完成“学生选课系统”的指定六个用例的顺序图者,可得60-70分; 2.完成1.指定内容,同时完成“图书管理系统”和“网上购物系统”指定内容者,可得到80分以上; 3.完成1和2指定内容,并有创造性者可得90分以上成绩。
8 实验指导说明书 上机实验创建类和类图 一.实验目的:
在Rose环境下创建类和类图,完成应用案例的类图设计。
二.实验内容:
(一)创建类 1)根据“需求陈述”提炼对象和类2)分析对象,并将对象抽象成类
(二)创建类图 1)建立类之间的关系2)创建类图。
综合应用练习三.操作步骤:
(一)创建类 1.右击LogicalView 2.选New?
选ClassDiagram,再在ClassDiagram下创建类;3.给类命名(比如Course) 4.增加属性(右击框途中的类,选NewAttribute)5.添加类操作(右击框途中的类,选NewOperation) 建立类之间的关系 1.关联关系(使用按钮工具,如果当前工具栏中没有,右击工具栏,然后添加相关按钮)1)单项关联2)双向关联 2.聚集和组合(先建立关联,再右击靠近“整体”方的关联线,选Aggregate)3.泛化关系4.依赖关系 四.实例练习 1.举实例说明类之间的关联关系。
包括:
单、双向关联、一对一关联、一对多关联、多对多关联、自反关联、限定关联和关联类。
2.举实例说明类之间的聚合关系。
3.举实例说明类之间的泛化关系。
包括:
单继承、多继承。
9 实验指导说明书 4.举实例说明接口与实现,抽象类与子类等。
五.综合应用:
以“学生选课系统”为例建立类图1.“学生选课系统”涉及到的类:
1)Database类属性:
dbPath:
String 操作:
(以下列出部分操作) QueryCourse() AddCourse() DeleteCourse()GetdbPath() SetdbPath() ?
?
2)Student类属性:
studentID:
Int studentName:
String操作:
getStudentID() setStudentID()getStudentName() setStudentName()Registrar类属性:
registrarName:
String regID:
Int操作:
getregID() setregID() getregistrarName() setregistrarName()3)Course类属性:
courseID:
Int courseName:
Stringclassroom:
String teacher:
string操作:
createCourse() getCourseID() setCourseID() getTeacher() 4)Control类属性:
(无)操作:
verifyCourse() canAdd() queryCourse() confirmDelete() canSelect() queryAssociation()5)Form类属性:
(接口无属性)操作:
getCourseInfo() showSuccessInfo() showConfirmPage()displayCourseList() 2.创建上述类之间的关系; 10
实验指导说明书 ①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?
Generatecode ⑤代码存放的路径(CLASSPATHentries)可以设为d:
\\code或编辑(Edit)一个路径名.生成的代码如下:
//Sourcefile:
d:
\\\\code\\\\ 11 实验指导说明书 publicclassCourse{ privateStringcourseName; privateIntcourseID; privateStringclassRoom; /** *@returnBoolean */ publicBooleangetCourseID() { } /** *@returnBoolean */ publicBooleangetCourseName() { } /** *@returnBoolean */ publicBooleancreateCourse() { } /** *@returnBoolean */ publicBooleandestroyCourse() { } } 注意:
此例中已经对某些空格进行了压缩。
其它类对应的Java代码,请学生自己完成。
以“借书”为主题创建“图书管理系统”的类图 1.系统涉及到的类 ①Title类 属性:
name:
String ISBN:
String Numberofitem:
Int 操作:
Add() Delete() Update() ②BorrowerInformation类 属性:
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与BorrowerInformation之间的关联 2)Title与Item之间的关联(学生自己填写) 3)Item与BorrowerInformation之间的关联(学生自己填写)4)完成类图的设计(学生自己完成) 创建“网上购物系统”中与“AddItemtoShoppingCart”对应的类图 1.分析“AddItemtoShoppingCart”涉及到的类 1)CartInterface(或Interface)类属性:
操作:
AddItem()2)CartManager(或CartMgr)类属性:
(无)操作:
AddItem()3)ProductMgr类属性:
(无) 操作:
GetProduct() 4)Product类属性:
ProductID:
Int ProductName:
String UnitPrice:
Double 操作:
FindProduct()6)CartItem类 属性:
NumberofItemsinCart:
Int操作:
AddItemtoCart() 2.建立关系,(增加版型)创建类图。
3.创建构件图4.类映射到构件;见实验 13 实验指导说明书 5.生成Java代码创建类图补充实例练习A.根据以下每一组类绘制类图 1)学校、操场、校长、学校人员、教师、食堂(diningroom)、设施、教室、学生、机房、计算机、课桌、椅子、书本。
2)文件系统、文件、磁盘(disc)、目录文件(directoryfile)、磁道(track)、扇区(sector)、ASCII文件、二进制文件。
B.给每个类添加属性和方法 C.绘制一个类模型来描述“无向图”。
无向图一组顶点和边(edge)组成。
每个边均连接顶点对。
D.绘制一个类模型来描述“有向图”。
有向图一组顶点和边(edge)组成。
每个边均连接顶点对,但边是有方向的。
E.以医院管理信息系统为背景根据以下类构造类图:
医院、门诊部、药房、住院部、病人、病房、病床(Bed)、住院病人(Inpatient)、门诊病人(Outpatient)、药品(Drug)、用药纪录F.选择填空:
供选择的答案①——⑤ Circle,Arc,Point,Polygon,Line G.给上述5个类添加属性和方法 14 实验指导说明书 H.某音像出租店,要记录图书、唱碟和客户租借信息。
现已设计了两个类Book和CD如下:
经过分析,上述两个类重复内容较多,于是又打算定义一个Loan类,表示Book类和CD类的重复部分。
请画出上述三个类构成的优化类图。
如果再引入一个History类来记录所有租借Book和CD的历史,请画出上述四个类构成的类图。
六.评分标准 1.能根据“学生选课系统”、“图书管理系统”的需求陈述正确找出类、正确识别类的主要属性和操作、并建立类与类之间的关系,并在上述基础上完成类图设计者,可得到80分;2.能正确完成创建类图补充实例练习者,能得到90以上分数。
上机实验数据建模 一.实验目的:
UML数据库设计,对象模型和数据模型之间相互转换。
二.实验内容:
1.应用UML元素及其关系来模拟数据库的模式、库结构、表结构、视图、域、索引、主键、外键、约束、触发器、存储过程,以及表与表之间的关系。
2.以包为单位进行对象模型和数据模型之间的转换。
3.在《Schema》下编写存储过程;并创建表的触发器。
4.正向工程生成SQL源代码 三.实验过程:
数据建模 首先要设置参数:
Tools?
Options?
Notation标签在Default框中选Analysis 1.创建表 创建数据库对象 15
实验指导说明书 .右击ComponentView并选DataModeler?
NewDatabase.默认名称DB_0 .右击DB_0并选OpenSpecification .选定目标数据库,比如:
Oracle(或SQLServer2000等)创建模式(《Schema》) .在LogicalView下创建名为《Schema》S_0模式 .右击LogicalView选DataModeler?
New?
Schema则自动创建《Schema》S_0.右击《Schema》S_0打开Specification,