网络分析技术能帮助预测设计缺陷吗?初探
Can Network Analysis Techniques help to Predict Design Dependencies? An Initial Study
摘要:
软件系统的模块之间的依赖程度是表征其设计结构及其随时间演化能力的关键属性。一些设计问题通常与模块之间不期望的依赖性相关。能够预测这些问题对开发人员来说非常重要,这样他们就可以及早计划维护和重构工作。然而,现有的工具仅限于检测不需要的依赖关系,一旦它们出现在系统中。在这项工作中,我们调查模块依赖是否可以预测(在它们实际出现之前)。由于模块结构可以被看作是一个网络,即依赖图,我们利用网络特征来分析这种结构的动力学。特别是,我们应用链接预测技术,这项任务。我们使用链接预测和机器学习技术对两个跨多个版本的Java项目进行了评估,并评估了它们在识别从项目版本到下一个版本的新依赖关系方面的性能。结果,虽然初步的,表明链接预测方法是可行的包依赖。此外,这项工作为进一步开发依赖预测的软件特定策略提供了机会。
英文摘要:
The degree of dependencies among the modules of a software system is a key attribute to characterize its design structure and its ability to evolve over time. Several design problems are often correlated with undesired dependencies among modules. Being able to anticipate those problems is important for developers, so they can plan early for maintenance and refactoring efforts. However, existing tools are limited to detecting undesired dependencies once they appeared in the system. In this work, we investigate whether module dependencies can be predicted (before they actually appear). Since the module structure can be regarded as a network, i.e, a dependency graph, we leverage on network features to analyze the dynamics of such a structure. In particular, we apply link prediction techniques for this task. We conducted an evaluation on two Java projects across several versions, using link prediction and machine learning techniques, and assessed their performance for identifying new dependencies from a project version to the next one. The results, although preliminary, show that the link prediction approach is feasible for package dependencies. Also, this work opens opportunities for further development of software-specific strategies for dependency prediction.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。