概述

常用建模方法:BOOCH、OMT、OOSE等
统一建模语言:UML(Unified Modeling Language)
软件开发过程:RUP(Rational Unified Process)
建模工具:PD(PowerDesigner)、Rose等
                 

RUP的二维空间

用例图

用于定义系统的功能需求,描述了系统的参与者与系统提供的用例之间的连接关系。其中,参与者可以人,也可以另一个系统。用例图仅从参与者使用系统的角度描述系统中的信息。

  • 依赖:uses a,使用了某个对象,依赖于某个对象,扩展了某个对象。

    图形:  使用方 ----use----> 被使用方

  • 聚合:has a,包含某个对象,就可以说是聚合了某个对象。

    图形: 包含方 <>----has----- 被包含方

  • 继承(泛化):is a,(本质)是某个类,就可以说是继承了某个类。

    图形:子类 ----is----|> 父类

                              

类图、包图

用来描述系统中的类以及类与类之间的静态关系。

关联关系示例:                                泛化关系示例:

      

依赖和实现关系示例:                     抽象类示例:

                 

接口示例:

对象图

用来描述特定时刻实际存在的若干对象以及它们之间的关系。一个系统的模型中可以包含多个对象图,每个对象图描述了系统在某个特定时刻的状态。

组件图(Component Diagram)

用来建模系统的各个组件(包括源代码文件、二进制文件、脚本、可执行文件)之间的关系,它们是通过功能或者位置(文件)组织在一起的。

使用组件图有助于对系统感兴趣的人了解某个功能单元位于软件包的什么位置,以及各个版本的软件包各包含哪些功能。

组件、接口和依赖关系

              

组件1实现了接口,组件2使用了接口

部署图(Deployment Diagram)

帮助系统的有关人员了解软件中各个组件驻留在什么硬件上,以及这些硬件之间的交互关系。另外,部署图还可以用来描述哪一个软件应该安装在哪一个硬件上。

节点和关联关系

活动图

用来描述工作流,其中每个活动都代表工作流中一组动作的执行。

主要的标记组件:活动、状态、转移和(判断、分叉、汇合、泳道和对象流等)多种标记符

事件和触发器                              父活动与子活动

        

泳道

流程步骤

  (1)标识需要活动图的用例。
  (2)建模每一个用例的主路径。
  (3)建模每一个用例的从路径。
  (4)添加泳道来标识活动的事务分区。
  (5)改进高层活动并添加到更多活动图。

顺序图

描述了一个相互作用、在以时间为次序的对象之间的通讯集合。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。它着重显示了参与相互作用的对象和所交换消息的顺序。

顺序图和协作图表达了相似的信息,但是它们以不同的方式显示。

4个标记符:对象、生命线、消息和激活。
 
 递归(自回调)与回调                      分支和从属流
        
复杂的顺序图

  • alt——选择。有多重片段供选择,且必选其一,只有当其保安条件为真的片段才被执行。
  • opt——任选。有多重片段供选择,只有当其保安条件为真的片段才被执行。
  • par——并行。每个片段都并发执行。
  • loop——循环。片段可重复执行,保安条件给出执行条件。
  • region——临界区域。片段只有一个线程对它立即执行。
  • neg——否定。片段指明一次无效的交互。
  • ref——引用。引用在其它图上定义的一个交互。

流程步骤:

  (1)确定需要建模的用例
  (2)确定用例的工作流
  (3)确定各工作流所涉及的对象,并按从左到右顺序进行布置
  (4)添加消息和条件以便创建每一个工作流

通信图

顺序图按照时间顺序布图,而通信图按照空间组织布图。顺序图着重于对象间消息传递的时间顺序,通信图着重于表达对象之间的静态连接关系。

  对象角色(3种类型的对象实例)

    

迭代                              自调用和回调

          

时序图

显示系统内各对象处于某种特定状态的时间,以及触发这些状态发生变化的消息。

状态机图

用于指定对象的行为以及根据不同的当前状态行为之间差别。同时,它还能说明事件是如何改变一个类对象的状态。

对象、状态、事件、转移和动作

 决策点(分支)                          同步(并发)

        

组合状态

  顺序子状态                                并发子状态

            

同步状态                                  历史状态

          

