1 research outputs found
Elegant Object-oriented Software Design via Interactive, Evolutionary Computation
Design is fundamental to software development but can be demanding to
perform. Thus to assist the software designer, evolutionary computing is being
increasingly applied using machine-based, quantitative fitness functions to
evolve software designs. However, in nature, elegance and symmetry play a
crucial role in the reproductive fitness of various organisms. In addition,
subjective evaluation has also been exploited in Interactive Evolutionary
Computation (IEC). Therefore to investigate the role of elegance and symmetry
in software design, four novel elegance measures are proposed based on the
evenness of distribution of design elements. In controlled experiments in a
dynamic interactive evolutionary computation environment, designers are
presented with visualizations of object-oriented software designs, which they
rank according to a subjective assessment of elegance. For three out of the
four elegance measures proposed, it is found that a significant correlation
exists between elegance values and reward elicited. These three elegance
measures assess the evenness of distribution of (a) attributes and methods
among classes, (b) external couples between classes, and (c) the ratio of
attributes to methods. It is concluded that symmetrical elegance is in some way
significant in software design, and that this can be exploited in dynamic,
multi-objective interactive evolutionary computation to produce elegant
software designs