A
component is a part of software program code, which executes an independent
task in the system. It can be a small module or sub-system itself.
The
login procedures used on the web can be considered as components, printing
system in software can be seen as a component of the software.
Components
have high cohesion of functionality and lower rate of coupling, i.e. they work
independently and can perform tasks without depending on other modules.
In
OOP, the objects are designed are very specific to their concern and have fewer
chances to be used in some other software.
In
modular programming, the modules are coded to perform specific tasks which can be
used across number of other software programs.
There
is a whole new vertical, which is based on re-use of software component, and is
known as Component Based Software Engineering (CBSE).
Re-use
can be done at various levels
● Application
level - Where an entire application is used as sub-system of new
software.
● Component level - Where
sub-system of an application is used.
● Modules
level - Where functional modules are re-used.
● Software
components provide interfaces, which can be used to establish communication
among different components.
Two
kinds of method can be adopted: either by keeping requirements same and
adjusting components or by keeping components same and modifying requirements.
● Requirement
Specification - The functional and non-functional requirements
are specified, which a software product must comply to, with the help of
existing system, user input or both.
● Design - This is
also a standard SDLC process step, where requirements are defined in terms of
software parlance. Basic architecture of system as a whole and its sub-systems
are created.
● Specify
Components - By studying the software design, the designers segregate
the entire system into smaller components or sub-systems. One complete software
design turns into a collection of a huge set of components working together.
● Search
Suitable Components - The software component repository is referred by designers
to search for the matching component, on the basis of functionality and
intended software requirements..
● Incorporate
Components - All matched components are packed together to shape them
as complete software.