This paper presents a minimal and complete set of structural refactoring rules for the Object-Z specification language that
allow for the derivation of arbitrary object-oriented architectures. The rules are equivalence preserving and work in concert
with existing class refinement theory, so that any design derived using the rule set can be shown to be equivalent to, or
a refinement of, the original specification.