UML 与rational rose 使用(一)

一、UML

UML—Unified Modeling Language;UML是一种标准的图形化建模语言,是面向对象分析与设计的标准表示

二、实操 类图

Rational Rose简明实用教程-优快云博客

用面向对象方法开发软件通常需要建立的三种模型:
对象模型:描述系统数据结构的模型;
⒉动态模型:描述系统控制结构的模型;
⒊功能模型:描述系统功能的模型。
  对象模型是最重要、最基本、最核心的

1.范例1

用Thoroughbred类对优良品质的马进行建模。它有3个属性:mother,father,birthyear,还有3个操作:getCurrentAge()、getFather()和getMother。
每个属性都有名字、类型和可见性级别。类型和可见性都是可选的。类型放在名字后面,并用冒号进行分隔。可见性由前面的-、#、或+指定,分别代表私有、受保护、包或公有可见性。在实验中,所有属性都是私有的,由前面的减号(—)指出。可以用可见性级别、带名字和类型的参数以及返回类型来表示每个操作。

(1)创建类 Thoroughbred

  (2) 定义三个属性 mother,father,birthyear

(3)将私有成员属性改成减号

                    view -> Toolbars -> configure -> notation -> 将对号去掉,点确认

2.范例2

College有一个包含Building对象的聚合,这表示建筑构成了学院。学院也有一个包含课程的组合。Course类也受到约束性注释(注释Course一定在某个Building中进行)。

如何用Rational Rose画聚合与组合关系(空心菱形与实心菱形)_rose组合关系怎么画-优快云博客

UML用例图之关联关系、包含关系、扩展关系、泛化关系详解_用例图中的扩展关系-优快云博客

下面链接里有关联关系 设置几对几的操作 

UML一一 类图关系 (泛化、实现、依赖、关联、聚合、组合)_uml类图关系-优快云博客

3.范例3

 简化的网上购物系统需求说明:客户(Customer)具有四个属性:姓名(name),联系电话(contact),邮寄地址(deliveryAddress)和是否激活状态(active),订单(Order)具有两个属性:创建日期(createDate),订单状态(status)包括CREATE、PAID、SHIPPING、DELIVERED、CANCEL五种状态;订单详情(OrderDetail)具有一个属性:数量(quantity),并具有calculateSubTotal()、calculateWeight()方法;商品项(Product)具有名称(title)、重量(weight)和描述(description),并具有getPriceForQuantity()方法和getWeight()方法;支付方式(Payment),具有金额(amount)属性;支付方式支持以下五种支付方式:信用卡Credit,具有卡号(number)、类型(type)和过期日期(expireDate);现金(Cash),具有支付金额(cashTendered)属性;在线转账(WireTransfer),具有银行ID:bankID,银行名称bankName属性,支付宝(AliPay)具有卡号number属性;微信支付(WeixinPay),具有卡号属性。请根据以上简化的网上购物系统的关键类描述说明,创建类模型,并定义类之间的关系包括多重性(Multiplicity)。

(1)关于有五个订单状态:

UML类图绘制实例_uml建模实例-优快云博客

上连接中 (为图书馆管理系统UML),语言有五种语言

(2)关于多重性 

 详解UML类图之---多重性分析_类图多重性-优快云博客

(3)聚合和组合的区别

聚合关系 

*聚合关联是一种特殊的关联. 它表示类间的关系是整体与部分的关系. 简言之: 关联关系中的一个类描述了一个较大的事物, 它由较小的事物组成.

* 聚合关系描述了 “has a” 的关系, 即整体对象拥有部分对象

*整体和部分之间用空心菱形箭头的连线连接, 箭头指向整体

组合关系

*组合关系是更强形式的聚合.

*组合关系中, 整件拥有部件的生命周期, 所以整件删除时, 部件一定会跟着删除. 而且, 多个整件不可以同时共享同一个部件。

*聚合关系中, 整件不会拥有部件的生命周期, 所以整件删除时, 部件不会被删除. 再者, 多个整件可以共享同一个部件.

*UML 中组成关系用实心的菱形实线表示。

https://blog.youkuaiyun.com/qq_44275015/article/details/106319882?ops_request_misc=&request_id=&biz_id=102&utm_term=%E7%BD%91%E4%B8%8A%E8%B4%AD%E7%89%A9%E7%B3%BB%E7%BB%9Fuml%E7%B1%BB%E5%9B%BE&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-4-106319882.142^v96^pc_search_result_base4&spm=1018.2226.3001.4187

上图链接为用例图类图练习(网上购物平台)

