本发明属于复杂工业系统、软件工程和模块化方法的,具体涉及一种用于复杂工业控制系统,例如各种电站控制系统的模块化设计方法。
背景技术:
1、一个大而复杂的软件系统若想简单化,就需要进行模块化分解,模块化是将软件划分成独立命名且可独立访问的模块,不同的模块通常具有不同的功能或职责。每个模块都具有可以独立地开发、测试,最后组装成完整的软件。软件模块之间是相互独立的,每个模块只涉及软件要求的具体一个子功能。
2、复杂工业系统软件产品可以被看作是由一系列具有特定功能的组件组成,作为一个完整的系统也可以被分解成一系列功能模块,这些模块之间的相互作用就形成了系统的所有功能。每个模块的研发和改进都独立于其他模块的研发和改进,每个模块所特有的信息处理过程都被包含在模块的内部,如同一个“黑箱”,但是有一个或数个通用的标准界面与系统或其他模块相互连接。而在软件开发过程中,模块化组件的开发比较复杂,其代码开发不占据主导因素,主要体现着软件功能模块划分的过程中,需要对业务需求进行深度剖析,且业务子系统的划分和业务组件的规划会占据大部分的工作量。
3、本发明提出采用模块化方法学理论的方式对复杂工业软件进行模块化的设计过程,是一种具有通用性、可操作性的模块化设计过程与方法,从软件产品平台中提取典型的产品结构,在此基础上进行再分或重组,形成较为完备的软件模块化体系。
技术实现思路
1、针对现有技术的以上缺陷或改进需求中的一种或者多种,本发明提供了一种工业控制系统的模块化设计方法,所述方法包括以下步骤
2、步骤s1:以所述控制系统为研究对象,依据需求任务书,结合所述控制系统的工业场景对象中的业务功能建立系统功能结构,并按照功能模式进行分类,得到初始功能结构;
3、步骤s2:构建功能模块结构树:根据所述初始功能结构,将其分解成多个子功能,按照层级进行模块划分,遵循功能独立原则,在得到一个层级的功能模块和结构之后,进行下一层级的功能模块划分;
4、步骤s3:对所述结构树自下而上,对待处理节点的子节点进行分析,采用功能-结构描述方法进行功能描述,得到物理相关度矩阵:
5、
6、其中,子节点模块数为n,i和j为n中的任意两个子功能,n个节点各个功能间的物理相关性为αp(i,j);
7、步骤s4:对所述结构树自下而上,对待处理节点的子节点进行分析,得到n个节点各个功能间的功能相关度矩阵:
8、
9、中,子节点模块数为n,i和j为n中的任意两个子功能,n个节点各个功能间的功能相关性为αf(i,j);
10、步骤s5:对所述结构树自下而上,对待处理节点的子节点进行分析,明确功能模块之间的数据流动,得到数据相关度矩阵:
11、
12、其中,子节点模块数为n,i和j为n中的任意两个子功能,n个节点各个功能间的数据相关性为αd(i,j);
13、步骤s6:根据实际情况来确定子模块i和j的三种类型的权重ωp(i,j),ωf(i,j),ωd(i,j),可以得到物理相关度、功能相关度和数据相关度三个权重矩阵:
14、
15、其中,ωp(i,j)+ωf(i,j)+ωd(i,j)=1,且ωp(i,j),ωf(i,j),ωd(i,j)均大于等于0;
16、步骤s7:根据模块间的关联度计算公式:
17、r(i,j)=ωp(i,j)·αp(i,j)+ωf(i,j)·αf(i,j)+ωd(i,j)·αd(i,j)
18、,建立关联矩阵:
19、其中,r(i,j)表示模块化之间的关联性;
20、步骤s8:采用谱系聚类算法对所述关联度矩阵进行模块划分;
21、步骤s9:所述结构树上自下向上重复步骤s3-s9直至完成整个软件模块划分。
22、优选地,在所述步骤s1中,所述按照功能模式进行分类包括业务功能、通用功能、辅助功能和特殊功能。
23、优选地,在所述步骤s3中,所述物理相关度包括物质流、能量流和信息流;其中,物质流是工业系统在运行过程中有物料流转的关系;能量流是能量来自制造系统外部,通过传递、损耗、存储、释放转换的关系过程完成工业系统的有关功能;信息流是工业制造系统产生的各种数据和信息,以一定流程的形式不断地被使用保存、更新、删除,形成了工业控制系统的信息流。
24、优选地,在所述步骤s8中,聚类算法由以下步骤迭代实现:
25、步骤(1)设待划分的n0个子功能模块计算各功能模块之间的关联度r(0),设定迭代次数计数器b=0;其中右上角标号(0)表示聚类开始运算的状态
26、步骤(2)求关联度矩阵r(b)中的最大元素,对角线元素除外,如果该最大元素为两类之间的相关度,则将合并为一类并由此建立新的分类:新的模块数目为n(b+1);
27、步骤(3)计算合并之后新类别之间的关联度,得到关联度矩阵r(b+1)。
28、步骤(4)根据实际情况选取合适的阈值δ,当模块数n(b+1)满足阈值条件时或,算法停止,得到的分类结果即为模块划分结果,否则令b=b+1,调整到步骤(2),重复计算并合并。
29、总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有的有益效果包括:
30、(1)本发明提供一种用于复杂工业控制系统软件的模块化设计方法,应用于软件工程的概要设计阶段。建立面向工业对象的功能模块,以提高模块内部的聚合程度,降低模块之间的耦合程度,使模块易于通用化、标准化、系列化,使软件结构更加清晰,提高软件产品的可维护性和可靠性;
31、(2)对本发明将软件设计过程中的功能模块作为单个分析元素,采用功能操作接口的形式对其进行描述及对于一个特定的功能模块,其功能可以抽象成属性和操作,在一个系统中的多个功能模块之间通过接口建立联系,要是某一个功能模块实现某一操作,应当通过接口传递消息,各个功能模块之间的调用通过接口来实现,即由功能模块定义对象,通过对象调用功能模块中的操作。
1.一种工业控制系统的模块化设计方法,其特征在于:所述方法包括以下步骤
2.根据权利要求1所述的方法,其特征在于:在所述步骤s1中,所述按照功能模式进行分类包括业务功能、通用功能、辅助功能和特殊功能。
3.根据权利要求1所述的方法,其特征在于:在所述步骤s3中,所述物理相关度包括物质流、能量流和信息流;其中,物质流是工业系统在运行过程中有物料流转的关系;能量流是能量来自制造系统外部,通过传递、损耗、存储、释放转换的关系过程完成工业系统的有关功能;信息流是工业制造系统产生的各种数据和信息,以一定流程的形式不断地被使用保存、更新、删除,形成了工业控制系统的信息流。
4.根据权利要求1所述的方法,其特征在于:在所述步骤s8中,聚类算法由以下步骤迭代实现: