Code generation by model transformation: A case study in transformation modularity