首页> 中国专利> 成本计算装置、成本计算方法及计算机可读记录介质

成本计算装置、成本计算方法及计算机可读记录介质

摘要

一种成本计算设备(10)包括:代码克隆检测单元(101),用于将系统的修改前源代码的相同或相似的片段集合检测为代码克隆;组件化水平设置单元(102),用于设置将检测的片段集成为组件所在的水平;修改后源代码估计单元(103),用于估计在设置水平通过向修改前源代码应用组件化所获得的修改后源代码;以及成本计算单元(104),用于根据计算标准,基于估计的修改后源代码计算更新系统所需的修改成本和维护成本,所述计算标准指定计算修改成本和维护成本的方法。

著录项

  • 公开/公告号CN105190546A

    专利类型发明专利

  • 公开/公告日2015-12-23

    原文格式PDF

  • 申请/专利权人 日本电气方案创新株式会社;

    申请/专利号CN201480013080.2

  • 发明设计人 宫崎徹;

    申请日2014-02-25

  • 分类号G06F9/44(20060101);

  • 代理机构11219 中原信达知识产权代理有限责任公司;

  • 代理人李兰;孙志湧

  • 地址 日本东京

  • 入库时间 2023-12-18 13:14:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-31

    授权

    授权

  • 2016-01-20

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20140225

    实质审查的生效

  • 2015-12-23

    公开

    公开

说明书

技术领域

本发明涉及用于计算在更新系统时修改和维护所需成本的成本计 算设备和成本计算方法,还涉及记录用于实现同样目的的程序的计算 机可读记录介质。

背景技术

近年来,企业尝试将他们所使用的旧系统更新为在开放平台上工 作的新系统。在这个尝试过程中,注意力集中于发展与旧系统执行相 同处理的新系统的各种技术。这些技术的特征在于,基于旧系统的源 代码实现相同处理的执行的源代码的生成。因此,与用于系统集成(SI) 的传统操作相比,可以减少要求定义和设计中操作处理的数目。这样 最终降低了转换为新系统的修改成本(与设计、实施及测试相关联的 成本)。

对于维持了很长时间周期的旧系统,作为缺陷的反复校正、增加 功能等等的结果,其源代码通常很复杂。因此,简单应用系统重组技 术导致可维护性低的程序的发展。这样最终增加了新系统的维护成本 (与缺陷的校正、功能的增加相关联的成本)。

另一方面,高度可维护代码的发展要求所谓的重构,例如,重新 设计旧系统的结构,从而通过组件化,简化用于相互处理的程序。这 种重构程度的增加,例如组件化程度的增加,导致更高的修改成本以 及相反地,更低的维护成本。这样会改变新系统的成本(修改成本和 维护成本的总和)。因此,必须通过与重构程度相对应的成本的估计 来决定实现成本降低的重构程度。

一般而言,根据软件规模(例如,其中行数)来得出这些修改成 本和维护成本的近似估计。例如,专利文献1公开了一种对于通过协议 来承担软件产品的维护的情况估计维护成本的方法。专利文献1中公开 的估计方法基于维护各种实体所需的成本,并基于显示维护操作在这 些实体中的影响的产品模型,实现软件产品的维护成本的估计。

现有技术文献列表

专利文献

专利文献1:JP2007-156820A

发明内容

本发明要解决的问题

但是,专利文献1只公开了估计维护成本的方法,没有公开估计从 旧系统转变为新系统所需的修改成本的方法。这样对于在实现最佳重 构时实现修改成本和维护成本的估计的技术提出了要求。

本发明目的是提供一种解决上述传统问题的成本计算设备、成本 计算方法及程序,并实现系统的修改成本和维护成本的计算,以及将 这些成本最小化的重构程度的估计。

解决问题的方案

为了实现以上目的,根据本发明一个方案的成本计算设备是一种 用于计算更新系统所需的修改成本以及更新后维护成本的设备。该成 本计算设备包括:代码克隆检测单元,用于将待更新系统的修改前源 代码的相同或相似的片段集合检测为代码克隆;组件化水平设置单元, 用于设置将检测为所述代码克隆的片段集成为组件所在的水平;修改 后源代码估计单元,用于估计在设置水平通过向修改前源代码应用组 件化所获得的修改后源代码;以及成本计算单元,用于根据计算标准, 基于估计的修改后源代码计算所述修改成本和所述维护成本,所述计 算标准指定计算所述修改成本和所述维护成本的方法。

