对象图object diagram

对象图是某个时间点上的对象在系统中的快照,也经常被称为实例图。一般在展示组合对象结构时比较有用。例如

组合结构的类图

一个时刻的对象图

包图package diagram

包是一种分组构造,它允许你选择UML里的任何构造,把它的元素组织在一起,成为更高级别的单元。包最常见的用法是组织“类”,但也可以用来组织其它元素。如何选择哪些类放在哪个包里?两个有用的原则是:共同封闭原则和共同复用原则。

表示包的几种方式

包和依赖

  1. 包的分解。略。

实现包

一个包定义了被其它包实现的接口。

何时使用包

包图对大规模系统及其有用。通过包图可以获得系统主要元素之间的关系,这些图形和常见的编程结构对应的很好。包图代表编译时的分组机制,要展示对象运行时如何组合,应使用组合结构图。

部署图deployment diagrams

部署图展示系统的物理布局,揭示哪个软件运行在哪个硬件上。下面是一个部署图的例子。

节点node是上面能驻留一些软件的环境。设备device是硬件。执行环境(execution environment)是软件,它本身作为软件或包含其他软件,比如操作系统或容器进程。节点包含工件artifact,工件是软件的物理显现,通常是文件。使用标记值(tagged value)在图上展示一些感兴趣的信息。

通常会有多个物理节点执行同一个逻辑任务,可以使用多个节点框,也可以使用标记值数值展示。如图中使用“number deployed = 3”表示部署了3台Web服务器。

用例user case

经常使用用例来捕获需求。场景scenario是描述用户和系统之间交互的步骤序列。比如,我们有一个基于web的在线商店,可以有一个这样的“购买产品”场景:

顾客浏览目录并添加想要的条目到购物车。当顾客想要付款时,顾客提供配送和付款信息并确认购买。系统检查付款信息(如果使用信用卡支付需要确认授权,在线支付是否成功),随后发送购买确认信息。

这个场景描述了一件可能发生的事情。然而,支付可能失败,这是另一个场景;注册用户可能已经设置了默认配送和付款信息,这是第三个场景。这些场景不同,但又相似。它们都围绕着一个共同的目标:购买产品。用例是通过共同用户目标绑在一起的场景集合。

在用例中,用户叫做执行者actor。执行者可以是人,也可以是另一个系统。用角色role来称呼用户其实更贴切。

用例的内容

下面是一个用例的例子。

一开始,挑选一个场景作为主成功场景(main success scenario),再书写其它场景作为扩展(extension),描述主场景上的变化。

每个用例有一个主执行者,它调用系统来交付一个服务。主执行者是带有目标的,用例会尝试满足它的目标。主执行者通常是用例的引发者,用例中和系统通信的其它执行者称为辅助执行者。

用例的每一步力求简洁,清晰展示谁执行该步骤。步骤应该展现执行者的意图,而不是如何做的细节。

用例中的扩展命名了一个条件,这个条件导致了和主成功场景MSS不同的交互,并陈述了差异是什么。扩展使用多级目录格式编号,例如3a是对MSS第3步的扩展。

用例中的复杂步骤或者重复出现的步骤可以变成一个用例,第一个用例可以包含include第二个用例。

在用例中可以添加一些其他的共同信息。

  • 前置条件pre-condition,描述在系统开始之前,系统应该确保为真的东西。
  • 保证guarantee,描述用例结束时系统会确保的东西。
  • 触发器trigger,触发用例开始的事件。

要努力保持用例的简短和易读。高风险、重要的场景保留足够的细节,其它的场景不用写下所有细节,可以通过口头沟通来弥补。

用例图

将精力集中在用例的文本内容,将用例图作为用例集的图形目录。

  1. 用例的级别。一般将用例分为系统用例和业务用例。系统用例是和软件的交互,业务用例是讨论业务如何响应顾客或事件。Cockburn在《编写有效用例》中将用例分为sea-level,fish-level和kite-level。
  2. 用例和特性(或故事)。许多方法使用系统特性(极限编程把它们叫做用户故事)来帮助描述需求。特性和用例是什么关系呢?特性是系统提供的功能,可以是一个用例,用例中的场景,用例中的步骤或者一些行为变体。通常我们先开发用例,然后得到特性列表。通常,特性比用例有更细的粒度。
  3. 何时使用用例。用例是帮助理解系统功能需求的有价值的工具。在项目早期,应该粗略地描述每个用例,然后在开发该用例之前再去做更详细的版本。
  4. 更多资料。Cockburn的《编写有效用例》

