For specific domains (e.g., data analysis, planning and scheduling, or state estimation), automated program synthesis systems have been developed which are capable of producing hundreds of lines of non-trivial code. However, the potential applicability of an automatic program synthesis system does not only depend on size and quality of the generated code, but also its ability to be integrated into the overall software process. Therefore, the generation of executable code alone is not enough. In this paper, we will describe three techniques which enhance the capabilities of a synthesis tool with respect to generation of explanations, certificates, and simulation data. The synthesis system encodes enough domain knowledge, such that the appropriate information can directly be extracted during the synthesis process. ExplainIt! is a component for the Amphion/NAV system (synthesis of state estimation software) which automatically generates and displays explanations for each piece of the synthesized code, thus effectively achieving traceability between code and specification. For safety-relevant applications, software must undergo a rigorous certification process where it must be demonstrated that certain safety policies are not violated. Traditional formal verification approaches (e.g., with Hoare-style rules) are impractical, because they require large amounts of manual code annotations. In this paper, we discuss an extension of the \AB\ system (synthesis of data analysis programs) for the automatic generation of code annotations which can be handled by a verification condition generator and an automated theorem prover. Speed of this approach compares favorably with commercial static analysis tools (e.g., PolySpace). Finally, we discuss a module of AutoBayes which synthesizes code for the generation of artificial data for simulation, experimentation, and testing purposes.