为了实现以上目的,根据本发明一个方案的成本计算方法是一种 用于计算更新系统所需的修改成本以及更新后维护成本的方法。该成 本计算方法包括:(a)将待更新系统的修改前源代码的相同或相似的 片段集合检测为代码克隆的步骤;(b)设置将检测为所述代码克隆的 片段集成为组件所在的水平的步骤;(c)估计在设置水平通过向修改 前源代码应用组件化所获得的修改后源代码的步骤;以及(d)根据计 算标准,基于估计的修改后源代码计算所述修改成本和所述维护成本 的步骤,所述计算标准指定计算所述修改成本和所述维护成本的方法。

为了实现以上目的,根据本发明一个方案的计算机可读介质是一 种记录用于利用计算机来计算更新系统所需的修改成本和更新后维护 成本的程序的计算机可读记录介质。所述程序包括指令,用于使得所 述计算机执行:(a)将待更新系统的修改前源代码的相同或相似的片 段集合检测为代码克隆的步骤;(b)设置将检测为所述代码克隆的片 段集成为组件所在的水平的步骤;(c)估计在设置水平通过向修改前 源代码应用组件化所获得的修改后源代码的步骤;以及(d)根据计算 标准,基于估计的修改后源代码计算所述修改成本和所述维护成本的 步骤,所述计算标准指定计算所述修改成本和所述维护成本的方法。。

本发明的有益效果

如上所述,本发明实现系统的修改成本和维护成本的计算,以及 将这些成本最小化的重构程度的估计。

附图说明

图1是示出根据本发明实施例的成本计算设备的一般配置的方框 图。

图2是示出根据本发明实施例的成本计算设备的特定配置的方框 图。

图3示出在本发明实施例中检测的代码克隆的示例。

图4示出根据本发明实施例的组件化的示例。

图5是示出根据本发明实施例的成本计算设备的操作的示例的流 程图。

图6是示出图5所示成本计算处理的细节的流程图。

图7是示出实现根据本发明实施例的成本计算设备10的计算机的 示例的方框图。

图8示出在本发明的工作示例中产生的代码克隆的列表的示例。

图9示出在本发明的工作示例中使用的计算标准的示例。

图10示出根据本发明的工作示例,分别由组件化水平和成本形成 的配对的示例。

具体实施方式

(实施例)

下面参照图1至图10描述根据本发明实施例的成本计算设备、成本 计算方法及程序。

示例

[设备的配置]

首先,描述根据本实施例的成本计算设备的配置。图1是示出根据 本发明实施例的成本计算设备的一般配置的方框图。

图1所示根据本实施例的成本计算设备10是用于计算更新系统所 需的修改成本以及更新后维护成本的设备。如图1所示,成本计算设备 10包括代码克隆检测单元101、组件化水平设置单元102、修改后源代 码估计单元103、以及成本计算单元104。

其中,克隆检测单元101将待更新系统的修改前源代码的相同或相 似的片段集合检测为代码克隆。组件化水平设置单元102设置将检测为 代码克隆的片段集成为组件所在的水平(下面称为“组件化水平”)。

修改后源代码估计单元103估计在设置组件化水平通过向修改前 源代码应用组件化所获得的修改后源代码。成本计算单元104根据计算 标准,基于修改后源代码计算修改成本和维护成本,计算标准指定计 算修改成本和维护成本的方法。

如上所述,成本计算设备10可以计算系统的修改成本和维护成本。 此外,因为将指示重构程度的组件化水平设置用于通过成本计算设备 10计算这些成本,所以可以基于逐个水平来进行成本计算。因此,成 本计算设备10也可以估计将这些成本最小化的重构程度。

下面参照图2至图4更具体地描述根据本实施例的成本计算设备的 配置。图2是示出根据本发明实施例的成本计算设备的特定配置的方框 图。

