Early lifecycle software design is an intensely humanudactivity in which design scale and complexity can place audhigh cognitive load on the software designer. Recently, the use of evolutionary search has been suggested to yield insights in the nature of software engineering problems generally, and so we have applied dynamic evolutionary computation using self-adaptiveudmutation to the object-oriented software design searchudspace. Using three design problem instances of varying scale and complexity, initial investigations of the discrete search landscape reveal a redundancy in genotype-to-phenotype mapping enabling flexible and effective exploration. In further experiments, mutationudprobabilities and population diversity are observed to significantly increase in the face of increasing problem scale, but not for increasing complexity (in problems of the same scale). Based on these findings, we conclude that design problem scale rather than complexity has an effect on the software design process, emphasizing the role of decomposition as a design technique.
展开▼