Generative Programming: Methods, Tools, and Applications