UML与Rational Rose

采用b站动力节点视频学习:

【动力节点】UML与Rational Rose


视频:

什么是UML

Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于 1997 年一个 OMG 标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。面向对象的分析与设计(OOA&D,OOAD)方法的发展在 80 年代末至 90 年代中出现了一个高潮,UML 是这个高潮的产物。它不仅统一了 Booch、Rumbaugh 和 Jacobson 的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言

软件开发的时候,系统设计师/系统架构师给出 UML 设计图,程序员将来要根据 UML 设计图进行编码/开发。

需求图?

能够实现 UML 图的建模工具有哪些?

IBM Rational Rose

StarUML

MS Visio(比较在行的是流程图)
。。。。。。

常见的 UML

  • 类图(Class Diagram):描述类的信息(包括属性、方法),以及类和类之间的关系信息。

  • 用例图(Use Case Diagram):站在系统用户(系统角色)的角度分析系统存在哪些功能。

  • 时序图(Sequence Diagram):描述程序的执行过程,方法的调用过程,方法的返回值等信息。(程序是一步一步怎么执行的,怎么调用的。)

  • 状态图….

  • 活动图….

UML图之类图

什么是类图?

描述类的信息,以及类和类之间的关系信息。

打开IBM,canel
保存你会发现
他的文件的后缀是.md,即models类型

在这里插入图片描述
命名crm,保存

画一个类图

通常在Rational Rose工具的Logical View目录下实现类图,一般会创建一些目录用来组织这些类图,因为类可能会比较多。

在这里插入图片描述
右键——new——package——rename(类图)

在这里插入图片描述
类图——右键——new——class Diagram(类图)
这就是画图的

先来一个市场活动 的一个类图
在这里插入图片描述

双击就打开了一个画布
在这里插入图片描述
根据需求去设计:
在这里插入图片描述

点击右边的class,选中类——取名Activity

在这里插入图片描述
双击打开,属性和方法等
在这里插入图片描述
点到attributes——属性
在这里插入图片描述
把上面的属性加上
以id为例子:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这里是private
如果换成public会咋样?
会变成锁定状态:
在这里插入图片描述
不能更改数据

然后改回private

继续添加

也可以这样直接在下面enter,写
在这里插入图片描述
添加如下:
在这里插入图片描述
根据这个图会写代码
在这里插入图片描述
打开这个画布窗口就点击一下画布——市场活动就行了

UML图之泛化关系

类和类之间的关系包括 6 种情况:

先总结一下:

  • 泛化关系:(is a:Cat is an Animal——》继承)
  • 实现关系:(like a: Cooker like a FoodMenu)
  • 关联关系:(has a: Programmer has a Comper)
  • 聚合关系
  • 组合关系
  • 依赖关系

泛化关系

泛化关系(is a:Cat is a Animal→继承):类和类、接口和接口的继承。

打开Rational Rose,建立Cat类图和Animal类图

在这里插入图片描述
然后Cat类继承Animal类,所以空心箭头→指向Animal

选择左边工具栏——generalization

在这里插入图片描述

在这里插入图片描述
可以把代码写下:
选择左边——note
在这里插入图片描述
Cat继承Animal

选择左边项目锚注——association class
在这里插入图片描述

在这里插入图片描述

可以选中crtl+c粘贴到word中

UML图之实现关系

实现关系(like a:Cooker like a FoodMenu):类和接口的实现

定义一个接口FoodMenu

选择左边——interface在这里插入图片描述

在这里插入图片描述
右键——Options——stereotype display——label
以label形式显示

在这里插入图片描述
定义个Cooker类
在这里插入图片描述

然后Cooker实现FoodMenu

左边——realize
在这里插入图片描述
在这里插入图片描述
代码实现——implements(实现)
在这里插入图片描述

选择左边项目锚注——association class
在这里插入图片描述
链接代码
在这里插入图片描述

UML图之关联关系

关联关系(has a:Programmer has a Computer)

定义一个程序员类Programmer 和一个电脑类 Computer
在这里插入图片描述

