设计类图是类图的一个变体,类图表示一系列的类以及它们之间的关系。因为分析阶段是一个发现需求的过程,所以我们一般很少关心类的属性和方法的细节。在面向对象设计中,类的属性有一个特征叫可见性,它表示其它类是否可以访问该属性。类的每个属性都有一个类型定义,例如字符串或数值类型。在详细设计阶段,我们需要细化这些属性,并且定义方法的名称、返回值以及传入的参数。因此,虽然分析阶段和设计阶段的类图很相似,但设计阶段的类图更完善。

下图显示了用于设计类图要使用的符号,这个类图是一个简化的版本,它仅仅显示了属性和方法标识。

图 1 一个简单类图

类图的图形符号是一个矩形框,矩形框分为三个部分。第一部分是类名,在这里写入类的名称;第二部分是属性列表,在这里写入类的所有属性,包括属性的名称、属性的可见性和属性的类型。属性的可见性用于表示其它类是否能直接访问这些属性;第三部分是方法列表,在这里写入类的所有方法,包括方法的名称、返回值以及传入的参数。

属性列表包含了在分析阶段所发现类的所有属性。此外,还包括一些其它属性,这些属性用来表示和其它类的对象相关联的对象引用。例如,一个账号对应一个客户,客户账号类需要一个方法找到正确的客户。有两种方法可以做到这一点,一是定义一个域,可以直接引用或连接正确的客户对象,这个域叫做对象引用或对象指针;另一种方法是在客户账号类中为客户类插入一个外部码。前面的方法比较适合类之间的引用,后面的方法比较适合关系数据库表的关联。

另外补充的一个属性是状态值属性,类中加入这个属性能够维护对象所处的状态的信息。状态信息从状态图中提取并加入到方法逻辑中,这个属性就是类的状态变量。例如,用户类要保存用户是否登录系统的状态。

方法列表包含了在分析阶段所发现类的所有方法,分析阶段的类图仅给出了类的中文方法名称。在设计阶段需要用英文确定方法的名称,并给出方法的返回值和传入的参数。

图2是人脉系统名片类分析阶段的类图,图3是人脉系统名片类设计阶段的类图。

图 2 人脉系统名片分析阶段的类图

图 3 人脉系统名片设计类图

从图2和图3可以看出,分析阶段的类图主要是从业务领域获取信息的,在描述上更多使用了业务领域的语言和词汇。设计阶段的类图是从编程实现角度来设计类图的,更多的是考虑类编码的实现。图3的设计类图不仅给出了类的英文名称、类属性的可见性、类属性的英文名称、类属性的数据类型,还给出了类方法的返回值、方法的英文名称和方法的传入参数。程序员可以根据设计类图直接编写类代码,也可以使用代码自动生成软件来自动创建类代码。

分析阶段的类图和设计阶段的类图有什么区别?相关推荐

  1. UML--静态图(类图、对象图、包图)

    一.概述 类图.对象图和包图归类为静态图(也属于结构行为图). 静态图显示了系统的静态结构,特别是存在事物的种类(例如类或者类型)的内部结构.相互之间的联系.尽管静态图可能包含具有或者描述暂时行为的事 ...

  2. UML实践---用例图、顺序图、状态图、类图、包图、协作图

    转载:http://www.uml.org.cn/oobject/200901203.asp 面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UM ...

  3. java设计模式之UML③类图讲解多个类之间的关系

    图来自大话设计模式 虚线和箭头指向依赖关系,也就是动物类依赖氧气类和水类 一般依赖关系是一个类使用另一个类作为参数使用 动物是一个父类 鸟继承动物 其中空心三角继承关系(箭头方向是子类指向父类) 实心 ...

  4. java中类图概念,程序员眼中的UML(4)--类图释疑之一,Attribute和Property之区别

    程序员眼中的UML(4) --类图释疑之一,Attribute和Property之区别 上一篇中提出了很多问题,其中最令人费解的可能就是Attribute和Property之区别了吧.我在网络上寻找良 ...

  5. UML实践----用例图、顺序图、状态图、类图、包图、协作图

    http://www.uml.org.cn/oobject/200901203.asp UML实践----用例图.顺序图.状态图.类图.包图.协作图 2009-01-20 作者:Randy Mille ...

  6. 【转】类与类之间的常见关系,uml图表示

    看设计模式的时候,以及画UML图的时候经常涉及这样的问题!! 类与类之间的关系: 一般化关系(继承关系):接口与接口,子类和父类,实现接口的类与接口,继承与被继承的类         关联关系:类与类 ...

  7. vscode remote 第三方库_还能这么玩?用VsCode画类图、流程图、时序图、...不要太爽

    软件设计中,有好几种图需要画,比如流程图.类图.组件图等,我知道大部分人画流程图一般都会用微软的viso绘制,我之前也是这个习惯.viso画图有个不好的地方是需要时刻去调整线条和边框已达到简洁美观,今 ...

  8. Java类的继承学生研究生类图_UML part3 类图、对象图

    UML part3 类图.对象图 四种关系 1. 依赖关系 ①定义:依赖描述了两个模型元素之间的关系,如果被依赖的模型元素发生变化就会影响到另一个模型元素 ②举例:动物有生命和水进行繁殖,动物和水,动 ...

  9. 用例图、类图、状态图、活动图、顺序图、协作图

    实验二  UML建模工具 1.实验目的 (1)熟悉StarUML等工具软件的特色及工作环境: (2)熟悉各种UML图的含义及用途:掌握利用starUML等工具绘制各种UML图的方法. 2.实验内容 ( ...

最新文章

  1. Nmap扫描教程之基础扫描详解
  2. python使用for循环打印99乘法表-Python中的九九乘法表(for循环)
  3. kibana操作elasticsearch:查看映射关系
  4. 设计模式-单件模式(Singleton pattern)
  5. 供销大集长期持有_谁是下一个供销大集?(附股)
  6. 鸿蒙os吃内存吗,终于上手机!华为鸿蒙 OS 2.0 系统:128KB 内存就能跑
  7. java jdbc 增删改封装_JAVA JDBC 常规增删改查简单封装
  8. Visual Studio下的PHP开发工具VS.PHP初探
  9. VC2013 ArcGIS Engine 10.0开发环境搭建
  10. win 10 安装nginx
  11. 会员直推奖php程序_PHP自适应卡益源码 前台直销系统报单费直推奖
  12. 国际著名黑客大赛介绍
  13. App在后台被杀死后重启-重进首页方法
  14. 更改计算机网络密码,宽带密码修改后断网,怎样修改路由器密码
  15. 教育部明确:坚持普职分流非常必要
  16. 丁香园开源接口管理系统 - API Mocker
  17. 多平台epub阅读器推荐
  18. [-Flutter 自组篇-] 蛛网图+绘制+动画实践
  19. 小智CF刷枪软件 V1.3 免费版
  20. [jQuery]选择框(select),多选取值(multiple)

热门文章

  1. Codevs 1025 选菜
  2. jQuery中的渐变动画效果
  3. jQuery全屏滚动插件fullPage.js
  4. oracle 存储过程中调用存储过程
  5. NCRE四级网络工程师考题详解----目录分解法
  6. matlab padarray函数零,matlab padarray函数
  7. Golang——单元测试testing
  8. python gevent模块 下载_Python中的多任务,并行,并发,多线程,多进程,协程区别...
  9. 微信又出了一款新的APP
  10. 零售创新决胜新消费暨2021中国网络零售TOP100榜单