人工智能如何解决COBOL挑战

文章 (133) 2021-04-28 17:04:25

COBOL在现代开发人员中并不是一种众所周知的语言,很少有大学仍将其作为计算机科学课程的一部分进行教学,但是已有60多年历史的编程语言正迅速成为该领域最抢手的技能之一。未来的软件开发人员。

例如,在大流行开始时,州政府系统由于其过时的软件而难以处理失业救济金。此外,美国71 %的财富500强公司和92%的25家最大的零售商仍在使用旧的大型机系统。在全球范围内,全球100家最大的银行中的96%和10家最大的保险公司中的90%使用旧的大型机系统。。

结果,如此众多的组织争先恐后地寻找和培训更多的COBOL程序员来维护,支持和尝试使他们的系统现代化。

COBOL挑战
随着熟练使用COBOL的开发人员退休或继续前进,一些组织尝试通过在 现有代码之上(或周围)构建或将代码移至另一个平台来解决问题。不幸的是,这些目光短浅的解决方案通常导致笨拙的应用程序,即使是最熟练的开发人员也无法理解,或者导致系统在飞行中损坏。

随着越来越多的能够理解COBOL的开发人员,使用COBOL的大型机社区和组织正在投入大量时间和精力来雇用年轻人离开大学,教会他们如何编写COBOL,然后将他们置于前沿以进行变革企业系统。

但是,COBOL挑战不能简单地归结为技能短缺。仅了解如何编写COBOL是不够的-开发人员必须理解应用程序的实际功能以及代码更改如何影响整个系统,以避免严重的失误。

这涉及使新程序员阅读系统中的数百万行代码,并使用静态和动态分析工具,这些工具本质上会画出说明代码功能的图片。或者,有时候,它需要与仍然可以回答有关代码领域问题的主题专家合作。不幸的是,用于转移知识的方法因此错误地描述了问题空间。

那就是AI的来历,但是流行的当代AI方法将不足以解决问题。

救援人工智能
从需求收集到自动化测试和故障排除,现代AI可以协助软件开发。尽管某些现代的AI工具可以帮助编写代码,例如Gmail的Smart Compose功能,该功能由机器学习提供支持,可在您键入内容时提供建议,但此类修复程序只能提供增量价值。

今天,开发人员将大约75%的时间用于第一步:尝试在源代码中找到需要进行更改的区域。对于新开发人员来说,在这些复杂的系统中理解代码非常耗时,因为这些系统要么变得笨拙,没有很好的文档记录,组织或结构化,要么其功能被广泛散布。

虽然静态和动态分析工具说明了代码的作用,但它们却受到限制,因为您必须先知道在哪里看。˚F或例如,变量可以有无意义的名称,或不同的字符,并且,正因为如此,开发者可能根本不知道要寻找他们所需要的东西。

幸运的是,使用过时的AI方法并将其应用于问题的不同范围,可以通过自动精确识别需要注意的代码的过程(无论其分布有多大)来节省开发人员查找代码的时间。就像当代的AI工具无法像人类那样理解一本书一样,人类开发人员努力理解软件中编码的先前开发人员的意图。

通过描述需要更改为AI工具的行为,开发人员不再需要费力搜索和理解代码来实现实现该行为的特定行。相反,开发人员可以快速有效地发现潜在的错误。开发人员无需处理大量的代码并花费数周的时间来搜索功能,而可以与AI工具协作以快速获取所需的代码。

这种方法需要另一种AI:一种不专注于协助开发人员使用语法的AI。取而代之的是,专注于理解代码意图的AI能够“重新想象”计算所代表的概念,从而在程序员进行编码时以机器速度完成开发人员的工作。

在没有主题专业知识的情况下,这大大提高了识别需要更改的功能的速度。对于例如,该周边刺激检查控制和管理数据的代码在国税局的主机系统可以一直快速,精确地使用人工智能识别并有信心改变。

从概念到创意解决方案
开发软件和编写代码本身就是一个创造性的过程。就像编写段落一样,软件开发人员从事认知活动,以对他们要创建的内容进行概念性的反映。

因此,需要创造力来构建正确的算法和指令集,以告诉计算机做什么和如何做。这种创造力与行业和机构的专业知识相结合,意味着当前没有任何AI可以将商业领域的常识与COBOL开发人员的专业知识相结合。

但是,AI可以减少自信地了解代码中进行更改所需的费力的认知工作。这使开发人员可以在编码时使用他们的创造力,而不是蛮力,最终可以提高开发效率,并使他们的工作更有趣,更满意。

THE END

发表回复