有一个方式描述,有联系

使用左边——undirectional association(不定向联系)

在这里插入图片描述

双击箭头打开——例子:
描述之间数量关系:
一个程序员·
在这里插入图片描述
在这里插入图片描述
一个电脑
在这里插入图片描述
在这里插入图片描述

还可以描述角色:

电脑——coder
在这里插入图片描述
在这里插入图片描述
箭头的方向不能乱变的

上面是通过程序员可以找到电脑的

实线箭头表示:通过Programmer可以找到Computer,
Programmer对象当中有一个Computer的属性。
public class Programmer{
	Computer coder;
}
public class Computer{
}

Programmer里面的定义的电脑必须是它的名字——coder
因为你前面定义过了

在这里插入图片描述

自关联

定义个人类Person类,《人类》
在这里插入图片描述
然后属性加一个名字name
在这里插入图片描述
然后选择undirectional association(不定向联系)
关联
自己
在这里插入图片描述
描述角色和定义数量

在这里插入图片描述
在这里插入图片描述
然后代码note
在这里插入图片描述

双向

定义人类类Human
属性定义好:名字和性别
在这里插入图片描述
先搞一个指向自己的单箭头
角色添加指向wife
在这里插入图片描述

但是你通过妻子也能找到你才对
所以应该是双向的
在Human上定义角色husband在这里插入图片描述
在这里插入图片描述
如果要使用双向的话,把选项上的Navigable取消掉

在这里插入图片描述
在这里插入图片描述
补充上代码 定义类和属性
在这里插入图片描述

UML图之聚合关系

聚合关系描述的是整体和部分的关系,聚合关系是比较特殊的关联关系

比如:一个教室当中有多个学生,教室和学生之间的关系就是整体和部分的关系;

在聚合关系中,整体的生命周期不会决定部分的生命周期,例如:教室没了,学生还在,或者说学生走了,教室还在

例子:

定义一个ClassRoom类图和Student类图
在这里插入图片描述

然后关联undirectional association(不定向联系)
在这里插入图片描述

双击箭头改成聚合

先取消Navigable
在这里插入图片描述
在ClassRoom大的界面上勾选aggregate(集合的意思)
在这里插入图片描述
在这里插入图片描述
定义数量1对多
1个教师多个学生
定义1——0…n
在这里插入图片描述
这里还定义了角色students

最后把代码贴上:
在这里插入图片描述

UML图之组合关系

组合关系可以看做是一种特殊的聚合关系,整体的生命周期决定部分的生命周期,部分是依附在整体上面的,部分离开了整体是无法“存活的”。

例如:人和四肢的关系。

部分依赖整体,整体决定部分

例子:

先定义人Person类图和肢体类
在这里插入图片描述
然后关联undirectional association(不定向联系)在这里插入图片描述
定义数量关系
1个人可能有四个到0个肢体,残疾人。。。。。
1对 0…4

先取消Navigable
整体是人,所以人那里的aggregate选中
在这里插入图片描述

在这里插入图片描述
然后再选中by value
在这里插入图片描述

在这里插入图片描述
表示组合关系

定义个角色

在这里插入图片描述
写代码:
在这里插入图片描述

UML图之依赖关系

依赖关系是所有关系中最弱的一种,这种关系通常体现在类和局部变量之间的关系。

例子:

定义一个类test和市场活动clue
这是泛化
在这里插入图片描述

定义的Clue是在方法里面的

如果挪出来

在这里插入图片描述

这是关联关系 has a

但是如果是在方法里面的,所以是依赖的,比较弱

用例图 use case diagram

什么是用例图 ?

