5.2 术语和概念

 关系 (relationship)是事物之间的联系。

在面向对象的建模中,最重要的 3 中关系是 依赖、泛化和关联。

在图形上,把关系图画成一条线,并用不同的线区别关系的种类。

5.2.1 依赖(dependency)是一种使用关系,说明一个事物(如类 window)使用另一个事物(如类Event)的信息和服务,但反之未必。

在图形上,把依赖画成一条有向的虚线,指向被依赖的事物

依赖

当要指明一个事物使用另一个事物时,就选用依赖。

在大多数情况下,在类与类之间用依赖指明一个类使用另一个类的操作,或者它使用其他类所定义的变量和产量。这的确是一种使用关系,如果被使用的类发生变化,那么另一个类的操作也会受到影响,因为这个被使用的类此时可能表现出不同的接口或行为。

在 UML 中,也可以在很多其他的事物之间创建依赖,特别是注解和包。

依赖

 5.2.2 泛化

  泛化(generalization)是一般事物(称为超类或父类)和该事物的较为特殊的种类(称为子类或子)之间的关系。

 有时也称泛化为“is-a-kind-of”关系:

  一个事物(如类BayWindow)是更一般的事物(如类 Window)的“一个种类”。

 泛化意味着子类的对象可以被用在父类的对象可能出现的任何地方,反之则不然。

 换句话说,泛化意味着子类可以替换父类的声明。子类继承父类的特性,特别是父类的属性和操作。

 若子类的一个操作的实现覆盖了父类的同样一个操作的实现,则这种情况称为多态性。其共同之处是,两个操作必须具有相同的特征和标记(相同的名字和参数)。

在图形上,把泛化画成一条带有空心的三角形大箭头的有向实线,指向父类。

 一个雷可以有 0 个、1 个或多个父类。

没有父类并且最少有一个子类的类称为根类或基类;没有子类的类称为叶子类。

如果一个类只有一个父类,说明它使用了单继承;如果一个雷有多个父类,则说明它使用了多继承。

在大多数情况下,永磊或接口之间的泛化来表明继承关系。

在 UML 中,也可以在其他的类目之间创建泛化,比如及节点之间。

标题

5.2.3 关联

 关联(association) 是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系。

 给定一个连接两个类的关联,可以从一个类的对象联系到另一个类的对象。

 关联的两端都连到同一个类是完全合法的。这意味着,从类的给定对象能连接到该类的其他对象。恰好连接两个类的关联叫作二元关联。尽管不太常见,但可以有连接多于两个类的关联,这种关联叫作 n 元关联。

在图形上,把关联画成一条连接相同类或不同类的实践。当要表示结构关系是,就使用关联。

除了这种基本形式外,还有 4 种应用于关联的修饰。

1、名称

关联可以有一个名称,用于描述该关系的性质。

为了消除名称的歧义,可以提供一个指出读名称方向的三角形,给名称一个方向,如:

关联的名称

2、角色

当一个类参与了一个关联时,它就在这个关系中扮演了一个特定的角色。

角色是关联中靠近它的另一端的类对另一端的呈现的面孔。

可以显式地命名一个类在关联中所扮演的角色。

把关联端点扮演的角色成为端点名。

如下图,扮演 employee 角色的类 person 与扮演 employer 角色的类 Company 相关联。

标题

3、多重性

  关联表示了对象间的结构关系。

  在很多建模问题中,说明一个关联的实例中有多个相互连接的对象是很重要的。这个“多少”被称为关联角色的多重性,它表示一个整数的范围,指明一组相关对象的可能个数。

多重性

 

4、聚合

两个类之间的简单关联表示了两个同等地位类之间的结构关系,这意味着这两个类在概念上是同级别的,一个类并不比另一个类更重要。

优势要对“整体/部分”关系建模,其中一个类描述了一个较大的事物(“整体”),它由较小的事物(“部分”)组成。

这种关系成为聚合,它描述了“ has - a”关系,意思是整体对象拥有部分对象。其实聚合只有一种特殊的关联,它被表示为在整体的一端用一个空心菱形“ ◇ ” 修饰的简单关联。 

