一种管理软件功能模块生命周期的方法和装置的制造方法

文档序号:9249160阅读:272来源:国知局
一种管理软件功能模块生命周期的方法和装置的制造方法
【技术领域】
[0001] 本发明设及计算机领域,特别设及一种管理软件功能模块生命周期的方法和装 置。
【背景技术】
[0002] 软件功能模块是指程序代码中的对象或者实例,软件功能模块生命周期是指该软 件功能模块经历创建、使用、销毁该一过程。
[0003] 在相关技术中,常常是利用标准库的智能指针或者自定义的智能指针对软件功能 模块的生命周期进行管理。采用智能指针该种方式虽然有效地解决了生命周期自动化管理 的问题,但却没有实质性解决多个功能模块间复杂依赖关系的生命周期管理。
[0004] 在需要对多个功能模块进行生命周期管理时,采用智能指针该种方式无法实现对 多个功能模块的有序析构,从而导致软件维护成本较高。

【发明内容】

[0005] 本发明实施例提供了一种管理软件功能模块生命周期的方法和装置,W实现对多 个功能模块的有序析构,降低软件维护成本。
[0006] 第一方面,提供了一种管理软件功能模块生命周期的方法,所述方法包括:
[0007] 在软件启动时,生成所述软件内各个功能模块之间的依赖关系图谱;
[000引根据所述依赖关系图谱,确定所述各个功能模块的析构顺序;
[0009] 在所述软件准备退出时,按照确定的所述析构顺序,对所述各个功能模块进行有 序析构。
[0010] 可选地,所述生成软件内各个功能模块之间的依赖关系图包括:
[0011] 读取配置文件,所述配置文件中描述了各个功能模块之间的依赖关系;
[0012] 根据所述配置文件,生成所述各个功能模块之间的依赖关系图谱。
[0013] 其中,所述配置文件可W作为所述软件的一部分来存储,各个模块之间的依赖关 系可W利用JSON、XML或INI格式来描述。
[0014] 可选地,在一个实施例中,所述方法还包括:
[0015] 在所述软件需要更新时,通过更新所述配置文件来实现对功能模块析构顺序的调 整。
[0016] 可选地,所述依赖关系图谱为有向无环图DAG,所述根据所述依赖关系图谱,确定 所述各个功能模块的析构顺序包括:
[0017] 利用所述依赖关系图谱按照如下方式进行拓扑排序:
[001引i)、选择一个入度为0的顶点并输出;
[0019] ii)、从所述依赖关系图谱中删除所述顶点W及所有出边;
[0020] iii)、循环执行W上步骤i)和ii)。
[0021] 第二方面,提供了一种管理软件功能模块生命周期的装置,所述装置包括:
[0022] 生成单元,用于在软件启动时,生成所述软件内各个功能模块之间的依赖关系图 谱;
[0023] 确定单元,用于根据所述生成单元生成的所述依赖关系图谱,确定所述各个功能 模块的析构顺序;
[0024] 处理单元,用于在所述软件准备退出时,按照所述确定单元确定的所述析构顺序, 对所述各个功能模块进行有序析构。
[0025] 可选地,所述生成单元具体用于:
[0026] 读取配置文件,所述配置文件中描述了各个功能模块之间的依赖关系;
[0027] 根据所述配置文件,生成所述各个功能模块之间的依赖关系图谱。
[002引可选地,所述装置还包括存储单元,
[0029] 所述存储单元,用于将所述配置文件作为所述软件的一部分来存储,其中,所述配 置文件中各个模块之间的依赖关系是利用JSON、XML或INI格式来描述。
[0030] 可选地,在本发明的一个实施例中,所述装置还包括:
[0031] 更新单元,用于在所述软件需要更新时,对所述配置文件进行更新;
[0032] 所述生成单元,还用于根据更新后的配置文件,生成更新后的依赖关系图谱;
[0033] 所述确定单元,还用于根据所述更新后的依赖关系图谱,确定更新后的各个功能 模块的析构顺序;
[0034] 所述处理单元,还用于根据所述更新后的功能模块析构顺序,对所述各个功能模 块进行有序析构。
[0035] 可选地,所述依赖关系图谱为有向无环图DAG,所述确定单元具体用于:
[0036] 利用所述依赖关系图谱按照如下方式进行拓扑排序:
[0037] i)、选择一个入度为0的顶点并输出;
[003引 ii)、从所述依赖关系图谱中删除所述顶点W及所有出边;
[0039] iii)、循环执行W上步骤i)和ii)。
[0040] 本发明实施例提供的管理软件功能模块生命周期的方法和装置,利用各个功能模 块之间的依赖关系图谱来确定所述各个功能模块的析构顺序,并按照确定的所述析构顺 序,对所述各个功能模块进行有序析构。由于依赖关系图谱可W清晰地反映出各个功能模 块之间的依赖关系,因而据此便能够确定各个功能模块之间适当的析构顺序,从而实现对 多个功能模块的有序析构,降低软件维护成本。
【附图说明】
[0041] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可W根据该些附图获得其他 的附图。
[0042]图1是本发明实施例提供的管理软件功能模块生命周期的方法的流程图;
[0043] 图2是本发明实施例提供的一种DAG图的示例;
[0044]图3是本发明实施例提供的另一种管理软件功能模块生命周期的方法的流程图;
[0045] 图4A是本发明实施例提供的一种管理软件功能模块生命周期的装置的结构框 图;
[0046] 图4B是本发明实施例提供的另一种管理软件功能模块生命周期的装置的结构框 图;
[0047] 图4C是本发明实施例提供的另一种管理软件功能模块生命周期的装置的结构框 图。
【具体实施方式】
[0048] 为了本领域技术人员更好地理解本申请的技术方案,下面先对本文中的一些术语 进行解释。
[0049] 有向无环图值irectcxryAcyclicGraph,DAG)是由集合的顶点和有向边构成,每 条边连接一个顶点到另一个,W此,从某一顶点P开始,沿着有序的边,最终循环再次回到P 是不可能的。
[0050] 功能模块是指数据说明、可执行语句等程序元素的集合。功能模块完成了软件程 序的一个子功能。
[0化1] 本发明实施例利用依赖关系图谱确定功能模块间的析构顺序,可W保证多个功能 模块间的有序析构,降低软件维护成本。
[0052] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0化3] 图1是本发明实施例提供的一种管理软件功能模块生命周期的方法的流程图。参 照图1,本发明实施例提供的管理软件功能模块生命周期的方法可包括:
[0化4] 11、在软件启动时,生成所述软件内各个功能模块之间的依赖关系图谱;
[0055] 12、根据所述依赖关系图谱,确定所述各个功能模块的析构顺序;
[0化6] 13、在所述软件准备退出时,按照确定的所述析构顺序,对所述各个功能模块进行 有序析构。
[0化7] 在本发明实施例中,所述依赖关系图谱能够反映各
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1