https://blog.youkuaiyun.com/qq_47230378/article/details/121341316?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169763784916800226589791%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169763784916800226589791&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-121341316-null-null.142^v96^pc_search_result_base4&utm_term=%E7%BD%91%E4%B8%8A%E8%B4%AD%E7%89%A9%E7%B3%BB%E7%BB%9Fuml%E7%B1%BB%E5%9B%BE&spm=1018.2226.3001.4187

上链接为 淘宝系统 B2C电子商务系统UML建模 范例 感觉并没有很准确,不如图书的那个

三、 实操状态图 StateChart diagram

使用状态图来描绘对象的状态、触发状态转换
的事件以及对象的行为

   动态模型的三要素:
   ① 事件 (event):引发对象状态改变的控制
信息(瞬时)
   ② 状态(status):即对象的属性所处的情形
(可持续)
   ③ 行为(action):对象要达到某种状态所做
的操作(耗时)

(1)找到分支节点

在工具栏上右键点击,从菜单中选择:customize按钮

1.范例1绘制恒温水箱

绘制恒温水箱20°~100°的状态图。恒温水箱启动之后,当温度传感器检测温度低于20°时,如果水量传感器检测到水箱中有水,则打开继电器电源,开始烧水;如果水量传感器检测到当前无水,则不打开电源烧水。当温度传感器检测到水箱中水的温度达到100°,则断开电源。如果水箱烧坏,则进行维修。当晚上11点整时,自动断开电源,进入休眠状态;早上7点整,自动进入上述恒温烧水过程。

UML之教学管理系统——5、Rational Rose画状态机图(一)-优快云博客

(1)创建状态图

右键单击Logical View,“New”——》“Statechart Diagram”(状态机图)——》命名。双击打开

(2)读题 ,寻找重要对象

对于恒温水箱 最重要对象是水箱 ——>即要画水箱的状态图 

 (3)寻找这个对象的所有重要状态 ,

对象的状态取决于对象所包含的所有数据

用形容词来命名状态,并且注意合并相同的状态,例如,对于账号的状态图,未登录和已注销就是同一种状态。

仅供参考

2.范例2 绘制ControlPanel状态图

阅读教材《软件工程-实践者的方法》第八版 SafeHome项目说明(教材122页第八版,教材102页第九版),针对控制面板ControlPanel的状态建模,绘制ControlPanel状态图。SafeHome控制面板的行为说明参考如下:
在SafeHome的安全功能中控制面板类ControlPanel的状态如下:
户主敲击控制面板的键盘按键输入密码时,控制面板处于读取键入字符状态。每输入一个字符则执行输入密码与设置的密码长度(4位)比较,如果达到密码长度则验证密码是否正确;如果输入密码错误3次,则锁定控制面板;锁定时间超过120秒之后,再次允许户主输入;如果输入的密码正确,控制面板进入系统功能选择状态。  

(1)对象:状态面板ControlPanel 

(2)插入动作

3.提取字符串

可以参照2

3.编写之前三个范例的代码

java 

