The main aim of this monograph is to provide a framework for the integrated design of object-oriented programs with algebraic specification techniques. The design method pursued relies fundamentally on the structuring of systems based on the notion of data types. Depending on the level of abstraction, data types are described in an object-oriented way by algebraic specifications or by machine-executable object-oriented programs. The treatment involves two main aspects. First, object-oriented programs have to be related by a notion of correctness that models the transition from specifications to program implementations. The author presents a notion of correctness which relies on the idea of abstraction functions. Second, in order to obtain an integrated design environment, a uniform structuring concept for object oriented programs and algebraic specifications has to be provided. Inheritance, subtyping and clientship are three central notions of object-oriented structuring. Theauthor uses them to develop the kernel of a typed object- oriented programming language. The monograph provides the formal foundation for a unified framework of algebraic specifications and object-oriented programs. A major guideline is the development of a design method supporting the structured design and reuse of software in this environment.