Known Facts about the Physical Functional Components: The physical products are built using many kinds of parts such as ingredient parts (e.g. steel, cement, metals, glass, silicon or plastic), mixtures (e.g. led and acid in led-aced batteries), alloys, tightly coupled parts (e.g. copper strings and plastic insulator in electric wires or threads in a cloth) and of course components. It is foolish to define that any kind of part having one of more useful properties (reusable or standardized) is a component.
Don’t we know that the components are a very special kind of parts having unique characteristics for achieving CBD (Component Based Design – hierarchy of replaceable components)? Except components, no other kind of parts can achieve equivalent hierarchy of replaceable parts. What is the hidden nature that is enabling them to achieve the hierarchy of replaceable parts?
If we show to an expert a part and ask him, weather it is a component or it is not a component, I am sure he must have no problem positively identifying it. That is, if it is a component, he would say that it is a component. If it is not a component, he would say that it is not a component. He may make a mistake in case of very small non-functional parts such as bolts, screws or panels. He might fail in very rare fringe cases (e.g. false positively or false negatives). But he would not fail in case of functional components such as CPU, Engine, CD-player, car-battery or hard drive, where a functional component is a component that is built by using more than one part to perform a function of a container product.
What are the unique striking characteristics that are allowing the experts positively identify the functional components? What are the features or characteristics unique to the functional components that are allowing the experts to positively distinguish functional components from other kinds of parts? Today software engineers are clueless about the nature of the physical functional components and CBD. The sad part is, scientists of computer science and researchers of software engineering refuse to discover the light of truth, that could expose huge error that side tracked the software engineering for nearly 50 years.
Please kindly remember, the purpose of components is achieving hierarchy of replaceable components, which results in eliminating the spaghetti code. It is not necessary that even a single components in the hierarchy to have any properties (e.g. reusable or standardized) erroneously attributed to software components nor conform to any existing so called component models.
The computer science and software engineering research community committed a huge error. The sad part is scientists and researchers refuse to learn the truth and use the light of the truth to overcome the darkness of ignorance (e.g. to solve software crisis, which is due to the darkness of ignorance). It is beyond my grasp, why research community refuses to discover the truth (e.g. by acknowledging the obvious facts and analyze the facts and simple observations). I believe, discovering the truth (e.g. by starting with essential characteristics of functional components and CBD) shall put the computer science on the right path that leads to an unprecedented revolution in software engineering.
Research is nothing but pursuit of absolute truth and pursuit of absolute truth is sacred duty of any real scientist. Refusing to discover the truth (e.g. nature such as essential characteristics of physical functional components or essential aspects of CBD of physical products) is nothing but abdicating the sacred duty. Once the essential characteristics of physical functional components are discovered, it is impossible to find a valid reason, why is not possible to invent equivalent software components for achieving component hierarchy of replaceable software components (e.g. that eliminates spaghetti code), where the hierarchy of replaceable software components is equivalent to the hierarchy of replaceable physical components that is an essential aspect of the CBD of physical products.
For example, how can any software expert conclude that it is impossible to invent equivalent software components without even trying to know the essential characteristics uniquely and universally shared by each and every physical functional component known to mankind? The experts of various physical products have been using the tacit knowledge about the essential characteristics unconsciously either to positively identify each of the physical components or to positively differentiate each of the physical components from other kinds of physical parts. It may take few weeks of handwork to convert this kind of tacit knowledge into explicit knowledge to positively identify equivalent software components, but acquiring such explicit knowledge is not impossible.
There exists a truth and the truth can be discovered. It is not hard to discover the truth. My humble request to scientists of computer science and researchers of software engineering is kindly discover the light of truth for overcoming the darkness of ignorance and resultant software crisis. It is a fact that the computer science is in darkness, because no effort is made to discover various kinds of physical parts for categorize various kinds of parts by discovering essential characteristics (and purpose) of each kind of parts.