CN115202627A - 软件拆分管理方法、系统、终端设备及存储介质 - Google Patents

软件拆分管理方法、系统、终端设备及存储介质 Download PDF

Info

Publication number
CN115202627A
CN115202627A CN202210765468.4A CN202210765468A CN115202627A CN 115202627 A CN115202627 A CN 115202627A CN 202210765468 A CN202210765468 A CN 202210765468A CN 115202627 A CN115202627 A CN 115202627A
Authority
CN
China
Prior art keywords
software
subprogram
splitting
split
main program
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.)
Pending
Application number
CN202210765468.4A
Other languages
English (en)
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.)
Shenzhen Taisoft Software Technology Co ltd
Original Assignee
Shenzhen Taisoft Software Technology Co ltd
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 Shenzhen Taisoft Software Technology Co ltd filed Critical Shenzhen Taisoft Software Technology Co ltd
Priority to CN202210765468.4A priority Critical patent/CN115202627A/zh
Publication of CN115202627A publication Critical patent/CN115202627A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

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

Abstract

本申请公开了一种软件拆分管理方法、系统、终端设备及存储介质,属于计算机软件领域。所述软件拆分管理方法包括:获取待拆分软件的功能信息;基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的子程序用于实现不同的功能。基于本申请方案,根据软件功能,对待拆分软件进行功能划分,通过子程序的窗体的分离实现软件的拆分,开发者可以对各个子程序进行独立的操作,从而保证软件各个功能之间的相互独立,有利于模块功能的重复利用,避免了软件的功能耦合。

Description