Error:Cannot run program “C:\Program Files\Java\jdk1.8.0_66\bin\java.exe“ (in directory “D:\ideaIU-2_d:\program files\java\jdk1.8.0_341\bin\java.exe" (_Cesium开发的博客-优快云博客

四、 实验五

(1)绘制边界类、控制类和实体类三种分析类,并绘制B-C-E包图

边界类:系统及其参与者的边界

控制类:系统的控制逻辑

实体类:系统使用的信息

1.边界类

通过用例图可以确定需要的边界类

(2)控制类

识别控制类

在系统开发早期,为一个用例定义一个控制类,负责该用例的控制逻辑

针对复杂用例,可为备选路径分别定义不同控制类

3.实体类

可以从以下中找到实体类

用例事件流(需求) 、业务模型(业务建模)、词汇表(需求)

实体类是名词、名词短语

只看这张ppt,可能不太懂,

例:

五、最后一次实验

有一个叫 HuntBird 的游戏,里面需要表示各种各样的鸟类。采用Bridge设计模式实现,针对各种鸟类,采用Bridge设计模式建模,如下图:
 

图片 2.png


注意:
(1)绘制类之前,首先设置默认语言为Java/C++(本例以Java说明)
(2)Bird类为抽象类
(3)display方法为抽象方法
(4)Bird具有保护类型的FlyBehavior属性;

1.设置接口<<Interface>>

(1)在Stereotype给出的列表中选择Interface

 

(2)

2.设置#号,即为Bird设置具有保护类型的FlyBehavior属性

3.设置抽象类

4.设置抽象方法

双击进入display

勾选abstract

2.按照以下给出的要求,扩展类图,并生成代码框架,实现代码,测试

(1)添加一个飞翔的行为的实现类UnableFly,实现fly接口方法:扑腾几下飞不起来;
(2)添加游泳的行为SwimBehavior接口,两个实现类AbleSwim,实现swim接口方法:鱼翔浅底;UnableSwim实现类实现swim接口方法:扑腾几下就淹死了:
(3)添加两个具体类:老鹰Eagle和企鹅Penguin,并实现相应代码,即构造函数和display抽象方法
(4)使用Client类,测试以上代码

实验 实验名称:业务建模 、实验目的 1.熟悉业务建模内容。 2.掌握如何使用建模工具rational rose绘制业务模型图。 3.学习使用Microsoft Project对题目进行进度安排。 二、实验器材 1.计算机台。 2.Rational Rose 工具软件。 三、实验内容 根据图书管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程,现系统分析部指派您完成该项任务。 要求: 1、创建业务用例模型。(参者--用例)。 2、用活动图来描述系统核心业务过程。 3、创建业务对象模型。 四、实验步骤 1. 系统当前业务描述 …………………………… 2. 系统业务用例模型 ………………………….. 3. 核心业务用例的活动图 …………………………. 4. 系统业务对象模型 ………………………… 五、 实验心得 实验二 用例建模 、 实验目的: 通过学生对提供的案例进行用例建模,熟练掌握用例建模技术。 二、主要实验仪器设备及环境 1. 计算机:安装有:操作系统为windows 2000,WindowsXP Professional; 2. 软件:National rose 三、实验内容: 1. 认真阅读案例的需求,根据其内容建立相应的用例模型; 2. 选择主要用例进行事件流分析,并把分析结果作为说明文档附在用例模型中; 四、实验步骤: 1. 系统参者 2. 系统用例 3. 系统用例模型 4. 用例文档(主要用例) 五、实验心得 (对用例模型、用例的粒度、关系的理解) 实验三 顺序图 、实验目的 1.理解顺序图的基本概念。 2. 掌握在Rational Rose中绘制交互图的操作方法。 3. 细化用例文档中的事件流,绘制顺序图。 二、实验器材 1.计算机台。 2.Rational Rose 工具软件。 三、实验内容 通过对系统动态模型部分的学习,根据用例建模阶段的用例图和用例文档,对对应的用例实现用顺序图来描述系统的动态特性。完成如下任务: 对选定系统中的主要用例进行动态建模(顺序图)。 四、实验步骤 1.在logic view中创建“分析模型”包,在该包中添加“用例实现”包,在“用例实现”包中添加跟踪关系图(类图),在跟踪关系图中描述用例用例实现的关系。为系统中主要的用例实现添加顺序图。 如下图: 2.在logic view中分别添加三个包(构造型:layer):边界层、控制层、实体层。主要根据用例文档来识别分析类(边界类、控制类、实体类)。如下图: 3.对主要的用例实现,根据细化用例文档中的主要事件流。 ……………………………………… 4.结合用例实现中识别出来的分析类,绘制顺序图。如下图: ……………………………………… 五:实验心得: 实验四 系统分析类图 、实验目的 1.识别分析类之间的关系、类的属性和操作。 2.使用ROSE软件构建系统的分析类图。 二、实验器材 1.计算机台。 2.Rational Rose 工具软件。 三、实验内容 根据***系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行分析,识别出分析类,识别类的属性和方法,构建每个用例的VOPC图,综合所有用例的VOPC图,构建系统的分析类图 要求: 1、针对每个用例实现构建其VOPC图 2、综合所有VOPC图,构建系统的分析类图 四、实验步骤 1. 对每个用例实现识别分析类,根据需求、常识识别类的属性,根据交互图识别类的方法,在每个用例实现下创建一个类图,命名为 **用例的VOPC图(借书用例VOPC) 2. 综合所有VOPC图,在系统分析包中创建一个类图,命名为系统分析类图 3. 通过用例实现顺序图中的消息映射出分析类的操作(如下图)。 ……………………………………. 4. 根据用用例文档映射出类的属性(如下图)。 ……………………………………….. 五、实验总结 实验五 实验名称:子系统和接口 、实验目的 1.基于分析阶段的BCE架构,抽取子系统。 2.根据包设计原则,对系统组织结构进行设计 。 二、实验器材 1.计算机台。 2.Rational Rose 工具软件。 三、实验内容 根据指定系统的开发进度,已经完成对系统用例分析,应用BCE架构构建了系统的组织结构。本次实验主要根据抽取子系统的方法设计子系统、子系统接口,然后根据打包原则重构系统组织结构 要求: 1、抽取子系统,设计相应接口 2、利用包图设计系统架构 四、实验步骤 1. 抽取子系统 子系统是种特殊的包,采用构造型《subsystem》扩展包的寓意,子系统内部是完全封装的,子系统提供接口对外服务。  你抽取子系统是依据什么角度(从那几个方面收取子系统?教材P263) ………文字描述子系统及抽取角度…………………… 2. 接口设计 接口是子系统对外提供的服务。接口采用构造型《interface》通过对类进行扩展表示 ……………子系统和接口的关系及几口中的操作,如P262 8-11图…….. 3. 更新软件架构 …………系统架构更新后的包图,如图8-17………………. 五、 实验心得 实验四 (系统静态模型)分析类图 、实验目的 1.识别分析类、关系、类的属性和操作。 2.使用UML工具软件构建系统的分析类图。 二、实验器材 1.计算机台。 2.Rational Rose 工具软件。 三、实验内容 根据***系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行分析,识别出分析类,识别类的属性和方法,构建每个用例的VOPC图,综合所有用例的VOPC图,构建系统的分析类图 要求: 1、针对每个用例实现构建其VOPC图 2、综合所有VOPC图,构建系统的分析类图 3、根据顺序图为类添加操作 4、根据需求和用例文档为类添加属性 四、实验步骤 1. 对每个用例实现识别分析类,根据需求、常识识别类的属性,根据交互图识别类的方法,在每个用例实现下创建一个类图,命名为 **用例的VOPC图(借书用例VOPC) 1) 添加VOPC图 2) 打开vopc图,把该用例中的边界类、控制类、实体类拖入其中,并建立关系 2. 通过用例实现顺序图中的消息映射出分析类的操作(如下图)。 把每个类收到的消息映射为该类的一个操作。下面以申请边界类为例: 3. 根据用用例文档映射出类的属性(如下图)。 1) 打开某个类的规格说明,选择“属性”选项卡,在编辑窗口中点击鼠标右键,在菜单中“Insert”,可以为类添加属性 . 2) 例: 4. 综合所有的VOPC图,创建完整的系统分析类图 1) 在分析模型包下添加一个类图:命名为系统分析类图 2) 打开系统分析类图,把边界类包、控制类包、实体类包中的所有类拖入系统分析类图中,由于类的属性和操作、类之间的关系已经在每个类图中已经描述,所以在系统分析类图中会自然体现出来。 五、实验总结
关于本教程 欢迎使用Rational Rose教程Rational Rose套可视化建模工具,用于在C/S,分布式企业环境下开发健壮的,有效的解决方案以满足真正的业务需求。本教程通过指导你步步地进行一个复杂的业务问题的真正实现解决,教给你如何使用Rose。 估计完成时间:完成整个教程需要花大约10小时。当然可以从任何部分开始和结束,剩下的部分以后再看。每部分还有完成该部分所需时间,例如前言部分需要大约5分钟。 示例模型:在本教程中,你将为一个叫做Classics的虚构的公司开发套POS系统。Classics公司是家快速成长的连锁店,经营经典的音乐、电影、图书。该公司的POS系统已经过时,现在必须作套新的定单处理和实现系统(OPFS)。随着本教程的不断深入,你将开发OPFS系统以帮助Classics公司更好的管理其商店和存货。 该教程适合我吗?如果你有点或没有Rational Rose知识,都可以使用本教程。当然你得对Windows (NT/95/98)操作系统、面向对象分析&设计(OOAD)概念、UML语言有些基本了解。 本教程是如何组织的?本教程是按照在业务和应用软件建模中的行为步骤来进行的,每部分是建立在前部分提出的知识的基础上的。但是每部分都是独立的单元。这就意味着你可以从任何部分开始,而跳过其他部分。例如,如果你懂业务建模,就可以跳过第3部分直接进行第4部分。 我可以按照各部分的顺序吗?按照各部分的顺序,你可以模拟一个真实世界的开发环境。看完了第1和第2部分的介绍材料,就自然地进入第3部分的OPFS的工作。在第3部分中你将开始Classic公司的业务建模。接下来进行建模应用需求以及实现。在最后部分里将产生代码以及正逆向模型和代码 每部分里面有什么?每个部分包含:  (一个解释你要干什么以及为什么干的)介绍  (一个完成该部分所需时间的)估计  (一个完成部分开发的)样例模型  (一个在该部分引入的特性的详细指导)‘试试’部分  一个已完成的模型  (一个在该部分所学的Rose的特性的)概要 使用样本模型 本教程采用手把手的方式教你如何学习Rational Rose。在每部分的开始,你要装载一个针对该部分的半成品模型。随着在该部分的步步执行指令,模型被细化并进入下一个开发阶段。如果你选择跳过某个部分,你仍然可以使用后面的模型,只要装载适当的样本模型
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值