CN101710279B - 一种it系统中管理软件模块的方法和装置 - Google Patents
一种it系统中管理软件模块的方法和装置 Download PDFInfo
- Publication number
- CN101710279B CN101710279B CN 200910204552 CN200910204552A CN101710279B CN 101710279 B CN101710279 B CN 101710279B CN 200910204552 CN200910204552 CN 200910204552 CN 200910204552 A CN200910204552 A CN 200910204552A CN 101710279 B CN101710279 B CN 101710279B
- Authority
- CN
- China
- Prior art keywords
- software module
- module
- software
- access rule
- configuration file
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种IT系统中管理软件模块的装置,包括:配置文件读取模块,用于从软件模块的配置文件中读取该软件模块的访问信息;访问规则生成模块,用于根据所述访问信息生成该软件模块的访问规则;控制管理模块,用于根据生成的所述软件模块的访问规则和存储模块存储的其他软件模块的访问规则对软件模块之间的依赖关系进行管理。本发明还公开了一种IT系统中管理软件模块的方法。实施本发明的实施例,提高了项目实施效率,节省了开发资源,降低了开发成本,并可形成项目资源信息共享。
Description
技术领域
本发明涉及IT(信息技术)系统技术领域,尤其涉及一种IT系统中管理软件模块的方法和装置。
背景技术
随着信息技术的迅速发展,用户可根据IT系统的架构体系和业务特点,在项目实施过程中开发出一些可复用的软件模块。现有技术中一直都依靠人工对可复用的软件模块之间的依赖关系进行控制与管理,随着IT系统的延伸和系统中软件模块的增多,单依靠人工理清一个项目中各软件模块之间的相互依赖关系,对管理人员来说是件十分困难的事情,更谈不上精确控制与管理各软件模块之间的相互依赖关系。
由于人工难以对软件模块之间的依赖关系进行精确的控制和规范,使得软件模块之间易出现环状依赖关系(例如,一个项目共有A、B、C三个软件模块,它们之间的关系是:A依赖B,B依赖C,C又依赖A),这样会导致项目中的软件模块无法被单独提取出来,或者能提取但会连带出若干不相关的软件模块,从而导致该软件模块的复用度不高,造成开发资源的严重浪费。
此外,没有对软件模块之间的依赖关系进行严格管理还有可能使得软件模块没有按照该软件模块与其他软件模块之间的依赖关系进行访问,这样会导致软件模块之间的错误调用,造成被访问的软件模块资源的极大浪费。
由于现有技术中存在的上述缺点,将会给整个项目实施带来高成本、低效率的后果。
发明内容
本发明要解决的技术问题是提供一种IT系统中管理软件模块的方法和装置,可实现对软件模块之间的依赖关系的精确控制和管理从而提高项目实施的效率,降低开发成本。
为解决上述技术问题,本发明提供了一种IT系统中管理软件模块的装置,包括:
配置文件读取模块,用于从软件模块的配置文件中读取该软件模块的访问信息;
访问规则生成模块,用于根据所述访问信息生成该软件模块的访问规则;
控制管理模块,用于根据生成的所述软件模块的访问规则和存储模块存储的其他软件模块的访问规则对软件模块之间的依赖关系进行管理。
相应地,本发明还提供了一种IT系统中管理软件模块的方法,包括:
从软件模块的配置文件中读取该软件模块的访问信息;
根据所述访问信息生成该软件模块的访问规则;
根据生成的所述软件模块的访问规则和存储模块存储的其他所述软件模块的访问规则对软件模块之间的依赖关系进行管理。
本发明具有如下有益效果:通过依据生成的软件模块的访问规则对软件模块之间的依赖关系进行管理,使得项目实施过程中可正确复用可供复用的软件模块,从而可提高项目实施的效率,节省软件资源,降低开发成本,并形成项目资源信息共享。
附图说明
图1是本发明的IT系统中管理软件模块的装置的第一实施例的结构示意图;
图2是图1中控制管理模块的结构示意图;
图3是本发明的IT系统中管理软件模块的装置的第二实施例的结构示意图;
图4是Eclipse环境中存储软件模块访问规则的数据结构示意图;
图5是本发明的IT系统中管理软件模块的方法的第一实施例的流程示意图;
图6是图5中步骤S503的流程示意图;
图7是本发明的IT系统中管理软件模块的方法的第二实施例的流程示意图。
具体实施方式
下面结合附图对本发明的实施方式作进一步的描述。
图1是本发明的IT系统中管理软件模块的装置的第一实施例的结构示意图。参考图1,所述管理软件模块的装置1包括配置文件读取模块10、访问规则生成模块20和控制管理模块30。下面对各模块进行详细描述。
配置文件读取模块10,用于从软件模块的配置文件中读取该软件模块的访问信息。
具体地,配置文件读取模块10可根据软件模块的名称或者软件模块的其他标识信息获取到该软件模块的配置文件,然后从该软件模块的配置文件中读取软件模块的访问信息。其中,软件模块的访问信息可包括:本软件模块访问其他软件模块的信息和本软件模块可供其他软件模块访问的信息。所述本软件模块供其他软件模块访问的信息可包括:本软件模块所属项目的名称(例如,sup)、本软件模块的名称(例如,Test)、本软件模块内部的程序文件名称(例如,A)、软件模块的版本号(例如,1)。对于本软件模块的部分程序功能可供其他软件模块访问而言,访问信息可通过与该部分程序对应的程序文件全称包含上述名称信息来表示,例如,程序文件全称表示为cn.ccb.sup.Test1.A,其中,cn.ccb表示单位名称,这样,根据该程序文件全称即可知sup项目中的Test1模块中的A程序可供其他软件模块访问。对于本软件模块的全部内容可供其他软件模块访问而言,访问信息可通过本软件模块的全称包含上述名称信息来表示,例如,本软件模块的全称表示为cn.ccb.sup.Test1。
相应地,本软件模块访问其他软件模块的信息可包括:所需访问的项目名称、所需访问的软件模块的名称、所需访问软件模块的版本号、所需访问的软件模块内部的程序文件名称。
需要说明的是,在本软件模块供其他软件模块访问的信息中,本软件模块所属项目的名称、本软件模块内部的程序文件名称、本软件模块的版本号等信息可根据需要设置并不是必要包含的;同样,在本软件模块访问其他软件模块的信息中,软件模块所需访问的项目名称、、所需访问的软件模块的版本号、以及所需访问的软件模块内部的程序文件名称等信息也可根据需要设置,并不是必须包含的。
访问规则生成模块20,用于根据所述读取的软件模块的访问信息生成所述软件模块的访问规则。
在本发明实施例中,配置文件读取模块10在读取软件模块的访问信息后,将读取的访问信息发送给访问规则生成模块20,或者访问规则生成模块20从配置文件读取模块10获取读取的访问信息。访问规则生成模块20根据所述读取的软件模块的访问信息生成所述软件模块的访问规则具体为将读取的软件模块的访问信息解析成计算机能识别的访问规则。
控制管理模块30,用于根据所述软件模块的访问规则以及存储模块存储的其他软件模块的访问规则对软件模块之间的依赖关系进行管理。其中,控制管理模块30可将该生成的软件模块的访问规则存储到计算机内存、文件或数据库等存储模块中。本发明实施例中,软件模块之间的依赖关系是指软件模块之间的访问关系或者调用关系。
图2是图1中控制管理模块的结构示意图。参考图2,控制管理模块30包括:检查模块301、执行模块303。
检查模块301,用于根据生成的软件模块的访问规则和存储模块存储的其他软件模块的访问规则对需管理的软件模块之间的依赖关系进行检查,所述检查包括检查需管理的软件模块之间是否按照存储模块存储的软件模块的访问规则进行调用和/或检查需管理的软件模块之间是否构成环状依赖关系。
在本发明实施方式中,检查模块301可利用事件监听机制并根据生成的软件模块的访问规则以及存储模块中存储的软件模块的访问规则对软件模块之间的依赖关系进行检查。其中,事件监听机制是现有的程序设计的一种模式。
可选地,控制管理模块30还可包括存储管理模块和属性设置模块。其中,所述存储管理模块用于在对软件模块之间的依赖关系进行管理之前将生成的所述软件模块的访问规则存储到存储模块;所述属性设置模块用于根据生成的软件模块的访问规则设置该软件模块的属性以共享该软件模块的内容。其中,属性设置模块可在软件模块开发时设置该软件模块的属性,也可以在软件模块开发完成后设置软件模块的属性。
具体地,所述检查模块301对软件模块之间的依赖关系进行的检查可包括以下三种方式:
第一种方式,检查需管理的软件模块之间是否按照存储模块存储的软件模块的访问规则进行调用和访问。例如,在对组成一个项目的程序编译开始前会检查各软件模块的调用是否正确,其中包括检查构成一个软件模块的程序代码是否按照该软件模块的访问规则进行调用和访问。
第二种方式,检查需管理的软件模块之间是否构成环状依赖关系。
可采用对各软件模块的访问规则进行递归检查的方法检查软件模块之间是否构成“环状”依赖关系。例如,软件模块A需要访问软件模块B的第一部分程序,则在软件模块A的配置文件中写入访问软件模块B的第一部分程序的信息(当然软件模块B的配置文件中也存储有第一部分程序可供其他软件模块访问的信息),那么对于软件模块A,会生成访问软件模块B的第一部分程序的访问规则a;如果软件模块B的供软件模块A调用的第一部分程序需要访问软件模块C的第二部分程序,则在软件模块B的配置文件中写入访问软件模块C的第二部分的信息,那么对于软件模块B,会生成访问软件模块C的第二部分程序的访问规则b;如果软件模块C的供软件模块B调用的第二部分程序还需要访问其他软件模块,则在软件模块C的配置文件中写入访问其他软件模块的信息,那么对于软件模块C会生成访问其他软件模块的访问规则c。将软件模块A的访问规则a、软件模块B的访问规则b和软件模块C的访问规则c分别存储在存储模块中,检查时可先根据访问规则a和访问规则b判断软件模块A和软件模块B是否构成环状依赖关系,如果没有构成环状依赖关系依次检查软件模块B和C,软件模块C和A,以及软件模块A、B、C之间是否构成环状依赖关系。
第三种方式,检查需管理的软件模块之间是否按照存储模块存储的软件模块的访问规则进行调用和访问并且检查需管理的软件模块之间是否构成环状依赖关系。检查软件模块之间是否按照存储模块存储的软件模块的访问规则进行调用和访问以及检查软件模块之间是否构成环状依赖关系分别参见第一种方式和第二种方式的具体描述,此处不再赘述。
执行模块303,用于当所述检查模块301检查出需管理的软件模块之间按照所述存储的软件模块的访问规则进行调用和/或所述需管理的软件模块之间没有构成环状依赖关系时,指示IT系统对所述需管理的软件模块进行下一步操作,否则,所述检查模块301发送提示开发人员的信息给显示模块并指示IT系统不对所述需管理的软件模块进行下一步操作。
下面以开发和编译两个阶段为例对控制管理模块30根据软件模块的访问规则对软件模块之间的依赖关系的管理进行描述。
例如,对于开发阶段,开发软件模块A时需要用到现有的软件模块B的某部分程序,则需要软件模块B共享该部分程序,以使该部分程序代码可供其他软件模块调用,从而使得开发人员在进行软件模块开发时可知软件模块B可供调用。
具体地,如果开发人员A正在开发软件模块A,而开发人员B正在开发软件模块B,同时开发人员C已经完成软件模块C、D的开发工作。软件模块C进行了属性设置使得可共享软件模块的部分内容,这时如果软件模块A需要使用软件模块C中的部分功能,开发人员A可以通过服务接口获知软件模块C这部分功能,从而可以直接获取软件模块C的该部分功能对应的程序代码,而后软件模块A再与软件模块C建立依赖,并声明所要使用软件模块C的部分功能。如果软件模块A需要使用软件模块C中的全部内容,也可将软件模块C的属性设置成全部共享。在本发明实施例中,软件模块C的属性的设置可以是开发人员通过开发工具的操作界面根据需要设置,也可以是开发人员在软件模块C新创建的时候设置,还可以是属性设置模块根据生成的该软件模块的访问规则设置。
在开发阶段,检查模块301,用于检查需管理的软件模块之间是否按照存储模块存储的软件模块的访问规则进行调用。当所述检查模块301检查出所述软件模块之间按照存储的访问规则调用时,执行模块303指示IT系统对需管理的软件模块进行下一步操作,当所述检查模块301检查出所述软件模块之间没有按照存储的访问规则调用时,执行模块303发送提示信息给显示模块并指示IT系统不对所述需管理的软件模块进行下一步操作。
对于编译阶段,所述检查模块301,用于根据存储模块存储的软件模块的访问规则对需管理的软件模块之间的依赖关系进行检查,所述检查包括检查需管理的软件模块之间是否按照存储模块存储的软件模块的访问规则进行调用和/或检查需管理的软件模块之间是否构成环状依赖关系。
所述执行模块303,用于当所述检查模块301检查出需管理的软件模块之间按照所述存储的软件模块的访问规则进行调用和/或所述需管理的软件模块之间没有构成环状依赖关系时,指示IT系统对所述需管理的软件模块进行下一步操作,例如,对需管理的软件模块进行编译操作;否则,所述执行模块303发送提示开发人员的信息给显示模块并指示IT系统不对所述需管理的软件模块进行下一步操作。
图3是本发明的IT系统中管理软件模块的装置的第二实施例的结构示意图。参考图3,该装置包括:配置文件读取模块10、访问规则生成模块20、控制管理模块30,可选地,还可包括配置文件修改模块40和/或配置文件创建模块50。下面对各模块进行详细描述。
配置文件创建模块50,用于创建软件模块的配置文件,并且将所述软件模块的访问信息写入所述软件模块的配置文件中。在本发明实施例中,在新创建软件模块的同时配置文件创建模块50创建该软件模块的配置文件,并且将该软件模块的访问信息写入该配置文件中。其中,软件模块的访问信息包括:本软件模块访问其他软件模块的信息和本软件模块可供其他软件模块访问的信息,在新创建软件模块的配置文件时还可将配置文件的版本号、创建软件模块者姓名、软件模块的版本号等信息写入软件模块的配置文件中;所述本软件模块供其他软件模块访问的信息和本软件模块访问其他软件模块的信息的内容可参见图1的实施例中的描述。
配置文件读取模块10,用于从配置文件创建模块50创建的软件模块的配置文件中读取该软件模块的访问信息。
访问规则生成模块20,用于根据配置文件读取模块10读取的软件模块的访问信息生成该软件模块的访问规则。具体地,访问规则生成模块20获取到软件模块的访问信息后将该软件模块的访问信息解析成计算机能识别的访问规则。
控制管理模块30,用于将访问规则生成模块20生成的软件模块的访问规则存储在存储模块,例如,计算机内存、文件、数据库中。控制管理模块30还用于根据存储的该软件模块的访问规则和存储模块存储的其他软件模块的访问规则对软件模块之间的依赖关系进行管理。
在本发明实施例中,对软件模块之间依赖关系的管理包括开发阶段的管理和编译阶段的管理。对于开发阶段管理的具体情况可参见前面实施例中的具体描述,下面具体描述开发阶段访问规则的存储结构。
图4是Eclipse(Eclipse是一种可扩展的开放源代码集成开发环境,IBM公司生产)环境中软件模块访问规则的数据结构示意图。在开发阶段,控制管理模块30可将访问规则生成模块20生成的访问规则按图4所示的数据结构存储在计算机内存中,所述Eclipse环境中的每个软件模块都有自己的Eclipse类路径容器(IClasspathContainer),每个Eclipse类路径容器又包含有不同的Eclipse类路径(IClassPathEntry),每个Eclipse类路径中又包括含有不同的访问规则(IAccessRule),软件模块利用Eclipse类路径中的访问规则完成该软件模块对其他软件模块的访问。图4所示的整个存储结构图中有一个主表,主表类似于软件模块的索引目录,该主表记录所有软件模块的唯一标识以及与每个标识对应的该软件模块的访问列表。根据该目录可以得到该软件模块的访问列表,每个软件模块的访问列表记录了该模块可访问其他软件模块的信息。例如,按图4所示结构存储的软件模块A的标识和软件模块A的访问列表A,其中,访问列表A包括不同的访问规则,例如,IAccessRule1、IAccessRule2和IAccessRule3等,访问列表A中的IAccessRule是软件模块A可访问其他软件模块的访问规则。本发明实施例通过调用Eclipse提供的JavaCore.newProjectEntry方法,将软件模块的物理路径、该软件模块的访问规则写入Eclipse类路径中。
当然,本发明实施例不限于采用Eclipse软件作为管理软件模块的软件开发环境,本领域技术人员可以采用本领域公知的能够实现与Eclipse相同功能的管理软件模块的软件开发环境,这也在本发明涵盖的范围内。
对于开发阶段,控制管理模块30对软件模块之间的依赖关系的管理包括:检查需管理的软件模块之间的调用关系是否按照存储模块存储的软件模块的访问规则进行调用,具体可参见前面实施例中的描述。对于编译阶段,控制管理模块30对软件模块之间的依赖关系的管理包括:检查需管理的软件模块之间的调用关系是否按照存储模块存储的软件模块的访问规则进行调用和/或需管理的软件模块之间是否构成环状依赖关系。在本发明实施例中,当控制管理模块30检查出需管理的软件模块之间的调用关系按照存储的软件模块的访问规则进行调用和/或需管理的软件模块之间没有构成环状依赖关系时指示IT系统对所述需管理的软件模块进行下一步操作(例如,对需管理的软件模块进行编译操作),或者在检查出需管理的软件模块之间的调用关系没有按照存储的软件模块的访问规则进行调用和/或需管理的软件模块之间构成环状依赖关系时,可生成提示信息发送至显示模块显示以提示开发人员软件模块之间发生错误调用和/或软件模块之间构成环状依赖关系,并且指示IT系统不对所述需管理的软件模块进行下一步操作。
此处作两点说明:一,所述的存储模块可以设置在本发明实施例的管理软件模块的装置中,也可不设置在本发明实施例的管理软件模块的装置中,此种情况下,控制管理模块30能够获取到存储模块中存储的软件模块的访问规则;二,在开发阶段可以将生成的访问规则按如图4所示的存储结构存储以供开发阶段对软件模块之间的依赖关系进行管理时使用,在编译阶段将根据重新生成的软件模块的访问规则对软件模块之间的依赖关系进行管理。
可选地,本发明实施例还可包括配置文件修改模块40,所述配置文件修改模块40是在用户对软件模块之间依赖关系维护时触发并工作的。
配置文件修改模块40用于接收标识需要修改的软件模块的配置文件的信息以及该软件模块的访问信息,并将该访问信息发送给控制管理模块30。其中,该软件模块访问信息包括:本软件模块供其他软件模块访问的信息和本软件模块访问其他软件模块的信息。其中,本软件模块供其他软件模块访问的信息可包括:本软件模块所属项目的名称、本软件模块的名称、本模块内部的程序文件名称;本软件模块访问其他软件模块的信息包括:所需访问的项目名称、所需访问的软件模块名称和所需访问的软件模块内部的程序文件名称。
控制管理模块30用于根据存储模块存储的软件模块的访问规则对所述配置文件修改模块40接收到的访问信息进行判断;当判断接收到的访问信息合理时,发送指示修改的信息给配置文件修改模块40,当判断为不合理时,指示配置文件修改模块40不修改配置文件中的访问信息。下面举例说明控制管理模块30进行的合理性判断,例如,需要修改的软件模块A的访问信息为软件模块A访问软件模块B的部分程序,此时需要判断软件模块B是否声明该部分程序可供其他软件模块调用,如果判断出软件模块B已声明该部分程序可供其他软件模块调用,则软件模块A的访问信息是合理的。
所述配置文件修改模块40,还用于接收到控制管理模块30发送的指示修改的信息后,将所述接收到的访问信息写入所述需要修改的软件模块的配置文件中,并发送指示读取配置文件的读取指令给所述配置文件读取模块10以指示所述配置文件读取模块10读取该配置文件。
配置文件读取模块10在接收到配置文件修改模块40发送的配置文件读取指令后,从软件模块的配置文件中读取该软件模块的访问信息。访问规则生成模块20根据所述配置文件读取模块10读取的软件模块的访问信息生成该软件模块的访问规则。控制管理模块30将访问规则生成模块20生成的所述软件模块的访问规则存储到存储模块;控制管理模块30根据存储的所述软件模块的访问规则和存储模块存储的其他软件模块的访问规则对软件模块之间的依赖关系进行管理。其中,配置文件读取模块10、访问规则生成模块20和控制管理模块30的功能与前文所述对应各软件模块的功能相同,此处不再赘述。
在本发明实施例中,控制管理模块30还可在新创建软件模块时对软件模块之间的依赖关系进行管理。此时,控制管理模块30根据新创建软件模块的访问信息和存储模块存储的访问规则判断新创建软件模块与其他软件模块之间的依赖关系是否合理,例如,新创建的软件模块A需要访问现有的软件模块B的部分程序,此时需要判断软件模块B是否声明该部分程序可供其他软件模块调用,如果软件模块B已声明可供其他软件模块调用,则软件模块A与软件模块B之间的依赖关系是合理的。在新创建软件模块与其他软件模块之间的依赖关系合理时,控制管理模块30指示访问规则生成模块20生成新创建软件模块的访问规则,并将该访问规则存储到存储模块;当所述检查为不合理时,控制管理模块30还可指示访问规则生成模块20不生成新创建软件模块的访问规则,进一步地,还可以发送指示不合理的信息给IT系统中的显示模块以显示软件模块之间的依赖关系不合理。在本发明实施例中,控制管理模块30将生成的新创建软件模块的访问规则存储到存储模块之后对新创建的软件模块与其他软件模块之间的依赖关系进行管理可参见前面实施例的描述。
以上对本发明的IT系统中管理软件模块的装置进行了详细描述,下面对本发明实施例的方法进行详细描述。
图5是本发明的IT系统中管理软件模块的方法的第一实施例的流程示意图。参考图5,所述方法包括以下步骤:
步骤S501,从软件模块的配置文件中读取该软件模块的访问信息。
具体地,根据软件模块的名称或者其他标识从软件模块的配置文件中读取软件模块的访问信息,软件模块访问其他软件模块的信息和本软件模块访问其他软件模块的信息的内容可参见图1的实施例中的描述。
步骤S502,根据所述读取的软件模块的访问信息生成该软件模块的访问规则。
具体地,该步骤中会将读取的软件模块的访问信息解析成计算机能识别的访问规则。
步骤S503,根据所述软件模块的访问规则和存储模块存储的其他软件模块的访问规则对软件模块之间的依赖关系进行管理。
具体地,步骤S503可将步骤S502生成的软件模块的访问规则存储在存储模块,例如,计算机内存、数据库、文件等。
需要说明的是,本发明实施例中的软件模块之间的依赖关系为软件模块之间的访问关系或调用关系。
可选地,在步骤S501之前还可包括步骤:创建软件模块的配置文件,并且将该软件模块的访问信息写入该软件模块的配置文件中。具体地,在新创建软件模块的同时创建该软件模块的配置文件,并且将该软件模块的访问信息写入该配置文件中,此外,还可把软件模块的访问信息放入数据库或者内存中。在本发明实施例中,在创建软件模块配置文件时还可将配置文件的版本号、创建软件模块者姓名、软件模块的版本号等信息写入软件模块的配置文件中。
图6是图5中步骤S503的流程示意图;参考图6,所述方法包括以下步骤:
步骤S5031,根据存储模块存储的软件模块的访问规则检查需管理的软件模块之间是否按照存储的软件模块的访问规则进行调用;当检查出需管理的软件模块之间按照所述存储的软件模块的访问规则进行调用时执行步骤S5032,当检查出需管理的软件模块之间不按照所述存储的软件模块的访问规则进行调用时执行步骤S5034。
具体地,步骤S5031可通过事件监听机制对需管理的软件模块之间的依赖关系进行检查,检查软件模块之间的调用关系是否按照存储的软件模块的访问规则进行调用和访问。此处,在编译开始前会完成各软件模块依赖关系的检查,例如,检查构成一个软件模块的程序代码是否按照该软件模块的访问规则进行调用和访问。
步骤S5032,根据存储模块存储的软件模块的访问规则检查需管理的软件模块之间是否构成环状依赖关系;当检查出所述需管理的软件模块之间构成环状依赖关系时执行步骤S5034,当检查出所述需管理的软件模块之间没有构成环状依赖关系时执行步骤S5033。
在本发明实施例中,可采用对软件模块的访问规则进行递归检查的方法检查软件模块间是否构成“环状”依赖关系。例如,存储模块存储的各软件模块的访问规则包括:软件模块A的访问规则a、软件模块B的访问规则b和软件模块C的访问规则c,检查时可先根据访问规则a和访问规则b判断软件模块A和软件模块B是否构成环状依赖关系,如果没有构成环状依赖关系依次检查软件模块B和C,软件模块C和A,以及软件模块A、B、C之间是否构成环状依赖关系。
步骤S5033,指示IT系统对所述需管理的软件模块进行下一步操作。
具体地,可指示IT系统对所述需管理的软件模块进行编译。
步骤S5034,发送提示信息给显示模块显示,并且指示IT系统不对所述需管理的软件模块进行下一步操作。
在本发明实施例中,根据软件模块的访问规则对软件模块之间的依赖关系的管理可使用在开发和编译两个阶段。
在开发阶段,可根据存储模块存储的软件模块的访问规则检查需管理的软件模块之间是否按照存储的软件模块的访问规则进行调用;在编译阶段,可检查需管理的软件模块是否按照存储模块存储的软件模块的访问规则进行调用和/或检查需管理的软件模块之间是否构成环状依赖关系。这两个阶段的检查可分别参见对图2部分的相关描述,此处不再赘述。
图7是本发明的IT系统中管理软件模块的方法的第二实施例的流程示意图;参考图7,所述方法包括以下步骤:
步骤S701,接收标识需要修改的软件模块的配置文件的信息以及该软件模块的访问信息。
具体地,该软件模块的访问信息包括:本软件模块供其他软件模块访问的信息和本软件模块访问其他软件模块的信息。其中,本模块供其他软件模块访问的信息和本软件模块访问其他软件模块的信息的内容可参见前面实施例中的描述。
步骤S702,根据存储模块存储的软件模块的访问规则判断所述接收到的访问信息是否合理。
下面举例说明软件模块访问信息的合理性,例如,需要修改的软件模块A的访问信息为软件模块A访问其他软件模块B的部分程序,此时需要判断软件模块B是否声明该部分程序可供其他软件模块调用,如果软件模块B已声明可供其他软件模块调用,则软件模块A的访问信息是合理的;
步骤S703,当判断为不合理时,不修改所述软件模块的配置文件。
步骤S704,当判断为合理时,将所述访问信息写入所述需要修改的软件模块的配置文件中。
步骤S705,从修改后的软件模块的配置文件中读取软件模块的访问信息。
在本发明实施例中,步骤S704的实施可参见图3中配置文件修改模块40的相关描述;软件模块的访问信息修改后,启动从修改后的软件模块的配置文件中读取软件模块的访问信息的步骤。
步骤S706,根据所述读取的软件模块的访问信息生成该软件模块的访问规则。具体地,该步骤中会将读取的软件模块的访问信息解析成计算机能识别的访问规则。
在本发明实施例中,开发阶段生成该软件模块的访问规则之后可以根据生成的软件模块的访问规则对软件模块属性设置,以共享该软件模块的程序代码;或者开发人员通过开发工具的操作界面根据需要设置以共享该软件模块的程序代码。从而开发人员开发时可以调用该软件模块的程序代码,进而该软件模块与其他软件模块之间建立依赖关系。
步骤S707,将生成的所述软件模块的访问规则存储到存储模块。
在本发明实施例中,存储模块包括:计算机内存、文件或数据库等。需要说明的是,在开发阶段可将生成的软件模块的访问规则按如图4所示的存储结构存储在计算机内存中,以便在开发阶段直接根据存储的软件模块的访问规则对软件模块之间的依赖关系进行管理,而在编译阶段将根据重新生成的软件模块的访问规则对软件模块之间的依赖关系进行管理。
步骤S708,根据生成的所述软件模块的访问规则和存储模块存储的其他软件模块的访问规则对软件模块之间的依赖关系进行管理。
在本发明实施例中,步骤S708对依赖关系的管理包括:根据存储模块存储的软件模块的访问规则对软件模块之间的依赖关系进行检查,所述检查包括检查需管理的软件模块之间的调用关系是否按照存储的软件模块的访问规则进行调用和/或检查需管理的软件模块之间是否构成环状依赖关系;当检查出需管理的软件模块之间按照所述存储的软件模块的访问规则进行调用和/或所述需管理的软件模块之间没有构成环状依赖关系时,指示IT系统对需管理的软件模块进行下一步操作(例如,指示IT系统对软件模块进行编译操作);当检查出软件模块之间没有按照所述存储的软件模块的访问规则进行调用和/或所述软件模块之间构成环状依赖关系时,发送提示信息给显示模块以进行显示,并且指示IT系统不对需管理的软件模块进行下一步操作。
本发明方法实施例的实施例二中,采用流程步骤S705至步骤S708在开发阶段和编译阶段对软件模块之间的依赖关系进行管理的描述可参见本发明的IT系统中管理软件模块的装置的描述,此处不再赘述。
在本发明实施例中,新创建软件模块时对软件模块之间的依赖关系的管理还可包括:根据存储模块存储的软件模块的访问规则判断新创建软件模块与其他软件模块之间的依赖关系是否合理,例如,新创建的软件模块A需要访问现有的软件模块B的部分程序,此时需要根据软件模块B的访问规则判断软件模块B是否声明可供其他软件模块调用,如果软件模块B已声明可供其他软件模块调用,则软件模块A与软件模块B之间的依赖关系是合理的。在判断出新创建软件模块与其他软件模块之间的依赖关系合理时,可生成新创建软件模块的访问规则并将该访问规则存储到存储模块;当判断结果为不合理时,不生成新创建软件模块的访问规则,进一步地,还可以发送指示不合理的信息给IT系统中的显示模块显示以说明软件模块之间的依赖关系不合理。
综上所述,实施本发明能够精确掌握和控制软件模块之间的依赖关系,增大软件模块的可重复利用率,提高项目实施效率,降低项目开发成本,并形成项目知识信息共享。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
当然,以上所公开的仅为用于对本发明进行举例说明的具体实施方式,应当指出,不能以此来限定本发明的保护范围,本领域普通技术人员在不脱离本发明实质的前提下还可以进行各种修改、变化或替换,因而依照本发明所作的各种等同变化,仍属于本发明涵盖的范围。
Claims (8)
1.一种IT系统中管理软件模块的装置,包括:
配置文件创建模块,用于创建软件模块的配置文件,并且将所述软件模块的访问信息写入所述软件模块的配置文件中;
配置文件读取模块,用于从软件模块的配置文件中读取该软件模块的访问信息,所述访问信息包括本软件模块访问其他软件模块的信息和本软件模块可供其他软件模块访问的信息;
访问规则生成模块,用于根据所述访问信息生成该软件模块的访问规则,其中所述访问规则按下述的数据结构存储:包括一个主表,该主表记录所有软件模块的唯一标识以及与每个标识对应的该软件模块的访问列表,
其中通过调用Eclipse提供的JavaCore.newProjectEntry方法,将软件模块的物理路径、该软件模块的访问规则写入Eclipse类路径中;
控制管理模块,用于根据生成的所述软件模块的访问规则和存储模块存储的其他软件模块的访问规则对软件模块之间的依赖关系进行管理,包括:检查模块,用于根据存储模块存储的软件模块的访问规则对需管理的软件模块之间的依赖关系进行检查,所述检查包括检查需管理的软件模块之间是否按照所述存储的软件模块的访问规则进行调用和/或检查所述需管理的软件模块之间是否构成环状依赖关系;
执行模块,用于实现如下功能:当所述检查模块检查出所述需管理的软件模块之间按照所述存储的软件模块的访问规则进行调用和/或所述需管理的软件模块之间没有构成环状依赖关系时,指示IT系统对所述需管理的软件模块进行下一步操作;
否则,发送提示信息给显示模块进行显示,并指示IT系统不对需管理的软件模块进行下一步操作。
2.根据权利要求1所述的装置,其特征在于,所述控制管理模块包括存储管理模块,用于在对软件模块之间的依赖关系进行管理之前将生成的所述软件模块的访问规则存储到所述存储模块。
3.根据权利要求1或2所述的装置,其特征在于,所述控制管理模块包括属性设置模块,用于根据所述生成的软件模块的访问规则设置该软件模块的属性以共享该软件模块的全部或部分内容。
4.根据权利要求1所述的装置,其特征在于,所述装置还包括配置文件修改模块,其中:
所述配置文件修改模块,用于接收标识需要修改的软件模块的配置文件的信息以及该软件模块的访问信息,并将该访问信息发送给所述控制管理模块;
所述控制管理模块,用于根据所述存储模块存储的软件模块的访问规则判断所述接收到的访问信息是否合理,当判断为合理时,发送指示修改的信息给所述配置文件修改模块;
所述配置文件修改模块,还用于当接收到指示修改的信息后,将所述访问信息写入所述需要修改的软件模块的配置文件中,并给所述配置文件读取模块发送指示读取该配置文件的读取指令。
5.一种IT系统中管理软件模块的方法,包括:
创建软件模块的配置文件;
将所述软件模块的访问信息写入所述软件模块的配置文件中;
从软件模块的配置文件中读取该软件模块的访问信息,所述访问信息包括本软件模块访问其他软件模块的信息和本软件模块可供其他软件模块访问的信息;
根据所述访问信息生成该软件模块的访问规则,其中所述访问规则按下述的数据结构存储:包括一个主表,该主表记录所有软件模块的唯一标识以及与每个标识对应的该软件模块的访问列表,
其中通过调用Eclipse提供的JavaCore.newProjectEntry方法,将软件模块的物理路径、该软件模块的访问规则写入Eclipse类路径中;
根据生成的所述软件模块的访问规则和存储模块存储的其他软件模块的访问规则对软件模块之间的依赖关系进行管理,具体而言,包括:
根据存储模块存储的软件模块的访问规则对需管理的软件模块之间的依赖关系进行检查,所述检查包括检查需管理的软件模块之间是否按照所述存储的软件模块的访问规则进行调用和/或检查需管理的软件模块之间是否构成环状依赖关系;
当检查出需管理的软件模块之间按照所述存储的软件模块的访问规则进行调用和/或所述需管理的软件模块之间没有构成环状依赖关系时,指示IT系统对所述需管理的软件模块进行下一步操作;
否则,发送提示信息给显示模块进行显示,并指示IT系统不对需管理的软件模块进行下一步操作。
6.根据权利要求5所述的方法,其特征在于,根据生成的所述软件模块的访问规则和存储模块存储的其他软件模块的访问规则对软件模块之间的依赖关系进行管理步骤包括在对软件模块之间的依赖关系进行管理之前将生成的所述软件模块的访问规则存储到存储模块。
7.根据权利要求5或6所述的方法,其特征在于,在根据所述访问信息生成该软件模块的访问规则步骤之后,还包括:
根据所述生成的软件模块的访问规则控制该软件模块的属性以共享该软件模块的全部或部分内容。
8.根据权利要求5所述的方法,其特征在于,从软件模块的配置文件中读取该软件模块的访问信息步骤之前,创建软件模块的配置文件,将所述软件模块的访问信息写入所述软件模块的配置文件中之后,还包括:
接收标识需要修改的软件模块的配置文件的信息以及该软件模块的访问信息;
根据存储模块存储的软件模块的访问规则判断所述接收到的访问信息是否合理;
当判断为合理时,将所述访问信息写入所述需要修改的软件模块的配置文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910204552 CN101710279B (zh) | 2009-12-01 | 2009-12-01 | 一种it系统中管理软件模块的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910204552 CN101710279B (zh) | 2009-12-01 | 2009-12-01 | 一种it系统中管理软件模块的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101710279A CN101710279A (zh) | 2010-05-19 |
CN101710279B true CN101710279B (zh) | 2013-07-31 |
Family
ID=42403071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910204552 Active CN101710279B (zh) | 2009-12-01 | 2009-12-01 | 一种it系统中管理软件模块的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101710279B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902308B (zh) * | 2012-12-27 | 2017-09-19 | 腾讯科技(深圳)有限公司 | 模块组创建方法及装置 |
CN112835587B (zh) * | 2021-02-03 | 2022-08-09 | 宁波均联智行科技股份有限公司 | 一种编译集成方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581163A (zh) * | 2004-05-20 | 2005-02-16 | 北京大学 | 操作系统构件库查询方法 |
CN1866204A (zh) * | 2006-01-17 | 2006-11-22 | 华为技术有限公司 | 一种软件组件架构 |
CN101504606A (zh) * | 2009-03-20 | 2009-08-12 | 华亚微电子(上海)有限公司 | 关联数据链装置及其数据处理方法 |
-
2009
- 2009-12-01 CN CN 200910204552 patent/CN101710279B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581163A (zh) * | 2004-05-20 | 2005-02-16 | 北京大学 | 操作系统构件库查询方法 |
CN1866204A (zh) * | 2006-01-17 | 2006-11-22 | 华为技术有限公司 | 一种软件组件架构 |
CN101504606A (zh) * | 2009-03-20 | 2009-08-12 | 华亚微电子(上海)有限公司 | 关联数据链装置及其数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101710279A (zh) | 2010-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101432690B (zh) | Bios配置更新技术 | |
CN103718155B (zh) | 运行时系统 | |
CN100440206C (zh) | 与物理存储表示无关地同步逻辑视图的方法和系统 | |
CN101452386B (zh) | 使用正向推理链执行基于上下文模型的策略的方法及策略引擎 | |
CN107357593A (zh) | 源代码文件组建方法、装置、电子终端及可读存储介质 | |
CN101169718A (zh) | 用于实例化抽象类的系统和方法 | |
CN105144088A (zh) | 元数据与源代码的关联以及基于其的应用和服务 | |
CN102193810A (zh) | 模块间内联候选标识 | |
CN101379504B (zh) | 用于复合应用的基于角色的访问控制管理的方法及系统 | |
CN108399086B (zh) | 一种微件管理方法、服务器和计算机可读存储介质 | |
CN102664746A (zh) | 用于分布式数据中心各分量的在全局上健全且一致的配置管理 | |
CN109508178A (zh) | 一种程序开发方法及装置 | |
Steimann et al. | Generic model assist | |
CN109032631A (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
CN102760096A (zh) | 测试用数据的生成方法、单元测试方法以及单元测试系统 | |
CN107608663A (zh) | 一种移动应用插件及移动应用的开发方法及装置 | |
CN111724133A (zh) | 一种创建项目的方法及装置 | |
CN101710279B (zh) | 一种it系统中管理软件模块的方法和装置 | |
CN107402908A (zh) | 文档内容更新方法、装置及设备、可读介质 | |
CN105930154B (zh) | 网络操作系统中建立并使用设备硬件模型的方法及装置 | |
Davies | The power of stories | |
CN114138577B (zh) | 一种tpc-h测试方法、装置、计算机设备及存储介质 | |
CN114546410A (zh) | 一种基于设计模式的代码优化方法及相关设备 | |
France et al. | Rigorous object-oriented modeling: Integrating formal and informal notations | |
CN103326892A (zh) | Web接口的操作方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |