В объектно-ориентированном проектировании используются четыре основных типа моделей: динамические, статические, логические и физические. В совокупности эти модели достаточно полны, чтобы служить технической основой для принятия решений по структуре проектируемой системы и реализации практически на любом объектно-ориентированном языке программирования.
В объектно-ориентированном подходе рассматривается два типа иерархий: "целое-часть" и "род-вид". Этим иерархиям соответствуют такие понятия, как структура объектов и структура классов. В работах Г.Буча утверждается, что эти два типа структур представляют собой каноническую форму декомпозиции любой сложной системы.