如图2所示,除了代码克隆检测单元101、组件化水平设置单元102、 修改后源代码估计单元103、以及成本计算单元104之外,成本计算设 备10还包括成本计算标准累积单元105和组件化水平选择单元106。在 本实施例中,通过在计算机中安装程序来构造成本计算设备10,如下 所述。

此外,在本实施例中,将目标是成本计算的源代码累积在图2所示 的外部修改前源代码累积单元30中。或者,在本实施例中,与图1的示 例不同,可以不将修改前源代码累积在外部修改前源代码累积单元30 中。例如,在本实施例中,可将修改前源代码从用户20的终端设备21 经由通信网络(例如互联网)输入到成本计算设备10。

在本实施例中,“修改前源代码”表示企业当前使用的系统(换 言之,旧系统)的源代码。“代码克隆”是源代码的相似或匹配的片 段集合。构成代码克隆的其中相似或匹配的片段集合被称为“代码片 断”。

图3示出在本发明实施例中检测的代码克隆的示例。在图3的示例 中,在源代码A和源代码B中用虚线包围的片段充当代码克隆。在这种 情况下,源代码A和源代码B的每一个包括一个代码片断。

在图3的示例中,从按照Java(注册商标)语言描述的源代码的两 个序列中检测代码克隆。但是,在本实施例中,由其检测代码克隆的 源代码不限于按照Java语言描述。

在本实施例中,“组件化”是用于集成被检测为代码克隆的源代 码的相同或相似片段的处理,并且表示,例如代码的重写,从而允许 一个代码片断呼叫另一个代码片断。

图4示出根据本发明实施例的组件化的示例。在图4的示例中,组 件化校正源代码B中的代码片断,以呼叫源代码A中的代码片断的功能。 通过这种方式,在组件化的一个示例中,通过功能呼叫来呼叫构成代 码克隆的代码片断。

“组件化水平”是组件化水平的测度。在本实施例中,这是限定 将组件化应用于代码克隆的程度的测度。具体而言,例如通过组件化 所应用的代码克隆(多个)与源代码的比率[%]来表示组件化水平。在 这种情况下,如果将组件化应用于所有代码克隆,那么组件化水平将 是100%,而如果不将组件化应用于代码克隆,那么组件化水平将是0%。

在本实施例中,“修改后源代码”表示通过以一定的组件化水平 修改修改前源代码所获得的源代码。

在本实施例中,代码克隆检测单元101从修改前源代码累积单元30 获取其中累积的修改前源代码,并检测修改前源代码中的代码克隆。 此外,代码克隆检测单元101产生检测的代码克隆的列表(参见图8), 并将列表连同修改前源代码一起传输给组件化水平设置单元103。

在本实施例中,可以利用商用工具来构造代码克隆检测单元。具 体而言,可将下面参考文献中描述的工具用作示例。

[参考文献]

ToshihiroKamiya,ShinjiKusumoto,andKatsuroInoue,"CCFinder:AMulti- LinguisticToken-basedCodeCloneDetectionSystemforLargeScaleSourceCode," IEEETrans.SoftwareEngineering,vol.28,no.7,pp.65a-670,(2002-7).

在本实施例中,组件化水平设置单元102可以按照任意间隔设置多 个组件化水平。例如,组件化水平设置单元102可以设置多个组件化水 平0%、10%、20%、…100%。此外,组件化水平设置单元102将设置的 组件化水平连同修改前源代码以及从代码克隆检测单元101接收的代 码克隆列表一起,通知修改后源代码估计单元103。

在本实施例中,修改后源代码估计单元103基于修改前源代码、代 码克隆的列表以及从组件化水平设置单元102传输的组件化水平,基于 逐个水平来估计修改后源记录。此外,修改后源记录估计单元103将估 计的修改后源代码的序列以及它们各自的组件化水平传输给成本计算 单元104。

指定计算修改成本和维护成本的方法的计算标准累积在成本计算 标准累积单元105中。在本实施例中,成本计算单元104从成本计算标 准累积单元105获取计算标准,从而计算修改成本和维护成本。

