Generative And Transformational Techniques In Software Engineering by