概述

常用建模方法: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. Oracle学习——安装系列

    简介:Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracle数据库系统是目前 ...

  2. 40-cut 简明笔记

    从输入行中选取字符或者字段 cut [options] [file-list] cut 从输入行中选取字符或者字段,并将他们写到标准输出,字符和字段从1开始编号 参数 file-list 是文件的路径 ...

  3. php 实现接收客户端上传的图片

    今天,遇到一个服务端接收客户端上传图片的需求,经过学习.我写了个简单的demo 以备下次学习. 首先服务器接收的发送图片的请求一定要是post请求,而且请求一定要加上 enctype="mu ...

  4. Day Two(Beta)

    站立式会议 站立式会议内容总结 331 今天:指导队友学会xml布局及简单动画,解决了关于中文链接过滤器不能将iso编码改为utf8的情况(修改servletContainer默认编码) 遇到的问题: ...

  5. 开发错误记录1:解决:Only the original thread that created a view hierarchy can touch its views.

    今天在项目中要使用圆角头像,导入开源 CircleImageView ,然后setImageBitmap()时 运行时就会发现,它会报一个致命性的异常:: · ERROR/AndroidRuntime ...

  6. 将Extjs文件拷入eclipse工程下卡死问题

    主要是由于eclipse默认对js文件进行校验,ExtJS中js文件多且庞大造成电脑资源耗尽. 解决方法: 找到工作空间中项目文件夹下的.project文件,将 <buildCommand> ...

  7. [转]设计模式之六大原则——开闭原则(OCP)

    原文地址:http://www.cnblogs.com/muzongyan/archive/2010/08/05/1793454.html 开闭原则(Open Closed Principle)是Ja ...

  8. 【转】一个DIV+CSS代码布局的简单导航条

    原文地址:http://www.divcss5.com/shili/s731.shtml 简单的DIV CSS代码布局实现导航条 一个蓝色主题的导航条布局案例,本CSS小实例,采用DIV CSS实现. ...

  9. iOS开发小技巧--定时器的使用技巧

    一.定时器的使用技巧 -- 定义好了定时器后,添加两个方法,一个是添加定时器的方法,另一个是移除定时器的方法. 使用的时候也要注意,一定先移除之前的timer,然后再添加timer

  10. git 常用命令使用

    1. 初始化仓库 git init 2. 查看当前状态 git status(1)Changes not staged for commit:(2)Changes to be committed: 3 ...