What is the reality of CBD of physical products? What is the true essence and nature of Component Based Design? For example, what are the properties or aspects that are uniquely and universally shared by every known design of physical products, including the design and development of one of a kind physical products such as an experimental spacecraft or prototype of a next generation Jet-fighter? Why almost every software expert insists that it is impossible to invent real CBSD (CBD for software), without even knowing what is real CBSD? Mankind designing and building hundreds of newly invented products using CBD. For example, let’s see an example that illustrates the reality of CBD: https://www.youtube.com/watch?v=hc5e5cYdshI
Please pay attention to 15 seconds bit starting at 1 minute 55 seconds. Let me paraphrase the 15 seconds bit, as I understood it: Essential purpose of the real CBD or engineering is ability to look, feel and test each component independently to tweak and optimize individually for making each component as best as it can be. Periodically bring the components together to build product for making sure that (a) each of them properly collaborating with other parts, and (b) all the components are fulfilling their respective roles as intended for proper operation of the container product.
Let me define my understanding of reality of true essence and essential aspect of ideal CBD: Implementing over 95% features & functionality in physical replaceable components. The term replaceable component imply any component that can be un-plugged (or disassembled), for example to redesign and test individually outside of the product and re-plugged-in (or reassembled) into the container component/product.
Each replaceable component is 100% free from spaghetti code (or design), because each replaceable component can be redesigned (e.g. even little-by-little) or refactored and tested individually (e.g. to make it as best as it can be and/or to fit exactly and function as expected when assembled into product) without any need for seeing even a single line of internal code (or design) implemented for any other component or container application/product. Over 95% of the code (or design) of the product is free from spaghetti code, since over 95% of the features and functionality of the application or product is implemented in such replaceable components.
Hence true essence of the CBD is eliminating spaghetti code (or design). Over 90% of the features and functionality of almost every known large physical product is implemented in physical functional components, where each component is designed and refined individually (free from spaghetti code/design). It is not necessary that even a single large functional component in the physical product is reusable, standardized or conformed to any component model attributed to so called software components.
Most experts insist software is unique and/or different, without giving any valid reason or explain why and what manner. Designers of every new product need to tweak most of the parts (i.e. functionality and features) continuously and/or frequently until prototype is functioning and performing as expected. So it is not unique to software products. The difference is designers of physical products are doing the tweaks to over 90% of the functionality and features free from spaghetti code/design. Only designers of software unnecessarily burdened with the spaghetti code/design.
No software expert can answer what is the true essence of CBD, but almost every one insist that real CBD for software is impossible. Why is it not possible to achieve real CBD for software, if real CBD for software is to implementing 90% of the functionality and features in such replaceable components? No replaceable component (including the necessary communication code for allowing collaboration between this component and other parts of the application) requires more than 3 to 5 lines to plug-in and removing the 3 to 5 lines must effectively remove the component.
It is impossible to find a valid reason why it is not possible to achieve real CBSD. On the other hand, I can demonstrate hundreds of replaceable components and hierarchies of replaceable components to prove that real CBSD is possible. Almost every researcher and scientist I contacted refuse to see proof to know the reality/Truth. Any scientific Truth/reality or engineering invention (if it is real) can withstand rigorous validation and prevail, but how a scientific Truth can prevail, if everyone try to ignore, try to cover-up or evade necessary validation by giving every possible excuse?
We created the first and the only GUI-API that is capable of creating replaceable GUI components for building complex hierarchies of replaceable components to achieve real CBD for software. So even junior Java programmers can achieve real CBSD for RIA (Rich Internet Applications) with little or no help from us. Achieving real CBSD for RIA help designers gain experience and knowledge about the innate nature and essential properties uniquely and universally shared by each and every known physical functional component, for example, to positively identify features and functionality that can be implemented as equivalent replaceable software components for achieving real CBSD for non-GUI applications as well.