The components are great engineering marvels

1 downloads 0 Views 110KB Size Report
periodical maintenance releases, and “re-assembled” (or “plugged-in” after testing it individually free from spaghetti code). Any larger component may be built by ...
Why the components are great engineering marvels?

The components are one of the greatest engineering marvels and the essential life blood for designing and building numerous large products such as airplanes, machines, machinery for factories, cars or computers. It is impossible to even imagine building, development or engineering of such large products without the components. But the components are taken for granted (e.g. least appreciated and least understood or known), for example, no one ever even tried to investigate “what are the components” and “why the components are such great engineering marvels (or lifeblood of engineering of such products)”.

The main reason for the components to be such engineering marvels is that the components (of various sizes and complexity starting from medium, and particularly large to very large and complex components) are the only kind of physical parts that can be easily “disassembled” (or “un-plugged” to replace by a better component or to refine individually outside of the product free from spaghetti design/code) at any time for up-gradation of features and functionality or for periodical maintenance releases, and “re-assembled” (or “plugged-in” after testing it individually free from spaghetti code).

Any larger component may be built by “assembling” other components (i.e. subcomponents). Each component or subcomponent can be disassembled “as a unit” (e.g. either to replace by a better component or refining it individually) and re-

assembled after testing it. If any component that can’t be disassembled and reassembled “as a unit” any time in the future loses it’s only distinctive and the unique main advantage (so not very useful) compared to other kinds of parts.

The ideal CBD/CBE (Component Based Design, Development and/or Engineering) includes partitioning large product into components of various sizes, where each large component may be further partitioned into optimal size to large size sub-components, and each of the larger subcomponents may be further partitioned into optimal size to larger size sub-subcomponents, and so on.

The main purpose of wrist watches or clocks is to show time. It can’t serve its main purpose, if it can’t show time (and it is harmful if it shows wrong time). The main purpose of cars is transporting people. It can’t serve its main purpose, if its engine is removed (and it is harmful if its breaks or steering malfunction). Today, no known kind of so called components for software and CBSE can be “assembled” making each no different from other kinds of parts. The software terminology such as “components” and “assembling” are malfunctioning.

If you feel that many things written in the text books or web about animals, trees or bacteria are wrong, how do you validate them? If you want to acquire new knowledge or discover new things (e.g. nature or properties) about animals or trees, what would you do? You do research by meticulously observing the animals

or trees. The authentic source for our knowledge (or theoretical foundation) for any scientific (or engineering) discipline is the objective reality.

Isn’t foolish to blindly define the nature or properties by ignoring reality/fact and expect the nature to change course to satisfy the fantasy? The software researchers foolishly defined the nature or properties of the components 50 years ago (based on wishful thinking or fantasy) and have been trying to change the course of the nature to satisfy the fantasy or fiction.

A simple rule of thumb: Any large so called software component that cannot be disassembled or unplugged is not a real component. One must be able to disassemble or unplug any real software component. Today no known kind of software components is designed to be disassembled or unplugged. The real components for software are not yet invented. But it is possible to invent real software components that can achieve real CBD for software. The real software components for a software application are often designed for implementing several hundreds to few thousand lines of custom code for the application.