Dear Friends,
I have been struggling for many years to convince software research community that the nature such as essential properties of physical things are not ideological choices. The examples for physical things include diverse species such as animals, trees, bacteria, viruses or components (i.e. the components are designed, built and used for building component based products such as cars, computers, cell-phones, airplanes, machines or factory machinery, where each of the component based products is built by assembling the components).
Existing software engineering paradigm is rooted in 50 to 60 years beliefs such as (1) software parts that are designed and/or conducive to be reusable across many software applications are components and (2) CBD/CBE (Component based design, development or engineering) is using such so called components. It is purely ideological choice without any basis in reality or fact.
These beliefs (or definitions for components and CBD) have no basis in reality or fact. The definitions had roots in the 1968 NATO software engineering conference utopian dream of building software products by plugging-in reusable components (from 3rd party component vendors) as computer designers build computers by plugging-in reusable components (from 3rd party component vendors) into the motherboard.
It is not hard to realize such utopian dream is impossible by investigating the differences between the software products and the physical products. http://real-software-components.com/CBD/main-differences.html. It is impossible to build software by assembling reusable components.
However, it is not hard to build any software application by assembling software components that are custom designed for the application. In other words, the components are custom designed not only to plugged-in (so that it can be un-plugged to refine and test individually) but also to fit perfectly and perform optimally in the target application.
Hence, most such components are not reusable. Most components for physical products are custom designed to fit just one product model. For example, engine for Camry is custom designed to fit and perform well in just Camry. Likewise, engine for Accord is custom designed to fit and perform well in just Accord. The parts that are designed and/or conducive to be assembled or plugged-in are known as components. So parts that are not conducive to be assembled are not components. The CBD/CBE imply building products by assembling or plugging-in such components.
Today, no known kind of software components are designed to be plugged-in. Also, one must first invent universal software motherboard to plug-in the components that are designed to be plugged-in. An invention of electric plug is useless without complimentary invention of a socket. Likewise, invention of software components that can be plugged in is useless without inventing complimentary software sockets. It is not hard to make such inventions, but no one ever tried to invent components that can be plugged-in. Today, no one else is using such software motherboard that is essential for the components that can be plugging-in.
Even if the nature such as essential properties of physical things subject to ideological choices, don’t the research community must accept ideological diversity? Why many software researchers feel offended (i.e. feel it is a scam or fraud), if I say CBD/CBE required using parts that can be assembled or pugged-in (so that they can be unplugged, for example, to redesign or replaced)? Even many scams are given benefit of doubt (if the scam do not question orthodox ideology or dominant paradigm), but no benefit of doubt is extended for such heterodox views or ideology.
Best Regards,
Raju