The previous section has already identified the key benefits of object-oriented software design. This section places these advantages into two categories: heightened extensibility through closer modeling of physical systems, and unprecedented code reusability.