The use of previously written software resources in new applications
Primary enabling technologies
Object-oriented development
Object class encapsulates data and behavior of common organizational entities (e.g. employees)
Component-based development
Components can be single objects or functional groupings of objects