Generation in Software