从零开始的UML

一、UML

1、什么是UML
项目开发的说明书(设计图)

2、UML是做什么的
帮助建立软件开发过程和各种模型
主要目的是为了让开发者之间进行有效的交流
开发者与用户之间的交流
开发者与设计者之间的交流
开发者与开发者之间的交流
开发者与管理者之间的交流
适合大型项目和大型团队的开发

3、UML的应用领域
UML的目标是以面向对象的方式来描述任何类型的系统,常用于建立软件的模型。
4、我对UML的看法
不建议用UML生成代码
没有完美的UML图,够用就行,图是死的,人是活的
UML主要功能是为了更好的让开发团队与用户之间进行交流沟通。
现阶段学习UML目的以应用、看懂为主,有利于后期的工作,以画图为辅。
但需要长期学习,为后期成为系统分析师、架构师、产品经理、项目经理打下基础。

二、Rational Rose 四种视图与UML的8种图形关系

Rose 启动后自动创建四种视图
用例视图:Use Case View
帮助理解和使用系统,这类图展示了系统的参与者和用例是怎么相互作用的,包括了系统中的所有角色
用例图:Use Case Digram
时序图:Sequence Digram
协作图:Collaboration Digram
活动图:Activity Digram
这种视图的主要使用都是用户、分析人员、项目管理人员
逻辑视图:logical View
逻辑视图关注的是系统如何实现用例中提出的功能,他提供系统详细图形描述了组件之间如何关联。
类图:Class Digram
状态图:statechart Dirgam
这种视图的主要使用者是开发人员(开发人员包括:程序员分析员、需求分析师、测试工程师、项目经理)
构件视图:Component View
这种视图关注的是代码模版之间的关系,通过组件视图可以知道哪些代码是组件,哪些是代码库,哪些是运行组件。会默认有一个 Component图表。
部署视图:Deployment View
这种视图关注的是系统的实际部署,进程和设备间的实际链接
这种视图使用者是用户和软件的发布人员

三、用例图 详细表示所有的功能需求,不考虑细节

1、用例图的作用
主要用它来描述需求,画图时要从用户的角度出发,主要用于与用户之间的交流
2、要例图的要点
正确反应用户的需求
每个用例的内部实现
细节不是本阶段要考虑的问题
3、用例图包括
参与者
用例
用例之间的关系
4、如何确定参与者
谁使用系统
谁负责启动、谁负责关闭
谁查询数据
谁提供数据
谁安装、谁升级
5、什么是用例
是系统的使用过程,一个用例就是一个功能需求

四、类图 :主要表示类与类之间的关系,不详细考虑类的属性和方法

1、类图的主要作用
主要用来描述类的内部结构和类与类之间的关系
类图中不显示暂时性的信息,是面向对象建模时的主要组成部分
2、类图的主要包括
名称:类名
属性:类的成员变量
访问权限
变量名
类型
操作:类的成员函数
访问权限
函数名
参数名
参数类型
返回值类型

职责:说明此类具体负责的任务,解决什么问题
类之间的关系
继承关系:
是一个类继承另一个类的功能,并增加自己新功能的能力,使用带空心三角形箭头的实现来表示继承关系,子类指向父类。

实现关系:
从语法上体现也是一种继承,是借口类与实现类之间的关系,使用空心三角形箭头的虚线来表示实现关系,实现类指向接口类,也可以说是子类指向父类,父类中的函数定义为纯虚函数,子类继承后覆盖
依赖关系:
类A中使用到了类B(类A中的函数的参数或返回值使用到了类B),但这种使用是临时,偶然的,是一种非常弱的关系。
使用带箭头的虚线来表示继承关系,依赖者指向被依赖者

关联关系:
是一种强依赖关系,类A的属性(成员变量)是类B。用箭头和实线来表示关联关系,依赖者指向被依赖者
聚合关系:
聚合关系是一种关联关系的特例,他体现的是整体与部分
整体与部分之间是可分离的,它们具有各自的生命周期
从代码层面来讲与关联是一致的
空心的菱形和箭头实线来表示聚合关系
菱形指向整体,箭头指向部分

组合关系:
组合关系也是关联关系的一种特例,这种关系比聚合更强,也被称为强聚合,同样也体现出整体与部分,但此时的整体与部分是不可分割的
从代码的层面来说也是一样的
实心的菱形和箭头实线来表示组合关系
菱形指向整体,箭头指向部分
//从代码实现层面只有继承、包含、依赖。

用例图和类表示项目中静态的关系,因此被称为静态图

五、时序图

用来表示对象之间的关系,同时强调对象之间的交互
时序图向用户表示事件随着时间的推移,清晰的可视化轨迹
主要表示对象之间消息的发送顺序,只考虑正常情况
时序图用来表示项目中的某个操作中如何进行的,具体的步骤是什么

六、状态图

用来表示对象的状态变化,用于帮助开发人员理解系统中对象的行为
主要有状态,生命周期,条件,状态转换,事件和动作

七、活动图

活动图的本质就是流程图,他描述了系统的活动、判断点和分支
侧重于操作而不是对象,重点表示逻辑变化
一个动作的流程图一般包括起点、终点、操作
泳道:用于多种角色参与一个过程,一个活动只能属于一个泳道

八、协作图

  • 描述对象之间的交互关系,强调参与交互的各对象的组织
    需要按照组织对控制流程进行进行建模时选择画协作图
  • 协作图与时序图的区别
    时序图描述了交互过程中的时间顺序,但没有表达对象之间的关系
    协作图描述了对象间的关系但时间顺序必须从时序图中获得
    合格的协作图和时序图语义相同,可互换而不丢失信息

猜你喜欢

转载自blog.csdn.net/weixin_45050225/article/details/100344909