当前位置:主页 > 分布式数据库 > 安全市场 >

云数据库_企业网站设计_优惠券

云数据库_企业网站设计_优惠券

经过多年发展的大型软件系统可能包含不再使用的特性实现。虽然可以通过在生产环境中分析系统来识别未使用的代码,但更难识别未使用的特性。这篇博文描述了在ABAP系统中识别未使用的特性的三种方法。总体目标是识别那些未使用的特性,这些特性的代码实现可能会被冻结或删除(当然是在仔细的手动检查之后)。

注意:我最初在我公司的博客上发表了以下关于软件质量的文章。因为这对ABAP开发人员来说可能很有趣,所以我在这里重新发布了它(略为采用)。

本节介绍了代码使用分析和特性使用分析。后续章节描述了对ABAP系统的分析。

当一个软件系统经过多年的发展,出现了不同的情况,使得现有的功能实现未被使用:功能变得过时,不切实际的需求导致了一个没有人需要的功能的实现,用户不知道该功能,因此不使用它,或者在特定的时间点(例如迁移或推出)只需要一次功能。当这样一个未使用的特性的实现仍然存在于代码库中时,它必须被存储、编译、维护和迁移——也就是说,它为开发人员创造了工作,有时是重复的,但没有增加任何价值。

代码使用分析为了识别未使用的源代码,我们使用代码使用分析:我们在生产环境中安装一个探查器,并使用它来记录代码的哪些部分被执行。然后,我们将使用和未使用的代码区域可视化,从而使开发人员能够分析其代码库的哪些部分没有使用。在设置概要分析时,有两个方面非常重要:第一,在生产环境中只引入最小的性能开销,第二,收集代表性数据。为了最小化性能开销,实时大数据,什么大数据,我们在方法级别记录代码执行。此外,我们使用特定于技术的方法来进一步最小化性能开销。为了确保执行数据的代表性,我们记录了几个月的代码执行情况,并确定了重要的时间间隔,如年终结账时间。

功能使用分析虽然建立用于代码使用分析和收集代表性数据的技术基础结构需要时间和精力,大数据应用,但这并不复杂。针对未使用的特性而不是未使用的代码更为复杂,因为它需要从代码中抽象出来。如果使用情况分析的目标组是用户、经理或测试人员(不熟悉代码的人员),则需要有关未使用功能的信息,如何做淘客,这有助于对几个未使用的代码区域进行分组。特性使用分析的简单方法是让开发人员分析未使用的代码区域,并手动将代码抽象为特性。显然,这在所有上下文中都是可能的,但这会给开发团队带来工作压力,而开发团队通常都面临时间压力。因此,我们开发了一种自动化的方法。

由于我们已经有了记录代码执行的基础设施,我们希望重用它。此外,在代码库中引入专用的监视代码不是一种选择,因为这将导致开发人员的工作和分析的性能开销。我们的总体思路是为每个特征定义一个特征方法,即假设特征方法执行一次,特征使用一次。这种方法允许将代码抽象为特性,并重用代码使用分析中的执行数据。通常,很难为任意系统中的每个特征找到这样的特征方法。因此,我们使用特定的框架方法作为特征方法。在下面,我们将描述我们如何在ABAP系统中实现这个想法。

ABAP系统上的代码执行可以很容易地记录下来,因为每个ABAP系统都安装了SAP Coverage Analyzer。它被深入集成到NetWeaver应用服务器的内核中,因此引入了最小的性能开销。要收集代码执行数据,必须在生产系统上激活它。然后,记录所有方法、程序和功能模块的执行情况,360大数据,并将执行数据存储在数据库中。我们在Lite模式下使用Coverage Analyzer,它在方法级别上记录代码执行,以最小化性能开销。

当特定功能的特征方法已知时,只需检索其执行计数即可查看该功能的使用频率。特征方法的候选方法是中心方法,如run()或process(),中心类的构造函数,或中心报表的»选择开始«事件块。

我们用于特征使用分析的第一个ABAP特定机制是ABAP事务。通过定义事务,开发人员可以让用户访问特性。事务的定义由三部分组成:事务名称、事务代码和用户调用事务时执行的程序。因为事务定义了从用户可见的特性到源代码的映射,所以我们可以将它用于特性使用分析:我们将事务视为特性,并为每个事务检索其程序的执行计数。这告诉我们事务执行的频率以及用户使用相应功能的频率。

请注意,这种方法作出了一个简化的假设:它假设事务的程序仅由事务触发,而实际上程序可能由其他方式触发,也是。

猜你喜欢

微信公众号