(1) Software components
is defined as a discrete unit of system functionality that is reusable and provides black-box business functionality through an agreed, publish interface.
(2) Hardware components
is a discrete unit of hardware that is reusable, independently deployed without modification, and can be treated as an encapsulated black box through its well-defined public software interfaces.
(3) System components
is a software component that configures or controls the behavior of a set of application.
(4) Peopleware components (personnel)
is a software component that allows applications to exhibit "personalization" characteristic to its users, such as configurable user interfaces or preferred process or workflow.
(5) Infoware components (data)
provide persistence services to other components, that is, the ability to access and update information in permanent storage.