例如,在本实施例中,基于使用成本计算设备10的企业等等拥有 的专有技术(例如质量标准)来设置计算标准,且包括用于计算修改 成本的表达式以及用于计算维护成本的表达式。

具体而言,用于计算维护成本的表达式的一个示例是通过将经由 片段的集成所得到的组件的数目乘以设置单价来计算修改成本的表达 式。用于计算修改成本的表达式的一个示例是通过将修改后源代码中 行数乘以设置单价来计算维护成本的表达式。通过这些表达式算出的 成本的总和充当最终成本。

此外,成本计算单元104根据计算标准,将修改后源代码中成本计 算所必须的测量单位的数目进行计数。然后,成本计算单元104将计数 的数目应用于计算标准,从而基于逐个组件化水平计算修改成本和维 护成本。成本计算单元104可以进一步计算修改成本和维护成本的总 和。随后,成本计算单元104基于逐个组件化水平,将通过计算的成本 以及在计算时设置的组件化水平形成的配对通知组件化水平选择单元 106。

组件化水平选择单元106识别与修改成本的最小总和相对应的组 件化水平以及通过成本计算单元104计算的主机,并将识别的组件化水 平以及对应的总和呈现给外部用户20。也就是说,在本实施例中,将 总成本(包括修改成本和维护成本)最小化的最佳组件化水平自动呈 现给用户20。应当注意,例如经由他/她的终端设备21来进行给用户20 的呈现。

[设备的操作]

下面参照图5和图6描述根据本发明实施例的成本计算设备10的操 作。在本实施例中,通过令成本计算设备10操作来实施成本计算方法。 因此,成本计算设备的操作的以下描述适用于根据本实施例的成本计 算方法。在以下描述中,视情况参照图1至图4。

[设备的整体操作]

首先,参照图5描述成本计算设备10的整体操作。图5是示出根据 本发明实施例的成本计算设备的操作的示例的流程图。

如图5所示,首先,代码克隆检测单元102获取修改前源代码累积 单元30中累积的修改前源代码,并检测修改前源代码中的代码克隆(步 骤S1)。在步骤S1中,代码克隆检测单元102还产生检测的代码克隆的 列表,并将列表连同修改前源代码一起传输给组件化水平设置单元 103。

接着,组件化水平设置单元102、修改后源代码估计单元103、以 及成本计算单元104执行成本计算处理(步骤S2)。通过步骤S2的执行, 成本计算单元104基于逐个组件化水平,将通过计算的成本以及在计算 时设置的组件化水平形成的配对通知组件化水平选择单元106。下面参 照图6描述步骤S2。

接着,组件化水平选择单元106从成本计算单元104通知的配对 (即,分别由成本和组件化水平形成的配对)中选择最小成本配对, 并经由终端设备21将选择的配对中的成本和组件化水平呈现给用户2 (步骤S3)。

[与成本计算处理有关的设备的操作]

下面,参照图6更详细地描述图5所示的成本计算处理。图6是示出 图5所示成本计算处理的细节的流程图。

如图6所示,首先,组件化水平设置单元102设置用于处理的组件 化水平的默认值(步骤S201)。然后组件化水平设置单元102将修改前 源代码、代码克隆的列表、以及设置的组件化水平传递给修改后源代 码估计单元103。

随后,修改后源代码估计单元103根据设置的组件化水平,通过执 行组件化,如图4所示,估计修改后源代码(步骤S202)。此外,修改 后源记录估计单元103将估计的修改后源代码以及对应的组件化水平 传输给成本计算单元104。

具体而言,在之后未将修改后源代码呈现给用户20的情况下,在 步骤S202的估计处理中只计算修改后源代码中行数或者步骤的数目就 足矣。在这种情况下,可以缩短处理时间周期。

接着,成本计算单元104从成本计算标准累积单元105获取计算标 准(参见图8所述)(步骤S203)。

然后,成本计算单元104根据计算标准,将从修改后源代码估计单 元103传输的修改后源代码中成本计算所必须的测量单位的数目进行 计数。成本计算单元104将计数的数目应用于计算标准,从而计算与设 置的组件化水平相对应的修改成本和维护成本(步骤S204)。

