Disadvantages of software based components engineering

There are some disadvantages of software based components engineering.
Time and effort required for component development:

Among the factors that can weaken development available components are the increased time and effort needed, the construction of an available unit takes 3-5 times the effort required to build a unit for a specific purpose.
 Unclear and ambiguous requirements:
 Reused components can be used differently by definition applications, some of them may not know it yet needs that cannot be predicted. It applies to both functional and non-functional.
Maintenance costs of components:
Maintenance of components the costs can be very high for the reason that the components have to be responded to the different requirements of different applications that are running different environments, with different consistency and perhaps require a different level of sustainability support.
Reliability and sensitivity changes:
As components and applications have different life cycles and different requirements, there is some hazard that a component does not fully meet the application requirements or that it is possible include unrecognized functions that are not known in the application developers. When introducing changes at the application level, there is a risk that the change that has been introduced will result in the system failure.