聚合

  5.2.4 其他特征

        简单而未加修饰的依赖、泛化以及带有名称、多重性和角色的关联是创建抽象时所需要的最常见的特征。

        事实上,对于所建的大多数模型,这3中关系的基本形式足以表达关系的重要的语义。

        然而,有时需要可视化或详述其他特征,如组合聚合、导航、判别式、关联类、特殊种类的依赖和泛化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 引言 1.1 编写目的 本文旨在详细阐述气囊式体外反搏装置的软件设计方案,帮助开发人员更好地理解和实现该系统。 1.2 背景 气囊式体外反搏装置是一种能够改善心血管系统功能的医疗设备,它通过体外反搏的方式提高心血管系统的血流动力学功能,从而达到治疗心血管疾病的效果。本系统是由QT编写的软件,用于控制气囊式体外反搏装置的操作和数据处理。 1.3 参考资料 本文参考了相关的医疗设备标准和技术文献,包括《气囊式体外反搏装置技术规范》、《QT编程手册》等。 1.4 术语定义及说明 气囊式体外反搏装置:一种能够改善心血管系统功能的医疗设备,通过体外反搏的方式提高心血管系统的血流动力学功能,从而达到治疗心血管疾病的效果。 QT编程:一种跨平台的C++应用程序开发框架,可用于开发图形用户界面应用程序和非GUI程序。 2 设计概念 2.1 任务和目标 本系统的任务是实现气囊式体外反搏装置的控制和数据处理,包括: 1. 控制气囊式体外反搏装置的操作,如开始/停止反搏、调节反搏频率等。 2. 收集、处理和显示反搏数据,如反搏压力、心率等。 3. 提供用户管理功能,如用户注册、登录、修改密码等。 本系统的目标是: 1. 实现气囊式体外反搏装置的控制和数据处理。 2. 提供友好的用户界面,方便用户操作。 3. 快速、准确地处理反搏数据。 4. 保证系统的稳定性和安全性。 3 系统详细需求分析 3.1 详细需求分析 1. 控制反搏操作:包括开始/停止反搏、调节反搏频率等。 2. 反搏数据处理:包括收集、处理和显示反搏数据,如反搏压力、心率等。 3. 用户管理功能:包括用户注册、登录、修改密码等。 4. 系统设置功能:包括设置反搏参数、数据存储路径等。 5. 系统安全功能:包括用户权限管理、数据备份等。 3.2 详细系统运行环境及限制条件分析接口需求 本系统需要在Windows、Linux等操作系统上运行,需要具备以下运行环境: 1. Qt 5.0或以上版本。 2. 适当的内存和处理器资源。 3. 数据库系统支持。 本系统需要与气囊式体外反搏装置进行数据交互,需要采用串口、网口等接口进行数据传输。 4 总体方案确认 4.1 系统总体结构确认 本系统采用C/S架构,包括客户端和服务器两部分。客户端使用QT框架编写,用于控制气囊式体外反搏装置的操作和数据处理,服务器使用MySQL数据库,用于保存反搏数据和用户信息。 4.2 系统详细界面规划 系统界面主要包括如下部分: 1. 登录界面:用于用户登录。 2. 主界面:包括反搏控制、数据处理、用户管理等功能。 3. 反搏设置界面:用于设置反搏参数。 4. 数据查询界面:用于查询反搏数据。 5 系统详细设计 5.1 系统结构设计及子系统划分 本系统包括客户端和服务器两部分,客户端包括反搏控制模块、数据处理模块和用户管理模块,服务器包括数据库模块。 5.2 系统功能模块详细设计 1. 反搏控制模块:提供开始/停止反搏、调节反搏频率等功能。 2. 数据处理模块:提供反搏数据的采集、处理和显示功能。 3. 用户管理模块:提供用户注册、登录、修改密码等功能。 4. 数据库模块:提供数据存储和查询功能。 5.3 系统界面详细设计 1. 登录界面:包括用户名、密码输入框和登录按钮。 2. 主界面:包括反搏控制、数据处理、用户管理等功能按钮。 3. 反搏设置界面:包括反搏频率、反搏压力等设置。 4. 数据查询界面:包括反搏数据查询和显示功能。 6 数据库系统设计 6.1 设计要求 本系统需要采用MySQL数据库进行数据存储和查询,需要保证数据的完整性、可靠性和安全性。 6.2 信息模型设计 本系统的数据模型包括用户信息、反搏参数信息、反搏数据信息等。 6.3 数据库设计 本系统的数据库结构包括用户表、反搏参数表、反搏数据表等。 7 信息编码设计 7.1 代码结构设计 本系统采用MVC架构,将模型、视图、控制器分离,提高代码的可维护性和可扩展性。 7.2 代码编制 本系统采用QT框架进行开发,使用C++语言进行编码。代码需要遵循QT编码规范和相关标准,保证代码的可读性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值