While working on a software specification, designers usually need to evaluate different architectural alternatives to be sure that quality criteria are met. Even when these quality aspects could be expressed in terms of multiple software metrics, other qualitative factors cannot be numerically measured, but they are extracted from the engineer's know-how and prior experiences. In fact, detecting not only strong but also weak points in the different solutions seems to fit better with the way humans make their decisions. Putting the human in the loop brings new challenges to the search-based software engineering field, especially for those human-centered activities within the early analysis phase. This paper explores how the interactive evolutionary computation can serve as a basis for integrating the human's judgment into the search process. An interactive approach is proposed to discover software architectures, in which both quantitative and qualitative criteria are applied to guide a multi-objective evolutionary algorithm. The obtained feedback is incorporated into the fitness function using architectural preferences allowing the algorithm to discern between promising and poor solutions. Experimentation with real users has revealed that the proposed interaction mechanism can effectively guide the search towards those regions of the search space that are of real interest to the expert.
翻译:在处理软件规范时,设计者通常需要评估不同的架构方案以确保满足质量标准。即使这些质量方面可基于多种软件指标进行数值化表达,其他定性因素却无法通过数值度量,而是依赖工程师的实践知识与过往经验提取。事实上,识别不同方案中的优劣势更符合人类决策的固有模式。将人类纳入优化循环为基于搜索的软件工程领域带来了新挑战,尤其针对早期分析阶段中以人为中心的活动。本文探索了交互式进化计算如何作为将人类判断融入搜索过程的基础。提出了一种交互式方法用于发现软件架构,该方法同时应用定量与定性准则指导多目标进化算法。通过架构偏好将获得的反馈纳入适应度函数,使算法能够区分有前景与低劣的解决方案。真实用户实验表明,所提出的交互机制可有效引导搜索向专家真正关注的搜索空间区域收敛。