UML类的分类

(1). 边界类(Boundry Class);

(2). 实体类(Entity Class);

(3). 控制类(Control Class);

边界类

(1).用来描述什么问题?

边界类用于描述外部参与者与系统之间的交互。

边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。这种交互包括转换事件,并记录系统表示方式(例如接口)中的变更。

(2).可以带来什么好处?

识别边界类可以帮助开发人员识别出用户对界面的需求。

(3).如何理解边界类

边界类位于系统与外界的交界处,窗体、报表、以及表示通讯协议的类、直接与外部设备交互的类、直接与外部系统交互的类等都是边界类

通过用例图可以确定需要的边界类,每个Actor/Use Case对至少要一个边界类,但并非每个Actor/Use Case对要唯一的边界类。

实体类

实体类主要是作为数据管理和业务逻辑处理层面上存在的类别

实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。

实体类保存要放进持久存储体的信息。持久存储体就是数据库、文件等可以永久存储数据的介质。

实体类可以通过事件流和交互图发现。通常每个实体类在数据库中有相应的表,实体类中的属性对应数据库表中的字段。

实体类是用于对必须存储的信息和相关行为建模的类。实体对象(实体类的实例)用于保存和更新一些现象的有关信息,例如:事件、人员或者一些现实生活中的对象。

控制类

(1).用来描述什么问题?

控制类用于描述一个用例所具有的事件流控制行为,控制一个用例中的事件顺序

(2).如何理解控制类?

控制类是控制其他类工作的类。每个用例通常有一个控制类,控制用例中的事件顺序,控制类也可以在多个用例间共用。其他类并不向控制类发送很多消息,而是由控制类发出很多消息。

5.应用举例

例如:考试系统中当学生在考试时 ,学生与试卷交互, 那么学生和试卷都是实体类,而考试时间,规则,分数都是边界类,当考试完了将试卷提交给试卷保管者,则试卷则成了边界类。

6.总结

1.边界类,描述外部与系统内部交互的类;

2.控制类,控制其他类;

原文

● 边界类用于系统与角色之间的交互,包括从用户和外部系统接收信息和请求。

● 边界类为依赖于角色的系统部分建模,解释和汇集系统边界需求,这样用户界面的

● 变化通常被隔离在一个或多个边界类上。边界类经常代表窗口、表单、交互界面等,

● 它描述交互所能得到的结果而不是交互的物理实现 边界类包括主窗体类、查询窗体类、表单录入窗体类、自动弹出窗体类、物资

● 查询窗体类、库存事物处理查询窗体类等

控制类可以认为是处理业务逻辑、控制业务流程的类

实体类是用于描述数据结构的类

原文链接

在ROSE建模里有一种划分类的方式“边界类”“实体类”“控制类”。

边界类

边界对象的抽象,通常是用来完成参与者(用户、外部系统)与系统之间交互的对象,例如:From、对话框、菜单、接口等。

控制类

控制对象的抽象,主要用来体现应用程序的执行逻辑,将其抽象出来,可以使变化不影响用户界面和数据库中的表。

实体类

实体对象的抽象,通常来自域模型(现实世界),用来描述具体的实体,通常映射到数据库表格与文件中。

分析模型实例

边界类:

CommandWindow 负责接受用户输入的命令并向用户显示命令结果

控制类:

LightInductorControl 负责与“航标灯器”感应器通讯,获取航标灯器当前数据

RadarResponderInductorControl 负责与“雷达应答器”感应器通讯,获取雷达应答器当前数据

GPSDeviceControl 负责与“GPS定位设备”感应器通讯,获取当前位置

实体类:

LightState 负责存储航标灯器状态数据

RadarResponderState 负责存储雷达应答器状态数据

GPSState 负责GPS定位数据

设计模型实例

将不同的Control抽象成一个工厂类,这样就可以根据用户输入的命令来创建相应的Control,同时有良好的扩展性,用JDBC来实现命令执行结果的存储。 用处:在RUP中,这三个版型用户帮助分析需求,起到帮助分析人员思考的作用,通过明确区分这三种分析类,有助于清楚地在分析模型中准确地描述需求。 我个人认为这种分法和我们之前了解的MVC相对应,MVC是一种架构模式,而这些类是这种架构的具体体现。

