Our research goal as to construct an environment that mechanically supports human intellectual activities through software development with reuse. We propose a model of software development with systematic reuse in which the existent program can be altered to meet the given specification change using the program deriving process from the specification. In this paper, we consider what kinds of knowledge must be acquired when a specification is changed and how they have to be integrated so well as to implement our method on a computer system. In particular, we focus on the following points in terms of program synthesis. First, a wide spectrum language Extended ML defines a framework an which specifications, program and the elaborate deriving process can be expressed formallg on a computer system. This forms a basic unit of reusable knowledge for specification change. Second, a reuse process as formulated in which a new requirement changes the existent specification and its program is altered to meet this requirement correctly. Third we consider some conditions and a mechanism by which the knowledge can be integrated so as to obtaan an objective program automatically, amplying that we will get profit from reusing the knowledge.