在讨论类图之前,我们先看下面的一段文字。

“人脉项目的主要业务是用户通过人脉系统管理名片。用户可以通过电脑浏览器添加名片,添加的名片存储到数据库,也可以编辑和删除名片,当用户需要时可以随时查询和浏览名片。”

上面的这段文字介绍了人脉项目的主要业务。由于业务相对简单,我们能够很快理解这类业务。但对一些业务比较复杂的系统来说,理解起来就不那么容易了,如果我们能够梳理业务中的关键概念及它们之间的关系,就可以帮助我们快速理解新系统的业务。

在上面介绍人脉系统业务的文字中,我们可以很容易发现业务的关键概念,其中用户、名片和数据库都是业务的关键概念。用户是业务的执行者,名片是业务的材料,数据库是业务的数据源。找出业务的关键概念后,我们还需要弄清业务概念之间的关系。下图给出了人脉系统业务概念之间的关系。

图 1 人脉系统业务概念关系图

通过人脉系统业务概念关系图,可以清晰理解人脉系统的业务内容,用户通过人脉系统管理名片信息,名片信息通过数据库进行存取。因此,只要我们把新系统业务的关键概念以及概念之间的关系描述清楚,自然也就理解了新系统的业务。

那么如何识别系统业务的关键概念呢?

在前面的课程中,我们掌握了从定义的系统事件中找出系统角色的方法,其实我们找出的系统角色就是业务的关键概念,角色的用例模型从系统的功能角度描述了系统应提供哪些功能,但没有给出角色的内容以及角色之间的关系。UML建模语言中的类图模型就是描述角色内容以及角色之间关系的模型。

在一些建模工具中(如Visio),类图是一个矩形的方框,方框分为三部分,最上面的部分是类的名称,中间部分是类的属性,下面的部分是类的行为。下图是一个简单的类图。

图 2 一个简单的类图

类就是我们前面分析得到角色,角色有属性和行为,因此在类图中也有属性和行为。

在上面的类图模型中,用户是类(角色)的名称,昵称和登录密码是类的属性,注册和登录是类的行为。

类与类之间也会存在关系。在需求分析阶段,类与类之间的关系有依赖关系、继承关系、关联关系。在设计阶段类图模型会增加聚合关系和实现关系。

依赖关系是指在类的行为中使用到另一个类。例如用户类的注册行为,就会使用到数据库类来存储用户信息。下图是依赖关系的类图模型。

图 3 类的依赖关系

继承关系是指一个类继承另一个类的属性和行为,被继承的类称为父类,继承的类称为子类。继承的思想是把同类事物的共同属性抽取出来形成基类,基类可以被更具体化的子类来继承。例如,假如人脉系统要支持多种类型的名片,我们就可以把名片的共同属性和行为抽取出来形成基类,然后在基类的基础上,通过继承关系创建视频名片、动画名片、文字名片等不同媒体的名片。下图是继承关系的类图模型。

图 4 类的继承关系

类的关联关系是指两个类之间有相关性,如果一个类的属性是另外一个类,就说这两个类之间有关联关系。例如在人脉系统中,假如用户类的一个属性是名片类,则可以说用户类和名片类有关联关系。下图是关联关系的类图模型。

图 5 类的关联关系

前面我们讨论了什么是类图以及类之间的关系。我们知道了类图模型是从业务角度来描述系统的,从系统业务中抽取的关键概念构成了业务类,系统业务类之间存在依赖关系、继承关系和关联关系。下节课我们将利用这些知识,为人脉项目V1.0系统建立类图模型。

需求分析——使用类图建模相关推荐

  1. uml类图用什么软件画_为什么需要UML类图建模?

    类图是面向对象思维的结晶,是以对象的视角描述客观世界的事物: 对象是客观世界存在物,占有空间 //例如一个轮子 对外表现特征 //例如 轮子的半径 跟外部发生作用 一个对象可能由更小的对象构成,就像分 ...

  2. StarUML 4.0.0 英文版 UML类图建模工具

    StarUML (SU) for Mac 是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具.可以绘制9种UML图:用例图.类图.序列图.状态图.活动图.通信图.构件图.部署图 ...

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

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

  4. (三) 类图和对象图

    1. 类图 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图.组件图和配置图等进 ...

  5. 软件工程-大学体育馆管理系统类图

    说明:这是3人团队作品,我发出的内容都是我自己写的部分与和团队队员一起讨论的部分,有删减其它队员的内容,文章不是很完整,但是我写的内容比较有参考性可以补充剩下的内容.发出的图是我原创的. 用例图:软件 ...

  6. 软件工程 第三章:类图

    第三章:类图 概念 类图的概念:类图是描述类.接口以及它们之间关系的图,它显示了系统中各个类的静态结构,是一种静态模型. 分类可以有效地使复杂问题简化.建立类模型的过程,是把现实世界中与问题有关的各种 ...

  7. java类关系图_类图和对象图

    类图的概念 一.概述 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图.组件图和 ...

  8. 软件工程 选课系统的uml类图_想成为高级程序猿,面向对象建模和UML你不应该知道?...

    一.面向对象 1.基本概念 软件对象,是一种将状态和行为有机集合起来形成软件构造模型 对象和类 对象是状态和行为构成的 类是相同属性和操作的一组对象的组合 消息和事件 消息是指描述事件发生的信息,是对 ...

  9. 《火球——UML大战需求分析》(第3章 分析业务模型-类图)——3.7 关于对象图

    摘要:类图(Class Diagram)可能是用得最多的一种UML图.类图的基本语法并不复杂,你可能最多学习两三天就可以掌握,然而要真正做到活用类图则可能需要几年的功力.类图是锻炼面向对象分析(OOA ...

最新文章

  1. pyinstaller打包exe文件闪退解决方案
  2. nodejs使用redis数据库缓存数据
  3. css3盒模型:IE6混杂模式下的盒模型
  4. 解决用Python对Sqlite进行数据更新比较慢的一种方法
  5. 爬虫.之登陆及动态网页的抓取
  6. Shell中字符串、数值的比较
  7. flask+uwsgi+supervisor+nginx在局域网服务器上部署实践
  8. tarjan求桥、割顶
  9. 上行和下行是什么意思_为什么无线通信需要同步?
  10. 兼容性所有浏览器的透明CSS设置
  11. python之父名言_Python之父:为什么操作符很有用?
  12. 重拾C++之虚函数和虚基类以及抽象类
  13. Packet Tracer 思科模拟器入门教程 实验报告1
  14. [2022-04-27] refresh PDB
  15. Arduino+WZ指令+Onenet
  16. 玩客云刷机(2022-3-19亲测)
  17. 微信小程序使用iconfont字体图标
  18. java实现zigzag扫描
  19. 反病毒理念、历史、现状与未来
  20. ctfshow web80-88

热门文章

  1. 用NGINX做负载均衡,keepalived高可用
  2. 百度陆奇最新内部演讲:如何成为一个优秀的工程师?
  3. 反射之关于MethodInfo的使用
  4. Spring中bean的五个作用域简介(转载)
  5. [翻译]创建ASP.NET WebApi RESTful 服务(9)
  6. [算法 笔记]2014年去哪儿网 开发笔试(续)第一题BUG修正
  7. asp.net datatable 导出为 txt
  8. 在wp7中读取XML的配置文件,Content与Resource的区别
  9. NCRE四级网络工程师考题详解----目录分解法
  10. Apache配置多个监听端口和访问网站的方法