Dynamic analysis methods for the year 2000 problem

N. Wilde, R. Justice, Kristin Blackwell, W. E. Wong
{"title":"Dynamic analysis methods for the year 2000 problem","authors":"N. Wilde, R. Justice, Kristin Blackwell, W. E. Wong","doi":"10.1002/(SICI)1096-908X(199905/06)11:3%3C167::AID-SMR190%3E3.0.CO;2-N","DOIUrl":null,"url":null,"abstract":"Programmers working on the year 2000 problem need to locate and understand date sensitive code, that is, code whose execution depends on date inputs. This paper presents several dynamic analysis methods for addressing this problem. Date sensitive code can be located by running many test cases that are identical except for a change in one date value. An advanced test coverage tool can recover each test's execution count vector giving the number of times that each basic block was executed. Comparison of the vectors reveals the blocks whose execution is affected by the input date values. We present several methods of analysing the execution count data to locate date algorithms. One method identifies subdomains, that is, ranges of dates that are processed similarly. Another method involves graphical or Fourier analysis to identify common programming patterns such as leap-year computations. The last method exploits the 28-year regularity in dates to look for anomalies in processing. The methods are illustrated using Bellcore's ATAC testing tool on five C programs that use some of the date encodings that year 2000 maintainers may need to locate and understand. Copyright © 1999 John Wiley & Sons, Ltd.","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"431 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"J. Softw. Maintenance Res. Pract.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1002/(SICI)1096-908X(199905/06)11:3%3C167::AID-SMR190%3E3.0.CO;2-N","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

Programmers working on the year 2000 problem need to locate and understand date sensitive code, that is, code whose execution depends on date inputs. This paper presents several dynamic analysis methods for addressing this problem. Date sensitive code can be located by running many test cases that are identical except for a change in one date value. An advanced test coverage tool can recover each test's execution count vector giving the number of times that each basic block was executed. Comparison of the vectors reveals the blocks whose execution is affected by the input date values. We present several methods of analysing the execution count data to locate date algorithms. One method identifies subdomains, that is, ranges of dates that are processed similarly. Another method involves graphical or Fourier analysis to identify common programming patterns such as leap-year computations. The last method exploits the 28-year regularity in dates to look for anomalies in processing. The methods are illustrated using Bellcore's ATAC testing tool on five C programs that use some of the date encodings that year 2000 maintainers may need to locate and understand. Copyright © 1999 John Wiley & Sons, Ltd.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
2000年问题的动态分析方法
处理2000年问题的程序员需要定位和理解日期敏感代码,也就是说,其执行依赖于日期输入的代码。本文提出了解决这一问题的几种动态分析方法。可以通过运行许多相同的测试用例来定位日期敏感代码,除了一个日期值的更改。一个高级的测试覆盖工具可以恢复每个测试的执行计数向量,给出每个基本块被执行的次数。矢量的比较揭示了其执行受输入日期值影响的块。我们提出了几种分析执行计数数据来定位日期算法的方法。一种方法识别子域,即类似处理的日期范围。另一种方法涉及图形或傅立叶分析,以识别常见的编程模式,如闰年计算。最后一种方法利用28年的日期规律来寻找加工过程中的异常。使用Bellcore的ATAC测试工具对五个C程序进行了说明,这些程序使用了2000年维护者可能需要定位和理解的一些日期编码。版权所有©1999 John Wiley & Sons, Ltd
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Software project effort assessment Social networks in software process improvement Assessing maintainability change over multiple software releases Automatic construction of accurate application call graph with library call abstraction for Java Continuous evolution through software architecture evaluation: a case study
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1