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

文档序号:9249160阅读:来源:国知局
个功能模块之间的依赖关系。
[005引在本发明实施例中,可选地,所述依赖关系图谱可W是有向无环图或是能够反映 各个功能模块之间的依赖关系的其他图谱。
[0059] 需要说明的是,在软件工程对象模型中,依赖关系描述两个模型元素(类、用例 等)之间的语义连接关系;其中一个模型元素是独立的,另一个模型元素不是独立的,它依 赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。在本发明 实施例中,依赖关系中的模型元素特指的是软件中的功能模块。
[0060] 若模块A依赖于模块B时,即模块A的功能实现需要依赖于模块B的功能实现,贝U 基于模块A和模块B之间的依赖关系,便能确定模块A和模块B间的析构顺序,从而达到管 理模块生命周期的目的。
[0061] 当模块A依赖于模块B时,不仅体现出了功能性上的依赖,也体现出了生命周期上 的依赖,即模块A的生命周期依赖于模块B的生命周期,从而确立了模块A、B之间的析构顺 序;A析构之后,B再析构。
[0062] 本发明实施例提供的管理软件功能模块生命周期的方法,利用各个功能模块之间 的依赖关系图谱来确定所述各个功能模块的析构顺序,并按照确定的所述析构顺序,对所 述各个功能模块进行有序析构。由于依赖关系图谱可w清晰地反映出各个功能模块之间的 依赖关系,因而据此便能够确定各个功能模块之间适当的析构顺序,从而实现对多个功能 模块的有序析构,降低软件维护成本。
[0063] 可选地,步骤11中所述生成软件内各个功能模块之间的依赖关系图可包括:
[0064] 读取配置文件,所述配置文件中描述了各个功能模块之间的依赖关系;
[0065] 根据所述配置文件,生成所述各个功能模块之间的依赖关系图谱。
[0066] 其中,可选地,所述配置文件中各个功能模块之间的依赖关系可W利用JSON、XML 或INI格式来描述。该样一来,便能够动态生成其功能模块间的依赖关系图谱。
[0067] WJSON格式描述各个功能模块之间的依赖关系为例,本发明实施例中采用了 JSON该一数据格式对模块间的依赖关系进行描述的大致描述格式如下:
[0068]
[0069] 按W上格式描述,表达的是"DependerexpendsonD巧endee",即"Depender依赖 于Dependee"。
[0070] 软件程序根据该配置文件的描述便能正确地生成软件中功能模块间的依赖关系 图谱。
[0071] 此外,在本发明实施例中,所述配置文件可作为所述软件的一部分来存储,即,所 述配置文件W程序资源的形式链接进程序中。如此一来,可W保证所述配置文件的安全性, 防止配置文件被恶意修改或损坏。当然,在安全性要求不高的情况下,也可W采用将所述配 置文件不作为所述软件的一部分来存储。
[0072] 当软件需要更新时,如在需要增加、减少功能模块的情况下,需要调整功能模块间 的依赖关系进而重新调整析构顺序,此时,只需要更新该配置文件即可,该样,可W实现简 单高效地更新软件。在本发明的一个实施例中,除了包括上面提到的步骤11~13之外,本 发明实施例提供的管理软件功能模块生命周期的方法还可包括:在所述软件需要更新时, 通过更新所述配置文件来实现对功能模块析构顺序的调整。
[0073] 在本发明实施例中,在所述依赖关系图谱为有向无环图DAG时,步骤13中所述根 据所述依赖关系图谱,确定所述各个功能模块的析构顺序可包括:
[0074] 利用所述依赖关系图谱按照如下方式进行拓扑排序:
[0075] i)、选择一个入度为0的顶点并输出;
[0076] ii)、从所述依赖关系图谱中删除所述顶点W及所有出边;
[0077] iii)、循环执行W上步骤i)和ii)。
[007引本文中的拓扑排序是指,对一个DAG图G进行拓扑排序,是将图G中所有顶点排成 一个线性序列,使得图中任意一对顶点U和V,若边(u,v)GE(G),则U在线性序列中出现 在V之前。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,该个操作称之为 拓扑排序。
[0079]拓扑排序常用来确定一个依赖关系集中事件发生的顺序。本发明中为了获得各功 能模块间的析构顺序,利用已经确立的各模块间的依赖关系DAG图谱进行拓扑排序。
[0080] 图2是一种DAG图的示例。图2所示的DAG图在利用本文中的方法进行拓扑排序 后的结果是;2- > 8- > 0- > 3- > 7- > 1- > 5- > 6- > 9- > 4- > 11- > 10- > 12。 可见,在本发明实施例中,利用DAG图可W明确确定出各个功能模块间的析构顺序,实现有 序地析构各个功能模块,节约维护和开发成本。
[0081] 图3是本发明实施例提供的另一种管理软件功能模块生命周期的方法的流程图。 参照图3,本发明实施例提供的管理软件功能模块生命周期的方法可包括:
[0082] 31、在软件启动时,读取配置文件,生成依赖关系图谱,其中,所述配置文件中描述 了各个功能模块之间的依赖关系。
[0083] 其中,所述依赖关系图谱可W为DAG图。所述配置文件中各个功能模块之间的依 赖关系可利用JSON、XML或INI格式来描述。
[0084] 32、在程序运行时,相应创建各个功能模块。
[0085] 33、在所述软件准备退出时,根据所述依赖关系图谱,确定所述各个功能模块的析 构顺序。
[0086] 其中,利用所述依赖关系图谱按照如下方式进行拓扑排序:
[0087]i)、选择一个入度为0的顶点并输出;
[008引 ii)、从所述依赖关系图谱中删除所述顶点W及所有出边;
[0089] iii)、循环执行W上步骤i)和ii)。
[0090] 34、按照确定的所述析构顺序,对所述各个功能模块进行有序析构。
[0091] 在所述软件需要更新时,通过更新所述配置文件来实现对功能模块析构顺序的调 整。
[0092] 本发明实施例提供的管理软件功能模块生命周期的方法,利用各个功能模块之间 的依赖关系图谱来确定所述各个功能模块的析构顺序,并按照确定的所述析构顺序,对所 述各个功能模块进行有序析构。由于依赖关系图谱可W清晰地反映出各个功能模块之间的 依赖关系,因而据此便能够确定各个功能模块之间适当的析构顺序,从而实现对多个功能 模块的有序析构,降低软件维护成本。
[0093]图4A是本发明实施例提供的一种管理软件功能模块生命周期的装置的结构框 图。参照图4,本发明实施例提供的管理软件功能模块生命周期的装置40可包括生成单元 41、确定单元42W及处理单元43。其中;
[0094] 生成单元41,用于在软件启动时,生成所述软件内各个功能模块之间的依赖关系 图谱;
[0095] 确定单元42,用于根据所述生成单元41生成的所述依赖关系图谱,确定所述各个 功能模块的析构顺序;
[0096] 处理单元43,用于在所述软件准备退出时,按照所述确定单元42确定的所述析构 顺序,对所述各个功能模块进行有序析构。
[0097] 本发明实施例提供的管理软件功能模块生命周期的装置,利用各个功能模块之间 的依赖关系图谱来确定所述各个功能模块的析构顺序,并按照确定的所述析构顺序,对所 述各个功能模块进行
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1