CN104298603A - 一种应用系统版本构建的正确性的检查方法 - Google Patents

一种应用系统版本构建的正确性的检查方法 Download PDF

Info

Publication number
CN104298603A
CN104298603A CN201410613909.4A CN201410613909A CN104298603A CN 104298603 A CN104298603 A CN 104298603A CN 201410613909 A CN201410613909 A CN 201410613909A CN 104298603 A CN104298603 A CN 104298603A
Authority
CN
China
Prior art keywords
file
program
correctness
timestamp
inspection method
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.)
Granted
Application number
CN201410613909.4A
Other languages
English (en)
Other versions
CN104298603B (zh
Inventor
廖文胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201410613909.4A priority Critical patent/CN104298603B/zh
Publication of CN104298603A publication Critical patent/CN104298603A/zh
Application granted granted Critical
Publication of CN104298603B publication Critical patent/CN104298603B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了应用系统版本构建的正确性的检查方法,包括:分别扫描各源码库;抽取源程序与COPYBOOK的关系并生成源程序与COPYBOOK的关系文件;根据上述关系文件和当前版本变更申请单内容产生编译清单文件;利用编译清单文件、普通程序属性参数文件和数据库访问程序属性参数文件生成数据库请求模块和执行码清单文件;根据当前版本变更申请单内容、数据库请求模块和执行码清单文件、对各执行码库抽取程序时间戳及字节数的输出结果检查应用系统版本构建的正确性,输出结果包括程序时间戳、大小及调用关系文件。根据本发明能够兼效率和正确性的前提对所构建的应用系统版本进行正确性检查。

Description

一种应用系统版本构建的正确性的检查方法
技术领域
本发明涉及复杂应用系统的版本构建,尤其涉及一种应用系统的版本的正确性的检查方法。
背景技术
对于复杂的应用系统,在应用系统的版本构建之后,采用人工手段进行版本正确性检查十分困难,其主要体现在以下三个方面:
第一方面,程序调用关系复杂。比如核心银行系统,往往存在成千上万的应用程序,这些应用程序遵循软件工程要求的模块化设计原则,从而可以提高系统的易维护性、可靠性等。然而,这样的设计导致程序调用关系呈现为十分复杂的网状关系,例如对现有技术中一些核心银行系统程序调用关系高达10多层,一个主程序往往包含几百个子程序。当一个较低层的子程序发生变更后,往往需要对成千上万的上级程序重新链接(link),即对此类需要重新链接的上级程序构建新版本;
第二方面,COPYBOOK嵌套关系复杂,所谓COPYBOOK可以理解为存储变量的头文件。COPYBOOK用于存放数据结构定义或公共程序代码段,其也是一种源码。且COPYBOOK存在嵌套包含关系,当一个COPYBOOK变更后,可能导致链接此COPYBOOK的上级COPYBOOK的变更,即与其相关的所有程序需要重新编译链接,即对相关的所有程序均需构建新版本,第一方面与第二方面构建的新的应用系统版本数量繁多,难以用人工方式在保证正确性与效率的前提下进行版本的正确性检查;
第三方面,DB2DBRM与程序执行码一致性问题,其中,DB2为一种关系型数据库系统。DB2主要应用于大型应用系统,具有与平台无关的基本功能和SQL命令。对于包含DB2SQL语句的程序,DB2会附加产生一个所谓的DBRM(即Database Request Module,数据库请求模块),且要求该DBRM内包含的时间戳与程序执行码中的时间戳完全一致,时间戳(timestamp)通常是一个字符序列,唯一地标识某一刻的时间,而现有技术的版本构建过程中由于DBRM与程序执行码并非通过同一次预编译过程所产生的,因而DBRM内的时间戳常与程序执行码内的时间戳不一致,而对版本的正确性进行人工检测则较难判断时间戳的相同与否。
目前,可通过采用IBM的BUILDFORGE工具进行版本构建,但BUILDFORGE工具不能保证上述三个方面的问题完全正确,为了保证版本的正确性,仍需要在版本构建后,必须采用人工的手段检查版本的正确性,人工检查版本的工作量大、效率低,且容易出错。因而现有技术对于一个中等规模或更大的版本构建,往往需时较长才能完成版本检查工作,并且难以保证版本的绝对正确性。
发明内容
本发明所要解决的问题是难以用人工方式在保证正确性与效率的前提下进行版本的正确性检查,提供一种
为了解决上述问题,本发明提供一种应用系统版本构建的正确性的检查方法,包括以下步骤:
步骤1:分别扫描各源码库;
步骤2:抽取源程序与COPYBOOK的关系并生成源程序与COPYBOOK的关系文件;
步骤3:根据源程序与COPYBOOK的关系文件和当前版本变更申请单内容产生编译清单文件;
步骤4:利用编译清单文件、普通程序属性参数文件和数据库访问程序属性参数文件生成数据库请求模块和执行码清单文件;
步骤5:根据当前版本变更申请单内容、数据库请求模块和执行码清单文件、对各执行码库抽取程序时间戳及字节数的输出结果检查应用系统版本构建的正确性,输出结果包括程序时间戳、大小及调用关系文件。
作为优选,当前版本变更申请单内容配置于一程序清单文件中,其包含:
变更的源程序清单、COPYBOOK清单、运行作业清单。
作为优选,对各执行码库抽取程序时间戳及字节数为抽取出一程序关系文件,该程序关系文件包括主程序名、子程序名、子程序的字节数、时间戳。
作为优选,上述步骤5进一步包括:
步骤51:根据数据库请求模块和执行码清单文件、输出结果检查LOAD执行码的时间戳是否在指定范围内。
作为优选,上述步骤5进一步包括:
步骤52:根据当前版本变更申请单内容和输出结果检查各子程序在所有主程序中的字节数、时间戳是否完全一致。
作为优选,上述步骤5进一步包括:
步骤53:根据数据库请求模块和执行码清单文件检查数据库请求模块和执行码的时间戳是否一致。
作为优选,在上述步骤5之后,所述检查方法还包括:
步骤6:将检查结果以报表形式输出。
作为优选,所述应用系统为IBM大型机环境系统和/或z/OS操作系统。
本发明相对于现有技术的有益效果在于:
1、能够兼效率和正确性的前提对所构建的应用系统版本进行正确性检查;
2、可以解决IBM大型机环境、z/OS操作系统下复杂应用系统版本构建的正确性问题。
附图说明
图1为根据本发明的应用系统所构建的版本的正确性的检查方法的流程图;
图2为根据本发明的一个实施例对应用系统BANCS的版本进行正确性检查的整体示图;
图3为根据本发明的一个实施例对应用系统BANCS的版本进行正确性检查的流程图。
具体实施方式
以下结合附图对本发明的进行详细描述。
根据本发明的实施例,提供了一种应用系统版本构建的正确性的检查方法。
根据本发明实例的检查方法可以包括以下步骤:
步骤1:分别扫描各源码库;
步骤2:抽取源程序与COPYBOOK的关系并生成源程序与COPYBOOK的关系文件;
步骤3:根据源程序与COPYBOOK的关系文件和当前版本变更申请单内容产生编译清单文件;
步骤4:利用编译清单文件、普通程序属性参数文件和数据库访问程序属性参数文件生成数据库请求模块和执行码清单文件;
步骤5:根据当前版本变更申请单内容、数据库请求模块和执行码清单文件、对各执行码库抽取程序时间戳及字节数的输出结果检查应用系统版本构建的正确性,输出结果包括程序时间戳、大小及调用关系文件。因而能够兼效率和正确性的前提对所构建的应用系统版本进行正确性检查。
此外,根据本发明实例的检查方法还可以包括步骤6:将检查结果以报表形式输出,便于工作人员查看结果。
当前版本变更申请单内容可以配置于一程序清单文件中,其可以包含:变更的源程序清单、COPYBOOK清单、运行作业清单。当前版本变更申请单内容即由工作人员提交的应用系统版本内变更的内容。
作为优选,对各执行码库抽取程序时间戳及字节数为抽取出一程序关系文件,该程序关系文件可以包括主程序名、子程序名、子程序的字节数、时间戳。
在优选的实施例中,上述步骤5可以进一步包括:步骤51:根据数据库请求模块和执行码清单文件、输出结果检查LOAD执行码的时间戳是否在指定范围内,从而解决子COPYBOOK与相关的上级COPYBOOK之间的一致性的问题;
和/或步骤52:根据当前版本变更申请单内容和输出结果检查各子程序在所有主程序中的字节数、时间戳是否完全一致,由于某一子程序的时间戳加上字节数相当于该子程序的唯一标志,凡是调用了该子程序的所有主程序,都必须具有与该子程序相同的标志,因而可以检查子程序与主程序的一致性;和/或
步骤53:根据数据库请求模块和执行码清单文件检查数据库请求模块和执行码的时间戳是否一致,从而解决了DB2DBRM与程序执行码一致性的问题。此处三个步骤51、52和53可以分别以报表形式输出结果,从而便于工作人员对错误之处进行修正。
本发明的应用系统版本构建的正确性的检查方法主要适用于IBM大型机环境和/或z/OS操作系统,从而解决IBM大型机环境、z/OS操作系统下复杂应用系统版本构建的正确性问题。图2所示为根据本发明的一个实施例对应用系统的版本进行正确性检查的示意图,利用版本检查工具(在实际应用中可以为版本检查工具V2.0版本)对应用系统版本的正确性进行检查的架构的示意图。在本实施例中以BANCS内的各源码库作为源码库的一个例子,当然本发明也可以应用于其它类型的源码库。相应地,以BANCS各执行码库作为LOAD LIB(即上述执行码库)。版本检查工具对IBM DEBUG TOOL(排除程序故障的工具)产品附带的Load Module Analyzer工具进行重构,其能可靠地、高效地分析主程序包含的各子程序的时间戳和字节数。
如图2所示,版本检查工具V2.0根据开发人员提交的SOURCELIST(即上述当前版本变更申请单内容),以及与核心银行系统BANCS相关的SOURCELIB(源码库)、LOAD LIB(执行码库)、DBRM LIB(DBRM库)、PROGLIST(普通程序属性)、DBIOLIST(其中,DBIO是一类封装的数据库访问程序,因而DBIOLIST为数据库访问程序属性)等参数文件进行版本检查,检查结果在输出的各报表中。其中,SOURCELIST为开发人员对Copybook所link的文件进行人工识别所得到的结果,在实际应用中该SOURCELIST可以为一个excel清单;SOURCE LIB为实际提交的源码库;LOAD LIB内包含一些文件之间的映射关系;DBRM LIB为静态库;PROGLIST参数文件定义了程序的属性,比如是联机还是批量,是子程序还是主程序等;DBIOLIST即数据库访问程序属性的参数文件,列出与DB2相关的程序,在图2中与“参数文件PROGLIST”共处一个位置。
如图3所示,为根据本发明使用版本检查工具V2.0进行版本准确性检查的处理流程,处理流程包括以下七个模块的实现:
模块一、模块“抽取源程序与COPYBOOK的关系”实现:对“BANCS各源码库”分别进行扫描,抽取源程序与COPYBOOK的关系,最终生成“源程序与COPYBOOK的关系文件”;
模块二、模块“产生编译清单”实现:根据“源程序与COPYBOOK的关系文件”和本次版本申请的“SOURCELIST文件”,处理产生/输出“编译清单文件COMPILELIST”,它反映了本次版本构建实际需要编译的程序清单,其中,“SOURCELIST文件”是指当前版本变更申请单内容,通常包含变更的源程序清单、COPYBOOK清单、运行作业清单等;
模块三、模块“根据各编译作业生成DBRM和执行码清单”实现:根据编译清单COMPILELIST、普通程序属性的参数文件PROGLIST和DBIO程序属性的参数文件DBIOLIST,判断该程序采用何种编译作业,从而决定是否存在相应的DBRM、SUB LOAD子程序、LOAD主程序,其结果输出到“DBRM和LOAD清单文件”;
模块四、模块“抽取程序时间戳及字节数”实现:根据IBM DEBUG TOOL产品的Load Module Analyzer工具运行结果,抽取出程序关系文件,它包含了主程序名、子程序名、子程序的字节数、时间戳等关键属性。其输入是“BANCS各执行码库”,输出是“程序时间戳、大小及调用关系文件”;
模块五、模块“检查各LOAD是否正确”实现:根据“DBRM和LOAD清单文件”和“程序时间戳、大小及调用关系文件”,检查LOAD执行码的时间戳是否在指定范围内,输出相应的报表;
模块六、模块“检查子程序在所有主程序是否一致”实现:根据“程序时间戳、大小及调用关系文件”,检查各子程序在所有主程序中的字节数、时间戳是否完全一致,换言之,即,所有主程序中的相同子程序的字节数、时间戳是否完全一致,然后输出相应的报表;
模块七、模块“检查DBRM与LOAD是否一致”实现:根据“DBRM和LOAD清单文件”中记录的DBRM清单,访问LOAD库中的执行码,检查两者的时间戳是否一致,输出相应的报表。
在使用版本检查工具以后,仅需要2分钟就完成版本检查工作,极大地提高了工作效率,且保证的版本的绝对正确性。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

Claims (8)

1.一种应用系统版本构建的正确性的检查方法,其特征在于,包括以下步骤:
步骤1:分别扫描各源码库;
步骤2:抽取源程序与COPYBOOK的关系并生成源程序与COPYBOOK的关系文件;
步骤3:根据所述源程序与COPYBOOK的关系文件和当前版本变更申请单内容产生编译清单文件;
步骤4:利用所述编译清单文件、普通程序属性参数文件和数据库访问程序属性参数文件生成数据库请求模块和执行码清单文件;
步骤5:根据所述当前版本变更申请单内容、所述数据库请求模块和执行码清单文件、对各执行码库抽取程序时间戳及字节数的输出结果检查所述应用系统版本构建的正确性,所述输出结果包括程序时间戳、大小及调用关系文件。
2.根据权利要求1所述的检查方法,其特征在于,所述当前版本变更申请单内容配置于一程序清单文件中,其包含:
变更的源程序清单、COPYBOOK清单、运行作业清单。
3.根据权利要求1所述的检查方法,其特征在于,所述对各执行码库抽取程序时间戳及字节数为抽取出一程序关系文件,该程序关系文件包括主程序名、子程序名、子程序的字节数、时间戳。
4.根据权利要求1所述的检查方法,其特征在于,步骤5进一步包括:
步骤51:根据所述数据库请求模块和执行码清单文件、所述输出结果检查LOAD执行码的时间戳是否在指定范围内。
5.根据权利要求1所述的检查方法,其特征在于,步骤5进一步包括:
步骤52:根据所述当前版本变更申请单内容和所述输出结果检查各子程序在所有主程序中的字节数、时间戳是否完全一致。
6.根据权利要求1所述的检查方法,其特征在于,步骤5进一步包括:
步骤53:根据所述数据库请求模块和执行码清单文件检查所述数据库请求模块和所述执行码的时间戳是否一致。
7.根据权利要求1所述的检查方法,其特征在于,在步骤5之后,所述检查方法还包括:
步骤6:将检查结果以报表形式输出。
8.根据权利要求1所述的检查方法,其特征在于,所述应用系统为IBM大型机环境系统和/或z/OS操作系统。
CN201410613909.4A 2014-11-04 2014-11-04 一种应用系统版本构建的正确性的检查方法 Active CN104298603B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410613909.4A CN104298603B (zh) 2014-11-04 2014-11-04 一种应用系统版本构建的正确性的检查方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410613909.4A CN104298603B (zh) 2014-11-04 2014-11-04 一种应用系统版本构建的正确性的检查方法

Publications (2)

Publication Number Publication Date
CN104298603A true CN104298603A (zh) 2015-01-21
CN104298603B CN104298603B (zh) 2018-01-30

Family

ID=52318338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410613909.4A Active CN104298603B (zh) 2014-11-04 2014-11-04 一种应用系统版本构建的正确性的检查方法

Country Status (1)

Country Link
CN (1) CN104298603B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107885492A (zh) * 2017-11-14 2018-04-06 中国银行股份有限公司 主机中数据结构动态生成的方法及装置
CN110968342A (zh) * 2019-11-29 2020-04-07 中国银行股份有限公司 一种版本比对方法、装置及系统
CN111737122A (zh) * 2020-06-16 2020-10-02 中国银行股份有限公司 一种大型机程序调用层级的检查方法及系统
CN113704289A (zh) * 2021-08-31 2021-11-26 北京乾元大通技术有限公司 一种基于dbio接口的方法、系统、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148060A1 (en) * 2006-12-19 2008-06-19 Per Thorell Maintaining Code Integrity in a Central Software Development System
CN101546269A (zh) * 2008-03-28 2009-09-30 鸿富锦精密工业(深圳)有限公司 可执行文件版本更新系统及方法
CN101876943A (zh) * 2009-04-30 2010-11-03 埃森哲环球服务有限公司 识别大型机环境中多个相关应用之间的关系的系统和方法
CN103530228A (zh) * 2013-09-27 2014-01-22 西安电子科技大学 一种基于模型的软件测试方法
CN103559449A (zh) * 2013-11-15 2014-02-05 华为技术有限公司 一种代码改动的检测方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148060A1 (en) * 2006-12-19 2008-06-19 Per Thorell Maintaining Code Integrity in a Central Software Development System
CN101546269A (zh) * 2008-03-28 2009-09-30 鸿富锦精密工业(深圳)有限公司 可执行文件版本更新系统及方法
CN101876943A (zh) * 2009-04-30 2010-11-03 埃森哲环球服务有限公司 识别大型机环境中多个相关应用之间的关系的系统和方法
CN103530228A (zh) * 2013-09-27 2014-01-22 西安电子科技大学 一种基于模型的软件测试方法
CN103559449A (zh) * 2013-11-15 2014-02-05 华为技术有限公司 一种代码改动的检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘光辉: "农业银行总行业务系统安全平台设计与实现", 《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107885492A (zh) * 2017-11-14 2018-04-06 中国银行股份有限公司 主机中数据结构动态生成的方法及装置
CN110968342A (zh) * 2019-11-29 2020-04-07 中国银行股份有限公司 一种版本比对方法、装置及系统
CN110968342B (zh) * 2019-11-29 2023-07-21 中国银行股份有限公司 一种版本比对方法、装置及系统
CN111737122A (zh) * 2020-06-16 2020-10-02 中国银行股份有限公司 一种大型机程序调用层级的检查方法及系统
CN111737122B (zh) * 2020-06-16 2023-07-21 中国银行股份有限公司 一种大型机程序调用层级的检查方法及系统
CN113704289A (zh) * 2021-08-31 2021-11-26 北京乾元大通技术有限公司 一种基于dbio接口的方法、系统、设备及介质

Also Published As

Publication number Publication date
CN104298603B (zh) 2018-01-30

Similar Documents

Publication Publication Date Title
CN101739339B (zh) 一种基于程序动态依赖关系的软件故障定位方法
CN111367886B (zh) 数据库中数据迁移的方法及装置
Herrmannsdoerfer et al. Language evolution in practice: The history of GMF
CN106095501B (zh) 一种应用部署方法及装置
JP2013522790A (ja) アバップソースコードのコード検査遂行システム
CN104298603A (zh) 一种应用系统版本构建的正确性的检查方法
Rogstad et al. Industrial experiences with automated regression testing of a legacy database application
CN107148615A (zh) 计算机可执行的模型逆向工程方法及装置
Pandey et al. Formal methods in requirements phase of SDLC
Tufano et al. Methods2Test: A dataset of focal methods mapped to test cases
Davis et al. Extreme modelling in practice
Sharma Automatic generation of test suites from decision table-theory and implementation
Cheon Automated random testing to detect specification-code inconsistencies
Haitzer et al. DSL-based support for semi-automated architectural component model abstraction throughout the software lifecycle
JP2010140408A (ja) ソースコード変換装置
Liuying et al. Test selection from UML statecharts
US10846059B2 (en) Automated generation of software bindings
JP2010140407A (ja) ソースコード検査装置
Romero et al. Using the base semantics given by fUML for verification
Hodován et al. Fuzzinator: an open-source modular random testing framework
Kessel LASSO–an observatorium for the dynamic selection, analysis and comparison of software
CN112416367A (zh) 基于软件逆向拆解和分析的应用资源变更影响分析系统
Elks et al. Defining and characterizing methods, tools, and computing resources to support pseudo exhaustive testability of software based i&c devices
Fu et al. In industrial embedded software, are some compilation errors easier to localize and fix than others?
CN109240737A (zh) 一种在大数据平台上打包发布的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant