Reformulating software engineering as a search

Reformulating software engineering as a search
复制标题

将软件工程重新定义为一种搜索

DOI:
--
复制
发表时间:
2003
期刊:
影响因子:
--
通讯作者:
M. Shepperd
M. Shepperd
中科院分区:
--
文献类型:
--
作者:
Joseph Andrew Clarke;M. Harman;R. Hierons;B. Jones;M. Lumkin;B. Mitchell;Spiros Mancoridis;K. Rees;M. Roper;M. Shepperd

文献摘要

被引文献

相似文献

遗传算法、模拟退火算法和禁忌搜索算法等元启发式技术在工程领域得到了广泛的应用。这些技术也被应用于商业、金融和经济建模。元分析已经应用于软件工程的三个领域:测试数据生成,模块聚类和成本/工作量预测,但仍然有许多软件工程问题,尚未解决使用元分析。令人惊讶的是,元分析没有被更广泛地应用于软件工程;软件工程中的许多问题的特点正是使元分析搜索适用的功能。在本文中,它认为,功能,使元分析适用于软件工程以外的工程和商业应用程序也表明,有很大的潜力,开发元分析软件工程。本文简要回顾了主要的元亨式搜索技术和调查现有的工作应用元亨式的三个软件工程领域的测试数据生成,模块聚类和成本/工作量预测。它还显示了元启发式搜索技术可以应用到软件工程的三个额外的领域:维护/进化系统集成和需求调度。软件工程问题领域的考虑,因此跨越了软件开发过程的范围,从最初的规划,成本估算和需求分析,通过集成,维护和遗留系统的发展。其目的是证明在软件工程中的许多问题可以重新表述为搜索问题的说法是正确的。元启发式技术可以应用于哪些方面。本文的目标是激发更大的兴趣,元启发式搜索作为优化软件工程问题的工具,并鼓励调查和利用这些技术在寻找接近最佳的解决方案,以复杂的基于约束的情况下,经常出现在软件工程。
Metaheuristic techniques such as genecc algorithms, simulated annealing and tabu search have found wide application in most areas of engineering. These techniques have also been applied in business, financial and economic modelling. Metaheuristics have been applied to three areas of software engineering: test data generation, module clustering and cost/effort prediction, yet there remain many software engineering problems which have yet to be tackled using metaheuristics. It is surprising that metaheuristics have not been more widely applied to software engineering; many problems in software engineering are characterised by precisely the features which make metaheuristics search applicable. In the paper it is argued that the features which make metaheuristics applicable for engineering and business applications outside software engineering also suggest that there is great potential for the exploitation of metaheuristics within software engineering. The paper briefly reviews the principal metahenristic search techniques and surveys existing work on the application of metaheuristics to the three software engineering areas of test data generation, module clustering and cost/effort prediction. It also shows how metaheuristic search techniques can be applied to three additional areas of software engineering: maintenance/evolution system integration and requirements scheduling. The soft- ware engineering problem areas considered thus span the range of the software development process, from initial planning, cost estimation and requirements analysis through to integration, maintenance and evolution of legacy systems. The aim is to justify the claim that many problems in software engineering can be reformulated as search problems. to which metaheuristic techniques can be applied. The goal of the paper is to stimulate greater interest in metaheuristic search as a tool of optimisation of software engineering problems and to encourage the investigation and exploitation of these technologies in finding near optimal solutions to the complex constraint-based scenarios which arise so frequently in software engineering.