First design and code generation