CN116301735B - 将软件要素组织为软件数据链路的方法、装置及存储介质 - Google Patents

将软件要素组织为软件数据链路的方法、装置及存储介质 Download PDF

Info

Publication number
CN116301735B
CN116301735B CN202310570792.5A CN202310570792A CN116301735B CN 116301735 B CN116301735 B CN 116301735B CN 202310570792 A CN202310570792 A CN 202310570792A CN 116301735 B CN116301735 B CN 116301735B
Authority
CN
China
Prior art keywords
node
data
software
data object
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310570792.5A
Other languages
English (en)
Other versions
CN116301735A (zh
Inventor
张俊勃
胡嘉铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN202310570792.5A priority Critical patent/CN116301735B/zh
Publication of CN116301735A publication Critical patent/CN116301735A/zh
Application granted granted Critical
Publication of CN116301735B publication Critical patent/CN116301735B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种将软件要素组织为软件数据链路的方法、装置及存储介质,所述方法包括获取软件要素;获取与所述软件要素对应的节点;所述节点用于指代所述软件要素;根据所述软件要素之间的关系,确定所述节点之间的连接关系;根据所述节点之间的连接关系,确定与所述连接关系对应的有向边;通过所述节点与所述有向边的组合,形成软件数据链路。本发明将软件要素组织为软件数据链路,软件数据链路通过各节点和有向边的协同来直观、清晰地刻画软件数据的流动过程,从而可以准确地表示出软件运行过程中的重要细节,从而有效解决了大型分布式软件由于数据多源异构、耦合关系复杂造成的设计与管理效率低下的问题。本发明广泛应用于软件工程领域。

Description

将软件要素组织为软件数据链路的方法、装置及存储介质
技术领域
本发明涉及软件工程领域,特别涉及一种将软件要素组织为软件数据链路的方法、装置及存储介质。
背景技术
随着数字化改革的不断深化,工业界在数据传输、处理和存储等方面不断向大型分布式软件提高需求,这要求软件设计工艺与管理手段必须进行升级改造,其核心在于提出更高效的软件要素组织方法。
传统的软件要素组织方法,通常是使用包括流程图、数据存储图、数据流图等在内的多类图形化工具协同地对数据链路进行刻画。这些方法可以清晰地展示数据的流动情况,但往往无法准确地表示数据链路中的一些重要的细节,如数据的来源、处理方式、存储方式等,因此在实际应用中仍需要其他工具或文本说明来补充,这造成了传统的软件设计工艺与管理手段效率低下。尤其是在“工业4.0”时代,数据多源异构、耦合关系复杂,采用传统的软件要素组织方法难以直观、清晰地描述出数据的流动过程。因此,工业界数字化改革的发展情况对现有的软件要素组织方法提出了新的挑战,迫切需要一种适用于大型分布式软件的软件要素组织方法。
发明内容
为了解决上述至少一个相关技术中存在的技术问题,本发明提供了一种将软件要素组织为软件数据链路的方法、装置及存储介质。
一方面,本发明实施例包括一种将软件要素组织为软件数据链路的方法,所述方法包括以下步骤:
获取软件要素;
获取与所述软件要素对应的节点;所述节点用于指代所述软件要素;
根据所述软件要素之间的关系,确定所述节点之间的连接关系;
根据所述节点之间的连接关系,确定与所述连接关系对应的有向边;
通过所述节点与所述有向边的组合,形成软件数据链路;所述软件数据链路用于刻画软件数据的流动过程。
进一步地,所述软件要素包括数据对象、UI对象、逻辑函数、存储单元。
进一步地,所述获取与所述软件要素对应的节点这一步骤,包括:
所述数据对象对应的节点为数据对象节点,所述数据对象节点与所述数据对象为一对一的索引关系;
所述UI对象对应的节点为UI对象节点,所述UI对象节点与所述UI对象为多对一的索引关系;
所述逻辑函数对应的节点为逻辑函数节点,所述逻辑函数节点与所述逻辑函数为多对一的索引关系;
所述存储单元对应的节点为存储总线,所述存储总线与所述存储单元为一对一的索引关系。
进一步地,所述软件要素具有要素结构体;所述节点具有节点结构体;所述根据所述软件要素之间的关系,确定所述节点之间的连接关系这一步骤,还包括:
根据所述节点结构体与所述要素结构体,确定所述节点的特性。
进一步地,所述根据所述节点之间的连接关系,确定与所述连接关系对应的有向边这一步骤,具体包括:
以一个节点作为有向边的一端,以不同类型的另一个节点作为有向边的另一端,建立所述有向边;
根据所述有向边的两端的节点的特性,确定所述有向边的特性。
进一步地,所述以一个节点作为有向边的一端,以不同类型的另一个节点作为有向边的另一端,建立所述有向边这一步骤,具体包括:
根据第一连接规则,建立所述数据对象节点与所述存储总线之间的有向边;所述第一连接规则为一个所述数据对象节点只允许与一个所述存储总线通过有向边连接;
根据第二连接规则,建立所述存储总线与所述数据对象节点之间的有向边;所述第二连接规则为一个所述存储总线允许与多个所述数据对象节点通过有向边连接;
根据第三连接规则,建立所述数据对象节点与所述逻辑函数节点之间的有向边;所述第三连接规则为一个所述数据对象节点允许与一个或多个所述逻辑函数节点通过有向边连接;
根据第四连接规则,建立所述逻辑函数节点与所述数据对象节点之间的有向边;所述第四连接规则为一个所述逻辑函数节点允许与一个或多个所述数据对象节点通过有向边连接;
根据第五连接规则,建立所述数据对象节点与所述UI对象节点之间的有向边;所述第五连接规则为一个所述数据对象节点允许与一个或多个所述UI对象节点通过有向边连接;
根据第六连接规则,建立所述UI对象节点与所述数据对象节点之间的有向边;所述第六连接规则为一个所述UI对象节点允许与一个或多个所述数据对象节点通过有向边连接;
根据第七连接规则,建立所述逻辑函数节点与所述UI对象节点之间的有向边;所述第七连接规则为所述逻辑函数节点允许与一个或多个所述UI对象节点通过有向边连接。
进一步地,所述根据所述有向边的两端所述节点的特性,确定所述有向边的特性这一步骤,具体包括:
针对从所述数据对象节点指向所述存储总线的有向边,设定第一属性;所述第一属性表示所述数据对象存储至所述存储单元中;
针对从所述数据对象节点指向所述存储总线的有向边,设定第二属性;所述第二属性表示所述数据对象从所述存储单元中取出;
针对从所述数据对象节点指向所述逻辑函数节点的有向边,设定第三属性;所述第三属性表示所述数据对象输入至所述逻辑函数中;
针对从所述逻辑函数节点指向所述数据对象节点的有向边,设定第四属性;所述第四属性表示所述数据对象由所述逻辑函数输出;
针对从所述数据对象节点指向所述UI对象节点的有向边,设定第五属性;所述第五属性表示所述数据对象作用于所述UI对象上;
针对从所述UI对象节点指向所述数据对象节点的有向边,设定第六属性;所述第六属性表示所述数据对象来源于所述UI对象;
针对从所述逻辑函数节点指向所述UI对象节点的有向边,设定第七属性;所述第七属性表示所述逻辑函数产生所述UI对象,所述UI对象为内容随所述逻辑函数输入的数据对象变化而变化的UI对象。
另一方面,本发明实施例还包括一种将软件要素组织为软件数据链路的装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行实施例所述方法。
还有一方面,本发明实施例还包括一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行实施例所述方法。
本发明的有益效果是:通过使用节点指代软件要素,根据节点的连接关系确定有向边,通过节点和有向边的组合,形成软件数据链路,软件数据链路通过各节点和有向边的协同来直观、清晰地刻画软件数据的流动过程,可以准确地表示出软件运行过程中的重要细节,从而有效解决了大型分布式软件由于数据多源异构、耦合关系复杂造成的设计与管理效率低下的问题。
附图说明
图1为本实施例将软件要素组织为软件数据链路的步骤流程图;
图2为本实施例大电网模型校核系统的示意图;
图3为本实施例大电网模型校核系统的部分软件数据链路的示意图。
具体实施方式
实施例1
本实施例中,参照图1,一种将软件要素组织为软件数据链路的方法包括以下步骤:
S1.获取软件要素;
S2.获取与软件要素对应的节点;节点用于指代软件要素;
S3.根据软件要素之间的关系,确定节点之间的连接关系;
S4.根据节点之间的连接关系,确定与所述连接关系对应的有向边;
S5.通过节点与有向边的组合,形成软件数据链路;所述软件数据链路用于刻画软件数据的流动过程。
本实施例步骤S1中,软件要素包括数据对象、UI对象、逻辑函数、存储单元这四类。
本实施例步骤S2中,数据对象对应的节点是数据对象节点,UI对象对应的节点是UI对象节点,逻辑函数对应的节点为逻辑函数节点,存储单元对应的节点为存储总线,每个节点指代一个软件要素,一个软件要素可以被一个或多个节点指代。
本实施例中,每个软件要素均具有一个要素结构体,每个节点均具有一个节点结构体,作为本实施例优选的实施方式,步骤S3,也就是根据软件要素之间的关系,确定节点之间的连接关系这一步骤,还包括:根据节点结构体与要素结构体,确定节点的特性。
本实施例中,节点结构体与要素结构体共同决定节点的特性。
本实施例中,对要素结构体展开具体说明,数据对象具有数据对象结构体,数据对象结构体中的信息包括ID、名字、组织结构、类型、内容,其中:所述ID用于区别不同的数据对象;所述名字为软件代码中数据对象对应的变量名;所述组织结构用于刻画数据对象采取的结构化组织方式;所述类型用于刻画数据对象的用途,所述类型包括UI触发信号、非UI的触发信号、UI回调数据、外源输入数据、中间数据、输出到外部的数据;所述内容为数据对象在软件中所占存储空间的内容。
UI对象具有UI对象结构体,UI对象结构体中的信息包括ID、类型、名字、内容,其中:所述ID用于区别不同的UI对象;所述类型用于对UI对象进行分类管理,所述类型包括组件、页面、复用组件、动态组件;所述名字为软件代码中UI对象对应的组件变量名、页面变量名、复用组件变量名中的一种;所述内容为UI对象对应的软件代码。所述复用组件为可被多个页面重复使用的、软件开发者自定义的UI对象,所述动态组件为内容随着数据对象变化而变动的UI对象。
逻辑函数具有逻辑函数结构体,逻辑函数结构体中的信息包括ID、名字、输入输出映射关系、内容、编程语言,其中:所述ID用于区别不同的逻辑函数;所述名字为软件代码中对应的逻辑函数名;所述输入输出映射关系用于穷举逻辑函数将输入数据加工为输出数据的全部情况;所述内容为逻辑函数对应的软件代码;所述编程语言为逻辑函数对应的软件代码所采用的编程语言。
存储单元具有存储单元结构体,存储单元结构体中的信息包括ID、类型、名字、内容,其中:所述ID用于区别不同的存储单元;所述类型用于对存储单元进行分类管理,所述类型包括表、键值对、图、时序数据;所述名字为数据库中存储单元对应的表名、键值对的键、图名、时序数据集合名中的一种;所述内容为存储单元对应的数据库中的表数据、键值对的值、图节点数据、图边数据中的一种。
本实施例中,节点结构体中的信息包括ID、类型、指代的要素ID,其中:所述ID用于区别不同的节点;所述类型用于对节点进行分类管理,所述类型包括数据对象节点、UI对象节点、逻辑函数节点、存储总线,分别对应数据对象、UI对象、逻辑函数、存储单元;所述指代的要素ID用于节点与节点指代的软件要素建立索引关系,数据对象节点与数据对象、存储总线与存储单元是一对一的索引关系,UI对象节点与UI对象、逻辑函数节点与逻辑函数是多对一的索引关系。
作为本实施例优选的实施方式,步骤S4,也就是根据节点之间的连接关系,确定与所述连接关系对应的有向边这一步骤,具体包括:
S401.以一个节点作为有向边的一端,以不同类型的另一个节点作为有向边的另一端,建立有向边;
S402.根据有向边的两端的节点的特性,确定有向边的特性。
本实施例中,步骤S401具体包括以下步骤:
步骤1:根据第一连接规则,建立数据对象节点与存储总线之间的有向边;所述第一连接规则为一个数据对象节点只允许与一个存储总线通过有向边连接;
步骤2:根据第二连接规则,建立存储总线与数据对象节点之间的有向边;所述第二连接规则为一个存储总线允许与多个数据对象节点通过有向边连接;
步骤3:根据第三连接规则,建立数据对象节点与逻辑函数节点之间的有向边;所述第三连接规则为一个数据对象节点允许与一个或多个逻辑函数节点通过有向边连接;
步骤4:根据第四连接规则,建立逻辑函数节点与数据对象节点之间的有向边;所述第四连接规则为一个逻辑函数节点允许与一个或多个数据对象节点通过有向边连接;
步骤5:根据第五连接规则,建立数据对象节点与UI对象节点之间的有向边;所述第五连接规则为一个数据对象节点允许与一个或多个UI对象节点通过有向边连接;
步骤6:根据第六连接规则,建立UI对象节点与数据对象节点之间的有向边;所述第六连接规则为一个UI对象节点允许与一个或多个数据对象节点通过有向边连接;
步骤7:根据第七连接规则,建立逻辑函数节点与UI对象节点之间的有向边;所述第七连接规则为逻辑函数节点允许与一个或多个UI对象节点通过有向边连接。
本实施例中,步骤S402具体包括以下步骤:
步骤A:针对从数据对象节点指向存储总线的有向边,设定第一属性;所述第一属性表示数据对象存储至存储单元中;
步骤B:针对从数据对象节点指向存储总线的有向边,设定第二属性;所述第二属性表示数据对象从存储单元中取出;
步骤C:针对从数据对象节点指向逻辑函数节点的有向边,设定第三属性;所述第三属性表示数据对象输入至逻辑函数中;
步骤D:针对从逻辑函数节点指向数据对象节点的有向边,设定第四属性;所述第四属性表示数据对象由逻辑函数输出;
步骤E:针对从数据对象节点指向UI对象节点的有向边,设定第五属性;所述第五属性表示数据对象作用于UI对象上;
步骤F:针对从UI对象节点指向数据对象节点的有向边,设定第六属性;所述第六属性表示数据对象来源于UI对象;
步骤G:针对从逻辑函数节点指向UI对象节点的有向边,设定第七属性;所述第七属性表示逻辑函数产生UI对象,UI对象为内容随逻辑函数输入的数据对象变化而变化的UI对象。
本实施例中,软件数据链路通过各节点和有向边的协同来刻画软件数据的流动过程,软件数据链路可划分为多条链,各条链的组成要素及组成方法与软件数据链路一致,任何软件的软件要素都可以组织为软件数据链路。在软件数据链路中,除存储总线及相关有向边外,存在连通关系的节点以及有向边归属于软件数据链路中的同一条链。存储总线可与多个归属不同链的数据对象节点通过有向边连接,存储总线可归属于软件数据链路中的一条或多条链。
本实施例中,一种将软件要素组织为软件数据链路的装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行实施例所述方法。
本实施例中,一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行实施例所述方法。
本实施例的有益效果是:通过使用节点指代软件要素,根据节点的连接关系确定有向边,通过节点和有向边的组合,形成软件数据链路,软件数据链路通过各节点和有向边的协同来直观、清晰地刻画软件数据的流动过程,可以准确地表示出软件运行过程中的重要细节,从而有效解决了大型分布式软件由于数据多源异构、耦合关系复杂造成的设计与管理效率低下的问题。
实施例2
本实施例中,参照图2,一种大电网模型校核系统。该大电网模型校核系统软件可支持对电网模型镜像进行校核修正,用户可通过软件所提供的17个功能模块并根据业务需求自定义业务流程,随后逐步执行功能,将各个功能模块的输出数据按功能执行的先后顺序集中显示于数据工作区中,以便于将其作为下一功能模块的输入数据。具体来说,首先用户需要选中数据工作区中的某项数据,由于功能区中的各个功能模块对输入数据具有各自的要求,此时功能区仅对可选择的功能模块进行高亮,高亮的功能模块表示在数据工作区中选择的数据可作为该功能的输入;随后,用户选择下一步执行的功能,选中后功能配置区会显示对应功能的配置参数;配置完毕后,用户可执行该功能,并将功能的输出数据加入至数据工作区中。
本实施例中,上述大电网模型校核系统具有超过30个流程,组织得到的软件数据链路包含超过30条链。如图3所示,大电网模型校核系统的部分软件数据链路,共包含4条链、48个节点、51条有向边,描述了包括“点击数据工作区的数据”、“点击高亮的功能模块”、“运行时域仿真”、“输出仿真数据至数据工作区”在内的4个流程。
本实施例中,“点击数据工作区的数据”这一流程描述的是,用户左键单击数据工作区中的某一数据块后,功能区中的部分功能模块会被高亮,部分功能模块会被屏蔽,即用户无法单击选中;高亮的功能模块表示选中的数据块满足该功能的输入要求,被屏蔽的功能模块表示选中的数据块不满足该功能的输入要求。描述该流程的软件数据链路共包含9个节点、9条有向边,下面对上述节点与有向边的内涵进行阐述:
(1)“数据工作区数据块集合”UI对象的类型为组件,内容为Tree(AntDesign提供的树组件),“选中信号”数据对象的类型为UI触发信号;前者UI对象节点指向后者数据对象节点,表示后者指代的数据对象来源于前者指代的UI对象,即上述UI对象可产生选中信号,对应用户左键单击该UI对象中的节点。
(2)“数据工作区数据块集合”UI对象节点指向“选中数据块的回调信息”数据对象节点,表示后者指代的数据对象是前者指代的UI对象中的内在属性,在UI对象渲染产生时,已通过程序将该属性及其数值写入UI对象中;在左键单击事件发生时,程序可以获取其数值。
(3)“设置功能模块状态”逻辑函数的编程语言为JavaScript;其根据选中数据块的回调信息,获取选中的数据块类型,更新功能区中各功能模块状态,并获取选中的数据块ID,进而进行更新;该逻辑函数的输入输出映射关系只有一个,即当且仅当前序的两个输入数据对象同时存在时,方可同时输出后序的两个输出数据对象。
(4)“选中的数据块ID”存储单元的类型是键值对;其对应的存储总线被“选中的数据块ID”数据对象节点指向,表示“设置功能模块状态”逻辑函数将“选中的数据块ID”数据对象写入上述存储单元中。
(5)“功能模块状态信息”存储单元的类型是键值对;其对应的存储总线被“功能区功能模块状态信息”数据对象节点指向,表示“设置功能模块状态”逻辑函数将“功能区功能模块状态信息”数据对象写入上述存储单元中。
(6)“功能区全体功能块”UI对象的类型为复用组件,内容为功能区全体功能块的DOM(DocumentObjectModel,文档对象模型)代码;其对应的UI对象节点被“功能区功能模块状态信息”数据对象节点指向,表示前者指代的UI对象的状态由后者指代的数据对象决定。
本实施例中,“点击高亮的功能模块”这一流程描述的是,用户左键单击功能区中某一高亮的功能模块后,功能配置区将出现该功能模块对应的配置说明、配置表单等信息。描述该流程的软件数据链路共包含5个节点、5条有向边,下面对上述节点与有向边的内涵进行阐述:
(1)“功能区功能块”UI对象的类型为组件,内容为div,“左键单击信号”数据对象的类型为UI触发信号;前者UI对象节点指向后者数据对象节点,表示后者指代的数据对象来源于前者指代的UI对象,即上述UI对象可产生左键单击信号,对应用户左键单击该UI对象。
(2)“功能区功能块”UI对象节点指向“选中功能块的ID”数据对象节点,表示后者指代的数据对象是前者指代的UI对象中的内在属性,在UI对象渲染产生时,已通过程序将该属性及其数值写入UI对象中;在左键单击事件发生时,程序可以获取其数值。
(3)“渲染功能配置区”逻辑函数的编程语言为JavaScript;其根据选中功能块的ID,更新功能配置区的UI对象。该逻辑函数的输入输出映射关系只有一个,即当且仅当前序的两个输入数据对象同时存在时,方可输出唯一的输出UI对象。
(4)“功能配置区”UI对象的类型为动态组件,内容为功能配置区的动态DOM代码;其对应的UI对象节点被“渲染功能配置区”逻辑函数节点指向,表示前者指代的UI对象的结构及其状态由后者指代的逻辑函数及其输入数据对象决定。
本实施例中,“运行时域仿真”这一流程描述的是,用户对时域仿真配置表单内容进行确认提交后,服务端立即运行相应的大电网时域仿真作业;仿真作业结束后,服务端将仿真结果持久化于服务器中,并将需要展示在客户端的部分结果信息以及该仿真任务的ID返回至客户端;结果信息用于展示,仿真任务ID旨在为已完成的仿真作业分配一个唯一标识符,为后续操作明确操作对象。描述该流程的软件数据链路共包含21个节点、22条有向边,下面对上述节点与有向边的内涵进行阐述:
(1)“时域仿真配置表单”UI对象的类型为组件,内容为Form(AntDesign提供的表单组件),“确认信号”数据对象的类型为UI触发信号;前者UI对象节点指向后者数据对象节点,表示后者指代的数据对象由来源于前者指代的UI对象,即上述UI对象可产生确认信号,对应用户左键单击表单组件内的“运行仿真”按钮。
(2)“时域仿真配置表单”UI对象节点指向“表单回调数据”数据对象节点,表示后者指代的数据对象是前者指代的UI对象中的内在属性,这是由于AntDesign提供的表单组件已对表单内部各组件的数据进行了统一管理与封装,在确认事件发生时,程序可以获取其数值。
(3)“运行时域仿真(客户端)”逻辑函数的编程语言为JavaScript;其将表单回调数据,即时域仿真配置信息,以及选中的数据块ID打包为“交互数据”数据对象,并将该数据对象传输至“运行时域仿真(服务端)”逻辑函数作为其输入数据。该逻辑函数的输入输出映射关系共有两个,其一是当所述三个输入数据对象同时存在时,可输出“交互数据”数据对象,另一关系在下面描述“运行时域仿真”流程的第(9)点中进行阐述。
(4)“选中的数据块ID”存储总线指向“选中的数据块ID”数据对象节点,表示“运行时域仿真(客户端)”逻辑函数从上述存储单元中将“选中的数据块ID”数据对象读出。
(5)“数据工作区全体数据索引(服务端)”存储单元的类型是表;其对应的存储总线指向“模型镜像ID”数据对象节点,表示“运行时域仿真(服务端)”从上述存储单元中将“模型镜像ID”数据对象读出。
(6)“模型镜像数据”存储单元的类型是图;其对应的存储总线指向“模型镜像数据”数据对象节点,表示“运行时域仿真(服务端)”从上述存储单元中将“模型镜像数据”数据对象读出。
(7)“运行时域仿真(服务端)”逻辑函数的编程语言为Golang;其根据交互数据中的“选中的数据块ID”,从“数据工作区全体数据索引(服务端)”存储单元中读出模型镜像ID,然后根据模型镜像ID,从“模型镜像数据”存储单元中读出模型镜像数据,之后运行时域仿真,产生时域仿真结果和仿真任务ID;该逻辑函数的输入输出映射关系只有一个,即当且仅当前序的三个输入数据对象存在时,方可同时输出后序的三个输出数据对象。
(8)“时域仿真结果”存储单元的类型是时序数据;其对应的存储总线被“时域仿真结果”数据对象节点指向,表示“运行时域仿真(服务端)”将“时域仿真结果”数据对象写入上述存储单元中,“时域仿真结果”数据对象中包含仿真任务ID的信息。
(9)在该软件数据链路中,共有两个“运行时域仿真(客户端)”逻辑函数节点,都是指代同一个逻辑函数,即“运行时域仿真(客户端)”逻辑函数。在第(3)点中已介绍该逻辑函数的部分功能,除此以外,该逻辑函数还能接收来自服务端的“时域仿真结果(展示在客户端的部分)”和“仿真任务ID”数据对象,随后执行相关逻辑。如第(3)点所述,该逻辑函数的输入输出映射关系共有两个,第二个关系是当所述来自服务端的两个输入数据对象同时存在时,可输出“仿真输出显示结果”和“仿真任务ID”数据对象。
(10)“仿真输出显示组件”UI对象的类型为复用组件,内容为仿真输出显示区域的DOM代码;其对应的UI对象节点被“仿真输出显示结果”数据对象节点指向,表示前者指代的UI对象的状态由后者指代的数据对象决定。
(11)“仿真任务ID”存储单元的类型是键值对;其对应的存储总线被“仿真任务ID”数据对象节点指向,表示“运行时域仿真(客户端)”逻辑函数将“仿真任务ID”数据对象写入上述存储单元中。
本实施例中,“输出仿真数据至数据工作区”这一流程描述的是,用户对时域仿真输出结果确认无误并将其输出至工作区时,服务端会对服务器中存储的数据工作区数据进行更新,然后将数据工作区新的数据索引返回至客户端,之后客户端据此更新数据工作区的内容。描述该流程的软件数据链路共包含15个节点、15条有向边,下面对上述节点与有向边的内涵进行阐述:
(1)“‘输出至工作区’按钮”UI对象的类型为组件,内容为Button(AntDesign提供的按钮组件),“左键单击信号”数据对象的类型为UI触发信号;前者UI对象节点指向后者数据对象节点,表示后者指代的数据对象来源于前者指代的UI对象,即上述UI对象可产生左键单击信号,对应用户左键单击该UI对象。
(2)“输出仿真数据至工作区”逻辑函数的编程语言为JavaScript;其接收到“输出至工作区”按钮的左键单击信号后,将仿真任务ID传输至“添加仿真数据至工作区”逻辑函数作为其输入数据。该逻辑函数的输入输出映射关系共有两个,其一是当所述两个输入数据对象同时存在时,可输出“仿真任务ID”数据对象,另一关系在下面描述“输出仿真数据至数据工作区”流程的第(7)点中进行阐述。
(3)“数据工作区全体数据索引(服务端)”存储总线指向“数据工作区原有数据索引”数据对象节点,表示“添加仿真数据至工作区”逻辑函数从上述存储单元中将“数据工作区原有数据索引”数据对象读出。
(4)“时域仿真结果”存储总线指向“仿真基础信息”数据对象节点,表示“添加仿真数据至工作区”逻辑函数从上述存储单元中将“仿真基础信息”数据对象读出。
(5)“添加仿真数据至工作区”逻辑函数的编程语言为Golang;其根据仿真任务ID从“时域仿真结果”存储单元中读出对应仿真作业的基础信息,然后从“数据工作区全体数据索引(服务端)”存储单元中读出数据工作区原有的数据索引,之后将仿真作业的基础信息添加至数据工作区中,更新数据工作区的数据索引,并将新索引传输至“输出仿真数据至工作区”逻辑函数作为其输入数据;该逻辑函数的输入输出映射关系只有一个,即当且仅当前序的三个输入数据对象存在时,方可同时输出后序的两个输出数据对象。
(6)“数据工作区全体数据索引(服务端)”存储总线被“数据工作区新增数据”数据对象节点指向,表示“添加仿真数据至工作区”逻辑函数将“数据工作区新增数据”数据对象写入上述存储单元中。
(7)在该软件数据链路中,共有两个“输出仿真数据至工作区”逻辑函数节点,都是指代同一个逻辑函数,即“输出仿真数据至工作区”逻辑函数。在第(2)点中已介绍该逻辑函数的部分功能,除此以外,该逻辑函数还能接收来自服务端的“数据工作区新的数据索引”数据对象,随后执行相关逻辑。如第(2)点所述,该逻辑函数的输入输出映射关系共有两个,第二个关系是当所述来自服务端的输入数据对象存在时,可输出“数据工作区新的数据索引”数据对象。
(8)“数据工作区全体数据索引(客户端)”存储单元的类型是键值对;其对应的存储总线被“数据工作区新的数据索引”数据对象节点指向,表示“输出仿真数据至工作区”逻辑函数将“数据工作区新的数据索引”数据对象写入上述存储单元中。
(9)“数据工作区数据块集合”UI对象节点被“数据工作区新的数据索引”数据对象节点指向,表示前者指代的UI对象的状态由后者指代的数据对象决定。
下面对本实施例中涉及的软件要素和数据链路节点进行总结。
表1描述了全体数据对象的信息,表1如下表所示:
表2描述了全体UI对象的信息,表2如下表所示:
表3描述了全体逻辑函数的信息,表3如下表所示:
表4描述了全体存储单元的信息,表4如下表所示:
表5描述了全体节点的信息,表5如下表所示:
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本实施例所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本实施例说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本实施例所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本实施例所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本实施例描述的过程的操作,除非本实施例另外指示或以其他方式明显地与上下文矛盾。本实施例描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本实施例所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本实施例所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

Claims (7)

1.一种将软件要素组织为软件数据链路的方法,其特征在于,所述将软件要素组织为软件数据链路的方法,包括以下步骤:
获取软件要素;所述软件要素包括数据对象、UI对象、逻辑函数、存储单元;
获取与所述软件要素对应的节点;所述节点用于指代所述软件要素;所述数据对象对应的节点为数据对象节点;所述UI对象对应的节点为UI对象节点;所述逻辑函数对应的节点为逻辑函数节点;所述存储单元对应的节点为存储总线;
根据所述软件要素之间的关系,确定所述节点之间的连接关系;
根据所述节点之间的连接关系,确定与所述连接关系对应的有向边;
通过所述节点与所述有向边的组合,形成软件数据链路;所述软件数据链路用于刻画软件数据的流动过程;
所述根据所述节点之间的连接关系,确定与所述连接关系对应的有向边这一步骤,包括:
以一个节点作为有向边的一端,以不同类型的另一个节点作为有向边的另一端,建立所述有向边,具体包括:
根据第一连接规则,建立所述数据对象节点与所述存储总线之间的有向边;所述第一连接规则为一个所述数据对象节点只允许与一个所述存储总线通过有向边连接;
根据第二连接规则,建立所述存储总线与所述数据对象节点之间的有向边;所述第二连接规则为一个所述存储总线允许与多个所述数据对象节点通过有向边连接;
根据第三连接规则,建立所述数据对象节点与所述逻辑函数节点之间的有向边;所述第三连接规则为一个所述数据对象节点允许与一个或多个所述逻辑函数节点通过有向边连接;
根据第四连接规则,建立所述逻辑函数节点与所述数据对象节点之间的有向边;所述第四连接规则为一个所述逻辑函数节点允许与一个或多个所述数据对象节点通过有向边连接;
根据第五连接规则,建立所述数据对象节点与所述UI对象节点之间的有向边;所述第五连接规则为一个所述数据对象节点允许与一个或多个所述UI对象节点通过有向边连接;
根据第六连接规则,建立所述UI对象节点与所述数据对象节点之间的有向边;所述第六连接规则为一个所述UI对象节点允许与一个或多个所述数据对象节点通过有向边连接;
根据第七连接规则,建立所述逻辑函数节点与所述UI对象节点之间的有向边;所述第七连接规则为所述逻辑函数节点允许与一个或多个所述UI对象节点通过有向边连接。
2.根据权利要求1所述的将软件要素组织为软件数据链路的方法,其特征在于,所述数据对象节点与所述数据对象为一对一的索引关系;所述UI对象节点与所述UI对象为多对一的索引关系;所述逻辑函数节点与所述逻辑函数为多对一的索引关系;所述存储总线与所述存储单元为一对一的索引关系。
3.根据权利要求1所述的将软件要素组织为软件数据链路的方法,其特征在于,所述软件要素具有要素结构体;所述节点具有节点结构体;所述根据所述软件要素之间的关系,确定所述节点之间的连接关系这一步骤,还包括:
根据所述节点结构体与所述要素结构体,确定所述节点的特性。
4.根据权利要求3所述的将软件要素组织为软件数据链路的方法,其特征在于,所述根据所述节点之间的连接关系,确定与所述连接关系对应的有向边这一步骤,具体包括:
根据所述有向边的两端的节点的特性,确定所述有向边的特性。
5.根据权利要求4所述的将软件要素组织为软件数据链路的方法,其特征在于,所述根据所述有向边的两端的节点的特性,确定所述有向边的特性这一步骤,具体包括:
针对从所述数据对象节点指向所述存储总线的有向边,设定第一属性;所述第一属性表示所述数据对象存储至所述存储单元中;
针对从所述数据对象节点指向所述存储总线的有向边,设定第二属性;所述第二属性表示所述数据对象从所述存储单元中取出;
针对从所述数据对象节点指向所述逻辑函数节点的有向边,设定第三属性;所述第三属性表示所述数据对象输入至所述逻辑函数中;
针对从所述逻辑函数节点指向所述数据对象节点的有向边,设定第四属性;所述第四属性表示所述数据对象由所述逻辑函数输出;
针对从所述数据对象节点指向所述UI对象节点的有向边,设定第五属性;所述第五属性表示所述数据对象作用于所述UI对象上;
针对从所述UI对象节点指向所述数据对象节点的有向边,设定第六属性;所述第六属性表示所述数据对象来源于所述UI对象;
针对从所述逻辑函数节点指向所述UI对象节点的有向边,设定第七属性;所述第七属性表示所述逻辑函数产生所述UI对象,所述UI对象为内容随所述逻辑函数输入的数据对象变化而变化的UI对象。
6.一种将软件要素组织为软件数据链路的装置,其特征在于,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行权利要求1-5任一项所述方法。
7.一种存储介质,其中存储有处理器可执行的指令,其特征在于,所述处理器可执行的指令在由处理器执行时用于执行如权利要求1-5任一项所述方法。
CN202310570792.5A 2023-05-19 2023-05-19 将软件要素组织为软件数据链路的方法、装置及存储介质 Active CN116301735B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310570792.5A CN116301735B (zh) 2023-05-19 2023-05-19 将软件要素组织为软件数据链路的方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310570792.5A CN116301735B (zh) 2023-05-19 2023-05-19 将软件要素组织为软件数据链路的方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN116301735A CN116301735A (zh) 2023-06-23
CN116301735B true CN116301735B (zh) 2023-07-21

Family

ID=86827305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310570792.5A Active CN116301735B (zh) 2023-05-19 2023-05-19 将软件要素组织为软件数据链路的方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN116301735B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117348852B (zh) * 2023-12-05 2024-03-29 华南理工大学 基于细粒度软件要素构建数据链路的方法、装置及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179516A (zh) * 2006-11-10 2008-05-14 北京航空航天大学 基于有向图的数据分发方法
CN103473400A (zh) * 2013-08-27 2013-12-25 北京航空航天大学 基于层次依赖建模的软件fmea方法
WO2013190644A1 (ja) * 2012-06-20 2013-12-27 株式会社 日立製作所 制御ソフトウェアの設計支援装置
CN106951365A (zh) * 2016-03-01 2017-07-14 北京航空航天大学 一种基于面向对象软件代码的软件复杂网络模型构建方法
CN114371998A (zh) * 2021-12-31 2022-04-19 华南理工大学 一种基于考虑约束的并行广度优先搜索的架构测试方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179516A (zh) * 2006-11-10 2008-05-14 北京航空航天大学 基于有向图的数据分发方法
WO2013190644A1 (ja) * 2012-06-20 2013-12-27 株式会社 日立製作所 制御ソフトウェアの設計支援装置
CN103473400A (zh) * 2013-08-27 2013-12-25 北京航空航天大学 基于层次依赖建模的软件fmea方法
CN106951365A (zh) * 2016-03-01 2017-07-14 北京航空航天大学 一种基于面向对象软件代码的软件复杂网络模型构建方法
CN114371998A (zh) * 2021-12-31 2022-04-19 华南理工大学 一种基于考虑约束的并行广度优先搜索的架构测试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于面向服务架构的工业软件的任务调度算法;宁明超 等;计算机应用;第43卷(第3期);第885-893页 *

Also Published As

Publication number Publication date
CN116301735A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
CN109542399B (zh) 软件开发方法、装置、终端设备及计算机可读存储介质
CN108228169B (zh) 基于eCharts工具的图表制作方法、装置、设备及介质
CN108351636B (zh) 工程设计工具、系统及模块
CN109408102B (zh) 一种版本比对方法和装置、家电设备、网络设备
CN107273104B (zh) 一种配置数据结构的处理方法及装置
CN111625226B (zh) 一种基于原型的人机交互设计实现方法及系统
US20210304142A1 (en) End-user feedback reporting framework for collaborative software development environments
CN116301735B (zh) 将软件要素组织为软件数据链路的方法、装置及存储介质
CN108170425B (zh) 一种程序代码的修改方法、修改装置及终端设备
CN113282795B (zh) 数据结构图生成及更新方法、装置、电子设备及存储介质
US9542164B1 (en) Managing an application variable using variable attributes
CN113535165A (zh) 界面生成方法、装置、电子设备及计算机可读存储介质
CN111209203A (zh) 一种基于源代码的模型验证方法
CN104484163A (zh) 一种基于统一建模环境的异构模型转换方法
CN109086476B (zh) 一种用于图纸设计的数据处理方法、plm插件及计算设备
CN111026670B (zh) 测试用例的生成方法、测试用例的生成装置及存储介质
CN115495069A (zh) 基于模型驱动的煤炭工业软件流程实现方法、装置及设备
CN113626017A (zh) 异构程序的分析方法、装置、计算机设备和存储介质
US20070225953A1 (en) Management system and management method of CAD data
WO2024045090A1 (zh) 产品模型的仿真方法和装置
CN112130723B (zh) 用于针对数据执行特征处理的方法及系统
JP4902567B2 (ja) 作業手順書作成システム、及び、作業手順書作成プログラム
CN110312990A (zh) 配置方法及系统
CN114757124B (zh) 一种基于xml的cfd工作流建模方法、装置、计算机及存储介质
CN116225902A (zh) 生成测试用例的方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant