实验三 UML 建模工具的安装与使用
一、 实验目的
1) 学习使用 EA(Enterprise Architect) 开发环境创建模型的一般方法;
2) 理解 EA 界面布局和元素操作的一般技巧;
3) 熟悉 UML 中的各种图的建立和表示方法;
4) 掌握如何通过 EA 工具完成相关模型的建立
二、 实验内容及步骤
1、熟悉EA 环境
(1) 开始——>运行——>Enterprise Architect, 打开 Enterprise Architect 软件。 进入软件之后, 可以选择新建一个项目。 在新建项目时, 系统会提示选择所需要的模型设计。
(2) 选择了所需要的模型之后, 可以看到, 在界面的右侧出现了相应的导航栏。 如下图所示, 在导航栏里面列出了刚才所选择的系统模型。
(3) 假设选择用例建模, 那么可以从左侧的工具面板中拖拽出一个参与者, 并为它命名。这样在系统里面就多了一个叫做“用户” 的参与者。
(4) 以同样的方式从左侧工具面板中拖曳一个用例, 命名为“用例一” 。
(5) 同样通过拖拽的方式, 建立用例与参与者之间的关系。 对这个关联关系, 我们还可以设置更加细化的约束。
2、采用EA工具完成以下ATM示例系统的UML模型的建立。
3、通过 EA 工具完成相关 UML 图的绘制。在建立过程中尝试理解模型元素,模型元素之间的关系。
提示:EA打开 toolbox 的快捷键为 alt+5
三、实验过程
1、安装EA工具,新建一个项目,命名为:ATM,同时为其添加五个模型:行为模型、需求建模、领域模型、用例模型、逻辑模型。
2、设计需求建模
(1)在需求建模中,将需求分为功能性需求和非功能性需求,在ATM机中,暂时没有非功能性需求,所以对其功能性需求进行设计。在ATM机中的功能性需求中,为其添加五个包:卡处理、取款、查询余额、用户界面、用户登录。
(2)设计“卡处理”部分:“卡处理”需求分为识别卡和退卡两个需求
(3)设计“取款”部分:此需求分为7个需求:用户不可以透支、打印收据、一次最多取款额、一天最多取款额、取款额必须被取款机中的最小面额除尽、吐钱之前用户必须取卡、出错时显示错误信息,并提示正确操作。
(4)设计“查询余额”部分:只有一个需求:当账号金额不足取款机中的最小面额钞票时,提示“您没有足够的取款金额'信息。
(5)设计“用户界面”部分:该需求分为三个需求:支持数字键、退格键和清除键、登录界面有按钮“确定”和“取消”、退卡时提示用户取回自己的卡。
(6)设计“用户登录”部分:该部分有两个需求:验证身份和设定最多登录次数。
3、设计用例模型,设计如下图:因为用户要先进入用户登录才能查询余额和取款,所以用户登录在查询余额和取款的步骤的前面,即precedes。
4、设计行为模型
在行为建模中,包括三种图:状态图、顺序图(又称时序图、序列图)以及活动图。
(1)活动图:在如下用户取款活动图,分为三个活动分区:用户、ATM机和银行主机,从开始节点到终点节点的过程中,每个活动分区有其对应的活动(用activity表示),类似于流程图,其中也有决策(用decision菱形表示)。
(3)状态图:在状态建模中,有三种建模元素:状态、事件和状态转移
(4)顺序图:顺序图有三种建模元素:对象、生命线和消息。在顺序图的建模过程中:需要有参与者、消息和轴。
注意:在视频中,在输入取款额的循环中,有一个步骤是跳出循环,其fragment(联合分段)选择的是alt(可选择的),我觉得应该选择break,因为它是跳出循环,不应该是可选择的。(位置在图中用红笔标记)
四、思考题
通过网络查找相关资料,了解有哪些工具可以支持UML模型与C++或JAVA或PYTHON代码的相互转换,并给出网络链接及说明。
答:UML模型与Java:采用ModelGoon工具,其是一个Eclipse插件,用于基于UML图的模型设计,以及逆向工程(即从已有源代码生成类图等),网络链接:https://bbs.csdn.net/topics/350241274。
UML模型与C++:选择Together(从技术上讲也是一个Eclipse插件)作为UML的绘制工具,通过Together的开发API把System C(其包含了一系列C++的类和宏,并且提供了一个事件驱动的模拟核)代码模块集成到Together的开发环境,成为Together中的一个服务插件。网络链接:https://www.taodocs.com/p-150137227.html。
UML模型与Python:Pyreverse是常用的用来分析Python代码和类关系的工具,通过Pyreverse和Graphviz 结合起来使用可以绘制Python的UML类图,网络链接:https://my.oschina.net/u/3643685/blog/1920655。
五、实验小结
1、通过此次实验,让我更清楚了一个系统的UML模型的建立过程,老师在课堂上讲到的知识只是在我们的脑子里,说实话,让我做一个简单的UML模型的建立,我都不一定能做得出来,因为不知道如何去做,通过实际的操作,看视频一步一步操作,理论得到实践,我们对于理论知识不再是死记硬背,而是更深刻地理解。
2、通过实际操作,我感觉一个UML模型的建立最主要的部分是细节方面吧,有些方面必须想的全面,而有些是需要从大量信息抽取重要的,以及对于细节部分的处理对于系统的设计是有很大的帮助,其实建模就是帮助我们发现遗漏的或者不一致的信息,对于我们在软件设计的过程中起了很大的作用。
3、此次建模过程,是一个ATM示例系统的UML模型的建立,通过实验,我对ATM机系统的过程有了一定的了解,是一个知识积累的过程。