UML统一建模语言实验报告 2Word下载.docx
《UML统一建模语言实验报告 2Word下载.docx》由会员分享,可在线阅读,更多相关《UML统一建模语言实验报告 2Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
基本用例的行为包含另一用例的行为。
基本用例描述在多个用例中都有的公共行为。
包含关系是本质上比较特殊的依赖关系,它比一般的依赖关系多了一些语义。
在包含关系中箭头的放向是从基本用例到包含用例的。
(2)扩展关系:
扩展关系的基本含义和泛化关系相似,但在扩展关系中,对于扩展用例有更多的规则限制。
基本用例必须声明扩展点,而扩展用例只能在扩展点上增加新的行为和含义。
(3)泛化关系:
代表一般与特殊的关系。
UML用例图中泛化关系的意思和面向对象程序设计中的继承的概念是类似的。
不同的是继承使用在实施阶段,泛化使用在分析、设计阶段。
在泛化关系中子用例继承了父用例的行为和含义,子用例也可以增加新的行为和含义或者覆盖父用例中的行为和含义。
5、完成书中94页例子,体会用例图建模的分析过程并模仿来画出该学生信息管理系统的用例图。
画出课后习题101页第4题。
6、为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。
主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。
该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,下是一个用例模型的局部:
小李认为该模型不符合“用例建模”的思想,存在明显的错误。
请用200字以内说明错误所在,并说明应该如何修改。
用例图是用来显示多个外部参与者以及他们之间与系统提供的用例之间的联系。
是用户从系统外部观察系统的功能。
用例是系统参与者与系统在交互过程中所需要完成的事务。
确定参与者是房产经济人,还要分析系统所涉及的问题领域和系统运行的主要任务。
根据系统的需求分析可确定:
作为一个物业信息管理系统,要实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。
参与者有房产经纪人,对于房产经纪人来说,系统维护操作主要包括:
录入,修改房源信息而登录和确认信息是包含在登入和修改中的,包含关系的图标按钮应用虚线箭头。
修改后应该是:
7、阅读下面的用例图,说明该图所表达的信息。
参与者是客户和服务人员。
主要关系是包含和扩展。
首先有客户来预订座位,如果前面与别的客户,他就等待,服务人员进行作为信息查询,把空闲的座位分给客户,然后办理结账,有两种方式可以供客户选择,要不现金结账要不就是银行卡结账,然后收款。
8、下图是一个描述保险商务系统的简单用例图。
根据该用例图回答问题。
a)“签订保险单”用例可能涉及到哪几个实体类?
答:
客户和保险员两个实体类
b)现实生活中签订保单的基本流程如下:
客户提出购买需求,保险员根据客户需求选择相应的保险服务,客户阅读保险条款,同意后打印保单样据,客户签字并支付保金,保单开始生效,保险员做相关系统纪录。
如需要根据以上信息,请列举这个用例描述中可能存在扩展事件流。
客户阅读保险条款,同意后可签字并支付保金,否则就不签订保单。
c)保单管理用例在实际开发过程中可以泛化出若干小用例,列出可能存在的子用例,并且说明这些用例和“保单管理”用例之间应该是什么关系?
单查询和保单保存可能是存在的子用例,这些用例和“保单管理”用例之间是泛化关系。
9、在一个TelephoneSystem(电话系统)中,用户可以使用电话卡或对方付款两种办法来打电话。
1)请画出表示该场景的用例图。
2)在前图的基础上,继续画出可能存在的包含用例和扩展用例。
[分析与讨论]
1、总结UML在软件工程中的作用以及使用UML建模的必要性。
UML为面向对象开发系统的产品进行说明、可视化和编制文档的一种标准语言。
UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
UML可以贯穿软件开发周期中的每一个阶段。
最适于数据建模,业务建模,对象建模等。
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
它溶入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
使用UML可以对已有的用各种方法建立的模型进行描述,并比原来的方法描述得更好。
在软件开发的生命期方面,UML对于开发的要求具有无缝性。
开发过程的不同阶段可以采用相同的一套概念和表示法,在同一个模型中它们可以混合使用。
在开发的不同阶段,不必转换概念和表示。
这种无缝性对迭代式的、增量式软件开发是至关重要的。
在应用领域方面,UML适用于各种应用领域的建模,包括大型的、复杂的、实时的、分布式的、集中式数据或计算。
2、总结用例图的重要作用,指出哪些场合下可以使用用例图。
用例图显示多个外部参与者以及他们与系统提供的用例之间的链接。
通过用例建模可以对外部的角色以及他们所需要的系统功能建模。
用例图用于系统的分析阶段。
3、讨论用例分析技术和结构化分析之间的关系和区别。
联系:
他们都可以使软件开发更容易。
区别:
结构化开发系统方法是指把整个系统开发过程分成若干阶段,每个阶段进行若干活动,每一项活动应用系统标准、规范、方法和技术,完成一个或是多个任务,形成符合给定规定的软件产品。
4、在使用用例图的时候应该如何划分用例,应注意哪些问题?
(1)确定用例参与者需要从系统中获得那些功能?
参与者要系统作些什么?
(2)参与者是否需要读取、产生、删除、修改果实存储系统中的某些信息。
(3)系统状态的改变是否通知参与者。
(4)是否存在印象系统的外部事件?
(5)系统需要什么样的输入输出信息?
指导教师批阅:
实验
(二)类图与对象图
1、掌握对象的概念,对象的表示方法,掌握类与对象的关系。
2、掌握时序图(顺序图)与协作图(通信图)这两种交互图的概念及作用。
3、掌握UML中静态图形和动态图形的区别和联系。
4、掌握UML时序图与协作图的基本图形,了解它们各自的组成元素、特定作用和适用场合。
5、重点掌握时序图的画法以及其中元素所代表的意义。
1、类的属性和方法的可见性有哪些?
UML中如何表示?
类的属性和方法的可见性有protect(符号“#”),private(符号“—”),public(符号“+”)
2、已知三个类A.B和C.其中类A由类B的一个实类和类C的1个或多个实类构成.请画出能够正确表示类A,B和C之间关系的UML类图。
3、根据以下描述画出类图,并注明多重性关系:
一个学生可以选修多门课程,也可能没有任何课程;
一门课程可以被多个学生选修;
一个老师可以教多门课程或者不教课;
每门课程至少有一个老师,也可以有多个老师任教;
每门课程可以有0或1本教材,每本教材只能用于一门课程。
4、现有一系统需要对商品进行管理,包括添加,删除商品,修改商品信息三项功能,画出系统类图。
(商品信息包括商品编号,商品名称,价格,生产厂商等)
5、上题,如果现在系统需求发生变化,需要能够对损坏商品进行打折,以及可以按照商品的颜色和外形进行查询,则系统类图应该如何修改?
6、根据下面的代码画出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);
7、下图是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。
请指出模型中的错误,说明原因并改正类图。
Orderltem与IncomeOrder的关系并不是泛化关系,而应该是包含关系。
改正的类图:
8、在下图中最上面的对象的名称是什么?
该图表示的意思是什么?
Country、Province是类,而china、fujian和sichuan分别是这两个类中的对象。
[分析与讨论]
1、讨论类图在建模过程中的重要作用。
类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,还包括类的内部结构。
类图描述的是一种静态关系,在系统的整个生命周期中都是有效的。
通过分析用例和问题域,就可以得到相关的类,然后再把逻辑上相关的类封装成包,这样可以很好的体现系统的分层结构,是得系统层次关系一目了然。
2、总结在设计绘制类图的过程中应注意哪些问题。
UML类图(ClassDiagram)是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。
UML类图是定义其他图的基础,在UML类图基础上,可以使用状态图、协作图、组件图和配置图等进一步描述系统其他方面的特性。
3、说明对象图的适用场景以及它的优缺点。
答:
对系统的设计视图建模时,可以使用一组类图完整地描述抽象的语义以及它们之间的关系。
但是使用对象图不能完整地描述系统的对象结构
实验(三)序列图与协作图
1、掌握序列图(时序图)与协作图的概念及作用。
2、掌握UML中静态图形和动态图形的区别和联系。
3、掌握UML时序图与协作图的基本图形,了解它们各自的组成元素、特定作用和适用场合。
4、重点掌握时序图的画法以及其中元素所代表的意义。
1、UML中的序列图与协作图之间各有什么区别和联系?
(1)序列图用来描述对象之间消息发送的先后次序,阐明对象之间的交互过程以及在系统执行过程中的某一具体时刻将会发生什么事件。
序列图是一种强调时间顺序的交互图,其中对象沿横轴排列,消息沿纵轴按时间顺序排列。
序列图中的对象生命线是一条垂直的虚线,他表示一个对象在一段时间内存在。
协作图也是一种交互图,它强调收发消息的对象的组织结构。
协作图和序列图是同样的,它们可以相互转换。
在多数情况下,协作图主要用来对单调的、顺序的控制流建模,但它也可以用来对包括迭代和分支在内的复杂控制流进行建模。
(2)两者都是表示交互的方式,但时序图描述时间交互的各种信息,协作图描述的是和对象结构相关的信息。
2、在顺序图和协作图中,应如何表示“循环”,“判断”等结构?
整个信息的传递过程就形成了一个完整的序列,因此通过在每个信息的前面加上一个冒号隔开的顺序号来表示其顺序。
3、什么是消息?
消息在交互中扮演什么角色?
对象之间某种形式的通信,可以激发某个操作,唤起信号或者导致目标对象的创建或撤销。
两个对象之间的单路通信。
4、交互图中有哪几种消息?
它们之间具体有何分别?
应如何表示?
绘制两个对象之间的异步消息、在两个对象之间绘制消息、绘制反身消息、显示过程调用返回的消息、绘制两个对象之间的过程调用。
消息用箭头表示,箭头的类型表示了消息的类型。
5、已知某一个用例实现的类图如下,下面四个选项中的时序图(图中省略了消息编号、名称和返回消息),画出一个能和该类图对应的时序图。
6、假设有一系统得协作图局部如图所示,print方法的功能是将传入的参数的值打印在屏幕上,fact方法是计算阶乘,如果test的初值为1,那么最终将打印出什么?
(写出计算过程)
1、讨论并总结在建模过程中运用交互图的重要作用及意义。
能准确地描述各个对象之间的关系及各种消息。
交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系。
类元是对在系统内交互关系中起特定作用的一个对象的描述,这使它区别于同类的其他对象。
交互视图显示了跨越多个对象的系统控制流程。
交互视图可用两种图来表示:
顺序图和协作图,它们各有不同的侧重点顺序图的一个用途是用来表示用例图中的行为顺序。
当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的出发事件。
协作图的一个用途是表示一个类操作的实现。
协作图可以说明类操作中用到的参数和局部变量以及操作中的永久链。
当实现一个行为时,消息编号对应了程序中嵌套调用结构和信号传递过程。
2、继续前面的网上书店实例,为该实例中涉及的系统交互设计交互图。
实验四状态图
1、掌握状态的定义和组成部分及表示方法。
2、掌握转换的定义及转换的要素。
3、了解触发事件、监护条件、动作的定义。
4、掌握阅读和绘制状态图的方法。
1、什么叫做状态?
状态由哪五个部分组成?
描述系统里静态事物的动态变化。
状态机由状态、转换、事件、活动和动作5部分组成。
状态图图标分3部分:
名称、内部转换和嵌套状态图。
2、什么是转换?
UML中转换的要素是什么?
转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成特定的动作后将发生状态转变,转向另一个目标状态的状态。
转换要素:
源状态、目标状态、触发事件、监护条件、动作。
3、触发事件是什么?
可以具体分为哪些事件?
能够引起状态装换的事件。
信号、调用和时间段。
4、什么叫做转换?
转换可以分为哪几种?
转换分为:
外部转换、内部转换、完成转换、复合转换。
5、状态和对象的关系是怎样的?
下面描述中哪些是对象,哪些是状态?
支票已付
汽车停在那儿
小王正在工作
支票是对象,已付是状态;
汽车是对象,停在那儿是状态;
小王是对象,正在工作是状态。
6、说出下面状态的状态名和各种转换、事件。
状态名:
Lighting
转换:
eventSelfTest/defer
事件:
入口动作entry/turnOn
do/blinkFiveTimes
eventPowerOff/powerSupplySelf
出口动作exit/turnoff
7、说出下面状态图所表达的信息。
状态开始,状态1:
关闭,事件1没水,打开放水,事件2烧水,状态2打开,事件3水开了关闭,回到状态1.分支1烧水时烧坏了,状态结束。
8、说出下面状态图所表达的信息,并指出蓝色部分代表的含义。
状态开始,状态1注册课程,状态2课程评价,嵌套状态图1:
开始,状态实验1,进入实验室,事件1完成实验,实验2,完成实验。
嵌套状态2:
实验室团队项目,事件项目完成,结束。
嵌套状态3:
开始,状态考试,事件1考试及格,事件2考试不及格,课程不通过,补考。
3个嵌套状态后,课程通过。
9、根据下面状态图回答问题。
上图是一个表示电梯系统的状态图。
该系统中Controller类和Motor类的详细定义如下图所示:
根据类图,完成上面状态图中A,B,C,D,E,F处的内容。
A是0,B是timeout,C是goToFloor<
2,D是Motor.moveDown(),E是Motor.moveUp(),F是Motor.stop()
11、某销售POS机工作流程如下:
当客户到收银台后,收银员逐一输入用户购买的商品,然后计算总金额,等待用户付款,确定支付成功之后,完成收银,等待下一个用户。
请为其画出对应的状态图。
1、讨论思考状态图在UML建模中可以起到什么样的作用。
状态图一般用于对系统中的某些对象,比如类,用例和系统的行为建模。
它通过建立类对象的生存周期模型来描述对象随时间变化的动态行为。
2、思考什么样的情况下适合引入状态图进行建模。
系统分析人员在对系统进行建模时,最先考虑的是基于状态之间的控制流,因为系统对象中的状态变化最易发现和理解。
这样的情况下引入状态图进行建模比较好。
实验五活动图
1、掌握活动的概念以及表示方法。
2、掌握活动图中各个元素表示的意义和表示方法。
3、掌握分支、监护条件、分岔、汇合和泳道的概念。
4、掌握阅读和绘制活动图的方法。
画法见教材。
1、什么是活动?
UML中如何表示活动?
活动是一个或多个动作组成的行动。
2、活动图中包括哪些元素?
分别如何表示?
动作状态、活动状态、组合活动、分叉与结合、分支与合并、泳道、对象流。
(1)动作状态使用平滑的圆角矩形表示,动作状态表示的动作写在矩形内部。
(2)活动状态是平滑的圆角矩形,在图标中给出入口动作和出口动作等信息。
(3)组合活动在一幅图中展示所有的工作流程细节。
(4)分叉与结合
(5)分支与合并
(6)泳道这种分配可以通过将活动组织成用线分开的不同区域来表示。
由于它们的外观的缘故,这些区域被称作泳道。
(7)对象流状态表示活动中输入或输出的对象。
对输出值而言,虚线箭头从活动指向对象流状态。
对输入值而言,虚线箭头从对象流状态指向活动。
如果活动有多个输出值或后继控制流,那么箭头背向分叉符号。
同样,多输入箭头指向结合符号。
3、分岔和分支有什么区别,分别适用于什么样的建模目标?
分叉用于将动作流分为两个或者多个并发运行的分支,分叉可以用来描述并发线程,每个分叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流。
用黑粗线表示。
分支一般用于表示对象类所具有的条件行为。
在活动图中分支用空心小菱形表示。
分支有一个入转换和两个带条件的出转换,出转换的条件应当是互斥的。
4、活动图中监护条件和改变事件分别有何作用?
两者间的区别是什么?
活动状态的转换可以包括动作和监护条件。
监护条件:
在分支的每个离开转换上都会有一个监护条件,用来表示满足什么条件的时候执行该转换。
改变事件则是对事件进行的修改,转换是在要求改变事件时直接执行的。
区别在于是否是满足某一个特定的情况。
5、说明下面网上书店系统某一活动图所表达的信息。
进入网店后,用户下订单,生成送货单和用户选择支付方式同时运行,在用户选择支付方式时,根据判断条件(用户取消订单和订单超时),如果发生任何一种情况,订单取消:
如果两种情况都没发生,供应商收款并生成送货单,然后供应商发货,货物一旦发出,订单的状态不断更新,最后货物到达顾客手中,订单完成。
6、用活动图表示for(i=0;
i<
9;
i++)循环。
7、对于如下图所示的活动图,最大可能的并发线程数是几个?
最大可能的并发线程数是4个。
针对网上书店系统,画出用户购书,商家发货等过程的活动图。