之后,成本计算单元104计算修改成本和维护成本的总和,并将通 过计算的成本总和与设置的组件化水平形成的配对通知组件化水平选 择单元106。

接着,组件化水平设置单元103确定是否对于所有组件化水平执行 了处理(步骤S205)。

如果组件化水平设置单元103在步骤S205确定尚未对于所有组件 化水平执行了处理(S205:否),则组件化水平设置单元103将组件化 水平的值增加一个预设间隔(步骤S206)。然后组件化水平设置单元 103再次执行步骤S202。

另一方面,如果组件化水平设置单元103在步骤S205确定对于所有 组件化水平执行了处理(S205:是),则组件化水平设置单元103结束 成本计算处理。之后,执行步骤S3。

[本发明的有益效果]

如上所述,在本实施例中,可以估计修改后源列表。因此,通过 使用预设计算标准,能够可靠地计算源代码的修改所必须的成本以及 修改后维护操作所必须的成本。通过将这些成本相加,还可以计算总 成本。

在本实施例中,在改变组件化水平的同时自动计算修改成本和维 护成本。通过这种方式,可以容易地识别将修改成本和维护成本最小 化的组件化水平,并呈现给用户。

[修改示例]

在上述示例中,组件化水平选择单元106只向用户20呈现两种信息 片,也就是成本和组件化水平。但是,本实施例不限于该示例。例如, 通过将修改后源代码包括在成本计算单元104向组件水平选择单元106 发布的通知中,组件水平选择单元106可将修改后源代码的内容呈现给 用户20。

在上述示例中,按照相同的编程语言来描述修改前源代码和修改 后源代码。但是,在本实施例中,可以按照不同的编程语言来描述它 们。也就是说,在输入修改前源代码之后,可以对源代码施行语言变 换处理。

例如,在应用修改从而将按照COBOL语言描述的系统变换为按照 Java语言描述的系统的情况下,成本计算设备10首先接收按照COBOL 语言描述的源代码作为输入。然后,应用变换为Java语言的处理。随后, 将步骤S1之后的处理应用于后期变换源代码。应当注意,可以利用商 用工具来执行这种语言变换处理。

[程序]

对于根据本实施例的程序而言使得计算机执行图5所示的步骤S1 至S3以及图6所示的步骤S201至S206是足够的。通过将该程序安装在计 算机中并执行安装的程序,可以实现根据本实施例的成本计算设备10 和成本计算方法。在这种情况下,计算机的中央处理器(CPU)充当代 码克隆检测单元101、组件化水平设置单元102、修改后源代码估计单 元103、成本计算单元104、以及组件化水平选择单元106,并因此执行 处理。

下面参照图7描述通过执行根据本实施例的程序来实现成本计算 设备10的计算机。图7是示出实现根据本发明实施例的成本计算设备10 的计算机的示例的方框图。

如图7所示,计算机10包括CPU111、主存储器112、存储设备113、 输入接口114、显示控制器115、数据读取器/写入器116、以及通信接口 117。这些组件的连接方式使得它们可以经由总线121相互进行数据通 信。

CPU111通过将存储设备113中存储的根据本实施例的程序(代码) 部署于主存储器112,并按照预定顺序执行部署的程序,执行各种类型 的计算。主存储器112通常是易失性存储设备,例如动态随机访问存储 器(DRAM)。在存储于计算机可读记录介质120中时提供根据本实施 例的程序。应当注意,可将根据本实施例的程序分布于经由通信接口 117连接的互联网。

存储设备113的具体示例包括硬盘和半导体存储设备,例如闪存。 输入接口114调解CPU111与输入设备118(例如键盘和鼠标)之间的数 据传输。显示控制器115连接到显示设备119并控制显示设备119上的显 示。

数据读取器/写入器116调解CPU111与记录介质120之间的数据传 输。数据读取器/写入器116从记录介质120读取程序,并将计算机110 中的处理结果写入记录介质120。通信接口117调解CPU111与其他计算 机之间的数据传输。