软件拆分管理方法、系统、终端设备及存储介质
技术领域
本申请涉及计算机软件领域,尤其涉及一种软件拆分管理方法、系统、终端设备及存储介质。
背景技术
上位机是指可以直接发出操控命令的计算机,通常工控机,工作站,触摸屏等都可以作为上位机对下位机进行控制。在自动化设备中,上位机软件是核心的组成部分,其能够将一系列控制指令发送至下位机,下位机再根据接收到的控制指令直接控制相应设备。无论是上位机还是下位机,都具有专门的开发系统,且需要通过编程来适应不同的工作环境。
然而,在当前的上位机软件开发领域中,虽然上位机软件包含了多个功能相对独立的模块,但仍然普遍采用多个功能模块统一开发的方案,容易造成上位机软件各个功能之间的耦合,不符合软件设计中“低耦合,高内聚”的理念,从而影响了软件的质量。
因此,有必要提出一种软件拆分管理方法,以解决在当前软件开发中,由于各个模块统一开发所导致的高耦合的问题。
发明内容
本申请的主要目的在于提供一种软件拆分管理方法、系统、终端设备及存储介质,旨在解决在当前软件开发中,由于各个模块统一开发所导致的高耦合的问题。
为实现上述目的,本申请提供一种软件拆分管理方法,所述软件拆分管理方法包括:
获取待拆分软件的功能信息;
基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的子程序用于实现不同的功能。
可选地,所述基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序的步骤包括:
基于所述功能信息,对所述待拆分软件进行功能划分,得到所述主程序和子程序;
分离子程序的窗体;
根据预设的子程序显示区域,将子程序的窗体显示在指定区域内,完成对所述待拆分软件的拆分。
可选地,所述分离子程序的窗体的步骤包括:
获取所述子程序的窗体的句柄;
基于所述子程序的窗体的句柄,分离所述子程序的窗体。
可选地,所述待拆分的软件为Windows上位机软件,所述获取所述子程序的窗体的句柄步骤包括:
读取所述Windows上位机软件的配置文件;
基于所述配置文件,获取所述子程序的文件路径地址;
基于所述子程序的文件路径地址,获取所述子程序的进程编号;
根据所述子程序的进程编号,确定所述子程序的窗体的句柄。
可选地,所述基于所述子程序的窗体的句柄,分离所述子程序的窗体的步骤包括:
解除所述子程序的窗体的句柄与主程序的父子关系;
解除所述父子关系后,突出显示所述子程序的窗体,以实现所述子程序的窗体的分离。
可选地,所述根据功能划分的结果,将所述待拆分的软件拆分为一个主程序和至少一个子程序的步骤之后还包括:
根据业务需求对所述子程序进行开发操作;
将所述子程序重新嵌入所述主程序中。
可选地,所述将所述子程序重新嵌入所述主程序中的步骤包括:
隐藏所述子程序的窗体,进入子程序嵌入模式;
进入所述子程序嵌入模式后,重新建立所述主程序窗体与子程序的窗体之间的父子关系;
基于所述父子关系,将所述子程序重新嵌入所述主程序中。
此外,本申请实施例还提出一种软件拆分管理系统,所述软件拆分管理系统包括:
信息获取模块,用于获取待拆分软件的功能信息;
软件拆分模块,用于基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的子程序用于实现不同的功能。
此外,本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件拆分程序,所述软件拆分程序被所述处理器执行时实现如上所述的软件拆分管理方法的步骤。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有软件拆分程序,所述软件拆分程序被处理器执行时实现如上所述的软件拆分管理方法的步骤。
本申请实施例提出的软件拆分管理方法、软件拆分管理系统、终端设备以及存储介质,通过获取待拆分软件的功能信息;基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的子程序用于实现不同的功能。基于本申请方案,针对于现有上位机软件开发领域中,由于软件多个功能统一开发所导致的软件功能耦合的缺陷,提出了根据软件功能进行划分,将一个完整的上位机软件拆分为一个主程序和多个子程序组合体的方案,之后开发人员可以根据业务需求对每个子程序进行对应的操作,从而实现了上位机软件各个功能之间的独立开发,有利于模块功能的重复使用,避免了软件功能耦合。
附图说明
图1为本申请软件拆分管理系统所属终端设备的功能模块示意图;
图2为本申请软件拆分管理方法第一实施例的流程示意图;
图3为本申请软件拆分管理方法第一实施例关于步骤S20的细化流程示意图;
图4为本申请软件拆分管理方法第二实施例的流程示意图;
图5为本申请软件拆分管理方法第二实施例关于步骤S2021的细化流程示意图;
图6为本申请软件拆分管理方法第二实施例关于步骤S2022的细化流程示意图;
图7为本申请软件拆分管理方法第三实施例的流程示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:获取待拆分软件的功能信息;基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的子程序用于实现不同的功能。
本申请实施例涉及的技术术语:
上位机软件,是指存储于上位机之中以辅助实现上位机功能的软件。其中上位机是指可以直接发出操控命令的计算机,如PC/host computer/master computer/uppercomputer等,可以显示各种信号变化(如液压,水位,温度等)。相对于上位机的概念,下位机是用于直接控制设备获取设备状况的计算机,一般是指PLC/单片机single chipmicrocomputer/slave computer/lower computer之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。简言之如此,实际情况千差万别,但万变不离其宗:上下位机都需要编程,都有专门的开发系统。
在概念上,控制者和提供服务者是上位机,被控制者和被服务者是下位机,也可以理解为主机和从机的关系,但从实际应用的角度来说,上位机和下位机是可以转换的。
句柄,即HANDLE,是Windows用来表示对象的(不同于C++等其他面向对象类编程语言中的对象)标识号。在windows程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时会为他们分配内存,并返回标示这些资源的标示号,即得到了句柄。句柄指的是一个核心对象在某一个进程中的唯一索引,而不是指针。
由于地址空间的限制,句柄所标识的内容对进程是不可见的,只能由操作系统通过进程句柄列表来进行维护。句柄列表:每个进程都要创建一个句柄列表,这些句柄指向各种系统资源,比如信号量,线程,和文件等,进程中的所有线程都可以访问这些资源。
本申请实施例考虑到,通常情况下,在实际的自动化设备应用场景中,为了实现最优控制,一款上位机软件会包含多个相对独立的功能模块(如视觉功能模块、运动控制模块、MES通信模块等),如果将多个功能模块统一写在一款软件中,由于开发者往往只擅长其中一个功能模块,这就需要多个开发者协同实现一款上位机软件的开发,使得上位机软件比较臃肿,造成功能耦合,且单个模块的异常会引起整个上位机软件出现问题,不利于模块功能的重复利用。
因此,本申请实施例方案提出了一种软件拆分管理方法,该方法可用于上位机的开发过程,通过使用该方法,上位机软件的各个功能之间可以相互独立开发(但是在使用的用户看来,仍然是在操作一款软件),从而有效解决了上位机软件的开发过程中的功能耦合问题。
具体地,参照图1,图1为本申请软件拆分管理系统所属终端设备的功能模块示意图。该软件拆分管理系统可以为独立于终端设备的、能够进行软件拆分管理的软件平台,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
在本实施例中,该软件拆分管理系统所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。存储器130中存储有操作系统以及软件拆分程序,上述软件拆分系统可以将获取的待拆分软件的功能信息,基于所述功能信息,对所述待拆分软件进行拆分的结果等信息存储于该存储器130中;输出模块110可为显示屏等。通信模块140可以包括WIFI模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
其中,存储器130中的软件拆分管理程序被处理器执行时实现以下步骤:
获取待拆分软件的功能信息;
基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的程序用于实现不同的软件功能。
其中,存储器130中的软件拆分管理程序被处理器执行时实现以下步骤:
基于所述功能信息,对所述待拆分软件进行功能划分,得到所述主程序和子程序;
分离所述子程序的窗体;
根据预设的子程序显示区域,将所述子程序的窗体显示在指定区域内,完成对所述待拆分软件的拆分。
进一步地,存储器130中的软件拆分管理程序被处理器执行时还实现以下步骤:
获取所述子程序的窗体的句柄;
基于所述子程序的窗体的句柄,分离所述子程序的窗体。
进一步地,存储器130中的软件拆分管理程序被处理器执行时还实现以下步骤:
读取Windows上位机软件的配置文件;
基于所述配置文件,获取所述子程序的文件路径地址;
基于所述子程序的文件路径地址,获取所述子程序的进程标识符;
根据所述子程序的进程标识符,确定所述子程序的窗体的句柄。
进一步地,存储器130中的软件拆分管理程序被处理器执行时还实现以下步骤:
解除所述子程序的窗体的句柄与主程序的父子关系;
解除所述父子关系后,突出显示所述子程序的窗体,实现所述子程序的分离。
进一步地,存储器130中的软件拆分管理程序被处理器执行时还实现以下步骤:
根据业务需求对所述子程序进行开发操作;
将所述子程序重新嵌入所述主程序中。
进一步地,存储器130中的软件拆分管理程序被处理器执行时还实现以下步骤:
隐藏所述子程序的窗体,进入子程序嵌入模式;
进入所述子程序嵌入模式后,重新建立所述子程序的窗体的句柄与主程序的父子关系。
本实施例通过上述方案,具体通过获取待拆分软件的功能信息;基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的子程序用于实现不同的功能。基于本申请方案,对待拆分的软件进行功能划分得到一个主程序和至少一个子程序,并将主程序和子程序的窗体分离,最终实现软件的拆分。用户可以对各个子程序进行独立的开发操作,从而实现软件各个功能之前的独立开发,有利于模块功能的重复利用,避免了由于软件统一开发所导致的功能耦合。
基于上述终端设备架构但不限于上述架构,提出本申请方法实施例。
参照图2,图2为本申请软件拆分管理方法第一实施例的流程示意图。所述软件拆分管理方法包括:
步骤S10,获取待拆分软件的功能信息;
具体地,本申请中所指的待拆分软件为一种Windows上位机软件(并不代表本申请的方案仅能用于Windows上位机软件的拆分,本申请只是为了便于理解,采取了Windows上位机软件作为具体对象来进行详细的说明),该软件可以实现如视觉功能、运动控制功能、通信功能等通用的上位机软件功能。如上述技术术语中的介绍,由于集成了多个功能,导致上述上位机软件不符合程序设计中“高内聚、低耦合”的理念,导致软件比较臃肿,单个模块的异常会引发整个上位机软件出现问题。
上述待拆分软件的功能信息包括了该上位机软件的源程序、可执行程序、业务逻辑等,通过对这些信息进行分类,可以将上述待拆分软件的功能划分为多个子功能,每个子功能对应一系列操作,每个子功能之间相互独立,从而将一个完整的上位机软件划分为了由多个功能模块实现的组合体。
步骤S20,基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的程序用于实现不同的软件功能。
如上所述,根据上位机软件的功能信息,可以对一个完整的上位机软件进行功能划分,在逻辑上将其分为一个主程序和至少一个子程序的组合体。其中主程序即原有的完整的上位机软件,包括了所有功能模块的功能,而每个子程序都对应了一种不同的软件功能。要实现实际的软件拆分,就需要根据上述功能划分的结果,将子程序从主程序中分离出来。
具体地,参照图3,图3为本实施例关于步骤S20的细化流程示意图,如图3所示,上述基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序的步骤包括:
步骤S201,基于所述功能信息,对所述待拆分软件进行功能划分,得到所述主程序和子程序;
步骤S202,分离所述子程序的窗体;
具体地,如上所述,通过对软件进行功能划分,可以得到关于软件逻辑划分的结果,包括一个主程序和至少一个子程序。仍然以Windows上位机为例,Window窗体是Windows应用开发中的一种UI(即User Interface,用户界面)框架,提供了一种基于可视化设计器开发应用的高效方案,通过Windows窗体,开发者可以简单地对Windows软件进行开发。本实施例所提出的软件拆分方案,即通过分离主程序与子程序的窗体,在子程序的窗体中进行对子程序的开发操作,完成所有子程序的开发操作之后,就可以实现对完整软件的开发。
步骤S203,根据预设的子程序显示区域,将所述子程序的窗体显示在指定区域内,完成对所述待拆分软件的拆分。
具体地,用户可以预先在上位机中设定每个子程序的显示区域,当分离子程序的窗体后,每个子程序就会对应显示在其显示区域内。当用户需要操作子程序软件时,既可以在上位机软件区域内(分离子程序的窗体后,上位机软件即成为了主程序)操作,也可以在子程序区域内操作,即将每个子程序软件当做独立软件进行操作,便于用户对子程序进行独立的参数调试,完成了对所述待拆分软件的拆分。
本实施例通过上述方案,具体通过获取待拆分软件的信息;基于所述待拆分软件的信息,对所述待拆分软件进行功能划分;根据功能划分的结果,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的程序用于实现不同的功能。基于本实施例,提出了对上位机软件进行拆分的完整方案,通过分离子程序的窗体,用户可以对每个子程序进行独立的开发以及参数调试,从而避免了由于软件功能统一开发所导致的耦合。
进一步地,参照图4,提出本申请软件拆分管理方法第二实施例的流程示意图。基于上述图3所示实施例的步骤S202,上述分离所述子程序的窗体的步骤包括:
步骤S2021,获取所述子程序的窗体的句柄;
具体地,句柄即HANDLE,是Windows用来表示对象的标识号。在Windows程序中,每个程序都拥有自己的句柄,这些句柄即包含了每个程序所拥有的资源的信息。
更为具体地,参照图5,图5为本实施例关于步骤S2021的细化流程示意图,所述获取所述子程序的窗体的句柄的步骤包括:
步骤A10,读取所述Windows上位机软件的配置文件;
步骤A20,基于所述配置文件,获取所述子程序的文件路径地址;
具体地,仍然以Windows上位机软件为例,由于每个子程序的资源都是包括在上述Windows上位机软件之中,因此可以通过获取Windows上位机软件的配置文件的方式,获取到子程序exe的文件路径地址,子程序的窗体句柄即包含在此文件之中。
步骤A30,基于所述子程序的文件路径地址,获取所述子程序的进程标识符;
步骤A40,根据所述子程序的进程标识符,确定所述子程序的窗体的句柄。
具体地,进程标识符,即PID(Process Identification,是操作系统用来唯一标识某个进程的标识符,操作系统里每打开一个程序都会创建一个进程ID,即PID),是各进程的代号,每个进程有唯一的PID编号。它是进程运行时由系统分配的,并不代表专门的进程。在运行时PID是不会改变标识符的,但是进程终止后PID标识符就会被系统回收,就可能会被继续分配给新运行的程序。
在Windows系统中,可以通过调用CreateProcess函数启动子程序的进程来获取子程序的PID,根据该PID,即可确定子程序的窗体的句柄。
步骤S2022,基于所述子程序的窗体的句柄,分离所述子程序的窗体。
具体地,参照图6,图6为本实施例关于步骤S2022的细化流程示意图,所述基于所述子程序的窗体的句柄,分离所述子程序的窗体的步骤包括:
步骤A50,解除所述子程序的窗体的句柄与主程序的父子关系;
步骤A60,解除所述父子关系后,突出显示所述子程序的窗体,以分离所述子程序的窗体。
具体地,获取到子程序的窗体的句柄后,可以通过修改子程序的参数来解除与主程序之间的父子关系,父子关系解除后,上位机软件会向子程序发送消息(可由用户自由定义),以通过子程序进入独立模式,子程序接收到上位机软件发送的消息后,会去除其窗体的WS_CHILDWINDOW属性,增加窗体的WS_OVERLAPPEDWINDOW属性,并调用Windows的ShowWindow函数,设置子程序SW_MAX属性,最大化显示子程序(本申请的实施人员也可以设置自定义的突出显示方式,在此不再赘述),从而实现子程序与上位机软件的分离。
本实施例通过上述方案,具体通过获取所述子程序的窗体的句柄;基于所述子程序的窗体的句柄,分离所述子程序的窗体。本实施例通过Windows系统提供的句柄进行子程序的窗体分离的操作,通过Windows上位机软件的配置文件来获取子程序的窗体的句柄,并解除子程序的窗体的句柄与主程序之间的父子关系,将解除父子关系之后的子程序的窗体突出显示,从而实现了子程序与上位机软件的分离,方便单独对子程序进行开发。相比于上述实施例,本实施例给出了分离子程序的窗体的方案,进一步完善了本申请的应用场景,并进一步起到了降低软件功能耦合的效果。
进一步地,参照图7,图7为本申请软件拆分管理方法第三实施例的流程示意图。基于上述图2所述实施例的步骤S20,所述根据功能划分的结果,将所述待拆分软件拆分为一个主程序和至少一个子程序的步骤之后还包括:
步骤S40,根据业务需求对所述子程序进行开发操作;
具体地,本实施例为本申请软件拆分管理方法用于实际中上位机软件开发的场景说明。将上位机软件进行拆分后,各个子程序之间相互独立,此时即可专注于每个子程序进行开发或参数配置,而不必担心影响到其他功能模块。子程序包括主要功能窗体、生产子窗体、通信控制模块等,在开发过程中,会隐藏子程序的生产子窗体,显示子程序其余窗体,便于用户对子程序进行独立的参数调试。
步骤S50,将所述子程序重新嵌入所述主程序中。
具体地,每个子程序都能够接收来自用户的重新融合操作后(可为根据Windows系统自定义的消息,此时认为开发已经结束),调用Windows的12.ShowWindow函数,设置子程序SW_HIDE属性,隐藏子程序的窗体;子程序进入嵌入模式,隐藏除生产子窗体外的其余窗体,操作生产子窗体布满子程序的全部显示区域;子程序向上位机软件发送Windows用户自定义消息,通知子程序即将重新融入上位机软件中;上位机软件接收到子程序消息后,重新设置上位机软件窗体句柄为子程序的窗体的父窗体;移动子程序的窗体到上位机软件提前划定的显示区域上,并调用Windows的ShowWindow函数,设置子程序SW_SHOW属性,重新显示子程序的窗体。
更为具体地,本实施例还提出了子程序随上位机软件关闭的实现步骤,即当上位机软件关闭时,重复设置一遍上位机软件(即主程序)的窗体句柄为所有子程序的窗体的父窗体,利用Windows系统自带的父窗体关闭机制,向子窗体发送WM_CLOSE消息,子程序接收到上位机软件的软件关闭信息,调用默认子程序的关闭程序,从而关闭子程序。
本实施例通过上述方案,具体包括:根据业务需求对所述子程序进行开发操作;将所述子程序重新嵌入所述主程序中。相比于上述实施例,本实施例提出了操作结束后,将子程序重新融合至主程序的方案,相对于用户来说,主程序与所有子程序仍然构成一个完整的、具备多种功能的上位机软件,从而进一步完善了本申请的应用场景,提高了本申请的实用性。
此外,本申请实施例还提出一种软件拆分管理系统,所述软件拆分管理系统包括:
信息获取模块,用于获取待拆分软件的功能信息;
软件拆分模块,用于基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的子程序用于实现不同的功能。
本实施例实现软件拆分管理的原理及实施过程,请参照上述各实施例,在此不再赘述。
此外,本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件拆分管理程序,所述软件拆分管理程序被所述处理器执行时实现如上所述的软件拆分管理方法的步骤。
由于本软件拆分程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有软件拆分管理程序,所述软件拆分管理程序被处理器执行时实现如上所述的软件拆分管理方法的步骤。
由于本软件拆分管理程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
相比现有技术,本申请实施例提出的软件拆分管理方法、终端设备及存储介质,具体包括:获取待拆分软件的功能信息;基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的子程序用于实现不同的功能。基于本申请方案,对待拆分的软件进行功能划分得到一个主程序和至少一个子程序,并将主程序和子程序的窗体分离,最终实现软件的拆分。用户可以对各个子程序进行独立的开发操作,开发完成后还可以将子程序重新嵌入至主程序中,从而实现软件各个功能之间的独立开发,有利于模块功能的重复利用,避免了由于软件统一开发所导致的功能耦合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本申请每个实施例的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种软件拆分管理方法,其特征在于,所述软件拆分管理方法包括:
获取待拆分软件的功能信息;
基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的子程序用于实现不同的功能。
2.如权利要求1所述的软件拆分管理方法,其特征在于,所述基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序的步骤包括:
基于所述功能信息,对所述待拆分软件进行功能划分,得到所述主程序和子程序;
分离所述子程序的窗体;
根据预设的子程序显示区域,将所述子程序的窗体显示在指定区域内,完成对所述待拆分软件的拆分。
3.如权利要求2所述的软件拆分管理方法,其特征在于,所述分离所述子程序的窗体的步骤包括:
获取所述子程序的窗体的句柄;
基于所述子程序的窗体的句柄,分离所述子程序的窗体。
4.如权利要求3所述的软件拆分管理方法,其特征在于,所述待拆分的软件为Windows上位机软件,所述获取所述子程序的窗体的句柄步骤包括:
读取所述Windows上位机软件的配置文件;
基于所述配置文件,获取所述子程序的文件路径地址;
基于所述子程序的文件路径地址,获取所述子程序的进程标识符;
根据所述子程序的进程标识符,确定所述子程序的窗体的句柄。
5.如权利要求3所述的软件拆分管理方法,其特征在于,所述基于所述子程序的窗体的句柄,分离所述子程序的窗体的步骤包括:
解除所述子程序的窗体的句柄与主程序的父子关系;
解除所述父子关系后,突出显示所述子程序的窗体,以实现所述子程序的窗体的分离。
6.如权利要求1所述的软件拆分管理方法,其特征在于,所述基于所述功能信息,将所述待拆分的软件拆分为一个主程序和至少一个子程序的步骤之后还包括:
根据业务需求对所述子程序进行开发操作;
将所述子程序重新嵌入所述主程序中。
7.如权利要求6所述的软件拆分管理方法,其特征在于,所述将所述子程序重新嵌入所述主程序中的步骤包括:
隐藏所述子程序的窗体,进入子程序嵌入模式;
进入所述子程序嵌入模式后,重新建立所述子程序的窗体的句柄与主程序的父子关系;
基于所述父子关系,将所述子程序重新嵌入所述主程序中。
8.一种软件拆分管理系统,其特征在于,所述软件拆分管理系统包括:
信息获取模块,用于获取待拆分软件的功能信息;
软件拆分模块,用于基于所述功能信息,将所述待拆分软件拆分为一个主程序和至少一个子程序,其中,不同的子程序用于实现不同的功能。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件拆分管理程序,所述软件拆分管理程序被所述处理器执行时实现如权利要求1-7中任一项所述的软件拆分管理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有软件拆分管理程序,所述软件拆分管理程序被处理器执行时实现如权利要求1-7中任一项所述的软件拆分管理方法的步骤。
CN202210765468.4A 2022-06-29 2022-06-29 软件拆分管理方法、系统、终端设备及存储介质 Pending CN115202627A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210765468.4A CN115202627A (zh) 2022-06-29 2022-06-29 软件拆分管理方法、系统、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210765468.4A CN115202627A (zh) 2022-06-29 2022-06-29 软件拆分管理方法、系统、终端设备及存储介质

