概述

常用建模方法: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. Sql server使用Merge关键字做插入或更新操作

    Merge是关于对于两个表之间的数据进行操作的. 要使用Merge的场景比如: 数据同步 数据转换 基于源表对目标表做Insert,Update,Delete操作 MERGE语句的基本语法: MERG ...

  2. IIS——发布网站

    当我们要上线一个网站时,不要把整个项目原封不动的发布到服务器,而要经过右键发布后,然后再将发布的文件路径配置到IIS~ 详细信息见链接:http://www.52ij.com/jishu/aspx/1 ...

  3. MVC-通过对象获取整个表单内容

    -------- 在MVC的Controller(控制器)里面定义相同的方法时,我们需要解决重载问题: 解决方案一:在参数中定义一个FormCollection类型,解决问题 [HttpSet] pu ...

  4. C# Rotating Oval

    This program is used to show how to generate an oval. The moon's orbit around the sun is an oval two ...

  5. 关于HTML+CSS设置图片居中的方法

    有的时候我们会遇到这样一个问题,就是当我们按下F12进行使用firebug调试的时候,我们发现图像没有居中,页面底下有横向的滑动条出现,图片没能够居中,默认状态下只是紧靠在页面最左侧,而我们对图像缩小 ...

  6. PotPlayer为播放而生的专业播放器

    韩国,比较牛逼的视频播放器.专注与本地视频播放,值得拥有.... 免费下载:http://yunpan.cn/cmZ5ELC6DTI8Y  访问密码 4bf1

  7. redis的主从复制,读写分离,主从切换

    当数据量变得庞大的时候,读写分离还是很有必要的.同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能. redis提供了一个master,多个s ...

  8. there is issue about change event of checkbox in the ie8 oe ie7

    some people said the change event of checkbox can not trigger in the ie7 or ie8,that's not true. thi ...

  9. 关于如何调用苹果自带的地图APP

    CLGeocoder *geoCoder = [[CLGeocoder alloc] init]; // 通过地理编码,得到位置, CLLocation *loc = [[CLLocation all ...

  10. Google Android 6.0 权限完全解析

    注:本文只针对Google原生Android系统有效, 小米魅族等手机有自己的权限机制, 可能不适用 一.运行时权限的变化及特点 新的权限机制更好的保护了用户的隐私,Google将权限分为两类,一类是 ...