UML各种图的 作用 元素 做法

课后小结与习题集锦

  • UML简介

  • 理解面向对象:

  • 运用面向对象

  • 关系

  • 聚集,组成,接口和实现

  • 介绍用例

  • 用例图

  • 状态图

  • 顺序图

  • 协作图

  • 活动图

  • 构建图

  • 部署图

类图初步

  • 类构成:1.三部分:名字(首位大写,其他单词首位大写),属性(其他单词首位大写),方法(其他单词首位大写)       
  • 包:UML组织图形元素的单位:在类名前面加“包名::”称为路径名

  • 属性:类的属性在类的每一个对象中都有具体值+类的属性可以加类型和缺省值

  • 操作的型构:有参数,有返回值(通常在分析完,做设计的时候,型构是对编码人员比较有用的信息)

  • 如果表达多个类之间的关系,可以只用类名,下面两个框是空的。同样地作用,还有类的省略表示法。

  • 职责:描述类的属性和能完成的任务。画图就在下面再填一框。(类的职责是消除二义性的一种非形式化的方法)

                                                                 

  • 约束:对类的属性加约束。在类的外面,花括号里面。

                                                               

  • 注释:

                                                                 

  • 课后习题:

                                          

关系

  • 关联:注意加关联的名字和方向+可以加在关联中的角色+标出关联的另一个方向+多个类关联

                   

  • 关联上的约束:约束类+表示“或”关系

                

  • 关联类:关联也可以做成类,并且用虚线和关联联系起来

                                        

  • 对象也可以有关联:关联名要和对象名一样加下划线

                                           

  • 多重性:*表示many, a..b区间,  a,b表示或

                                                             

 

  • 限定符(ID):本来是一对多的关系,限定起来就变成一对一的关系。

                                                       

  • 自身关联:有多个角色的时候,可能就会自己和自己连。     

                                                         

  • 继承:在UML中就是泛化。(是三角空箭头)(在父类中已经指明的属性和操作在子类中可以不指明)(没有父类的是基类或根类)(只有一个父类是单继承,否则是多继承)

                                                                

 

  • 多态:即允许将子类的指针赋值给父类的指针。(即一个方法有不同的更深的具体实现)
  • 抽象类:不提供实例的类。类名用斜体即可。

                                                                

  • 依赖:一个类的型构中使用了另一个类的定义。

                                                       

  • 聚集:一个类是由几部分组成(由空心菱形箭头表示)+聚集上的约束(or)

       

  • 组成:类必须由某些类组成(实心箭头表示)(部分体只能属于一个整体)

                                                              

  • 组成结构图:上面两个是直接展示由谁组成,但要展示组成元素间的关系的话            

  • 课后习题:(暂略)

                                           

 

接口和实现

  • 接口:用一个矩形框表示,上面有《interface》的字样,和类用空心三角虚线连接(和继承有点像)+接口可表示成一个圆圈。

                                                              

  • 使用接口:类通过接口和某个类交互

                             

  • 端口:接口和类的交互点。用类上的一个矩形小方块表示。

                                                           

  • 可见性:属性和操作可被使用的范围。 public+(所有), protected#(继承了的才行), private-(最初的自己才行)

                                                              

  • 作用域:

 

  • 课后习题:

​​​​​​​                                       

 

  • 做类图的步骤:
  1. 注意名词——会变成类和属性,注意动词——会变成方法。
  2. 总结和辨析形成初步类图​​​​​​​

对象图

  • 对象是类的实例
  • 对象构成:1. 实例名(其他单词首位大写,记得加下滑线):类名     2.类名(因为还没创建实例)

                                            

  • 参与者(发起用例的实体):可以是人,也可是另一个系统。

用例图

  • 从用户观点对系统行为进行描述。先了解领域分析出类,然后确定功能就有用例,还可以细化到不同场景,所有的用例合起来就是系统的边界,然后细化每个用例考虑包含和扩展,
  • 用例:事件的序列
  • 参与者:发起用例的实体。
  • 场景(包括有异常的部分):一个用例可能有多个场景,可以把场景理解为用例的一条路径。
  • 前置条件,后置条件。
  • 包含用例:include有相同步骤的可以直接合起来
  • 扩展用例:extende额外增加的
  • 课后习题:

​​​​​​​           

  • 用例初步画法:发起参与者在左,接守参与者在右,用例是椭圆,系统边界是矩形框:

                                                     

  • 每个用例需要说明文档:
  1. 发起用例的参与者
  2. 用例的假设条件
  3. 用例的前置条件 
  4. 场景中的步骤
  5. 场景完成后的后置条件
  6. 从用例中获益的参与者
  • 包含:《inclde》,线型箭头虚线
  • 扩展:
  1. 扩展点:扩展只能发生在基用例序列的某个点上:比如“在×××之前”
  2. 《extend》,线型箭头虚线
  3. 扩展和包含是容易混淆的,箭头从一个指向另一个并不代表先发生。
  • 泛化:就是类中的继承

  1. 用例间的泛化,表示同类的泛化

  2. 参与者间的泛化

                                           

 

  • 课后习题:

                             

                                   

状态图

  • 表明对象从一个状态到另一个状态的转移
  • 点:起始状态   点圈:终止状态
  • 状态到状态的转移并不总是线性的,可以由条件转不同。
  • 例:洗衣机:浸泡,洗涤,漂洗,脱水

                                                                 

顺序图

  • 表达基于时间的动态交互
  • 对象:常常使用匿名对象(即 “:类名”)
  • 对象能够给自己发送消息
  • 消息:并不是所有的消息箭头都有相同的形状。消息上应带有方法,并且有参数。返回的是有交代的结果。
调回|同步:发送者要等接受者发回的消息(配合前面的使用)异步:接收者不用返回
  • 如果一个用例结束:则可以在返回消息上加《transacation over》
  • 消息传递的条件:[cash>price],只有在返回消息中有,和返回消息的内容是一致的,所以有时可以省略返回消息。
  • 实例顺序图:把一个场景用顺序图表示出来。  一般顺序图:将用例的所有场景放到一个图中。
  • (自己总结)画出一个顺序图的步骤:1. 确定用例  2.用详尽的语言描述过程 3. 确定用例中的对象 4.确定每个对象的操作 5.画图,先对象后加消息
  • 在消息队列中创建实例:《create》

​​​​​​​                                                       

  • 对象的销毁: 大写的X在生命线末位,或者由别人发《destroy》进行销毁。

                                                        

  • 帧化和交互,老师提到过,但这么复杂,真的会考吗(?)。

 

活动图

  • 对象之间的活动常常有时间先后
  • 活动的转换也不常是线性的,有时涉及条件转换
  • 一个活动一旦完成将自动引起另一个活动。
  • 活动:圆角矩形表示

                                                        

  • 判定:菱形分开分支,两边路径要表明。

                                                       

                                                       

  • 并发路径:不是条件分支,是一个操作后,还有多个活动同时进行。

                                                                        

  • 信号:凸代表输出事件,凹代表输入事件。

                                                                     

                                                                              

  • 泳道:为了方便看活动是由哪个对象进行的。
  • 往后还有一些非常高级的概念,暂不解决。

协作图

  • 系统中的元素是相互协作的(顺序图也能表达,二者合称交互图)
  • 消息:三种表达方式:同步(调用等待接收者返回消息),异步(不用等),返回

构建图

  • 软件构建(注意尖括号的作用)

部署图

  • 一个立方体表示一个计算机
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值