Object design is the process of refining requirements analysis models and making implementation decisions to optimize execution time, memory usage, and other performance measures. It involves four main activities: service specification to define class interfaces; component selection and reuse of existing solutions; restructuring models to improve code reuse; and optimization to meet performance requirements. During object design, interfaces are fully specified with visibility, type signatures, and contracts to clearly define class responsibilities.