最近我被一个有趣的想法困扰着。
我想知道是否有一种(已知的)方法可以从一个复杂的算法中提取执行的源代码。我将尝试详细说明这个问题:
场景: 有一个复杂的算法,许多人已经在上面工作了很多年。该算法创建了一个复杂测量设备的测量描述。
算法的输入是一组大量的输入参数,我们称之为“配方”。基于这个配方,执行算法,并且配方决定了算法内部遵循哪些函数、循环和if-else结构。当算法完成后,一组计算出的测量参数将形成输出。通过这些输出测量参数,设备可以进行测量。
现在,有一个问题。由于算法随着时间的推移变得如此复杂和庞大,所以当您想要为配方添加新功能时,很难找到您在算法中的位置。基本上,一个人只想修改受其配方影响的函数和代码块,但他/她必须深入整个算法并分析代码,以查看哪些代码与他或她的配方相关,只有在此过程之后才能在正确的位置添加新功能。即使是简单的添加,人们也往往会在大量复杂的代码中迷失方向。
解决方案:提取活动代码路径? 我一直在思考这个问题,我认为如果有一种方法可以使用输入参数(配方)处理算法,并仅将活动函数和代码块提取到一组新的源文件或代码结构中,那将是很棒的。我实际上是在谈论提取真正的源代码。
当活动代码被提取并隔离时,这将导致一个子集的源代码,它只是原始源代码结构的一小部分,对于人们来说更容易分析、理解代码并进行修改。最终,更改可能会合并回算法的原始源代码,或者修改后的提取源代码也可以单独执行,就像是原始算法的“轻量版”。
额外信息: 我们正在讨论一个带有C和C++代码的算法,大约有200个文件和100K行代码。代码是使用自定义基于Visual Studio的构建环境编译和构建的。
所以...: 我真的不知道这个想法是天真愚蠢的,还是在适当的软件工程量下是可行的。我可以想象,在软件工程领域中可能有更多类似的情况,但我不知道。
我在软件工程方面有相当多的经验,但肯定不是设计大型复杂系统的水平。
我会感激任何形式的答案、建议或评论。
提前致谢!
我想知道是否有一种(已知的)方法可以从一个复杂的算法中提取执行的源代码。我将尝试详细说明这个问题:
场景: 有一个复杂的算法,许多人已经在上面工作了很多年。该算法创建了一个复杂测量设备的测量描述。
算法的输入是一组大量的输入参数,我们称之为“配方”。基于这个配方,执行算法,并且配方决定了算法内部遵循哪些函数、循环和if-else结构。当算法完成后,一组计算出的测量参数将形成输出。通过这些输出测量参数,设备可以进行测量。
现在,有一个问题。由于算法随着时间的推移变得如此复杂和庞大,所以当您想要为配方添加新功能时,很难找到您在算法中的位置。基本上,一个人只想修改受其配方影响的函数和代码块,但他/她必须深入整个算法并分析代码,以查看哪些代码与他或她的配方相关,只有在此过程之后才能在正确的位置添加新功能。即使是简单的添加,人们也往往会在大量复杂的代码中迷失方向。
解决方案:提取活动代码路径? 我一直在思考这个问题,我认为如果有一种方法可以使用输入参数(配方)处理算法,并仅将活动函数和代码块提取到一组新的源文件或代码结构中,那将是很棒的。我实际上是在谈论提取真正的源代码。
当活动代码被提取并隔离时,这将导致一个子集的源代码,它只是原始源代码结构的一小部分,对于人们来说更容易分析、理解代码并进行修改。最终,更改可能会合并回算法的原始源代码,或者修改后的提取源代码也可以单独执行,就像是原始算法的“轻量版”。
额外信息: 我们正在讨论一个带有C和C++代码的算法,大约有200个文件和100K行代码。代码是使用自定义基于Visual Studio的构建环境编译和构建的。
所以...: 我真的不知道这个想法是天真愚蠢的,还是在适当的软件工程量下是可行的。我可以想象,在软件工程领域中可能有更多类似的情况,但我不知道。
我在软件工程方面有相当多的经验,但肯定不是设计大型复杂系统的水平。
我会感激任何形式的答案、建议或评论。
提前致谢!