This document discusses component-based programming and provides examples of it in Progress and other platforms. It defines component-based programming as separating concerns into loosely coupled independent components. An individual software component encapsulates a set of related functions or data. Components communicate via interfaces. Examples given include procedure libraries in Progress, bundles in OSGi, and modules in .NET. The document contrasts object-oriented programming with component-based programming's emphasis on prefabricated and reusable components.