下面是记录介质120的具体示例:通用半导体存储装置,例如 CompactFlash(CF,注册商标)和SecureDigital(SD);磁存储介质, 例如柔性盘;以及光存储介质,例如压缩盘只读存储器(CD-ROM)。

工作示例1

下面参照图8至图10描述本发明的工作示例。应当注意,下面按照 图5和图6所示的步骤来描述工作示例。

[步骤S1]

首先,将修改前源代码输入成本计算设备10。然后,代码克隆检 测单元105检测代码克隆并产生检测的代码克隆的列表。在本工作示例 中假定,输入包括总共10000行的源代码作为修改前源代码。

图8示出步骤S1中产生的代码克隆的列表。图8示出在本发明的工 作示例中产生的代码克隆的列表的示例。如图8所示,在代码克隆的列 表中,对于检测的每个代码克隆登记以下事项:分配给代码克隆的号 码、代码克隆中代码片断的数目、代码片断中行数、以及代码克隆中 行的总数。

[步骤S2(S201至S206)]

随后,执行成本计算处理。首先,组件化水平设置单元102将0% 设置为组件化水平的默认值(步骤S201)。

接着,修改后源代码估计单元103估计与0%的组件化水平相对应 的修改后源代码(步骤S202)。这里,因为组件化水平是0%,所以修 改后源代码估计单元103在不执行组件化的情况下估计修改后源代码。

接着,成本计算单元104从成本计算标准累积单元105获取图9所示 的计算标准(步骤S203)。图9示出在本发明的工作示例中使用的计算 标准的示例。在图9的示例中,将“成本=修改成本+维护成本”指示为 计算标准。图9所示的计算标准还指示,将修改成本计算为“通过组件 化得到的组件的数目×30000日元(单价)”,以及将维护成本计算为 “修改后源代码中行数×100日元(单价)”。

接着,成本计算单元104根据从成本计算标准累积单元105获取的 计算标准计算成本,并将通过计算的成本与组件化水平形成的配对通 知组件化水平选择单元106(步骤S204)。

具体而言,修改成本为“通过组件化得到的组件的数目×30000日 元”。但是,因为组件化水平为0%,也就是说,因为在不执行组件化 的情况下估计修改后源代码,所以修改成本为0日元。另一方面,维护 成本为“修改后源代码中行数×100日元”。但是,因为组件化水平为 0%,所以修改后源代码中行数等于修改前源代码中行数。因此,维护 成本为10000行×100日元=1百万日元。

因此,与0%的组件化水平相对应的成本是修改成本与维护成本的 总和,即,1百万日元(=0日元+1百万日元)。组件化水平选择单元106 被通知以通过计算的成本(按照上述方式获得)以及组件化水平形成 的配对。

接着,组件化水平设置单元102确定,是否对于所有组件化水平执 行了处理(步骤S205)。这里,尚未对于所有组件化水平执行处理。 因此,组件化水平设置单元103为下一个处理将组件化水平改变为10% (步骤S206),然后再次执行步骤S202。

接着,修改后源代码估计单元103估计与10%的组件化水平相对应 的修改后源代码(步骤S202)。这里,因为组件化水平为10%,所以修 改后源代码估计单元103仅将组件化应用于图9所示代码克隆的10%,按 照其中行的号码从大到小的顺序。在图9的示例中,因为有10个代码克 隆,所以将组件化应用于分配号码4的代码克隆,其具有行的最大总数。

具体而言,执行代码克隆的组件化如下。首先,只留下代码克隆 的其中一个代码片断。作为组件化的结果,其余代码片断没有行。也 就是说,在组件化之后,代码克隆中行的总数等于一个代码片断中行 数。因此,如果将组件化应用于分配号码4的代码克隆,那么在组件化 之后代码克隆中行的总数为212个行。

这里,通过减去已经经由组件化从修改前代码克隆中行的总数中 删除的行数,获得修改后源代码中行数。也就是说,通过分配号码4的 代码克隆的组件化,将其中行数从636行减少为212行。因此,修改后 源代码中行数为10000行-(636行-212行)=9576行。

