OOZE: An Object Oriented Z Environment. OOZE, which stands for “Object Oriented Z Environment,” is a generalized wide spectrum object oriented language that builds on the notation and style of Z. OOZE supports requirements, specifications, interpretable programs, and compilable programs. The OOZE system is based on OBJ3, and provides rapid prototyping and theorem proving facilities over a module database. OOZE modules can be generic, can be organized hierarchically, and can be used for structuring and reusing requirements, specifications, or code. Modules can be linked by views, which assert relationships of refinement. Module interfaces can be precisely specified using theories. Abstract data types, multiple inheritance, complex objects, overloading and dynamic binding are supported. Data types, objects, classes and modules are clearly distinguished from one another, and the entire language has a precise and relatively simple semantics based on order sorted, hidden sorted algebra.