A Software Product Family comprises similar products within a defined scope that share common characteristics, often due to reuse techniques applied during development. This paper introduces two approaches that apply biological insights to map the landscape of a software product family, identifying potential gaps within its scope, and identifying and extracting features from the family, respectively. Phylogenetics studies the gene similarity among groups of organisms to understand ancestry among species. Leveraging Phylogenetics in software, our approaches offer a structured view of a product family, aiding in the discovery of unexplored areas fitting the scope of the family. Our approaches create a phylogenetic tree that enables to easily identify latent products (ancestors) that did not exist in the original family. Those ancestors can then be reconstructed from existing products (descendants). Moreover, the phylogenetic tree can be exploited to identify and extract features from the family. Then, those features can be injected into other members of the family. The product family evaluated is a set of industry-scale video game non-playable characters. We assess these approaches through video game simulations and scope metrics to determine how closely the reconstructed and injected products align with the family’s scope. The results confirm that the content generated with our phylogenetics-based approaches aligns better with the family scope than the state-of-the-art procedural content generation techniques using evolutionary algorithms. Phylogenetics enhances content generation by providing a framework to understand and expand the product family with new content.


Datasets and Source Code

Also, there are available the source code of the Phylogenetic algorithm used for Latent Content Identification; the source code of the Kromaia’s player simulator; and the Zenodo repository with the results of the simulations, and the statistical analysis performed.