UML精粹4 - 对象图,包图,部署图,用例的更多相关文章

  1. 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  2. UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  3. UML 结构图之包图 总结

    [注] 本文不是包图的基础教程, 只是包图的图形总结. 学习UML图形 推荐阅读<UML参考手册>第2版. http://www.umlchina.com/ 推荐微软的开发软件设计模型 h ...

  4. UML九种图 之 包图和对象图

    前言     对象图和包图依然是对系统的静态的描写叙述.UML九种图加上包图,事实上是十幅图. 包图     1.构成           2.包中的元素      类.接口.用例.构件.其他包等.( ...

  5. UML对象图和包图

    UML九已经介绍过的基本图,然后,我们再来看看对象图和包图.  一.对象图 谈到对象.我们不得不说一下对象.对象(Object)是对象类的实例(Instance),用于模型化特定的实体.对象是唯一的. ...

  6. UML 类图. 对象图. 接口图. 用例图 .包,参与者. 依赖关系. 泛化/继承关系. 关联关系 .聚合/聚集关系. 实现关系 组合关系。

    结构元素 结构元素包括,类,对象,接口,用例,参与者. 类图 类图图示      类图是UML中最基本的元素了吧?根据OO的思想"天下一切皆对象",而类是对象的抽象.      左 ...

  7. UML对象图、包图

    对象图(Object Diagram)显示了一组对象和他们之间的关系.使用对象图阿狸说明数据结构,类图中的类或组件等实例的快照.对象图和类图一样,反应了系统的静态过程,但它是以实际的或原型化为基础来表 ...

  8. uml系列(五)——对象图和包图

    对象图,对象图是系统在某一时刻的对像.关系和属性值的快照.相当于看电视的时候的暂停.便于说明设计者的意图,模拟系统的运行状态,分析说明源代码. 再说对象图之前,我们首先需要了解对象是什么.我们一直都再 ...

  9. UML静态视图——类图、对象图、包图

    绘画类的最重要的图是抽象类.让我们回顾一下类的基本内容. 一.分类 1.类的概念: 面向对象编程的类是一个基本概念.类是具有相同特性的.办法.集合语义和一组对象的关系. 2.类分类: 实体类:保存要放 ...

随机推荐

  1. guava学习--事件驱动模型

    转载:http://www.cnblogs.com/whitewolf/p/4132840.html   http://www.cnblogs.com/peida/p/EventBus.html 更好 ...

  2. Linux (Ubuntu) 下配置VPN服务器

    昨天网上找了下VPN的相关信息,居然各种撞墙,特别郁闷,自己不容易找到的东西,记录下VPN的配置信息 ubuntu 13.1下配置VPN  ,采用PPTP实现, 第一步.安装pptpd,没有安装包记得 ...

  3. Linux系统真正的优势以及学习方法

    作为一名Linux爱好者,在Linux的世界中也算是半个老司机了,从桌面玩到服务器.从ubuntu到centos.从计算机到路由器,各种Linux的花俏玩法都略有体验.作者并非职业Linux选手,我仅 ...

  4. C#压缩文件夹

    using System;using System.Collections.Generic;using System.Text; ///第三方dllusing ICSharpCode.SharpZip ...

  5. 关于 php mysql pdo cannot find driver 解决方案

    1.下载 文件 或者 进入 在PHP源码包中进入ext/pdo_mysql http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz 2.解压文件tar zxvf PDO ...

  6. GitHub Pages 搭建流程-基于jekyll-bootstrap

    我写这篇文章的目的是记录本博客的搭建过程,自己从零开始逐步搭建起来了GitHub Pages,其中借鉴了很多的博客和模版,稍后会在后面列出,也为没有用过gihub和jekyll的童鞋提供一点帮助. 学 ...

  7. hdu 1052 (greedy algorithm) 分类: hdoj 2015-06-18 16:49 35人阅读 评论(0) 收藏

    thanks to http://acm.hdu.edu.cn/discuss/problem/post/reply.php?action=support&postid=19638&m ...

  8. Android之View和SurfaceView

    Android之View和SurfaceView Android游戏当中主要的除了控制类外就是显示类View.SurfaceView是从View基类中派生出来的显示类.android游戏开发中常用的三 ...

  9. Read/Write file in Android

    http://www.cnblogs.com/freeliver54/archive/2011/09/16/2178910.html

  10. 1、Centos 7 系统的初化始配置

    1.IP的配置临时生效: ifocnfig 主机名 IP地址(如 ) 永久生效(需要进入配置文件): vi /etc/sysconfig/network-scripts/ifcfg-主机名 2.主机名 ...