  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.