站在系统用户(系统角色的角度分析系统存在哪些功能?

实现用例图的时候,需要先进行系统角色的抽取。

Rational Rose 工具当中一般会在 Use Case View 当中实现用例图。

在这里插入图片描述

怎么实现用例图?

定义角色

先新建一个包:package 命名:系统角色
在这里插入图片描述
再new——actor
在这里插入图片描述

用例图

新建个package 用例图

在这里插入图片描述

再新建一个package 部门管理
在这里插入图片描述

下面new——use case Diagram
画布

打开

在这里插入图片描述
把上面定义的管理员的角色拖过来
在这里插入图片描述
拖入用例 左边——useCase

在这里插入图片描述
定义这几个用例:
在这里插入图片描述
点击左边 关联undirectional association(不定向联系)

联系起来

在这里插入图片描述
这就是用例图

!UML图之时序图

最重要的!!!!! 写代码用

什么是时序图

时序图当中描述了方法的调用过程,程序的执行流程,以及方法执行结束的返回值情况。

怎么实现时序图呢?

时序图通常会在 Rational Rose Logical View 中实现。

用例图当中的一个用例会对应时序图当中的一个时序图

时序图描述的是一个功能具体是怎么实现的,流程是什么?

建包这样
在这里插入图片描述
新建一个画布 命名查看部门列表

在这里插入图片描述
建立存放系统类的包

在这里插入图片描述
在这里插入图片描述

要实现的是查看部门列表的时序图
那就是系统管理员实现
拖入
在这里插入图片描述
按照咱们设置的顺序

先是控制器,点击它的画布
定义类
在这里插入图片描述
然后拖进去
在这里插入图片描述
调用控制器的

使用左边——object mssage
在这里插入图片描述
调用的是里面的service方法
在这里插入图片描述
在这里插入图片描述
点击它右键new出来
在这里插入图片描述

这样控制器里面就有了

在这里插入图片描述
定义参数,返回void
在这里插入图片描述

在这里插入图片描述
会发送请求 代码
在这里插入图片描述
在这里插入图片描述

service点击调用自己

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在调用
在这里插入图片描述

new出来dolist

在这里插入图片描述
属性一样的在这里插入图片描述
在这里插入图片描述
控制器调用service

转到业务层service:

定义接口
在这里插入图片描述

拖进去

在这里插入图片描述
关联起来,定义方法getall
在这里插入图片描述
方法new出来

在这里插入图片描述
设置属性
在这里插入图片描述
Dept是部门,所以要转到领域模型创建

部门类Dept
在这里插入图片描述
回到主界面
在这里插入图片描述
会调用dao

在dao中定义接口

在这里插入图片描述
拖进去
然后
在这里插入图片描述

new 出来

dao里面
在这里插入图片描述
转到主界面
object用例
定义DB
在这里插入图片描述
关联
在这里插入图片描述

返回数据
在这里插入图片描述
在这里插入图片描述
在控制器这里自调用

转换格式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:

在这里插入图片描述

小人:动作的发起人
矩形/小圆圈:对象
实线箭头:调用
虚线箭头:返回
柱状:对象的生命周期,柱状不能断,在同一个流程当中不能断。
回折线:当前类的方法执行过程中调用自己当前类中的其它方法。

举个例子:
在这里插入图片描述

public class A{}
public class B{
public void m1(){}
}

这时候调用B中的m1
在这里插入图片描述

public class A{}
public class B{
public void m1(){
C c = new C(); 
c.m2();
}
}

在这里插入图片描述

public class A{}
public class B{
public void m1(){
C c = new C(); 
c.m2();
}
public void m4(){
......
}

}

在这里插入图片描述
然后自己调用了

public class A{}
public class B{
public void m1(){
C c = new C(); 
c.m2();
m4();
}
public void m4(){
}
}

然后到c

public class A{
public void XXXX(){
B b = new B(); b.m1();
}
}
public class B{
public void m1(){
C c = new C(); c.m2();
m4();
}
public void m4(){
......
}
}
public class C{
public void m2(){
m3();
}
public void m3(){
....
}
}

在这里插入图片描述

实验一 实验名称:业务建模 一、实验目的 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) 打开系统分析类图,把边界类包、控制类包、实体类包中的所有类拖入系统分析类图中,由于类的属性和操作、类之间的关系已经在每个类图中已经描述,所以在系统分析类图中会自然体现出来。 五、实验总结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值