概述

常用建模方法: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. 思维导图分享以及MindManager使用说明

    来源于: http://www.cnblogs.com/muhongxing/archive/2009/12/22/1628782.html http://www.cnblogs.com/muhong ...

  2. 顺序队列C/C++实现

    #include <iostream> using namespace std; const int MAXSIZE = 1000; typedef int ELEMTYPE; const ...

  3. Android 横屏不让输入法全屏显示

    记录学习之用 查找资料参考记录的 在源码里进行修改.  frameworks/base/core/Java/Android/inputmethodservice/InputMethodService. ...

  4. git diff命令

    1. 比较两次提交的差异 2. 两个分支之间的比较 3. 暂存区和版本库的比较

  5. Linux_Shell_脚本参数接收键盘输入

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #!/bin/bash     #提示"请输入姓名"并等待30秒,把用户的输入保存入变量name ...

  6. EPUB书籍阅读器插件分享

    本文主要分享EPUB文件的打开方式, 包括如何使用火狐浏览器打开epub, 如何使用chrome打开epub, 如何使用IE浏览器打开epub文件: 1:使用火狐打开epub文件 如果有安装火狐浏览器 ...

  7. IE6和IE7中<a>标签宽高设置无效的问题

    昨天写了一个引导界面, 发现界面中的IE67存在一个问题, 在某些情况下,  A锚链接如果设置了宽高,而且position:absolute的情况下, A标签的宽高无效, 至于总体的效果, 因为这个A ...

  8. jquery 设置焦点

    function CheckForm() { var classLevel = $("#classLevel").val(); var re = /^[1-9][0-9]*$/; ...

  9. C# 后台json转换成时间格式

    1传入json 字符进行转换        public DateTime ConvertTime(string milliTime)        {            long timeTri ...

  10. bzoj4337: BJOI2015 树的同构

    hash大法好 #include <iostream> #include <cstdio> #include <cstring> #include <cmat ...