1、面向对象的液压系统分析研究注意:本文已在机械科学与技术(2023.19(1):146149)杂志发表,使用者请注明文章出处董建华 刘晓冰(大连理工大学CIMS中心,116023):本文介绍了面向对象的分析方法,并给出了一种面向对象的分析模型的表达方法。以液压系统设计为工程应用背景,探讨了面向对象的分析方法在工程系统分析中的应用。按照类对象层、结构层、主题层、属性层和效劳层五个层次分析了液压系统的类层次构成及其连接与通信。关键词:对象,面向对象的分析,液压系统。一、面向对象的分析简介在大型软件开发项目中,无论是实时控制系统、数据库系统、人工智能系统,还是具体到自动代码生成,或扩展到一个工厂的计算
2、机集成制造系统,都存在着一个共同的需求,就是在系统分析阶段建立系统的信息模型。在众多的系统分析方法中,面向对象的分析OOA方法更接近于人类的思维方式,正在被越来越多的系统分析人员使用。持面向对象观点的人认为,计算机程序的结构应该与所需解决的问题一致,而不是与某种分析方法保持一致。经验说明,对任何软件系统而言,其中最稳定的成份是相应问题论域PROBLEM DOMAIN的成份。而系统出问题通常也是由于问题论域的某些成份。因此,对问题论域进行充分分析及准确理解是保证系统稳定的重要根底。那么对象到底是什么呢?通俗地讲,对象指的是客观世界中的实体, 它能“知道一些事情即存储数据,“做一些工作即封装效劳,
3、并“与其它对象协同“通过交换消息,从而完成模块化系统的所有功能。为什么对对象感兴趣呢?答案是简单的棗即可复用性。尽管从计算机产生之初,我们就已经在复用代码,但面向对象技术允许复用的不仅仅是代码,还有其它许多的东西。通过面向对象技术,我们可以复用需求、分析、设计、测试方案、用户界面以及体系结构等。面向对象分析方法是建立在对象及其属性、类属及其成员、整体及其局部这些根本概念的根底上。大英百科全书指出:“人类在认识和理解现实世界的过程中普遍运用着三个构造法那么:1. 区分对象及其属性。例如,区分一棵树和树的大小或空间位置关系。 2. 区分整体对象及其组成局部。例如,区分一棵树和树枝。 3. 不同对象
4、类的形成及区分。例如,所有树的类和所有石头的类的形成和区分。 OOA就是建立在以上三个常用法那么的根底上。OOA模型描述了表示某个特定论域中的对象,以及各种各样的结构关系和通信关系。OOA模型有两个用途。首先,每个软件都建立在特定的现实世界中,OOA模型就是用来形式化该现实世界的“视图。它建立起各种对象,分别表示软件系统主要的组织结构以及现实世界强加给软件系统的各种规那么和约束条件。其次,给定一组对象,OOA模型规定了它们如何协同才能完成软件系统所指定的工作。这种协同在模型中是以说明对象之间通信方式的一组消息连接来表示的。本文采用Ed Yourdon建议的分析方法,OOA模型被划分为五个层次。
5、这种层次结构允许从不同的角度来看待OOA模型,而且,这种结构也便于有效地处理比拟大的OOA模型。OOA模型的五个层次分别如下: 对象类层 属性层 效劳层 结构层 主题层 其表示法如图1所示。图1 OOA模型的结构第一层,对象类层表示待开发系统的根本构造块。对象都是现实世界中应用论域概念的抽象。这一层是整个模型的根底。图符的外层边界表示实例边界,实际上它说明对象是非空的。而图符的内层边界那么表示类边界。有时可以定义一些不当作程序块来实现的对象,即只有类边界而没有实例边界。在某些情形下,定义这种对象是很有用的。我们将它们称为模板类或抽象类。模板类可以为结成较高级的聚合体提供一条方便的途径。第二层,
6、属性层,对象的属性和实例连接共同组成了OOA模型的属性层。我们把对象所存储的数据称为对象的属性。类的实例之间互相约束,它们必须遵从应用论域的某些限制条件或事务规那么。例如,当定金取消后,相应的订户也应该被取消,这可能是一项事务规那么。我们称这些约束为实例连接。第三层,效劳层,对象的效劳和消息通信组成了OOA模型的效劳层。我们把对象所做的工作称为效劳或方法。系统的不同对象都分别执行一定的工作或功能,它们之间通过消息通信,即所谓的协同,如图中的箭头所示。对象的效劳及对象实例之间的消息通信共同组成了OOA模型的效劳层。第四层,结构层,该层负责捕捉特定应用论域中的结构关系。泛化-特化结构获得类及成员组
7、织,有助于刻画问题空间的类成员层次,它通过搜集公共特性并把这种特性扩充到特例中来显示现实世界事件的通用性及专用性。整体局部结构表达了人类的一种根本组织方式,即自然的整体和局部的结构关系,从而把一些局部的聚合构造成整体。例如,一辆汽车由发动机、传动装置和刹车装置组成。第五层,主题层,相当于全局系统的子系统或子模型。由于OOA模型的结构庞大而复杂,因此众多的对象有时很难处理。于是,可以把对象归到各个主题层中,可以把有关的对象用一个边框框起来加以实现。例如,在一个控制系统中,众多的对象可分为“管理和“控制两个主题,那么可以用图2表示。图2 主题层例如以上简单介绍了面向对象的分析及在本文中的表示方法,
8、下面将研究面向对象的分析在液压系统设计中的应用。二、液压系统面向对象的分析 二、液压系统面向对象的分析 1. 问题描述 液压系统分为液压传动系统和液压控制系统两种类型,本文的研究对象是液压传动系统。液压系统是能实现系统功能的液压回路的总和。液压回路又是能实现某种规定功能的液压元件的组合。液压元件是组成液压系统的根本单元。主要的液压元件有液压泵、执行元件液压缸、液压马达、液压控制阀压力控制阀、流量控制阀、方向控制阀等、液压辅件密封圈、滤油器、蓄能器、油箱及其附件、管件、热交换器等。液压控制阀按照其安装形式的不同又可分为普通阀、叠加阀、插装阀。液压回路是液压元件组成的功能单元。液压回路主要有压力控
9、制回路、流量速度控制回路、方向控制回路、安全回路、定位回路、同步回路、顺序动作回路等。以上分类只是粗略分类,限于篇幅,详细分类此处不一一列出。液压系统设计就是根据机械师提出的主机的动作循环要求、静、动态性能及液压系统工作环境等方面的要求,进行系统的工况分析,确定主要参数包括系统压力、系统流量、液压执行元件类型及主要参数等,选择合理的液压回路和液压元件,设计工作的最终形式是液压系统原理图和各种技术文件。2. 标识类和对象 类和对象是对应用论域中的概念的标识,是系统分析的根底。这一过程要考虑许多情况,以形成软件复用的根底。类和对象的标识是从对问题描述的分析开始的。在液压系统中抽取出如下对象本文的类
10、即对象都是以大写字母表示:液压系统HYDRAULIC SYSTEM、执行元件ACTUATOR、液压缸CYLINDER、液压马达MOTOR、液压回路CIRCUIT、压力控制回路PRESSURE CONTROL、流量速度控制回路SPEED CONTROL、方向控制回路DIRECTIONAL VALVE CONTROL、安全回路SECURITY CONTROL、定位回路POSITION CONTROL、同步回路SYNCHRONISE CIRCUIT、顺序动作回路SEQUEUNT CIRCUIT、液压泵PUMP、阀VALVE、压力控制阀PRESSURE VALVE、流量控制阀FLOW VALVE、方向
11、控制阀DIRECTIONAL VALVE、液压辅件ACCESSORY普通阀COMMON VALVE、插装阀CARTRIDGE VALVE、叠加阀SUPERIMPOSED VALVE。因为液压系统是一个很复杂的系统,在此不可能将所有的对象都列出,本文只列出了局部对象,为下文继续分析提供依据。3. 标识结构 结构层反映了对象之间的组装及继承关系。整体局部结构标识了组装结构,泛化特化关系反映了继承关系。如果父对象,或泛化对象的属性或特征可为其所有的子对象,或特化对象共享,就建立起了泛化特化关系。父对象和子对象的这种属性共享就称之为继承性。父对象是由假设干子对象以某种方式组装而成的,就构成了整体局部关
12、系。这种关系一般建立在物理组装的根底上。虽然整体局部关系不象泛化特化关系那样具有继承性,但它们也同样有重复度和参与度特征。重复度是指组成一个父对象的子对象的数量。例如,一个液压系统中有假设干个调速回路。参与度是指父对象或子对象是否都必须在整体局部关系中出现。例如,一个液压系统有假设干个调速回路,而一个调速回路并不一定是一个液压系统的一局部。在液压系统中,由于液压回路组成了液压系统,液压元件组成了液压回路,所以整体局部结构较容易标识。以液压回路组成液压系统为例,可得到图3所示的组装结构。图3 液压系统的组装结构例如图中数字表示了整体与局部之间的数量关系。1,m表示一个液压系统可由一个或多个泵源回
13、路组成;0,m表示一个液压系统可以包含零个或多个相应回路;0,1表示该回路可以不作为该液压系统的组成回路,也可以作为该液压系统的组成回路。泛化特化关系在液压系统中也是广泛存在的。以阀的泛化特化关系为例,可得到如图4所示继承关系。图4 泛化-特化结构例如 4.标识主题 过去的结构化模型的特征之一就是层次分解。而大多数OOA模型的结构都相对平坦,除非应用论域使用泛化特化结构或整体局部结构。事实上,可以通过建立多个主题来处理规模比拟大的复杂模型。每个主题可以看作一个子系统。主题的概念是从观察者的角度来看的。分析员可以依据子论域、子系统,甚至组织或地域等来区分主题,只要运用得当,所有这些规那么都有助于
14、主题划分。本文讨论的液压系统根据子系统原那么划分为三个主题层。组成液压系统的液压回路对象及其对象之间的联系构成了回路层;组成液压回路的液压元件对象及其之间的联系构成了元件层。各主题层内对象之间与主题层间的对象之间都存在着实例连接和消息通信。两个主题层共同构成了一个复杂的液压系统。液压系统主题层如图5所示。图5 主题层例如 5.标识属性及实例连接 OOA模型的属性层包括对象属性和对象之间的关系实例连接。对象属性即对象内部封装的数据。实例连接可以看作是一种事务规那么或应用论域约束,这些连接说明一个类中的对象如何与另一个类中的对象相关联的。标识属性的目的就是为前面已经确立的各个对象建立一系列属性。本
15、文的属性均以小写字母来表示。标识属性的根本做法是:标识属性、修改OOA模型的其它层以适应这些属性,如果有必要的话修改对象,然后重复这个过程。之所以有时会有修改对象的可能,是因为在表示对象时发现有的属性对于某些对象不适合。例如,在为液压缸CYLINDER标识属性输出力output_force时,发现该属性不适合于摆动式液压缸,因此发现CYLINDER这个对象需要细化为直线型液压缸LINEAR CYLINDER和摆动式液压缸ROTARY CYLINDER。其相应属性分别为output_force和output_torque。本文讨论的液压系统的属性标识的一局部如表1所示。HYDRAULIC SYSTEMsystem_namepressure_leveldesignerpressuremax_flow_quantityACTUATORactuator_idflow_quantitypressureCYLINDERpiston_diametermaximum_operating_pressuremounting_methodsymbol_drawing_nameLINEAR_CYLINDERPiston_rod_