uml边界类例子_UML中边界类、控制类和实体类相关推荐

  1. 在springboot中使用mybatis generate自动生成实体类和mapper

    1.在全局的pom中引入mybatis generate的依赖 <!--自动生成实体--><dependency><groupId>org.mybatis.gene ...

  2. c mysql实体类生成工具_【干货分享】C# 实体类生成工具

    前言: 项目实战中不论是业务编码还是通用编码,总会归纳出一些通用的工具类.放入项目中一劳永逸,让兄弟姐妹们避免编写重复代码.所以利用了工作之余的时间,将这些散落在多个项目中精致优雅的工具类,归纳起来形 ...

  3. java 中random类使用_Java中的天使和魔鬼:Unsafe类

    我们在看ConcurrentHashMap源码时经常看到Unsafe类的使用,今天我们来了解下Unsafe类. Java是一个安全的编程语言,它能最大程度的防止程序员犯一些低级的错误(大部分是和内存管 ...

  4. 利用ASP.NET MVC 的默认类型绑定器---将Jquery datatables中的数据强类型绑定到实体类中

    背景描述: 本文参考资料:https://blog.csdn.net/honantic/article/details/45913403 阅读了上述博文后对我产生了启发,在ASP.NET MVC 5中 ...

  5. 实体类dao接口mysql_利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件...

    解决问题: 可利用MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件. 测试环境准备: 新建一个mysql数据库,例如mungerzTest. 生成一张主键为自增ID的学生表: C ...

  6. typeorm 生成实体类_android常用orm框架greenDAO创建表生成实体类

    package com.example.greendao_test.DB_Initialize; import java.io.IOException; import de.greenrobot.da ...

  7. java 怎么快速创建实体类_java编程使用eclipse如何快速创建一个实体类

    一. 创建一个实体类如下package pojo; public class GoodsModel { private String goodsname; private double goodspr ...

  8. java中继承类 student 类例子_java中student类继承问题

    完成下面父类和子类的定义: (1)定义Student类,放入stu包中. 属性包括学号.姓名.英语成绩.数学成绩.计算机成绩和总成绩. 方法包括构造方法.get方法.set方法.toString方法( ...

  9. 浅谈三层架构中的实体类(C#)

    最近因为三层架构中的实体类,引发了不少小问题,下面列举一下,谈谈自己的感想. 本文所指的实体类仅限于三层中的实体类,即数据库表的映射. 一.为什么要用实体类? |  使程序简洁易懂,便于维护. |  ...

  10. java 类隔离_Java类装载体系中的隔离性

    正文 Java中类的查找与装载出现的问题总是会时不时出现在Java程序员面前,这并 不是什么丢脸的事情,相信没有一个Java程序员没遇到过ClassNotException,因此不要为被人瞅见自己也犯 ...

最新文章

  1. linux 修改系统时间和时区
  2. Android--获取apk大小
  3. C#中采用自定义方式读取自定义配置文件
  4. php与go服务之间调用,PHP调用Go服务的正确方式 - Unix Domain Sockets
  5. leetcode 1787. 使所有区间的异或结果为零
  6. java pdf无法加载_java - 试图使用iText7合并来合并pdf,但是当我打开最终的合并pdf时,它说无法加载pdf文档 - SO中文参考 - www.soinside.com...
  7. Java面试之ArrayList为什么线程不安全?
  8. php raido mysql,linux – 如何停止并修复已失败且I / O挂起的RAID 5阵列?
  9. chart控件做实时曲线显示_Spark+Kafka+WebSocket+eCharts实时分析-完全记录(5)
  10. java虚拟机的数据_Java虚拟机运行时数据区域
  11. Table控件布局DataList模板
  12. Unable to resolve dependency for ':app@debug/compileClasspath'
  13. python学习手册 简记
  14. python post 上传文件_Python脚本POST上传数据以及文件
  15. 2018.07.27
  16. [中文/英文]VC6 sp6补丁下载|VS6 sp6补丁下载 [防VC6link死机]
  17. Beyond Compare的文档比较工具的设置
  18. html5页面布局 最基本的规范
  19. 微信小程序使用font awsome图标库(最新fontawsome5)
  20. cocos2d-x的初步学习二十八之爱消除一

热门文章

  1. Window下本地redis的安装、配置以及java版试用
  2. Elastic Search Java Api 创建索引结构,添加索引
  3. 长跑常用必知的关键字及100条跑步的建议
  4. 6.业务架构·应用架构·数据架构实战 --- 双轮驱动的技术架构设计
  5. 6.大数据架构详解:从数据获取到深度学习 --- 交互式分析
  6. 9.这就是搜索引擎:核心技术详解 --- 用户查询意图分析
  7. 12.PHP-FPM
  8. 17.TCP/IP 详解卷1 --- TCP: 传输控制协议
  9. 17. jQuery - css() 方法
  10. SVN报错 could not connect to server