CN200810082248.1
2008.02.29
CN101520727A
2009.09.02
撤回
无权
发明专利申请公布后的视为撤回IPC(主分类):G06Q 10/00申请公布日:20090902|||实质审查的生效|||公开
G06F9/44
国际商业机器公司
周 欣; 刘 英; 霍震中; 朱 俊; 苏 辉
美国纽约
中国国际贸易促进委员会专利商标事务所
李 颖
本发明提供了一种由计算机实施的在软件系统设计过程中保护关键知识的方法及系统,其中所述软件系统设计包括至少多个工件,所述方法包括:计算关键知识与软件系统设计之间的关联关系;获取软件系统设计中各个工件之间的相互依赖关系;根据所述关联关系和相互依赖关系确定用于各个工件的保护机制。
1. 一种由计算机实施的在软件系统设计过程中保护关键知识的方法,所述软件系统设计包括至少多个工件,所述方法包括:计算关键知识与软件系统设计之间的关联关系;获取软件系统设计中各个工件之间的相互依赖关系;根据所述关联关系和相互依赖关系确定用于各个工件的保护机制。2. 根据权利要求1所述的方法,其中所述计算关键知识与软件系统设计之间的关联关系的步骤包括计算关键知识的知识曝光率和工件相关率。3. 根据权利要求2所述的方法,其中通过如下方式计算知识曝光率和工件相关率:知识曝光率=x/l;工件相关率=x/m;其中:l为关键知识中有意义的词汇的集合大小,m为工件中有意义的词汇的集合大小,x为关键知识中有意义的词汇与工件中有意义的词汇的交集的大小。4. 根据权利要求1所述的方法,其中获取各个工件之间的相互依赖关系的步骤包括:根据与所述软件系统设计相对应的解析程序来获得所述软件系统设计中各个工件之间的相互依赖关系。5. 根据权利要求4所述的方法,其中根据所述相互依赖关系来对工件划分群集,并且对群集内聚度大于阈值且群集知识曝光率大于特定阈值的知识应用保留机制。6. 根据权利要求4所述的方法,其中根据所述相互依赖关系来对工件划分群集,并且对于群集内聚度不大于阈值的关键知识,如果其知识曝光率大于知识曝光率阈值且工件相关率小于工件相关率阈值,则对其应用伪装机制。7. 根据权利要求6所述的方法,其中对于知识曝光率不大于知识曝光率阈值且工件相关率不小于工件相关率阈值的关键知识应用拆分机制。8. 一种在软件系统设计过程中保护关键知识的系统,所述软件系统设计包括多个工件,所述系统包括:计算关键知识与软件系统设计之间的关联关系的关联计算部分;获取软件系统设计中各个工件之间的相互依赖关系的依赖关系获取部分;根据所述关联关系和相互依赖关系确定对用于各个工件的保护机制的机制设计部分。9. 根据权利要求8所述的系统,其中所述关联计算部分计算关键知识的知识曝光率和工件相关率。10. 根据权利要求9所述的系统,其中所述关联计算部分通过如下方式计算知识曝光率和工件相关率:知识曝光率=x/l;工件相关率=x/m;其中:l为关键知识中有意义的词汇的集合大小,m为工件中有意义的词汇的集合大小,x为关键知识中有意义的词汇与工件中有意义的词汇的交集的大小。11. 根据权利要求1所述的系统,其中依赖关系获取部分根据与所述软件系统设计相对应的解析程序来获得所述软件系统设计中各个工件之间的相互依赖关系。12. 根据权利要求11所述的系统,其中根据所述相互依赖关系来对设计工件划分群集,并且对群集内聚度大于内聚度阈值且群集知识曝光率大于群集知识曝光率阈值的知识应用保留机制。13. 根据权利要求11所述的系统,其中根据所述相互依赖关系来对设计工件划分群集,并且对于群集内聚度不大于内聚度阈值的关键知识,如果其知识曝光率大于知识曝光率阈值且工件相关率小于工件相关率阈值,则对其应用伪装机制。14. 根据权利要求13所述的系统,其中对于知识曝光率不大于知识曝光率阈值且工件相关率不小于工件相关率阈值的关键知识应用拆分机制。
用于软件系统设计中的关键知识保护的方法和设备 技术领域 本发明涉及软件开发过程。更具体地说,本发明涉及软件开发过程中的关键知识保护。 背景技术 企业通常拥有一些关键的知识(或称“机密知识”),使企业能够保持对于竞争对手的核心竞争力。关键知识可以是创新性的商业理念、业务功能、独特的商业流程、优化的IT体系结构等。由于这种关键知识的重大意义,企业希望其作为企业内部的秘密或者是只有几个核心成员知晓。 但是,由于种种原因,这种关键知识容易泄露,其中一个典型的原因是企业通常利用外部资源来开发其软件系统。虽然这种外包机制可以节约成本,使企业集中精力于其核心技术,但是关键知识存在泄露给外部资源的风险。 大多数现有的关键知识保护可以被分为两类,即:“物理途径”和“法律途径”。对于“物理途径”,制定规章制度来以物理方式防止未授权人员将任何文档、源代码带出办公室。对于“法律途径”,通常是要求内部、外部开发者与企业签定不泄露协议(NDA)。一旦开发者在未经授权的情况下泄露任何关键知识,则企业有权对其泄露行为进行起诉。 除了上述解决方案外,在文献“基于制造知识保护的供应商选择模型与实证研究”(吴峰,李怀祖,中国机械工程第16卷第8期,2005年4月)中也提出了一种相关方法。在该方法中,根据提供商的创新能力(originality)和标准化对其进行分类、根据知识对企业竞争力的影响及其泄露可能性对外包策略进行分类,并且将提供商类型映射到外包策略。 为了要保护关键知识,能够精确地将软件设计中所蕴含的关键知识与一般知识区别开来是重要的前提条件。这样,可以只保护那些真正重要的内容,并与开发者尽可能多地共享那些非关键的知识以便于开发。但是,到目前为止,关键知识的识别和提取都是由软件系统设计人员手动进行的,并且诸如关键知识在软件系统设计中所占比例之类的参数也是由设计人员主观判断的,尚未见到有公开教导能用技术手段来实现关键知识的识别和提取以及确定关键知识所占比重的手段。采用人工方式本身就是费时费力的,而且准确性和效率都不理想。另外,可以想象,当需要开发庞大的软件系统并且存在大量关键知识时,通过人工方式进行所述识别、提取以及确定过程,其在准确性、效率和资源消耗方面的问题可能对于开发过程而言是根本无法接受的。 此外,目前对关键知识保护机制的选择也较为随意,缺乏科学的分析和指导。 因此,需要一种更为有效的手段来识别和提取软件工件中蕴涵关键知识、对其进行量化,并据此设计恰当的保护机制。 发明内容 考虑到现有技术的上述问题,提出了本发明的系统和方法,其能够有效地识别和提取软件工件中蕴涵关键知识、对其进行量化,并据此设计恰当的保护机制。 根据本发明的一个方面,提供一种由计算机实施的在软件系统设计过程中保护关键知识的方法,所述软件系统设计包括至少多个工件,所述方法包括:计算关键知识与软件系统设计之间的关联关系;获取软件系统设计中各个工件之间的相互依赖关系;根据所述关联关系和相互依赖关系确定用于各个工件的保护机制。 根据本发明的另一方面,提供一种在软件系统设计过程中保护关键知识的系统,所述软件系统设计包括多个工件,所述系统包括:计算关键知识与软件系统设计之间的关联关系的关联计算部分;获取软件系统设计中各个工件之间的相互依赖关系的依赖关系获取部分;根据所述关联关系和相互依赖关系确定对用于各个工件的保护机制的机制设计部分。 本发明教导了一种系统化的方法和支持性工具,其能够有效地识别和提取关键知识,并且据此设计系统的保护机制,从而帮助企业在将软件开发任务交给那些未授权访问关键知识的开发者之前,前瞻性地隐藏所述关键知识。 附图说明 图1示出根据本发明的由计算机实施的在软件设计过程中保护关键知识的方法的流程图。 图2示出根据本发明的由计算机实施的在软件设计过程中保护关键知识的系统的方框图。 图3示出如图2所示的关联计算部分的具体操作方式。 图4示出如图2所示的机制设计部分的具体操作方式。 具体实施方式 以下结合附图说明本发明的优选实施方式。 图1示出了根据本发明的由计算机实施的在软件系统设计过程中保护关键知识的方法的流程图。该方法在步骤100中开始,随后进入步骤110,其中计算关键知识与软件系统设计之间的关联关系。接着,在步骤120中,获取软件系统设计中各个工件之间的相互依赖关系。然后,在步骤130中,根据所述关联关系和相互依赖关系确定用于各个工件的保护机制。最后,该方法在步骤140中结束。 图2是根据本发明的由计算机实施的在软件系统设计过程中保护关键知识的系统的方框图。所述系统200包括关联计算部分210、依赖关系获取部分220、机制设计部分230。其中,所述关联计算部分210用于计算关键知识与软件系统设计之间的关联关系;所述依赖关系获取部分220用于获取软件系统设计中各个工件间的相互依赖关系;所述机制设计部分230用于根据所述关联关系和相互依赖关系确定用于各个工件的保护机制。 通过使用本发明的方法和系统,能够自动识别和量化关键知识,并据此更加有效地对关键知识实施保护。 根据本发明,以“工件”(artifact)为单位来把软件系统设计划分为不同的部分。根据软件系统设计的需要,所述“工件”可以是模块、Java类、方法、包、文件等。 在下文中将参照图3描述关联计算部分210的具体操作方式。在此之前,先来说明本发明使用的两个关键术语“知识曝光率”(Knowledge Exposure Rate:KER)和“工件相关率”(ArtifactInvolving Rate:AIR)。“知识曝光率”是指:软件系统设计工件中包含的关键知识的百分比,“工件相关率”指真正与关键知识项相关的工件的百分比。 本领域技术人员能够理解,关键知识可以包括业务功能、商业理念、独特的商业流程、优化的IT体系结构等类型,并且可以具有多种表达形式,例如自然语言文本、XML语言文本或本体等。另外,软件系统设计类型通常为UML设计模型,其表现形式为XML文本。不过,其他设计模型同样适用于本发明,只要该模型具有计算机可理解的模型。 下面,我们将以业务功能类型的关键知识和UML类型的软件系统设计模型为例对本发明的优选实施方式进行说明。如前所述,业务功能类型的关键知识通常采取自然语言文本描述的形式,而UML设计模型通常采取XML文本描述的形式。本发明的方法利用了自然语言文本和XML语言文本的词汇分割特性。 具体而言,本发明的方法如图3所示。该方法从步骤300开始,随后进入步骤310,在这里,提取关键知识k中有意义的词汇(例如,通过进行切词的方式),以得到词汇集合Wk{Wk1,Wk2,Wk3,...Wkl}。然后,在步骤320中,提取每个工件Ci中有意义的词汇Wd{Wdi1,Wdi2,...,Wdim}。接下来,在步骤330,获得每个工件Ci的词汇集与关键知识k的词汇集的交集,设这个交集大小为x,然后计算 Ci对K的KER=x/l Ci对K的AIR=x/m (1)。 图3的方法在步骤340中结束。 本领域技术人员能够理解,尽管以上以业务功能类型的关键知识和UML类型的软件系统设计模型为例对本发明的优选实施方式进行说明,但是本发明并不局限于此。事实上,只要能够提取出关键知识中有意义的部分和设计工件中有意义的部分,并且对这二者求取交集,从而对关键知识与设计工件的关系进行量化,任何类型的关键知识和软件系统设计模型均可用于本发明。 以下通过一个简单的例子来说明图3的方法。 假定某客户需要开发一个金融软件,其中有关提款的业务功能是其需要保护的关键知识。该业务功能可以用如下自然语言描述:对于提款,用户选择帐户、输入金额;然后系统检查帐户余额,并在余额足够的情况下执行交易。 要设计的软件系统的模型如下: class提款{ 帐户:int; 金额:float; boolean检查余额(); void执行交易(); } 对于该业务功能的语句而言,可通过执行切词提取出其有意义的词汇。所述切词过程例如可包括:先借助标点来将整个语句分割为不同的分句,然后通过滤除介词、连词、助词等无具体含义的词来提取语句当中有意义的词汇。通过对所述业务功能执行上述过程,可得到包含11个有意义的词汇的集合:提款、用户、选择、帐户、输入、金额、系统、检查、余额、执行、交易。 对于该软件系统设计而言,可通过先从XML语言中提取出含有命名的那些标记(tag)、然后再对提取出的命名进行切词,可得到包含7个有意义的词汇的集合:提款、帐户、金额、检查、余额、执行、交易。 在得到上述两个集合后,对其求取交集,可以得到交集大小为7。 于是,可以按照前述公式(1)求取KER和AIR,即: KER=7/11 AIR=7/7。 另外,根据本发明的优选实施方式,在经过上述计算过程之后,还可以提供一个修正部分,以便设计人员可以根据需要对自动计算的KER和AIR进行修正。 根据本发明的另一优选实施方式,在计算KER和AIR的过程中,可根据关键知识的机密程度、类型、可理解性等因素,对各词汇进行一定的加权。 以UML设计工具为例描述依赖关系获取部分220自动获取工件间的关系的方式。当前主流的软件设计模型是UML,而UML模型通常保存为XML文件,因此,只要使用XML文件解析程序就可以自动获得UML模型中各工件之间的关系。换言之,只需要寻找存放UML模型的XML文件中表达类、关联关系、继承关系、依赖关系的节点就可以容易地得到类之间的关系。与获得各工件之间的关系有关的技术是本领域中熟知的,这里不再详细描述。 以下将参照图4描述机制设计部分230选择适当的保护机制的方式。 众所周知,保留、伪装和拆分是三种直观的保护机制。保留(reserving)是将软件工件保留在授权开发者那里,以便只有他们知道关键知识。伪装(pretending)是在将软件工件传递给未授权开发者之前先改头换面,以便隐藏关键知识。拆分(separation)将软件工件分发给多个未授权开发者,以便每个未授权开发者只能知道关键知识的分解的片段。每个保护机制有其自身的应用条件和成本,但是目前,对关键知识保护机制的选择较为随意,缺乏科学的分析和指导。而本发明将根据关联计算部分210、依赖关系获取部分220输出的关联关系和依赖关系来确定对软件工件应用怎样的保护机制,如图4所示。 图4的方法开始于步骤400,随后进入步骤405,根据由依赖关系获取部分220得到的工件的相互依赖性将工件分成不同的群集,并且在步骤410中判断各群集的内聚度是否大于特定的阈值。能够理解,在群集内聚度高时,如果将工件分配到几个开发者进行开发,则其紧密的相互依赖性将需要较多的交流,而且会为综合到一起带来很多麻烦。因此,最好让一个开发者开发高度内聚群集中的所有工件。如果步骤410的判断为“是”,则方法进入步骤415,以在其中计算群集的知识曝光率(即,将群集中包括的各工件的知识曝光率相加)。然后,在步骤410中判断群集的知识曝光率是否大于阈值?如果步骤420的判断为“是”,则方法进入步骤425,以决定为群集中的所有工件应用“保留”机制(即,在群集中知识曝光率高的情况下,应将软件开发任务分配给被授权获得知识的那些开发者)。如果步骤420的判断为“否”,则方法进入步骤460,对软件开发任务采取拆分保护机制(但考虑到高的群集内聚度,应尽量将软件开发任务分配给一个未授权开发者)。 如果步骤410的判断为“否”,即群集内聚度不大于特定阈值,则方法进入步骤430,进一步判断工件的知识曝光率是否高于知识曝光率阈值且工件相关率低于工件相关率阈值。如果“是”,则方法进入步骤435,对满足条件的工件应用“伪装”机制,并随后在步骤440中将知识曝光率重设为“0”,然后方法进入步骤445,以便对进行“伪装”之后的知识应用拆分保护机制。如果步骤430的判断为“否”,即,关键知识和设计工件之间的关系不满足步骤430的条件,则方法直接进入步骤445,以对知识应用拆分保护机制。最后,方法在步骤450中结束。 在选择适合于应用伪装机制的那些工件时,尽管伪装只能够通过使工件改头换面而很好地保护关键知识,但是这种方式通常使工件变得难以理解,而进行完整和有效的“伪装”也需要昂贵的成本。因此,建议对具有高知识曝光率和低工件相关率的关键知识应用伪装机制。高知识曝光率意味着对工件进行伪装可以很好地保护该知识,而低工件相关率意味着伪装所需成本会较低。 最后,将所有工件进行拆分(除了那些被保留的工件之外),以便每组只保护较小的百分比的关键知识。这里,需要对拆分设置一定的准则,例如,每个组可以拥有不超过每种关键知识的30%。此外,在计算组的总曝光率时,可以将伪装工件的曝光率视为“0”。 需要指出,在本发明的上述方法中,在不同的阶段或步骤中的各阈值可根据软件系统设计的需要进行设定。 在机制设计部分230对不同的工件选择了适当的保护机制后,便可以根据选择的保护机制来实施相应的机制,这包括替换可能泄露关键知识的符号(对于“伪装”机制),将工件拆分为不同的组以满足设置的拆分准则(对于“拆分”机制),等等。随后,便可将处理后的软件工件分别分发给授权和非授权开发人员进行开发。通过使用本发明,可以较为准确、有效地提取和识别关键知识,并且能够自动地将多种保护机制组合到一个具有理想费效比的保护解决方案中。 本领域技术人员会认识到,可以以方法、系统或计算机程序产品的形式提供本发明的实施例。因此,本发明可采取全硬件实施例、全软件实施例,或者组合软件和硬件的实施例的形式。硬件和软件的典型的结合可以是带有计算机程序的通用计算机系统,当程序被加载并被执行时,控制计算机系统,从而可以执行上述的方法。 本发明可以嵌入在计算机程序产品中,它包括使此处描述的方法得以实施的所有特征。所述计算机程序产品被包含在一个或多个计算机可读存储介质(包括,但不限于,磁盘存储器、CD-ROM、光学存储器等)中,所述计算机可读存储介质具有包含于其中的计算机可读程序代码。 已参考根据本发明的方法、系统及计算机程序产品的流程图和/或方框图说明了本发明。流程图和/或方框图中的每个方框,以及流程图和/或方框图中的方框的组合显然可由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、嵌入式处理器或者其他可编程的数据处理设备的处理器,以产生一台机器,从而指令(所述指令通过计算机或者其他可编程数据处理设备的处理器)产生用于实现在流程图和/或方框图的一个或多个方框中规定的功能的装置。 这些计算机程序指令也可保存在一个或多个计算机的读存储器中,每个这种存储器能够指挥计算机或者其他可编程数据处理设备按照特定的方式发挥作用,从而保存在计算机可读存储器中的指令产生一种制造产品,所述制造产品包括实现在流程图和/或方框图的一个或多个方框中规定的功能的指令装置。 计算机程序指令也可被加载到一个或多个计算机或者其他可编程数据处理设备上,使得在所述计算机或者其他可编程数据处理设备上执行一系列的操作步骤,从而在每个这样的设备上产生计算机实现的过程,以致在该设备上执行的指令提供用于实现在流程图和/或方框图的一个或多个方框中规定的步骤。 以上结合本发明的优选实施方式对本发明的原理进行了说明,但这些说明只是示例性的,不应理解为对本发明的任何限制。本领域技术人员可以对本发明进行各种改变和变形,而不会背离由随附权利要求所限定的本发明的精神和范围。
《用于软件系统设计中的关键知识保护的方法和设备.pdf》由会员分享,可在线阅读,更多相关《用于软件系统设计中的关键知识保护的方法和设备.pdf(17页珍藏版)》请在专利查询网上搜索。
本发明提供了一种由计算机实施的在软件系统设计过程中保护关键知识的方法及系统,其中所述软件系统设计包括至少多个工件,所述方法包括:计算关键知识与软件系统设计之间的关联关系;获取软件系统设计中各个工件之间的相互依赖关系;根据所述关联关系和相互依赖关系确定用于各个工件的保护机制。 。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1