可视化建模与UML实验15指导教案要点Word格式.docx
《可视化建模与UML实验15指导教案要点Word格式.docx》由会员分享,可在线阅读,更多相关《可视化建模与UML实验15指导教案要点Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
本项内容实验者根据情况选择并在实验课外完成。
二、练习使用建模工具建立各种UML图形,并对图形进行相应编辑和修改。
认识各种UML关系及可见性符号,并用工具表示出来。
【分析与讨论】
1.总结UML在软件工程中的作用以及使用UML建模的必要性。
2.比较不同建模工具。
【实验导读】
关于RationalRose2003的安装。
RationalRose的安装比较麻烦,通过安装RationalRose2003,并在安装过程中,发现一些问题,解决和理解它。
RationalRose的建模环境:
Rose是个菜单驱动应用程序,用工具栏帮助使用常用特性。
Rose支持九种不同类型的UML图:
UserCase图,CLASS图,Activity图,Sequence图,Collaboration图,Class图,Statechart图.Component图和Deployment图。
Rose界面的五大部分是浏览器.文档窗口.工具栏.框图窗口和日志,如图1-1所示。
浏览器:
用于在模型中迅速漫游;
文档窗口:
用于查看或更新模型元素的文档;
工具栏:
用于迅速访问常用命令;
框图窗口:
用于显示和编辑一个或多个UML框图;
日志:
用于查看错误消息和报告各个命令的结果。
若要了解更详细的知识,请看教材。
Rose模型的四个视图
Rose模型的四个视图是:
UseCase视图.Logical视图.Component视图和Deployment视图。
各个视图的具体功能请参见教材。
图1-1RationalRose界面
实验二需求定义与陈述
1.了解软件工程的开发过程
2.掌握需求和需求分析的概念
3.掌握需求分析的过程和常用方法
4.掌握需求分析的要点和误区
5.学习如何做需求陈述
探索型实验
PentiumII以上微机,Windows2000以上操作系统,MicrosoftVisio,Microsoftoffice2003以上,网络。
1.软件工程的开发过程分为哪几部分?
2.什么是需求?
需求包括哪几个方面?
3.什么是需求分析?
需求分析有何重要意义?
需求分析可以分为哪几个步骤?
4.进行需求分析的时候要注意哪些要点和误区?
5.在对现行系统的业务流程建模的基础上,确定目标系统的需求,并按照分层的逻辑陈述。
各小组协作讨论修改选定系统的需求陈述。
实验三用例建模
1.掌握用例与场景的概念。
2.掌握UML用例图的组成.作用以及使用场合。
3.掌握用例与用例之间的各种关系。
4.学习针对具体场景使用用例图进行分析说明的方法。
5.掌握用例描述的概念和基本结构,以及用例描述的作用。
设计型实验
PentiumII以上微机,Windows2000以上操作系统,RationalRose,MicrosoftVisio,Microsoftoffice2003以上,网络。
一.想一想
1.为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。
主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。
该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,下图是一个用例模型的局部:
图3-1物业管理信息系统用例图
小李认为该模型不符合“用例建模”的思想,存在明显的错误。
用200字以内说明错误所在,并说明应该如何修改。
2.图3-2是一个描述保险商务系统的简单用例图。
根据该用例图回答问题。
a)“签订保险单”用例可能涉及到哪几个实体类?
b)现实生活中签订保单的基本流程如下:
客户提出购买需求,保险员根据客户需求选择相应的保险服务,客户阅读保险条款,同意后打印保单样据,客户签字并支付保金,保单开始生效,保险员做相关系统纪录。
如需要根据以上信息,请列举这个用例描述中可能存在扩展事件流。
c)保单管理用例在实际开发过程中可以泛化出若干小用例,列出可能存在的子用例,并且说明这些用例和“保单管理”用例之间关系。
图3-2保险商务系统用例分析图
二.练一练
3.在一个TelephoneSystem(电话系统)中,用户可以使用电话卡或对方付款两种办法来打电话。
1)请画出表示该场景的用例图。
2)在前图的基础上,继续画出可能存在的包含用例和扩展用例。
4.为目标系统建立用例模型。
1.总结用例图的重要作用,讨论并指出哪些场合下可以使用用例图。
2.讨论用例分析技术和结构化分析之间的关系和区别。
3.在使用用例图的时候应该如何划分用例,应注意哪些问题?
4.用例图能表达的信息依然是有限的,如何对每个用例做简单描述?
【扩展导读】
用例图和用例描述共同构成用例模型,以下是有关用例描述的材料阅读,通过阅读学会为选定系统做用例描述。
用例的描述格式(参考模板)
描述项
说明
用例名称
表明用户的意图或用例的用途,如“预订图书”
标识符[可选]
惟一标识符,如“UC1701”,在文档其他地方可用标识符来引用这个用例
用例描述
概述用例的几句话
参与者
与此用例相关的参与者列表
优先级
一个有序的排列,1代表优先级最高
状态[可选]
用例的状态,通常为以下几种之一:
进行中.等待审查.通过审查或未通过审查
前置条件
访问用例前必须满足的条件列表
后置条件
用例完成以后得到满足的条件列表
基本操作流程
描述用例中各项工作都正常进行时用例的工作方式
可选操作流程
描述变更工作方式.出现异常或发生错误的情况下所遵循的路径
被泛化的用例
此用例所泛化的用例列表
被包含的用例
此用例所包含的用例列表
被扩展的用例
此用例所扩展的用例列表
修改历史记录[可选]
关于用例的修改时间.修改原因和修改人的详细信息
问题[可选]
与此用例的开发相关的问题列表
决策[可选]
关键决策的列表,将这些决策记录下来以便维护时使用
频率[可选]
参与者访问此用例的频率,如用户是每日访问一次还是每月访问一次
如:
用例“添加图书”的描述
添加图书
标识符
UC0001
图书管理员在收到新采购的图书后对之进行入库。
图书管理员
1
状态
通过审查
图书管理员登录进入系统
在库图书数目增加
1.图书管理员录入图书书目;
2.系统检查图书书目是否已存在;
3.系统为这本图书生成唯一书号(条形码);
4.系统添加新的图书书号。
系统检查图书书目不存在,系统添加新的图书书目;
无
修改历史记录
张三,定义基本操作流程,2009年3月20日
张三,定义可选操作流程,2009年3月20日
实验四类图和对象图建模
1.掌握类的定义,类的3要素,UML中类的表示方法。
2.掌握类与类之间的各种关系代表的含义及表示方法。
3.实体类,边界类,控制类,关联类的概念和表示方法。
4.了解对象图。
5.学会对一个系统建立类和对象图并进行相关的描述。
6.掌握类和包图的关系并学会用包来对类分组。
一、想一想:
1.简述类的属性和方法的可见性有哪些?
UML中如何表示?
2.分析类模型和设计类模型的区别和联系?
二、练一练:
3.已知三个类A.B和C.其中类A由类B的一个实类和类C的1个或多个实类构成.请画出能够正确表示类A,B和C之间关系的UML类图.
4.根据以下描述画出类图,并注明多重性关系:
一个学生可以选修多门课程,也可能没有任何课程;
一门课程可以被多个学生选修;
一个老师可以教多门课程或者不教课;
每门课程至少有一个老师,也可以有多个老师任教;
每门课程可以有0或1本教材,每本教材只能用于一门课程。
5.现有一系统需要对商品进行管理,包括添加,删除商品,修改商品信息三项功能,画出系统类图。
(商品信息包括商品编号,商品名称,价格,生产厂商等)
1)如果现在系统需求发生变化,需要能够对损坏商品进行打折,以及可以按照商品的颜色和外形进行查询,则系统类图应该如何修改?
2)根据下面的代码画出Invoice类的类图,要求标明各属性的类型和可见性以及类方法。
publicclassInvoice
{
publicdoubleamount;
publicDatedate=newDate();
publicstringcustomer;
publicstringspecification;
publicstringadministrator=“unspecified”;
staticprivateintnumber_of_invoices()=0;
publicinvoice();
{
number_of_invoices++;
}
publicvoidprint()
System.out.println("
Thenumberofinvoicesis”+intnumber_of_invoices);
6.下图4-1是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。
请指出模型中的错误,说明原因并改正类图。
图4-1仓库管理系统的局部类模型
1.讨论类图在建模过程中的重要作用。
2.总结在设计绘制类图的过程中应注意哪些问题。
3.在下图4-2中最上面的对象的名称是什么?
该图表示的意思是什么?
请绘制出与其相应的类图。
图4-2示例图
4.说明对象图的适用场景以及它的优缺点
1.注意:
在逻辑视图中创建类,创建的类须指定相应的类的版型,即是边界类.实体类或控制类;
类的取名一定要简洁.明了,当类的名字由多个单词构成时,可以由每个单词的首字母构成类名。
2.在分析类模型中要定义类的职责,那么,如何定义类的职责?
例:
已定义的类PersonalPlannerForm有三个职责:
//maintainprofile//prompttocreatenewprofile//submitprofileinformation
具体操作步骤: