|
Software componentry
Software componentry is a field of study within software engineering. It
builds on prior theories of software objects, software architectures,
software frameworks and software design patterns, and the extensive theory
of object-oriented programming and object-oriented design of all these. It
claims that software components, like the idea of hardware components,
used for example in telecommunications, can ultimately be made
interchangeable and reliable.
A software component is a system element offering a
predefined service and able to communicate with other components. Clemens
Szyperski and David Messerschmitt give the
following five criteria for what a software component shall be to fulfill
the definition:
-
Multiple-use
-
Non-context-specific
-
Composable with other components
-
Encapsulated i.e., non-investigable through its
interfaces
-
A unit of independent deployment and versioning
A simpler definition can be: A component is an object
written to a specification. It does not matter what the specification is:
COM, Java Beans, etc., as long as the object adheres to the specification.
It is only by adhering to the specification that the object becomes a
component and gains features like reusability and so forth
|