关于部分UML图形介绍

关于部分UML图形介绍

一、用例图:

 1、什么是用例图:用例图是指由参与者(Actor用例(Use Case边界以及它们之间的关系构成的用于描述系统功能的视图,用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型图。用例图是系统的蓝图。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。用例图在我们进行软件分析阶段设计阶段都有使用

2、用例图的作用:用例图是需求分析中的产物,可视化的表达了系统的需求,根据直观的、规范,等优点,克服了纯文字性说明的不足,主要是描述参与者和用例之间的关系,帮助开发者可视化的了解系统功能,大量减少了开发人员在交流上的障碍,便于对问题达成共识。

 3、构成要素:(1)参与者:指存在于系统外部并直接与系统交互的人、系统、子系统或类的外部实体的抽象(每个参与者可以参与一个或多个用例)

                        (2)系统边界:指系统与系统系统之间的界限(一个系统本身可能是另一个更大系统的系统的组成部分,所以需要使用系统边界来进行

                                   区分开来),系统边界以外的同系统与系统相关联的其他部分,称之为系统环境。

                         (3 )用例:任何用例都不能在没有参与者的情况下独立存在(代表系统的某项完整的功能,在图形中使用椭圆型表示);知道用例的三个重要元素(识别用例用例粒度用例规范);用例之间的关系: 包含(带箭头虚线段)、扩展(点箭头虚线段)、泛化(三角箭头子用例指向父用例)。

 扩展:如果一个功能在完成的时候,偶尔会执行另外一个功能,使用扩展关系表示。

泛化:表示同一个业务的不同技术实现。其实就是继承关系的一种。

包含:是指一个用例可以含有其他用例具有的行为。

 

4、图形示范:示例是老师在成绩管理系统中对学生的成绩进行相关操作和学生进行登录查看成绩。

                                            

二、类图

1、什么是类图:由许多(静态)说明性的模型元素(例如类、包和他们之间的关系)组成,显示出接口以及它们之间的静态结构关系,用在面向对象软件开发的分析和设计阶段,描述系统的静态结构。 详情可查看(https://blog.csdn.net/u010648555/article/details/54379051)

 

2、类图的作用:1、类图是一种静态结构图,描述了系统的类的集合,类的属性和类之间的关系,简化人们对系统的理解。

                           2、是系统分析和设计阶段的重要常务,是系统编码和测试的重要模型,

                           3、关系线条图:

                                

关联:类与类之间的连接,使类知道一种方法(类名、属性和方法)。

依赖:类与类之间的连接,标识一个类依赖于另一个类。类图如果A依赖于B,则B体现

            为局部变量,方法的参数或静态方法的调用。

继承、实现(一般化关系):类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。

聚合:是关联关系的一种,是强的关联关系,是整体和个体的关系,管理关系的两个类处于同一层次

          上,而聚合关系两个类处于不同的层次,一个是整体,一个是部分。

组合(合成):比聚合关系强的关系,要求普通的聚合关系中代表整体的对象负责代表部分的对象的生

                         命周期,合成关系不能共享;它强调生命周期。只有在整体存在的条件下,部分才能存在

                          如果整体不在,部分不能单独存在。整体拥有部分的生命周期。

 

4、图形示范:a)Person类有三部分组成,分别是类名、属性和操作方法:两个子类(USAman和ChineseMan)继承Person类。

                        b)类( LandRover )和接口(Car):LandRover实现Car。

                        c)ChineseMan和LandRover属于依赖关系:ChineseMan依赖于LandRover。 

                        d)DiquMan和ChineseMan属于关联关系:DiquMan知道ChineseMan属性和方法。

                        e)一辆LandRover,有轮胎(Tire)和发动机(Engine)属于聚合关系,但是轮胎(Tire)和发动机(Engine)可以脱离LandRover而存在。

                        f)DiquMan 和大脑(Head)属于组合关系:DiquMan可以代表Head的生命周期,Head不能脱离DiquMan而存在。

                                                

三、时序图

