A unified approach to design of both hardware and software components of embedded systems is essential to fill the design productivity gap. Observing that software accounts for 80% of system development cost, we adopt object-oriented methodology for embedded system design due to its reputation in software and its clear separation of functionality from communication. We establish a correspondence between a "basis class library" and the "instruction-set" of an ASIP as the hardware component of the system. The application software is developed with the same class library, augmented as necessary, and run by the ASIP. Polymorphism is managed in hardware, even allowing virtual method dispatch to software. This enables on-the-fly hardware patching and evolution through software. This view to ASIP design motivates new approaches to processor architecture, dynamic power management, run-time reconfiguration, and application-specific memory structures which will be presented in the talk.