UML-Unified Model Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。

在UML系统开发中有三个主要的模型:
  功能模型: 从用户的角度展示系统的功能,包括用例图。
  对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图、对象图、包图。
  动态模型: 展现系统的内部行为。 包括序列图,活动图,状态图。

在这里着重介绍下用例图,用例图是软件需求分析到最终实现的第一步,它描述人们如何使用系统。用例视图显示谁是相关的用户、用户希望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。用例图在各种开发活动中被广泛的应用。

用途:帮助开发团队以一种可视化的方式理解系统的功能需求。

用例图包含六个元素,分别是:参与者、用例、关系(关联关系、包含关系、扩展关系以及泛化关系)。

①参与者:表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。

②用例:用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。

③关系:用例图中涉及的关系有:关联、泛化、包含、扩展

关联(Association)

  表示参与者与用例之间的通信,任何一方都可发送或接受消息。

  【箭头指向】:指向消息接收方

泛化(Inheritance)

  就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。

  【箭头指向】:指向父用例

包含(Include)

包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。

  【箭头指向】:指向分解出来的功能用例

扩展(Extend)

  扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。

  【箭头指向】:指向基础用例

===============================================================================================

用例图画法

实例——图书馆管理系统的用例图

§5.3.1 确定系统涉及的总体信息

§读者:

①借书

②还书

③书籍预定

§图书馆管理员:

①书籍借出处理

②书籍归还处理

③预定信息处理

§系统管理员:

①增加书目

②删除或更新书目

③增加书籍

④减少书籍

⑤增加读者帐户信息

⑥删除或更新读者帐户信息

⑦书籍信息查询

⑧读者信息查询

§5.3.2 确定系统的参与者

§首先分析系统所涉及的问题领域和系统运行的主要任务:

①分析使用该系统主要功能部分的是哪些人。

②谁将需要该系统的支持以完成其工作。

③系统的管理者与维护者。

§图书馆管理系统的参与者:

①读者(借阅者)

②图书馆管理员

③图书馆管理系统维护者

§5.3.3 确定系统的用例

§1.借阅者请求服务的用例

①登录系统

②查询自己的借阅信息

③查询书籍信息

④预定书籍

⑤借阅书籍

⑥归还书籍

§2. 图书馆管理员处理借书、还书等的用例

①处理书籍借阅

②处理书籍归还

③删除预定信息

§3. 系统管理员进行系统维护的用例

①查询借阅者信息

②查询书籍信息

③增加书目

④删除或更新书目

⑤增加书籍

⑥删除书籍

⑦添加借阅者帐户

⑧删除或更新借阅者帐户

§5.3.5 图书馆管理系统的用例图

借阅者请求服务的用例图

图书馆管理员处理借书、还书的用例图

系统管理员进行系统维护的用例图

最新文章

  1. C语言小练习二
  2. OPENGL之矩阵
  3. Dashboard索引缺失、查询不到endpoint或counter
  4. PHP读取XML文件数据
  5. Educational Codeforces Round 14 D. Swaps in Permutation
  6. JavaScript Patterns 2.9 Coding Conventions
  7. 18_高级映射:一对一查询(使用resultMap)
  8. _js day11
  9. BestCoder Round #50 (div.1) 1001 Distribution money (HDU OJ 5364)
  10. 移植ffmpeg到VC环境心得
  11. [项目回顾]基于Annotation与SpringAOP的缓存简单解决方案
  12. ButterKnife的安装与使用以及ButterKnife右键不显示的大坑
  13. c#中不同类中变量的引用方法
  14. Spring--AOP(面向切面)编程
  15. 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现
  16. URL控制器
  17. 虚拟机配置Linux上网环境
  18. 常用window命令
  19. c++ 创建线程以及参数传递
  20. Java 中的 String 真的是不可变吗?

热门文章

  1. 如何在github上展示作品——为你的项目生成一个快速访问的网址如(DaisyWang88.github.io)
  2. !! Android developer 最新国内镜像
  3. android学习系列:jercy——AI3 的博客
  4. HDU 4648 Magic Pen 6 思路
  5. cs108 java 02
  6. UML类图几种关系的总结,泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
  7. Jquery和一些Html控件
  8. 使用Jenkins构建持续集成环境
  9. HDU 2830 Matrix Swapping II
  10. MVC+Ef项目(3) 抽象数据库访问层的统一入口;EF上下文线程内唯一