1、什么是时序图:又名序列图、循序图,是一种UML交互图。在详细设计阶段它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。 它可以表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类操作或状态机中引起转换的触发事件。  

 2、作用:1、展示对象之间交互的顺序。将交互行为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展示对象之间的交互; 

                 2、相对于其他UML图,时序图更强调交互的时间顺序; 

                 3、可以直观的描述并发进程。

                     

3、组成元素:时序图中包括如下元素:角色对象生命线控制焦点消息

                       1、角色(Actor)系统角色,可以是人或者其他系统,子系统。

                       2、对象(Object)对象代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表类角色。对象一般包含以下三种命名方式:

                            第一种方式包含对象名和类名。

                            第二种方式只显示类名不显示对象名,即为一个匿名对象。

                            第三种方式只显示对象名不显示类名。

4、生命线(Lifeline):生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象和底部中心都有一条,对象在生命线上的两种状态:休眠状态 、激活状态(激活用一个细长的矩阵框(在生命线上)表示当一个对象处于激活期时,表明该对象正处于执行某个动作)。

5、控制焦点(Activation):控制焦点代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期。它可以被理解成C语言语义中一对花括 “{}”中的内容。

6、消息(Message):消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信。

                                  同步消息=调用消息(Synchronous Message

                                  消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。

                                  异步消息(Asynchronous Message

                                  消息发送者通过消息把信 传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。

                                  返回消息(Return Message

                                  返回消息表示从过程调用返回。

                                  自关联消息(Self-Message)

                                  表示方法的自身调用以及一个对象内的一个方法调用另外一个方法。

7、组合片段:组合片段用来解决交互执行的条件及方式。它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。如图所示:

                                                     

片段类型

名称

说明

Opt 选项 包含一个可能发生或不可能的序列。可以在临界中指定序列发生的条件
Alt 抉择

包含一个片段列表,这些片段包含备选消息序列。 在任何场合下只发生一个序列。

可以在每个片段中设置一个临界来指示该片段可以运行的条件。 else 的临界指示其他任何临界都不为 True 时应运行的片段。

 如果所有临界都为 False 并且没有 else,则不执行任何片段。

Loop 循环

片段重复一定的次数。可以在临界中指示片段重复的条件

Loop组合片段具有“Min”“Max”属性,他们只是片段可以重复的最小和最大次数。默认值是无限制

Break 中断 如果执行此片段,则放弃序列的其余部分。可以使用临界来指示发生的中断条件。
Par 并行 并行处理。片段中的事件可以交错。
Critical 关键 在Par或Seq片段中。指示此片段中的消息不得与其他消息交错。
Seq 弱顺序 有两个或更多操作数片段。 涉及同一生命线的消息必须以片段的顺序发生。 如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。
Strict 强顺序 有两个或更多操作数片段。 这些片段必须按给定顺序发生。

            

8、图形示例:描述的是学生登陆系统,输入账 密码后查询用户列表,把返回找到的用户列表放到用户对象,将对象存储在用户session中,然后根据用户Id查找对应的角色(比如老师或者学生),再返回用户对应角色跳转到系统首页,从session中取出用户信息并显示。

                                                       

 

四、活动图

1、什么是活动图:活动图(activity diagram,动态图)是阐明了在面向对象软件开发的需求分析阶段业务用例实现的工作流程。业务工作流程说明了业务为向所服务的 业务主角提供其所需的价值而必须完成的工作。业务用例由一系列活动组成,它们共同为业务主角生成某些工件。工作流程通常包括一个基本工作流程和一个或多个备选工作流程。huo

2、活动图的作用:用于研究实现业务目标时所要执行的各项任务或活动的顺序安排。活动既可以是活动执行的任务,也可以是自动执行的任务。它可完成一个工作单元。

                              描述了一次行为活动的流程,主要强调了行为活动的顺序和条件控制。

                              描述一个操作的执行过程中所完成的工作或 者动作。

                              描述对象内部的工作显示如何执行一组相关的动作,以及这些动作如何影响周围对象。

                               描述用例的执行处理多线程应用。

 3、组成:

开始(inital)和结束状态(final);

                                  

 活动(action):标示动作;

                              

                                                        

控制流(control flow):链接活动;

                     

决策(decison):条件判断;

                          

合并(merge):任意一个节点到达该点都继续往下走,不管其他分支;

                                   

泳道(swimlanes):模型中存在多个对象时候使用比较适合分为水平和垂直;

                       

分岔汇合(join):所有分支都到该点时候才继续往下走,类似CountDownLatch.await后在继续往下走;

                                           

分流(fork):类似fork多个线程执行放入线程池执行;

                                      

接受信 (acceptsignal):

                                     

4、图形实例:实例描述的是在一个订单系统中进行下单。首先客户提交订单后系统生成送货单,同时用户选择支付方式,放弃支付则退出,

                       如果支付成功,系统进行收款后把信息发给贡供应商进行送货,同时修改订单状态为已接单,在就是供应商是否送货完成,完

                       成就退出,没有完成就返回供应商送货。

                                               

 

五、状态图

1、什么是状态图:描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应。

                               在详细设计阶段,我们通常创建一个UML状态图是为了以下的研究目的:研究角色子系统、或组件的复杂行为。

               (想了解具体可查看https://baike.baidu.com/item/%E7%8A%B6%E6%80%81%E5%9B%BE/4925373r=aladdin)  

 

2、状态图的作用:重点在于描述对象的状态及其状态之间的转移,用于显示状态机(它指定对象所在的状态序列)、使对象达

                               到这些状态的事件和条件、以及达到这些状态时所发生的操作,当行为的改变和状态有关时才创建状态图。

                                一般可以用状态机对一个对象的生命周期建模。

 

3、状态图元素:(详情可查看https://blog.csdn.net/w36680130/article/details/81014032)

a)状态:指在对象的生命周期中的某个条件或者状况,在此期间对象将满足某些条件、执行某些活动活活等待某些事件。

                所有对象都有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。

                                              初态和终态(Initial and Final States
                                              初态用实心圆点表示,终态用圆形内嵌圆点表示。

b)转移(Transitions):转移(Transitions)是两个状态之间的一种关系,表示对象将在源状态(Source State)中执行一

                                         定的动作,并在某个特定事件发生而且某个特定的警界条件满足时进入目标状态(Target State

                                        事件标记(Trigger:是转移的诱因,可以是一个信 ,事件、条件变化(a change in some condition)和时间表达式

                                        警界条件(Guard Condition:当警界条件满足时,事件才会引发转移(Transition)。

                                        结果(Effect:对象状态转移后的结果。

 

c)动作(State Actions:动作(Actions)是一个可执行的原子操作,也就是说动作是不可中断的,其执行时间是可忽略不计的。

d)自身转移(Self-Transitions):状态可以有返回自身状态的转移,称之为自身转移(Self-Transitions)。

e)组合状态(Compound States):嵌套在另外一个状态中的状态称之为子状态(sub-state,一个含有子状态的状态被称作组合状态(Compound States)。

f)进入节点(Entry Point):由于一些原因并不会执行初始化(initialization),而是直接通过一个节点进入状态,则此节点称之为进入节点(Entry Point)。

g)历史状态(History States:历史状态是一个伪状态(Pseudostate),其目的是记住从组合状态中退出时所处的子状态,当再次进入组合状态,可直接进入

                                                       这个子状态,而不是再次从组合状态的初态开始。

h)并发区域(Concurrent Regions):状态图可以分为区域,而区域又包括退出或者当前执行的子状态。说明组合状态在某一时刻可以同时达到多个子状态。

 

3、图形实例:

1、购物车生成订单进入状态【订单成立】 

2、系统检测订单已经付款并且库存量足够,则进入状态【备货中】  

3、物流发货,进入状态【发货中】,状态转移为【发货中】后,需要做的操作有“扣除商品可接单量及移除购物车中的购买资料” 

4、发货完毕后,状态分为【出货确认】和状态【出货失败】,如果状态是【出货失败】,则【结束】,如果状态为【出货确认】,则进入下一步。 

5、配货人员填写实际配达日期,进入状态【出货完毕】。 

6、如果”已付款、鉴赏期结束日期 小于等于 [系统日期]”,则【订单成立】

                            

 

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91308 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月28日
下一篇 2020年11月28日

相关推荐