接着,成本计算单元104从成本计算标准累积单元105获取图9所示 的计算标准(步骤S203)。然后,成本计算单元104根据获取的计算标 准,计算修改成本和维护成本以及这些成本的总和。之后,成本计算 单元104将通过计算的成本与组件化水平形成的配对通知组件化水平 选择单元106(步骤S204)。

具体而言,因为通过组件化得到的组件的数目为一个,所以修改 成本为1×30000日元=30000日元。另一方面,因为修改后源代码中行 数为9576行,如上所述,所以维护成本为9576行×100日元=957600日 元。因此,与10%的组件化水平相对应的成本的总和为987600日元(= 修改成本+维护成本=30000日元+957600日元)。

自此,重复步骤S202至S206的处理,直到组件化水平达到100%。 通过以10%的间隔从0%到100%改变组件化水平所实现的成本计算的 结果与图10所示的对应组件化水平配对。图10示出根据本发明的工作 示例,分别由组件化水平和成本形成的配对的示例。

[步骤S3]

之后,组件化水平选择单元106从成本计算单元104通知的配对 (即,分别由组件化水平和成本形成的配对)中选择最小成本配对, 并经由终端设备21将成本和组件化水平呈现给用户20。

在本工作示例中,从图10所示的内容中选择最小成本配对,也就 是由40%的组件化水平和982000日元的成本形成的配对,并呈现给用户 20。

通过根据上述本工作示例的步骤S1至S3的执行,计算出源代码的 修改所必须的成本以及修改后维护操作所必须的成本,并且将成本最 小化的组件化水平被呈现给用户。

在上述工作示例中,在如下的假定下计算组件化之后代码克隆中 行数:作为组件化的结果,只留下代码克隆的其中一个代码片断,其 余代码片断没有行。但是,本工作示例不限于这种方式。可以通过包 括复制代码片断的部分的更准确识别来计算组件化之后代码克隆中行 数。此外,可以利用商用工具来产生充当组件化结果的源代码。

以上利用优选实施例和工作示例描述了本发明。但是,本发明不 一定限于上述实施例和工作示例,并且可以通过本发明技术构思范围 内的各种变型来实施。此外,上述设备配置和流程图都是示例,并且 可以按照任何方式改变或修改。

上述实施例和工作示例的一部分或全部可以描述为以下补充说明 1至15,但是不限于此。

(补充说明1)

一种用于计算更新系统所需的修改成本和更新后维护成本的成本 计算设备,所述成本计算设备包括:

代码克隆检测单元,用于将待更新系统的修改前源代码的相同或 相似的片段集合检测为代码克隆;

组件化水平设置单元,用于设置将检测为所述代码克隆的片段集 成为组件所在的水平;

修改后源代码估计单元,用于估计在设置水平通过向修改前源代 码应用组件化所获得的修改后源代码;以及

成本计算单元,用于根据计算标准,基于估计的修改后源代码计 算所述修改成本和所述维护成本,所述计算标准指定计算所述修改成 本和所述维护成本的方法。

(补充说明2)

根据补充说明1的成本计算设备,

其中,所述组件化水平设置单元设置多个水平,

所述修改后源代码估计单元基于逐个水平来估计所述修改后源代 码,以及

所述成本计算单元基于逐个水平来计算所述修改成本和所述维护 成本。

(补充说明3)

根据补充说明2的成本计算设备,进一步包括

组件化水平选择单元,用于识别与计算的修改成本以及主机的最 小总和相对应的水平,并向外部呈现所识别的水平以及对应的总和。

(补充说明4)

根据补充说明1至3任一项的成本计算设备,

其中,所述修改后源代码估计单元将所述修改后源代码中行数或 者步骤的数目估计为所述修改后源代码。

(补充说明5)

根据补充说明1至4任一项的成本计算设备,

其中,根据所述计算标准,通过将经由片段的集成所得到的组件 的数目乘以第一单价来计算所述修改成本,通过将所述修改后源代码 中行数乘以第二单价来计算所述维护成本。

(补充说明6)

一种用于计算更新系统所需的修改成本和更新后维护成本的成本 计算方法,所述成本计算方法包括:

(a)将待更新系统的修改前源代码的相同或相似的片段集合检测 为代码克隆的步骤;

