UML学习笔记

  •      系统的创建步骤:  分析、设计与实现比例

startUML架构图 staruml模块结构图_角色名

  •     在分析阶段,需向行业专家请教,需要问问自己,谁是系统的最终用户

 

  •    UML(统一建模语言)是一种系统建模方法,有两个主要构件 -- 结构图和行为图
  •      工具:StarUML

 

一、用例图

 

1、说明

 

<业务需求>

       1.2  解析一个用例图,我们可以发现它包含4个基本组件:

  •           系统
  •           参与者
  •           用例(功能)
  •           关系

startUML架构图 staruml模块结构图_用例_02

多个参与者与用例之间有同一关系,可以重新考虑为用户选择的在系统中扮演的角色的名称。使名称更为广泛化,以一个参与者取代重复的参与者。

 

2、包含用例图

 

虚线和箭头连接,起始处为包含用例,终止处为被包含用例。包含关系用于表示用例为执行其功能从其他用例引入功能。(  重用某些功能)

startUML架构图 staruml模块结构图_用例_03

 

     教师必须记录成绩,更新成绩。这两个用例都从一个用例包含了一项为save grades的公用功能,成绩总会被保存。

 

3、 扩展关系(继承)

 

     表示用例可以通过其他用例得到扩展

startUML架构图 staruml模块结构图_角色名_04

 

     Notify guardians 用例是添加到save grades 功能中的一项功能。

     与包含关系相比,用例必须包含被包含用例,而扩展关系则有是否使用被扩展功能的选择权。

 

4、创建用例图步骤

 

     找出系统中的参与者和用例

     

       区分用例的优先次序

 

     细分每个用例(描述)

 

     建立用例模型结构

 

     建立用户界面的原型

 

PS: 软件开发过程

 

      

startUML架构图 staruml模块结构图_角色名_05

泛化


startUML架构图 staruml模块结构图_角色名_06

二、活动图

 

     用于面向对象的系统的不同组件之间建模工作流 

 

1、作用

  •      进一步规划用例
  •      标识用例的前后条件
  •      发现新用例

2、组件:

     

  •      活动,指示动作
  •      状态,指示系统当前状态 (在StarUML里面,状态和活动是同一个标识,其实状态图应该是一个矩形四个角为小圆弧)
  •      转意,显示从一种状态到另一种状态的控制流

实心黑点表示,结束状态以  带有圆圈的实心黑点表示。

startUML架构图 staruml模块结构图_控制流_07

     

startUML架构图 staruml模块结构图_用例_08

  •      控制点,用来允许控制流仅沿着满足预置条件的方向


startUML架构图 staruml模块结构图_用例_09

  •      决策点,对控制流继续的方向做出决策

startUML架构图 staruml模块结构图_角色名_10

  •      事件和触发器,强制控制流从一个活动到另一个活动的活动(类似JAVA中的方法)

startUML架构图 staruml模块结构图_控制流_11

  • (强烈推荐在模型中涉及多个对象事使用游泳道)

startUML架构图 staruml模块结构图_角色名_12

  •      分岔联络

startUML架构图 staruml模块结构图_控制流_13

 

 

三、 顺序图

 

由于StarUML对顺序图的支持不是很好,本节最好贴上笔抄

 

1、组件:

     

  •      活动对象,可以是系统的参与者或者任何有效的系统对象

startUML架构图 staruml模块结构图_用例_14

 

  •      消息, 用来说明顺序图中不同活动对象之间的通信

startUML架构图 staruml模块结构图_角色名_15


               消息可以包含条件一边限制他们只在满足条件对才能发送

startUML架构图 staruml模块结构图_用例_16

 


               消息包含四种类型:

                         

                           同步  :  指示在消息完成之前,工作流被中断        

                           

                           返回  :  显示控制流返回到调用的活动对象

     

                           异步  :  用于被返回的消息,活动对象不等待来自该消息的响应

 

                         简单  :  在同步和异步之间没有区别

