A software component can be defined as an executable unit of code that
provides a set of services
through specifed
interfaces:
"A software
component is a unit of composition with contractually specifed interfaces
and explicit
context dependencies
only. A software component can be deployed independently and is subject
to
third-party
composition." It is a binary unit of independent production, acquisition,
and deployment
that interact
to form a functioning system.
A "component" is a building block program that is self-describing.
This means that it can be run with a mix of other components and each will
be able to understand the capabilities and characteristics of the other
components. Practically, this means that a new application can be built
by reusing components already known to exist and without having to compile
the application. It also makes it relatively easy to distribute different
components of an application among different computers in a network
-
Component-Based Software Engineering
Component-based software engineering is expected to be
used so that software systems can be created and maintained at lower costs
and with increased stability through reuse of approved components in fexible
software architectures.