(b)设置将检测为所述代码克隆的片段集成为组件所在的水平的 步骤;

(c)估计在设置水平通过向修改前源代码应用组件化所获得的修 改后源代码的步骤;

(d)根据计算标准,基于估计的修改后源代码计算所述修改成本 和所述维护成本的步骤,所述计算标准指定计算所述修改成本和所述 维护成本的方法。

(补充说明7)

根据补充说明6的成本计算方法,

其中在步骤(b)设置多个水平,

在步骤(c)基于逐个水平来估计所述修改后源代码,以及

在步骤(d)基于逐个水平来计算所述修改成本和所述维护成本。

(补充说明8)

根据补充说明7的成本计算方法,进一步包括

(e)识别与计算的修改成本以及主机的最小总和相对应的水平, 并向外部呈现所识别的水平以及对应的总和的步骤。

(补充说明9)

根据补充说明6至8任一项的成本计算方法,

其中在步骤(c),将所述修改后源代码中行数或者步骤的数目估 计为所述修改后源代码。

(补充说明10)

根据补充说明6至9任一项的成本计算方法,

其中根据步骤(d)中使用的所述计算标准,通过将经由片段的集 成所得到的组件的数目乘以第一单价来计算所述修改成本,通过将所 述修改后源代码中行数乘以第二单价来计算所述维护成本。

(补充说明11)

一种记录用于使用计算机来计算更新系统所需的修改成本和更新 后维护成本的程序的计算机可读记录介质,所述程序包括指令,用于 使得所述计算机执行:

(a)将待更新系统的修改前源代码的相同或相似的片段集合检测 为代码克隆的步骤;

(b)设置将检测为所述代码克隆的片段集成为组件所在的水平的 步骤;

(c)估计在设置水平通过向修改前源代码应用组件化所获得的修 改后源代码的步骤;

(d)根据计算标准,基于估计的修改后源代码计算所述修改成本 和所述维护成本的步骤,所述计算标准指定计算所述修改成本和所述 维护成本的方法。

(补充说明12)

根据补充说明11的计算机可读记录介质,

其中在步骤(b)设置多个水平,

在步骤(c)基于逐个水平来估计所述修改后源代码,以及

在步骤(d)基于逐个水平来计算所述修改成本和所述维护成本。

(补充说明13)

根据补充说明12的计算机可读记录介质,

其中所述程序中包括的指令进一步使得所述计算机执行(e)识别 与计算的修改成本以及主机的最小总和相对应的水平,并向外部呈现 所识别的水平以及对应的总和的步骤。

(补充说明14)

根据补充说明11至13任一项的计算机可读记录介质,

其中在步骤(c),将所述修改后源代码中行数或者步骤的数目估 计为所述修改后源代码。

(补充说明15)

根据补充说明11至14任一项的计算机可读记录介质,

其中根据步骤(d)中使用的所述计算标准,通过将经由片段的集 成所得到的组件的数目乘以第一单价来计算所述修改成本,通过将所 述修改后源代码中行数乘以第二单价来计算所述维护成本。

虽然上面利用实施例和工作示例描述了本申请的发明,但是本申 请的发明不限于上述实施例和工作示例。在本申请的发明的范围内, 本申请的发明的配置和细节可以进行本领域技术人员能够理解的各种 变化。

本申请要求2013年3月8日提交的日本专利申请No.2013-046585的 优先权,通过参考将其全部内容合并于此。

工业实用性

如上所述,本发明实现系统的修改成本和维护成本的计算,以及 将这些成本最小化的重构程度的估计。本发明可用于将旧系统更新为 在开放平台上操作的新系统的尝试。

附图标记列表

10成本计算设备

20用户

21用户的终端设备

30修改前源代码累积单元

101代码克隆检测单元

102组件化水平设置单元

103修改后源代码估计单元

104成本计算单元

105成本计算标准累积单元

106组件化水平选择单元

110计算机

111CPU

112主存储器

113存储设备

114输入接口

115显示控制器

116数据读取器/写入器

117通信接口

118输入设备

119显示设备

120记录介质

121总线

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号