Generative modelling with software product line architectures. - Christopher Kenneth Holmes (2007)