startUML架构图 staruml模块结构图_用例_17

 


                         即时创建对象 :

                                                    

startUML架构图 staruml模块结构图_角色名_18

                 

2、创建顺序图4项任务:

     

  •      确定需要建模的工作流
  •      从左到右布置对象
  •      添加消息和条件以便创建每一个工作流
  •      绘制总图以便连接各个分图

3、附图(笔抄):

startUML架构图 staruml模块结构图_用例_19

 

startUML架构图 staruml模块结构图_用例_20

                   

startUML架构图 staruml模块结构图_角色名_21

 

 

四、 类图

 

1、作用:

  •     为了更加详细地展示产品
  •    提供指示完成有效功能的路径地图所需的信息

2、组件

 

  • 类的标记符

startUML架构图 staruml模块结构图_用例_22

  • 关系

startUML架构图 staruml模块结构图_用例_23

  • 多重性,一个类的多少对象与另一个类的一个对象相关

startUML架构图 staruml模块结构图_用例_24

     上例描述了一个Teacher教授1到无限多个班级,一个Student属于4-6个班级,一个Class有10-30个学生

1,3..*(除2之外的自然数); 2,4,6,8,10(大于0小于等于10的偶数)

 

  • 角色,在类图中使用角色可以帮助读者理解第一个类对于第二个类的作用,角色与多重性显示在相同的位置

startUML架构图 staruml模块结构图_角色名_25

  • 对象的标识符

startUML架构图 staruml模块结构图_控制流_26


     对象的特性值显示在特性名之后,中间用等于号连接

 

  • 包, 一种把类分组为通用类目的方式

   

startUML架构图 staruml模块结构图_控制流_27

startUML架构图 staruml模块结构图_用例_28

       Developer属于Development包

 

  • 数据类型

startUML架构图 staruml模块结构图_角色名_29

 

3、步骤

     创建类图两个反复步骤就是

  •            确定类及其关联
  •            确定特性和操作

startUML架构图 staruml模块结构图_用例_30

 

 

五、 协作图

 

1、对象实例的3种标记符

  • 未指示类的实例

     

startUML架构图 staruml模块结构图_控制流_31

  •      完全限定对象,包含对象名和实例名


      

startUML架构图 staruml模块结构图_控制流_32

  •      对象实例未命名,带有类名的实例


 

 

2、协作图中对象实例角色的4种标记符

  •      不带对象名的角色名

startUML架构图 staruml模块结构图_角色名_33


  •      不带对象名,带角色名和类名

startUML架构图 staruml模块结构图_角色名_34


  •      带有对象名和角色名

startUML架构图 staruml模块结构图_控制流_35


  •      完全限定

startUML架构图 staruml模块结构图_控制流_36


 

3、类角色的3种标记符

  •      不带类名的角色名

startUML架构图 staruml模块结构图_角色名_37

 

  •      带角色名和类名

startUML架构图 staruml模块结构图_用例_38

 

  • 不带角色名的类名


 

4、链接

 

     “parameter”固化类型指示一个对象是另一个对象的参数,而"local"固化类型指定一个对象在其他对象中具有局部作用域

startUML架构图 staruml模块结构图_控制流_39

 

5、消息

  •      同步:

    startUML架构图 staruml模块结构图_角色名_40

  •      异步:

    startUML架构图 staruml模块结构图_用例_41

  •      Flat:

    startUML架构图 staruml模块结构图_角色名_42

 

startUML架构图 staruml模块结构图_角色名_43

 

6、序列化消息

     

startUML架构图 staruml模块结构图_用例_44

 

7、迭代

startUML架构图 staruml模块结构图_控制流_45

  对于每一个ObjectB, Message都会从ObjectA发送到对应的ObjectB

startUML架构图 staruml模块结构图_用例_46

  Message被从ObjectA到ObjectB 发送了5次

 

 

8、如何建立协作图

 

  •      确定属于协作图的元素
  •      建模这些元素之间的结构化关系
  •      建模实例层的协作图

startUML架构图 staruml模块结构图_角色名_47