This document discusses the differences and similarities between reusability and extensibility. Reusability refers to using existing assets like code, components, and designs within software development. Extensibility considers future growth when implementing a system. Both aim to minimize changes to existing functions. The document also covers methodologies like CRC (Class Responsibility Collaborator), OOSD (Object Oriented Structured Design), and OORASS (Object Oriented Role Analysis, Synthesis and Structuring) that support reusability and extensibility through practices like modular design.