Publications (1)

Publication Number Publication Date
CN115202627A true CN115202627A (zh) 2022-10-18

Family

ID=83578343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210765468.4A Pending CN115202627A (zh) 2022-06-29 2022-06-29 软件拆分管理方法、系统、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN115202627A (zh)

Similar Documents

Publication Publication Date Title
CN104090749B (zh) 一种WinCE产品界面主题更新变换处理方法及系统
US6469714B2 (en) Infocenter user interface for applets and components
US6064382A (en) Object oriented apparatus and method for providing a graphical user interface for host-based software applications
US6795089B2 (en) Dynamic, live surface and model elements for visualization and modeling
US20140082511A1 (en) Method and system for emulating desktop software applications in a mobile communication network
JP2006501567A (ja) ユーザインタフェース要素をアプリケーションおよびユーザに知らせるためのシステムおよび方法
US5818445A (en) Method and system for creating computer-program-based applications with developer specified look and feel
WO2016113914A1 (ja) 開発支援システム
da Silva et al. XIS-UML profile for extreme modeling interactive systems
CN103150198B (zh) 一种组态软件的显示方法
WO2019241027A1 (en) Surfacing application functionality for an object
CN112364496A (zh) 基于html5和vue技术的航电仿真面板生成系统
CN110764864A (zh) 一种基于Terraform的可视化资源编排方法
CN114089999A (zh) 一种前端页面生成方法及系统
CN115202627A (zh) 软件拆分管理方法、系统、终端设备及存储介质
EP3944069B1 (en) Method, apparatus and system of voice interaction, vehicles and storage media
Meixner et al. Udit–a graphical editor for task models
WO2023273407A1 (zh) 页面组件的生成方法及装置
Beaudouin-Lafon Human-computer interaction
JPH11134085A (ja) ビル自動システム内のリアルタイム情報をモニタし、制御する方法およびその装置
CN111273894B (zh) 一种页面换肤方法、装置、设备及计算机可读存储介质
CN113807698A (zh) 一种工单生成方法、装置、电子设备及可读存储介质
EP1044408A1 (en) Dynamic interface synthesizer
WO2016092626A1 (ja) 開発支援システム
JPH10222355A (ja) Guiアプリケーション開発装置

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