UML图例的更多相关文章

  1. java 类与类之间的关系 及uml图

    类与接口之间的关系 : 继承 类与类之间的关系 :继承关系  包含关系 类与对象之间的关系 : 实例 UML 类图中类与类之间的关系: 泛化关系(generalization) 关联关系(associ ...

  2. Python设计模式 - UML - 总览

    说到设计模式就不得不涉及建模思想,说到建模思想自然而然会应用UML,目前业界开源的UML工具很多,用起来也非常便捷.近几年来随着软件应用领域开发模式转向快速迭代试错,UML在敏捷开发,尤其是web及m ...

  3. 设计模式中类的关系UML

    在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖.关联.聚合.组合.继承.实现.他们的耦合度依次增强. 1. 依赖(Dependence)  依赖关系的定义为:对于两 ...

  4. ZT UML 类与类之间的关系

    1.聚合关系是关联关系的一种,是强的关联关系.     2.聚合是整体和部分之间的关系,例如汽车由引擎.轮胎以及其它零件组成. 3.聚合关系也是通过成员变量来实现的.但是,关联关系所涉及的两个类处在同 ...

  5. 牛腩新闻系统(一)——UML、数据库设计

    牛腩新闻系统(一)--UML.数据库设计 一.初识牛腩系统 牛腩(Brisket)即牛腹部及靠近牛肋处的松软肌肉,是指带有筋.肉.油花的肉 块.这是一种统称. 若依部位来分,牛身上很多地方的肉都能够叫 ...

  6. 两张图示轻松看懂 UML 类图

    一个类如何表示 第一格为类名 第二格为类中字段属性 格式:权限 属性名:类型 [ = 默认值 ] 权限:private.public .protected.default,它们分别对应 -.+.#.~ ...

  7. UML ——区分类图中的几种关系.md

    目录 关联关系 (association): 聚合关系 (aggregation): 合成关系 (composition): 依赖关系 (dependency): 总结: 原文地址 http://ww ...

  8. 设计模式之十三:适配器模式(Adapter)

    适配器模式: 将一个类的接口转换成另外一个期望的类的接口.适配器同意接口互不兼容的类一起工作. Convert the interface of a class into another interf ...

  9. [学习笔记]设计模式之Factory Method

    写在前面 为方便读者,本文已添加至索引: 设计模式 魔法手札索引 在上篇笔记Abstract Factory设计模式中,时の魔导士创建了一系列的FoodFactory,并教会了其中一名霍比特人theC ...

随机推荐

  1. Error: [ng:areq]

    错误描述:Error: [ng:areq] http://errors.angularjs.org/1.4.8/ng/areq?p0=HelloCtrl&p1=not%20a%20functi ...

  2. 开发错误记录11:git报错 fatal:open /dev/null or dup failed: No such file or directory

    今天在自己的的电脑上装了git,没成想运行报错: 重装了几次git ,都不行,电脑上没有装github桌面版; 后来在网上查到了方法,反映这是系统的问题: null是比较特殊的系统文件,它实际上是为操 ...

  3. 多词查询(Multi-word Queries)

    如果我们一次只能搜索一个词,那么全文搜索就会显得相当不灵活.幸运的是,通过match查询来实现多词查询也同样简单: GET /my_index/my_type/_search { "quer ...

  4. 512M内存编译php出错

    make时错误如下 virtual memory exhausted: Cannot allocate memory make: *** [ext/fileinfo/libmagic/apprenti ...

  5. html和xhtml和html5一些区别和笔记

    XHTML,HTML XHTML 与 HTML 4.01 标准没有太多的不同, XHTML1.0是XML风格的HTML4.01,标签的规范更加严格 , W3C一直是推崇XHTML这种严格类型的语法, ...

  6. 网络流HDU 2883

    建图           源点  ->     每个人  ->           每段时间      ->      汇点 时间要离散化一下 分成一些时间段 权           ...

  7. Eclipse设置不格式化注释

    Eclipse设置不格式化注释 注释中写点带格式的文字,format后全乱了,解决办法如下: Windows -> Preferces -> java -> Code Style - ...

  8. ElasticSearch快照备份及恢复

    工作步骤: 1:建立备份快照数据挂载点,即共享文件目录(Shared Filesystem): 2:建立快照仓储repository: 3:建立snapshot快照备份: 4:恢复snapshot快照 ...

  9. java基础3.0:Java常用API

    本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...

  10. Leetcode 416. Partition Equal Subset Sum

    Given a non-empty array containing only positive integers, find if the array can be partitioned into ...