中南民族大学实验报告
课程名称: 可视化建模与UML
专 业: 信息管理与信息系统
学 号: 09056037
姓 名: 李江波
指导教师: 于同洋
实验地点:管理学院综合实验室
目 录
实验一 UML建模基础 实验二 实验三 实验四 实验五 实验六 实验七 实验八 实验九 用例图 UML类图 对象图 包图 状态图 活动图 时序图与协作图 组件图
实验一 UML建模基础
实验目的
? 熟悉UML建模工具Rational Rose的基本菜单及操作。 ? 掌握UML的三大组成部分及各部分作用。 ? 掌握UML规则和相关机制。
? 掌握UML的可见性规则和构造型的作用。
实验内容
1、 练习使用建模工具建立各种UML图形,并对图形进行相应编
辑和修改。 如下图:
2、 认识各种UML关系及可见性符号,并用工具表示出来。
分析与结果
总结UML在软件工程中的作用以及使用UML建模的必要性。 答:UML在软件工程中的作用:用例图是软件需求分析阶段中形成的文档,行为图是总体设计时形成的文档,流程图是详细设计时的文档,类图、协作图均为软件工程提供便捷的面向对象分析、设计方法。建模是所有建造优质软件活动的中心一环。
UML建模的必要性:UML建模使得高质量的软件开发变成了一个结构、过程和工具的结合体。软件组织获得成功的因素之一就是对建模的使用。模型是对现实的简化,提供系统的细节设计和总体设计。建立模型可以帮助开发者更好的了解正在开发的系统。
UML可以作为系统分析设计过程使用的表示和体现工具。对于开发团队的层面来说:有利于队员间在各个开发环节间确立沟通的标准,便于系统文档的制定和项目的管理。UML简单、直观和标准利于运用UML来交流、共享开发经验和资源。
实验二 用例图
实验目的
? 掌握用例的概念。
? 掌握UML用例图的组成、作用以及使用场合。 ? 掌握用例与用例之间的各种关系。
? 学习针对具体场景使用用例图进行分析说明的方法。
? 掌握用例描述的概念和基本结构,以及用例描述的作用。
实验内容
1、 什么是用例,什么是场景?用例和场景之间的关系是怎样的?
答:用例是外部可见的系统功能单元,通过一系列系统单元与一个或多个参与者之间交换的信息表达,在不揭示系统内部构造的前提下定义连贯的行为。场景是事物的动作、状态组合,由多个参与者组成,是展示用例图的场所。用例是对场景间的交换信息的表达,用例包含它所必需的所有行为(执行次序、标准行为的不同变形、一般行为下的所有异常情况和预期反应)。
2、 用例图中有哪些组成元素?在UML中是如何表示的?
答:用例图包含6个元素:参与者(Actor):由参与用例时所担当的角色来表示;用例(Use Case):用一个椭圆表示;关联关系(Association):使用带箭头表示;包含关系(Include):用虚线箭头加《include》字样,箭头指向被包含的用例;扩展关系(Extend):虚线箭头加《extend》字样,箭头指向被扩展的用例(基础用例);泛化关系(Generalization):用一个三角箭头从子用例指向父用例。
3、 用例与用例之间的包含关系、扩展关系和泛化关系各代表什么
含义?它们之间有何区别?对以上三种关系各举一例,画出用例图,并进行说明。
答: 包含关系是:一个用例可以简单地包含其他用例具有的行
为,并把它所包含的用例行为作为自身行为的一部分。 扩展关系是:一个用例被定义为基础用例的增量扩展,是把新的行为插入到已有的用例中的办法。
泛化关系是:一个用例被特别列举为一个或多个子用例。 包含关系与扩展关系的区别:存在包含关联的两个用例,在执行基本用例时,一定会执行包含用例;存在扩展关系的两个用例,在执行基本用例时,可以执行,也可以不执行扩展部分。 如下图:
4、 为了满足物业中介行业的信息化要求,甲公司基于详尽的需求
调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的
用例模型的开发,下是一个用例模型的局部:
打开房源信息页面<
小李认为该模型不符合“用例建模”的思想,存在明显的错误。请用200字以内说明错误所在,并说明应该如何修改。 答:图中最明显的错误就是参与者与用例之间的关系越级操作了。如,房产经纪人必须登录系统后才能进行录入房源信息、修改房源信息等操作,确认提交信息也必须实在录入房源信息之后。还有就是用例之间的关系错误,打开房源信息页面与登录信息一个是扩展关系,录入房源信息与确认提交信息应该是包含关系。其修改方案如下图所示:
5、 阅读下面的用例图,说明该图所表达的信息。
答:该图是一个服务管理系统,总台服务员是参与者,通过安排座位
系统和办理结账系统分别进行检查座位信息、收款操作。其中还需通过检查座位信息处理等候队列信息,处理现金结账和处理银行卡结账的收款操作。其中,安排座位与检查座位信息、办理结账和收款是包含关系,处理现金结账和处理银行卡结账与收款是泛化关系。等候处理队列与检查座位信息有关联,处理银行卡结账与银联POS系统有关联。
整个系统可描述为:客户预定座位,首先检查座位信息,若座位未满则处理等候的队列;若座位已满则不处理等候队列。总台检查座位信息,安排座位。总台通过收款(收取现金或刷银
联行卡)办理结账。
6、 下图是一个描述保险商务系统的简单用例图。根据该用例图回
答问题。
a) “签订保险单”用例可能涉及到哪几个实体类? 答:客户、保险单、保险员。
b) 现实生活中签订保单的基本流程如下:客户提出购买需求,保险员根据客 户需求选择相应的保险服务,客户阅读保险条款,同意后打印保单样据,客户签字并支付保金,保单开始生效,保险员做相关系统纪录。如需要根据以上信息,请列举这个用例描述中可能存在扩展事件流。
答:该保险商务系统通过建立客户和保险员的关系执行保险的管理工作。在客户提出购买需求,保险人员根据客户需求选择相应的保险服务,在同意的前提条件下进行打印保单样据,客户签字并支付保金,保单开始生效,事后事件是保险员做相关系统记录。 客户不同意条款。
c) 保单管理用例在实际开发过程中可以泛化出若干小用例,列出可能存在的子用例,并且说明这些用例和“保单管理”用例之间应该是什么关系?
答:这些用例图和保单管理用例都是泛化关系。保单管理可能存在的子用例是保单查询,保单保存.
7、在一个TelephoneSystem(电话系统)中,用户可以使用电话卡
或对方付款两种办法来打电话。 1)请画出表示该场景的用例图。
2)在前图的基础上,继续画出可能存在的包含用例和扩展用例。
分析与结果
1、 总结用例图的重要作用,讨论并指出哪些场合下可以使用用例
图。
答:a、用来描述待开发系统的功能需求和系统使用场景。 b、作为开发过程的基础,驱动各阶段的开发工作。 c、用于验证与确认系统需求。
2、 讨论用例分析技术和结构化分析之间的关系和区别。 答:区别:结构化系统开发方法是指把整个系统开发过程分成
若干阶段,每个阶段进行若干活动,每项活动应用系统标准、规范、方法和技术,完成一个或多个任务,形成符合给定规范的软件产品。用例分析是面向对象(Object Oriented)的开发方法。
联系:它们都可以是软件的开发更容易。
3、 在使用用例图的时候应该如何划分用例,应注意哪些问题? 答:如何确定用例:
a 参与者需要从系统中获取哪种功能?及参与者要系统做什么?
b 参与者是否需要读取、产生、删除、修改或存储系统中的某种信息?
c 系统的状态改变是是否通知参与者? d 是否存在影响系统的外部事件? e 系统需要什么样的输入、输出信息?
需要注意的是:一定不要再用例图中使用两种命名方法。即在椭
圆之外和椭圆之内。
4、 继续分析类图实验中网上书店实例,画出系统的用例图。
实验三 UML类图
实验目的
? 掌握类的定义,类的3要素,UML中类的表示方法。 ? 掌握类与类之间的各种关系代表的含义及表示方法。 ? 实体类,边界类,控制类,关联类的概念和表示方法。 ? 接口和抽象类的概念和表示方法。 类的多重性关系。 ? 对一个类图进行相关的描述。
实验内容
1、 简述类的定义,以及类的三要素
答:类是对一组具有相同属性、操作、关系和语义事物的描述。类的三要素是:类的名称、属性、操作。
2、 类的属性和方法的可见性有哪些?UML中如何表示?
答:类的属性和方法的可见性有protect(符号“#”),private (符号“-”),public(符号“+)”
3、 已知三个类A.B和C.其中类A由类B的一个实类和类C的1
个或多个实类构成.请画出能够正确表示类A,B和C之间关系的UML类图.
4、 根据以下描述画出类图,并注明多重性关系:一个学生可以选
修多门课程,也可能没有任何课程;一门课程可以被多个学生选修;一个老师可以教多门课程或者不教课;每门课程至少有一个老师,也可以有多个老师任教;每门课程可以有0或1本教材,每本教材只能用于一门课程。
5、 现有一系统需要对商品进行管理,包括添加,删除商品,修改
商品信息三项功能,画出系统类图。(商品信息包括商品编号,商品名称,价格,生产厂商等)
6、 如果现在系统需求发生变化,需要能够对损坏商品进行打折,
以及可以按照商品的颜色和外形进行查询,则系统类图应该如何修改?
7、 根据下面的代码画出Invoice类的类图,要求标明各属性的类
型和可见性以及类方法。 public class Invoice {
public double amount; public Date date = new Date(); public string customer; public string specification;
public string administrator = “unspecified”; static private int number_of_invoices()=0; public invoice(); {
number_of_invoices++;
}
public void print() {
System.out.println(\number of invoices is”+ int number_of_invoices); } }
8、 下图是一个仓库管理系统的类模型局部,其中IncomeOrder是
指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出模型中的错误,说明原因并改正类图。
IncomeOrder11ProductOrderItem
答:Orderltem与IncomeOrder的关系并不是泛化关系,而应该是包含关系,正确类图如下所示:
分析与结果
1、 讨论类图在建模过程中的重要作用。
答:a、使用类图对系统的词汇建模。系统分析者可以用类图详细
描述这些抽象和它们的职责。b、对简单的协作建模。系统分析者可以用类图将这组类以及它们之间的关系进行可视化和详述。c、对逻辑数据模式建模。系统分析者可以用类图对这些数据库的模式建模。
2、 总结在设计绘制类图的过程中应注意哪些问题。
答:a、识别要建模的机制。b、对每种机制,识别参与协作的类,接口和其他操作,并识别这些事物之间的关系。c、用协作的脚本检测事物。d、把元素和它们的内容聚合在一起。
实验四 对象图
实验目的
? 掌握对象的概念,对象的三大特征,对象的表示方法。 ? 掌握类与对象的关系。
实验内容
1、 什么是对象,对象的三大特征是什么?
答:对象是运行期的基本实体。三大特征为对象具有属性和方法,对象的行为按照事件进行处理,对象具有继承性和集合性。
2、 UML中对象的表示方法有哪些?
答:对象由一组属性(数据)和一组行为(操作、服务、方法)构成,则其表示方法可以用属性名词、行为动词等词语或图形符号表示。
3、 在下图中最上面的对象的名称是什么?该图表示的意思是什
么?请绘制出与其相应的类图。
China:CountryfuJian:ProvincesiChuan:Province
答:名称是country,该图表示的意思是有两个类Country和Province,三个对象China、fuJian和siChuang,其中fuJian和siChuang与China是聚合关系。 4、 说明对象图的适用场景以及它的优缺点。
答:对象图适用于论证类模型的设计以及对源代码进行分析和说明。其优点是能够直观理解出系统运行时的实时状态,缺点是比较复杂,工作量大。
分析与结果
1、 思考类与对象之间的关系是怎样的?各举几个实例,说明哪些
是类,哪些是对象。
答 :对象是类的实例,类是对象使用模板做出来的。
如: 类:人
对象:我,他,你
类是对象抽象即具体事物的抽象; 对象是类具体事物;
2、 思考在具体场景中应该如何区分类与对象。
答:看在场景中,是否有另一事物是该事物的具体表述,若有则该事物为类,其更具体的事物分类为对象。
实验五 包图
实验目的
? 掌握UML包的概念和作用。
? 掌握包与包之间的各种依赖关系的区别。 ? 掌握建立包与包之间依赖关系的方法。
? 掌握建立包图过程中需遵循的原则。
实验内容
1、 包属于UML中的何种事物?有何作用?
答:包属于UML中的注释事物,包把建模元素组织成组的通用机
制,包仅在建模时有意义,而不必转换到可执行的系统中,其包图是维护和控制系统总体结构的重要建模工具。
2、 UML中包的表示方法有哪几种?
答:包的表示方法有引入和输出,引入(import)允许一个包中的元素单向访问另一个包中的元素,包的公共部分称为输出(export)。
3、 包与包之间存在哪几种关系?
答:关系有如下两种:
1、 引入和访问依赖,用于在一个包中引入另一个包输出的元
素。
2、泛化,用于说明包的家族。 4、 包与包之间的依赖关系有何特点?
答:如果包A没有引入包B,则包A不能访问包B中的任何内容,也就是包之间的依赖关系是一一对应的。 5、 如何避免包与包之间出现循环依赖关系?各举一例。
答:重构一个或多个的包,把导致循环依赖的因素从包中除掉。如:包A依赖于包B,包B依赖于包C,而包C依赖于包A,这就形成了一个循环:A-B-C- A。此时,应该重构一个包,
A-B-C和C-A 。 6、 建立包图应注意哪些问题?
答:a、包的命名要简单,具有描述性。b、包应该连贯。c、避免包间的循环依赖。d、包依赖应该反映内部关系。 7、 根据下图判断下面哪句话正确的说明了包之间的依赖关系。
A) 对Package1包中的元素做了修改后,需检查Package2包
中的元素和Package3包中的元素是否要做相应修改。 B) 对Package1包中的元素做了修改后,需检查Package2包
中的元素是否需要做相应修改,如果是,则需继续检查是否Package3包中元素也要做相应修改。
C) 对Package3包中的元素做了修改后,需检查Package2包
中的元素是否需要做相应修改,如果是,则需继续检查是否Package1包中元素也要做相应修改。
D) 对Package3包中的元素做了修改后,需检查Package2包
中的元素和Package1包中的元素是否要做相应修改。 答:Package1继承Package2,Package2继承Package3.
则(C)是正确的。
8、 下面包图设计中是否存在问题?应如何改进。
A)
B)
答:图A)没有问题。从图面意思可以理解为包A引入包B,包B引入包C和E,又包C和E引入包D。在层次上,D中共有的内容对C和E是可见的,C和E中的公有内容对B是可见的,B 中共有的内容对A又是可见的。
图B)从图面意思可以理解位包A引入包B中,包B引入包C中,包C引入包D中,包D又引入包B中。那么这里就有问题了,B、C和D三个包构成了循环引入,那么其内的公有内容就无法区分开,可以将B)图修改为如下所示:我们可以用两个图表示其关系。
分析与结果
结合一个具体例子,分析UML建模过程中包图所起的作用。 答:包图的作用:a描述需求的高阶概述(用例图) b描述设计的高阶概述(类图) c在逻辑上把一个复杂的图模块化 d 组织源代码(命名空间)
实验六 状态图
实验目的
? 掌握状态的定义和组成部分。 ? 掌握UML中状态的表示方法。 ? 掌握转换的定义及转换的5要素。 ? 了解触发事件、监护条件、动作的定义。 ? 掌握阅读和绘制状态图的方法。
实验内容
1、 什么叫做状态?状态由哪五个部分组成?
答:状态机状态与状态转换的图,利用状态机可以精确的描述对象的行为:从对象的初始状态起,开始响应事件并执行某些动作,这些事件引起状态的转换;对象在新的状态下又开始响应状态和执行动作,如此连续进行直到终结状态。 状态机由状态、转换、事件、活动和动作5部分组成。
2、 什么是转换?UML中转换的5要素是什么?
答:转换表示当一个特定事件发生或某些条件得到满足时,一个源状态下的对象在完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态。当发生转换时,转换进入的状态称之为活动状态,转换离开的状态变为非活动状态。 转换的5要素是:源状态、目标状态、触发事件、监护条件和动作。
3、 触发事件是什么?可以具体分为哪些事件?
答:触发事件就是能引起状态转换的事件,可具体分为信号、调用和时间段等。
4、 改变事件和监护条件有何异同?
答:监护条件是触发转换必须满足的条件,它是一个布尔表达式。当事件被触发时,监护条件被赋值。如果布尔表达式的值为真,那么转换被触发;反之,则不会引起转换。监护条件只能在触发事件发生时被赋值一次,如果在转换发生后监护条件才由假变为真,那么转换也不会被触发。
而改变事件是直接件将事件改变,而不是转换为另一个事件,不需要什么监护条件,直接认为的将其改变。发生在任何时间的任何地点都可以。
5、 什么叫做转换?转换可以分为哪几种?
答:转换是两个状态之间的一种关系,表示对象在源状态中执行一定的动作,并在某一特定的事件发生而且某个特定的警界
条件满足时进入目标状态。可以分为外部转换,内部转换,完成转换,复合转换。
6、 状态和对象的关系是怎样的? 下面描述中哪些是对象,哪些是
状态? 支票已付 汽车停在那儿 小王正在工作
答:状态表示对象在一定时间段内所处的行为方式。以上汽车停在那属于对象,支票已付、小王正在工作属于状态。 7、 说出下面状态的状态名和各种转换、事件。
Lighting entry / turnOn do / blinkFiveTimes eventPowerOff / powerSupplySelf exit / turnoff eventSelfTest / defer
答:状态名是Lighting;转换有:turnOn、turnoff、defer;事件有:blinkFiveTimes、eventPowerOff 、 powerSupplySelf、eventSelfTest。
8、 说出下面状态图所表达的信息。
答:此状态图表示的是一个自动烧水壶的状态图,从开始的Off
状态,进行turnOn[]操作,如果壶中没有水的话,自动给壶中加水,然后执行on(烧水)动作;当水开后自动跳闸turnOff,进入Off状态,如此反复,直到水壶被烧坏。
9、 说出下面状态图所表达的信息,并指出蓝色部分代表的含义。
答:该图表示从初始状态开始注册课程信息,到课程通过结束的状态。包括三个子状态,1)实验:进行实验1,当实验1完成后进入实验2状态,直到多个实验完成后,实验结束。2)团队项目,开始进入团队项目工作状态,当项目完成后,结束项目的工作。3)考试,学生经过一学期的学习后进行考试考核,开始进入考试状态,如果考试不及格,则所选课程不通过,要进行补考,直到考试及格才算通过;如果考试及格,则课程评价状态结束,进入课程通过状态,最后结束。
第一个蓝色字体所代表的含义是在实验1中的动作和事件; 第二个蓝色字体表示在团队项目中的事件。
10、根据下面状态图回答问题。
、
UPrequest(floor,direction)[ floor>0 ]entry/ CloseDoordo/ Eexit/ motor.stop()GFloortimeout[ getNextFloor()> A ]arrive()arrive()request(floor,direction)[ floor==0 ]WaitingForFloorNumtimeout[ getNextFloor()==-1&¤tFloor==0 ] / closeDoorentry/ openDoorgoToFloor(n)Returnentry/ closeDoordo/ motor.moveDown()exit/ FB[ C ]Downentry/ closeDoordo/ Dexit/ motor.stop()arrive()
上图是一个表示电梯系统的状态图,该系统中Controller类和Motor类的详细定义如下图所示:
根据类图,完成上面状态图中A,B,C,D,E,F处的内容。 答
:
A:1
B:timeout
C:getNextFloor()>2
D:Motor.moveDown()
E:Motor.moveUp() F:Controller.goToFloor()
11、 某销售POS机工作流程如下:当
客户到收银台后,收银员逐一输入用户购买的商品,然后计算总金额,等待用户付款,确定支付成功之后,完成收银,等待下一个用户。请为其画出对应的状态图。 答:如右图:
分析与结果
1、 讨论思考状态图在UML建模中可以起
到什么样的作用。
答:状态图用于表现从一个状态到另一个状态的控制流。不仅可以展现一个对
象拥有的状态,还可以说明事件如何随着时间的推移来影响这些状态。
2、 思考什么样的情况下适合引入状态图进行建模。
答:当需要描述对象随时间变化的动作行为时,当系统分析员在对系统建模时较适合,因为系统中动作的状态变化是最易发现和理解的。
实验七 活动图
实验目的
? 掌握活动的概念以及表示方法。
? 掌握活动图中个元素表示的意义和表示方法。 ? 掌握分支、监护条件、分岔、汇合和泳道的概念。 ? 掌握阅读和绘制活动图的方法。
? 掌握UML的可见性规则和构造型的作用。
实验内容
1、 什么是活动?UML中如何表示活动?
答: 活动是某件事情正在进行的状态,既可以是现实生活中正在进行的某一项工作,也可以是软件系统某个类对象的操作。在UML中由活动图来表示活动。 2、 活动图中包括哪些元素?分别如何表示?
答:
图形元素 动作状态 活动状态 动作流 分支与合并 分叉与汇合 表示方法 平滑的圆角矩形 平滑的圆角矩形 带箭头的直线 空心小菱形 加粗的水平线
泳道 对象流 垂直实线,分隔的区域就是泳道 带箭头的虚线 3、 分岔和分支有什么区别,分别适用于什么样的建模目标?
答:分支是对象类所具有的条件行为,当一个动作流遇见分支时就需要根据条件判断,从而选择不同的动作状态,适用于需要对动作流进行一个动作进行条件判断的建模目标。而分叉时用来描述并发线程,每个分叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流,是用于多条同时发生的动作流的建模目标。
4、 活动图中监护条件和改变时间分别有何作用?两者间的区别
是什么?
答:监护条件是当满足这个条件时,所对应的转换就发生,而改变时间是改变时间发生转换的时间,也就是改变监护条件的时间。
5、 说明下面活动图所表达的信息。
答:活动图从用户下订单开始,在用户下完订单后产生并行的两个支路的行为:一条生成送货单,准备送往供货区;另一条始交予客户的回执(选择支付的方式),再进行判断确定用户是否取消或订单超过时限,若是,则订单取消,相应的停止活动的进行,若否,则进行收款操作;之后两条支路聚合,统一。使订单成功送达,供应商送货;通过系统修改订单状态;最后确认判断是否所有订单项已送货完毕,是,则订单处理完成;否则继续循环进行供应商的供货检查,送货-修改订单项状态-判断所有订单项已送货完毕,的操作,直至所有订单项均已送货完毕为止。
6、 用活动图表示for(i=0;i<9;i++)循环。
答:如下图:
7、 对于如下图所示的活动图,最大可能的并发线程数是几个?
Activity1Activity2Activity3Activity4Activity5Activity6
答:最大可能并发线程数4个,分别是Activity2和Activity3、Activity4和Activity5。
分析与结果
1、 分小组讨论利用“支付宝”进行网上购物的活动过程,并画出活
动图,关于支付宝的相关说明可以登录http://www.alipay.com/查看。
2、 针对前面的网上书店系统,画出用户购书,商家发货等过程的
活动图。
实验八 时序图与协作图
实验目的
? 掌握时序图与协作图的概念及作用。
? 掌握UML中静态图形和动态图形的区别和联系。
? 掌握UML时序图与协作图的基本图形,了解它们各自的组成元素、特定作用和适用场合。
? 重点掌握时序图的画法以及其中元素所代表的意义。
实验内容
1、 UML中的时序图与协作图之间各有什么区别和联系?
答:时序图和协作图之间的相同点主要有3点:(1)规定责任。两种图都直观的规定了发送对象和接收对象的责任。(2)支持信息。两种图都支持所有的消息类型。(3)衡量工具。两种图还是衡量耦合性的工具。
区别:协作图的重点是将对象的交互映射到它们之间的链上。时序图可以描述对象的创建和撤销的情况。在协作图中,对象
要么存在要么不存在,除了通过消息描述货约束,没有其他的方法可以表示对象的创建或约束。时序图还可以表现对象的激活和去激活情况,但对于协作图来说,由于没有对时间的描述,所以除了对消息进行解释,它无法清晰的表示对象的激活和去激活情况。
2、 在顺序图和协作图中,应如何表示“循环”,“判断”等结构?
答:UML 中使用 约束来 判断或循环条件;表示循环,做法是在图上消息旁加上“*”,如:*[for each seat];用loop操作符亦可。用可选操作符alt(ernate)、 opt()来表示判断。 3、 什么是消息?消息在交互中扮演什么角色?
答:消息是对象之间某种方式的通信,它可以激发某个操作、唤起信号或导致目标对象保单创建或撤销。消息是两个对象之间的单路通信,从发送方到接收方的控制信息流。消息可以用于在对象之间传递参数;可以是信号;可以是调用。 4、 交互图中有哪几种消息?它们之间具体有何分别?应如何表
示?
答:消息可以分为四种,分别是1)简单消息,展示了控制如何从一个对象传递到另一个对象,但不描述任何通信的细节。用实线细箭头表示。2)同步消息,是一种嵌套的控制流,通常用操作调用来实现。用实线粗箭头表示。3)异步消息,异步控制流,没有明显的返回信息回送给调用者。用实现单箭头表示。4)返回消息,表示控制流从过程调用的返回。用虚线箭头表示。
5、 已知某一个用例实现的类图如下,下面四个选项中的时序图(图
中省略了消息编号、名称和返回消息),画出一个能和该类图对应的时序图。
6、 假设有一系统得协作图局部如图所示,print方法的功能是将传入的参数的值打印在屏幕上,fact方法是计算阶乘,如果test的初值为1,那么最终将打印出什么?(写出计算过程)
1: print(test)2: *[i=1..3] 1.1: test=test+fact(test):A:B
答: Int I,test; for(i=1;i<=3;i++) { test=test+fact(i); printf(“%d”,test);
} 最终打印的结果是:10
分析与结果
1、 讨论并总结在建模过程中运用交互图的重要作用及意义。
答:交互图常用于描述一个用例的行为,显示该用例中所涉及的对象以及这些对象之间的消息传递情况。时序图突出对象的执行时序,协作图能更加清楚的表示对象之间的静态链接关系;它们均能显示对象之间的合作关系。
2、继续前面的网上书店实例,为该实例中涉及的系统交互设计交互图。
上图是购物网站的“编辑购物车”用例中的部分的类图 用例描述: 基本事件流:
用户在Shopping Cart页面上修改购物车中商品数量,然后单击Update按钮。系统存储新的数量,然后计算并显示该商品的新价格。
用户单击Continue Shopping按钮。系统将控制权返回给浏览商品用例。 扩展事件流:
用户将商品数量改为0,则系统从购物车中删除该商品 用户点击Delete 按钮,系统从购物车中删除该商品 用户点击Check Out按钮,系统将控制权转到结账用例。
用户点击Clear Cart按钮,系统将购物车内所有商品删除。 请根据给出的类图,在下面的顺序图上画出“编辑购物车”用例内各个事件流(注意消息和类图提供的方法保持一致)。
:Customer:ShoppingCart:Item1: updatePage2: ContinueShopping3: checkOut4: clearPass to Check Out Use Case答:图如下:
:ShoppingCart
实验九 组件图
实验目的
? 掌握组件的概念,了解引入组件的原因。 ? 掌握组件的要素,组件和类的比较。 ? 掌握UML中组件的表示方法。 ? 掌握阅读和绘制组件图的方法。 ? 了解组件图的应用。
实验内容
1、 什么是组件?组件有何作用?
答:组件是定义了良好接口id物理实现单元,是系统中可替换的物理部件。组件图能够可视化物理组件以及他们之间的关系,并描述其构造细节。 2、 组件的要素是什么?
答:外观(颜色、尺寸等)、行为。
3、 组件和类的关系是怎样的?它们有何异同之处?
答:同:都可以实现一组接口,都可以参与依赖关系,都可以被嵌套,都可以有实例,都可以参与交互。异:类描述了软件设计的逻辑组图和意图;而组件则描述软件设计的物理实现。 4、 UML中组件有哪些表示方法,分别代表什么含义?
答:(1)配件组件。是运行系统需要配置的组件,是形成可执行的基础。(2)工作产品组件。包括模型、源代码和用于创建组件的数据文件,它们是配置组件的来源。(3)执行组件。是
在运行时创建的组件,是最终可运行的系统产生的允许结果。 5、 组件中的接口有哪些?分别如何表示?
答:导入接口和导出接口。带箭头指向接口的为导入接口,无箭头连接的为导出接口。
6、 在一张基本组件图中,组件之间最常见的关系是什么?
答:依赖关系。
分析与结果
讨论组件图适用于哪些建模需求。
答:组件图一般适用于对面向对象系统的物理方面建模。用来建模
软件的组件及其相互之间的关系。