Thursday, November 19, 2015

How a scientific Truth can be proved, if everyone try to ignore, cover-up or evade necessary validation by giving every possible excuse?


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.

Best Regards,
Raju

Monday, November 2, 2015

Why software scientists refusing to investigate simple and obvious facts (that are found everywhere all around us) to discover reality?


Reality is immutable and never changes. Duty of scientists is pursuit of absolute Truths for discovering the reality (a set of Truths and laws of nature that are proven). Mankind’s perception of reality changed many times. For example, several thousand years ago mankind believed that the Earth is flat. Later 2000 years ago mankind believed that the Earth is static. Until 500 years ago this flawed axiom (i.e. “The Earth is static” considered self-evident truth) shaped our perception of reality (a paradoxical paradigm), which was altered reality filled with retrograde motions and epicycles.

            Philosophers had no problem accepting untested axiom (a Lie: the Earth is static) as self-evident Truth (even though they have no evidence any one ever validated it). But it had taken over 100 years to accept the Truth “the Sun is at the centre”. This Truth faced huge resistance and undergone most rigorous validation.

            Let me introduce reality of CBD (Component Based Development) using a small example. Mankind each year inventing and building 100s of new kind of products around the world. For example, one example is trying to create artificial kidney in this video: http://real-software-components.com/CBD/CBD_of_new_product.html.

Please kindly 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 component-based design is ability to look, feel & test each component independently to 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.

Please notice the reality of CBD: There is no spaghetti code. Each component can be refined individually and tested outside. Over 90% of the features and functionality is implemented in such components. Any component can be refined and tested individually free from spaghetti code. That is, without any need to see internal design or single line of code of any other component. Hence over 90% of the design is free from spaghetti code. Each component is custom designed to fit perfectly in just one product model, so no component is reusable, standardized or conform to any of the so called component models erroneously attributed to the software components.

Any true scientific fact, concept or discovery must satisfy two conditions (1) it must not contradict the reality we all know in the real world and (2) it can’t be falsified, while being highly falsifiable. In light of these observations, let me define the reality of ideal CBD (Component Based Design) for large physical products: The reality of an ideal CBD for physical products is implementing over 90% of the functionality and features in replaceable components, where each component can be refined and tested individually (free from spaghetti code). The physical product is evolved (or redesigned) by evolving (or redesigning) a set of replaceable components.

Nether complexity nor uniqueness (e.g. of a one of a kind product such as an experimental spacecraft or prototype of a next generation jet-fighter) can prevent designers from achieving 90% modularity. That is, the reality of CBS is implementing 90% features and functionality in replaceable components, where each component is free from spaghetti code (i.e. designer of any component never forced to see even a single line of code implemented inside another component). It is not necessary that even a single component in the product is replaceable, standardized or conform to any so called component models (erroneously attributed for software components).

Unfortunately the perception of reality for software components and CBD for software has been shaped by fundamentally flawed definitions and interpretation of the reality: When Douglas McIlroy proposed building products by assembling COTS (Commercially off the Shelf) parts as we build computers, it was just a proposal – a desire or wishful thinking. It is not a scientific discovery (like the Sun at the centre). There is no evidence any one ever tested its validity. But researchers in late 1960s considered that it is a self-evident truth, and today software researchers have been relying on this as if it is proven fact. Dr. Brad Cox proposed software-ICs in 1980s.

Because of this altered perception researchers completely lost their ability to even see obvious facts and apply reason to discover the reality. It is nice to have software-ICs, but is software-ICs possible or reality? Inventing cold fusion is nice, but can we discover laws of nature that can make it reality? I don’t know about the cold fusion, but I am sure that software-ICs as intended can never be a reality.

I requested many researchers to investigate the reality. Is Software-ICs reality? Is it possible to achieve Software-ICs for any other kind of physical product (e.g. automobiles or Airplanes), where it is not possible to use software and applications for competitive differentiation from competing products? The physical products such as cars must use core components (e.g. engine, gear-box or powertrain) for competitive differentiation from competing products.

For example, the makers or cars, jet-fighters or other products custom design core components for competitive differentiation. For example, even when they are relying on third party component vendor for a component, they work closely with the component vendor to custom design the part to perfectly fit juts one product model. For example, Boeing works closely with Rolls Royce or Pratt and Whitney to build custom engine. Likewise, Honda company works closely with makers of various non-core components such as break-pads to custom build the break-pads (to perfectly fit just one model). One can notice this kind of reality of CBD everywhere all around us.

Software researchers argue that software is unique, different and must undergo constantan changes. Why is it any different from the above example for Artificial Kidney? They must also constantly change each of the components until the whole product works. Only difference is, they don’t have spaghetti code. That is, designer of any component can refine and test his component individually, without being forced to see even a single line of code implemented internally for any other component.

Another reality is: The automobile engineers just deal with many product models within just one product family (automobile product family). Likewise, hardware engineers deals with many kinds of product models within just on product family (i.e. families such as computer or smart-phone). In software, we deal with hundreds of product families ranging from compilers, OS, Video games to MS-Office. It is impossible to reuse core components (e.g. engine or gear-box) for automobile product family can’t be reused in any other product from another product family (e.g. PC or AC). Likewise, core components for compiler product family can’t be used in any other product from another product family such as Video games.

This kind of reality about the CBD of physical products is everywhere all around us. All I am asking is to investigate such simple and obvious facts to discover the reality. Isn’t is obvious that it is impossible to achieve Software-ICs, where it is not possible to use OS and applications for competitive differentiation? Can we invent COTS that allow us to build new products (e.g. Artificial Kidney) that is not yet invented? Is such COTS (e.g. Software-ICs) for not yet invented physical products or that can be readily reusable across hundreds of families of physical products?

Often, designing each new software product is more like inventing a new physical product such as designing one of a kind spacecraft. It is desirable to eliminate the spaghetti code, because the features and functionality must be constantly changed until each of the components and the whole product satisfies the unique and exact requirements. Furthermore, this product must be changed many time in the future to make each successive release. Over 90% of the cost, time and complexity can be eliminated for making large changes by eliminating the spaghetti code.

What is the reason for spaghetti code, even one need to satisfy unique and exact needs by iteratively changing each of the parts little-by-little (e.g. see Artificial Kidney)? Nothing in the reality of CBD for physical products can prevent software designers from implementing 90% of the features and functionality is replaceable components for achieving real CBD for software. Unfortunately every software expert insists that it is impossible to achieve real CBD, without knowing what it is.

How can anyone insist something is impossible, without knowing absolutely nothing and clueless about it? It is impossible to find evidence that any one even ever tried to investigate, what is the true essence of CBD for physical products, such as what is the most useful and striking aspect that is uniquely and universally shared by every known design of large CBD product in the world.

In other words, what are the striking aspects that are unique to the CBD of physical products and universally shared not only by the designers of product models of mature product families (e.g. automobiles) and countless models of crowded product families (e.g. smart-phones), but also the designers of one-of-a-kind product models such as an experimental spacecraft, prototype of next generation jet-fighter or a new kind of fuel-cell or nuclear powered locomotive. It is impossible to find any evidence that any one ever even tried to investigate for answers to this question. But every one insists it is impossible to achieve real CBD for software, without even knowing what it is. Also most of them bluntly refusing to even know what it is.

I am sure, it is possible to achieve the goal of implementing 90% of the features and functionality in replaceable components for any software application. I am openly offering first GUI library that allow anyone to create real software components for achieving real CBD for software. The experience and insights gained while building GUI applications by assembling real software components help software designers discover the truth by experiencing reality. Also I believe, this reality will be more useful than software-ICs, especially for building large software applications.

How do we know and mankind proved, the axiom “the Earth is static” is wrong and the axiom “the Sun is at centre” is correct? Because the second axiom helped us to make subsequent discoveries that include Universal gravity and Newton’s three laws of motion. The three laws of Kepler and Universal gravity with the help of Calculus allowed mankind to create a consistent mathematical model.

These and many other unexpected discoveries (e.g. discovery of the Pluto due to inexplicable perturbations in the orbit of Uranus) conclusively proved that our understanding of reality is progressing on the right path. Of course, many other discoveries such as Theory of relativity shaping our understanding of reality, which hopefully taking our understanding closer and closer to the absolute Truth.

In software, we need to discover reality to define the realistic goals. Achieving Software-ICs is not realistic. On the other hand, it is impossible to find a valid reason why it is not possible to achieve 90% modularity. Today not even 10% of the features and functionality of any large software application is modularized as the way real physical functional components modularize the design of that large physical products.

P.S: Sample description for CBD application at: http://real-software-components.com/CBD/City_GIS.html. An example CBD application for 5 cities can be found here at: http://www.pioneer-soft.com/#/realairtraffic. Please notice Airplanes and Ambulances moving and clicking on Airplane gives real-time data. The shapes and colours indicate various states. Few other such features are not shown.

Best Regards,
Raju Chiluvuri

Wednesday, August 12, 2015

What are the root causes that are seeds for the Scientific Crises?


In real science, anything not having conclusive proof must be considered as no more than an assumption. A real proof requires irrefutable rational reasoning backed by predictable and repeatable empirical evidence.

            The root cause of one of the most famous scientific crisis resulted from evolving mankind’s knowledge by relying on flawed untested assumption ‘the Earth is static at the centre’. This axiom or postulation was considered self-evident fact needs no proof. No one considered that it is an assumption and no one consciously aware (and could have named it ) that this axiom was at the root of mankind’s perception of reality (i.e. About 500 years ago, this reality was a complex paradoxical paradigm comprising countless concepts backed by meticulously documented retrograde motions and epicycles constructed for over 1000 years).

            Of course, root cause was untested and unproven axiom “The Earth Was Static at the Centre”, which was widely accepted as self-evident Truth 2000 years ago. Can this kind of thing happen in 21st century? Of course, I am sure there could be other such scientific crises in existence even in 21st century? Many experts feel that this kind of thing can’t happen today, because mankind’s scientific knowledge, processes and expertise advanced substantially during past 500 years. I disagree.

            I discovered such root cause for scientific crisis in the field of computer science. An important sub-field of computer science is CBSE (Component Based Software Engineering). At the root of CBSE there exists such axioms or postulations, which were considered self-evident Truths 50 years ago (so required no proof or even documenting for future generations to know for validation). That is, 50 years back software researchers assumed that it is impossible to invent real-software-components equivalent to the physical functional components for achieving real CBSD (Component Based Software Design for Software Products), where real CBSD must be equivalent to the CBD of physical products (e.g. one–of-a-kind experimental jet fighter or prototype of a spacecraft).

            It was a reasonable assumption when leading edge programming languages were assembly languages and FORTRAN. Structured programming languages were a distant dream. Things like Object-Oriented Programming languages and GUI components (that are more conducive for real-CBSD) were beyond imagination. So they started using the term ‘software components’ as an alias to useful software parts. In other words, they defined each kind of software components is a kind software parts either having certain useful properties (e.g. reusable or standardised) or conform to a so called software model.

            Today no one even aware of the root cause (e.g. axioms) for such definitions for software components. Today if you ask any one, why do we need many different and strange descriptions for software components and CBD for software products, they give excuses such as software is unique and/or different, without giving any proof or justification for why and what manner software design is deferent from the design of one–of-a-kind products such as experimental jet fighter or prototype of a spacecraft.

            Why can’t we invent software components that are equivalent to the physical functional components for achieving real CBSD, where real CBSD is equivalent to the physical products?

            To invent real software components (that are equivalent to the physical functional components) requires discovering (i) accurate description for the physical functional components and (ii) accurate description CBD of physical products (e.g. for achieving the real CBSD that is equivalent to the CBD of physical products). Best way for defining an accurate description for any physical being (e.g. a specie) is by finding a set of essential properties uniquely and universally shared by each and every specimen belong to the specie (e.g. to positively identify each of the specimen, weather the specimen belongs the specie or not). Likewise, accurate description for CBD of physical products requires finding essential aspects uniquely and universally shared the CBD of each and every known physical product.

            Many experts come up with strange excuses, when I ask why we can’t invent that software components that are equivalent to the physical functional components by discovering the essential properties of the physical functional components. Mankind’s scientific knowledge comprises accurate descriptions for countless complex and physical beings or species that are 20 time more complex than physical functional components, such as in fields ranging from biology, zoology or scientific discipline of microbiology such as virology, mycology, parasitology, and bacteriology. They insist that it is impossible to find such essential properties for physical functional components, without ever trying or showing any evidence that any one ever tried.

           
If one deeply investigates the root cause of each of the scientific crises, he end up finding a hidden flawed axiom at its root, which in past considered self-evident truth and no one ever tried to validate. Seeds for a scientific crisis would be sowed when researchers pick an axiom based on their senses or instincts, without either documenting or finding valid scientific proof. Mankind followed their collective senses, when they assumed that the Earth is static. Researchers followed their then collective instinct, when they defined each kind of useful software parts are a kind of software components. It was beyond their wildest imagination 50 years ago that it might be possible to invent software components that are equivalent to the physical functional components for achieving real-CBSD, where real-CBSD is equivalent the CBD of physical products. Even structured programming was distant possibility 50 years ago and Object oriented programming and GUI library was not even contemplated.

This paper provides the root causes for any scientific crisis. This also provided a proof that kind of error could possible even in the 21st century. It is the responsibility of the research community to investigate the Truth, if any lone researchers discovers a root axiom and no one can find any evidence that the root axiom was validated. Insulting or snubbing the lone researcher for questioning the validity of such axioms is not called for and unbecoming of a scientist or researcher. In real science, no axiom is self-evident Truth until the axiom is tested and validated.

Who discovered that ‘’the Earth is static’?  Ans: No one. There is no proof and no one tried to proof it. Who discovered that the Sun is at the centre? Ans: Copernicus. Who discovered any kind of useful parts is a kind of component? And: No One. They why researchers have been blindly defending the so called software components?


Best Regards,

Raju

Sunday, June 7, 2015

Who is better: the 21st century software researchers or 16th century scientists who felt that it was a blasphemy to say ‘the Earth is moving’?


Is it a blasphemy to ask respected researchers to discover objective facts about the quintessential nature of the large physical functional components (e.g. essential properties uniquely and universally shared by each and every known physical functional component) and essential aspects uniquely and universally shared by any CBD (Component Based Design) for one of a kind physical products such as building a working prototype of a next generation Jet-fighter, nuclear powered locomotive engine or spacecraft?

It is shameful and scandalous that even in 21st century modern scientific and engineering disciplines (originated just about 50 years ago from mid 20th century) are rooted in myths, wishful thinking and fantasies (e.g. that forced researchers to practice 21st century alchemy).

Mankind believed until 500 year ago that “the Earth is static (at the center)”. Mankind evolved a complex paradox (altered reality) for thousands of years by relying on this unproven myth (e.g. by considering that it is an inalienable Truth).

Which planet is at the center? Who made the great discovery “the Earth is static”? Who verified this discovery, before accepting and relying on it as an inalienable Truth for advancing the mankind’s knowledge for 1000 years? No one asked this simple question: Is there any proof to show that “the Earth is static”?

Who discovered software parts having useful properties (e.g. reusable or standardized) are real components for software for achieving real CBD (Component Based Design) for software products? Obviously this is in clear contradiction to our knowledge facts and the reality we know about the physical functional components and CBD of new and one of a kind physical products (e.g. experimental spacecraft and prototype of a next generation jet fighter).

But no one asked this simple question such as: Is there any proof to show that it is a Truth before relying on this myth and wasting several decades? What are physical functional components (e.g. what are the essential properties uniquely and universally shared by each and every known physical functional component)? What is CBD for physical products (e.g. what are the essential aspects uniquely and universally shared by each and every known CBD of physical products)?

Any one ever proved that it is impossible to find such properties/aspects? If the answer is no, any one ever proved that it is impossible to invent true software components (having the essential properties) equivalent to the physical functional components? To prove that such newly invented components are real, they must be able to achieve real CBSD (CBD for software products), where the real CBSD must share the essential aspects of real CBD for physical products?

Today it is even impossible to find any one even ever tried to discover such properties/aspects. When computer science was in infancy 50 years ago, a committee decided that reusable software parts are software components (without any basis and reality). The committee set the goal for the CBSE is to build software products by assembling reusable components from 3rd party component vendors as mankind has been building the computers by assembling COTS (Commercially Off The Shelf) components by ignoring the countless realities. For example, computer engineers deal with just one product family (i.e. computers) and use software for competitive differentiation, while software engineers need to deal with numerous and ever expanding product families such as OSs, compilers, Games, MS-Office, ERP or browsers etc.

Mankind wasted many centuries by relying on untested myth that “the Earth is static”. We all know that, no one proved that it is ‘the Earth is static’. It was just a myth originated thousands of years ago and passed on to each of the successive generations.

Mankind already wasted few decades by relying on hidden untested and undocumented myths by using baseless excuses such as software is unique and/or different. How many more decades mankind can afford to waste by relying on such baseless myths created in the formative years of computer science and passed on to each of the successive generation of researchers, who are forced to practice 21st century alchemy?

Is it possible to invent reusable (i.e. COTS) physical functional components for build not yet invented or new one of a kind physical product by assembling such COTS? Then how is it possible to invent such software components to build software products for ever expanding software product families? Isn’t it equivalent to the 21st century alchemy?

The discovery that “the Sun is at the center” resulted in a radically different reality, which comprising countless concepts that are in clear contradiction (e.g. diagonally opposite) to previously undisputed geocentric paradox. Now we know that it was foolish to use widely accepted concepts of geocentric paradox to discredit the Truths that were basis for then fledgling new heliocentric paradigm.

Likewise discovery of Truth (e.g. the essential properties/aspects) would result in a new radically different reality, which would comprise of countless concepts that will be in clear contradiction (e.g. diagonally opposite) to existing undisputed CBSE paradox. It is foolish to use widely accepted concepts of existing CBSE paradox to discredit the Truths that are at the root of fledgling paradigm that can be evolved by relying on the Truths.

Since the existing CBSE paradox evolved from myths (e.g. such as it is impossible to invent real software components equivalent to the physical functional components), no concept of the existing CBSE paradigm can be used to contradict the Truths (if the truths are in contradiction to the myths at the root of the existing CBSE paradox). It is an invalid circular logic to use the concepts of the existing CBSE paradox to defend the myths at the root of the existing CBSE paradox (e.g. to discredit the Truths of new proposed fledgling paradigm).

Galileo Galilee … I do not feel obliged to believe that the same God who has endowed us with sense, reason, and intellect has intended us to forgo their use.

Computer science needs scientists not yet forgo sense, reason, and intellect. How and where can I find such experts? I can understand why the 16th century scientists believed that the “Earth is static”. Because they lived all their life on the Earth and not only themselves but many generations found no reason to suspect that “the Earth is moving (around any planet)”. But what reasons software researchers have to blindly defend the myths conceived 50 years ago about the software components and CBSE. Many experts not only blindly following the myths but also ferociously defending the myths conceived 50 years ago, even though countless concepts related to the software components and CBSE are in clear contradiction to the reality we know about the physical functional components and CBD of physical products.

Best Regards,

Raju

Tuesday, October 28, 2014

Those who fail to learn from history (or ignorant of history) are doomed to repeat it


All great truths begin as blasphemies. - by George Bernard Shaw

Please kindly visit this web page to see chronology of contentious and controversial events for the discovery of one of the greatest scientific Truths: http://real-software-components.com/forum_blogs/BriefSummaryOfTruths.html#Chronology

Please kindly visit this web page to grasp the true essence of the CBD of physical components (that is to eliminate spaghetti code): http://real-software-components.com/forum_blogs/FirstPrinciples-FalsifiableFacts.html

Can any one find a valid reason why it is not possible for software applications to contain “hierarchies of replaceable components” (to eliminate the spaghetti code)?
                 
We can demonstrate hundreds of “hierarchies of replaceable components” for GUI-applications (having 0% spaghetti code). Today it is impossible to find even a single software application having such “hierarchies of replaceable components”. Today it is impossible to find even a single large replaceable component having few dozen GUI-components such as charts, buttons and lists.


Saturday, October 11, 2014

Exposing scientific Truth (that exposes flaws in any prevailing deeply entrenched paradigm) is a complex and noble endeavor.


A simple and irrefutable fact is, existing definitions for software components are erroneous and insidiously flawed. This huge error can be exposed by discovering the truth, such as essential characteristics uniquely and universally shared by every known physical functional component and essential aspects of CBD (Component-Based Design) of complex physical products. There exists a truth and the truth can be discovered. It is an irrefutable scientific fact that, there exists an accurately description (e.g. A set of essential characteristics) for any kind physical being (including physical functional components) and the truth (i.e. the accurate description) can be discovered. The scientific or research community never made any effort to discover the Truth.


The truth is, every known physical functional component shares two essential characteristics and any physical part can be a component if and only if the part has these two essential characteristics. It is possible to discover the essential properties uniquely universally shared by the physical functional component. One of the main objectives of our website is to help experts discover (i) the essential characteristics uniquely universally shared by the physical functional component, and (ii) essential aspects of CBD (Component-Based Design) of the physical products.


Another important fact is, no other kind of physical parts except components can achieve such real CBD (having the essential aspects). It is possible to invent or create equivalent software components (by having the essential properties). Therefore logically no other kind of software part (without having the essential properties) can be a component, and no other kind part can achieve real CBD for software.

Until 500 years ago mankind believed that the Earth is static at the center. Now we know that it was wrong, because we later accepted the fact that the Sun is at the center of our planetary system. However, 500 years ago, it was not easy to prove that the axiomatic assumption (i.e. Earth is static at the center) is erroneous, since geocentric paradigm had been evolving for over 1000 years and countless epicycles and retrograde motions were well documented to justify the geocentric model. Any one living on the Earth all his life had no evidence that the Earth is moving and had no problem observing retrograde motion. Besides there were no simple answers to questions such as, if the Earth is moving, why the Moon is not left behind?


It took more than 100 years and great sacrifices to expose the error in the seed axioms of then deeply entrenched geocentric paradigm and conventional wisdom. Telling the Truth (i.e. the Sun is at the center) offended then deeply entrenched conventional wisdom and common sense. The Truth was exposed at great sacrifices, for example, Galileo was impression for life and Giordano Bruno was killed for advocating the Truth.


Even in the 21st century, many respected scientists and researchers feel offended, if I say that the existing definitions for so called software components are fundamentally flawed. Many software experts feel that, I am insulting the common sense and refuse to learn the facts that can expose the Truth. The researchers and scientists have been using every possible excuse to evade their sacred duty of discover truth.  When confronted in an open forum, they have been using silly and baseless excuses to ignore the inconvenient facts and reasoning.


Most experts demand that proof must be in few sentences. It was not easy 500 years ago to prove that the Sun is at the center. It was not easy to expose errors in seed axioms of any deeply entrenched paradigm. I respectfully request researchers to discover the truth about physical functional components and CBD of complex one of a kind physical product. It is their sacred duty to discover the Truth to over come myths and insidious epicycles that have been accumulating in any deeply entrenched paradoxical paradigm (which has been evolving for decades or centuries) in the name of scientific progress, which results in alerted reality.


How is it possible to provide proof in few sentences to overcome this kind of altered reality (supported by thousands of myths and epicycles accumulated over decades)? Out website can only help scientists discover truth, only if they are willing to discover the truth with open mind.There exists a Truth about real-components for achieving real-CBD, and the Truth can be discovered.

The existing software engineering paradigm have been evolving by relying on unsubstantiated myths such as any kind of software parts (either having certain useful properties or conform to so called component model) is a kind of software components. It has no basis in reality. Using such fake components is not CBSE. Our website has irrefutable proof for the scientific fact: No physical part can be a component without being (i) replaceable and (ii) self-contained. It is absolutely essential to rely on the knowledge of error free scientific facts, reality and sound logical reasoning to transform computer science into real science and software engineering into a real engineering.


Many experts insist that, it (not inventing real software components) is not a big error – We respectfully disagree. If physical components and CBD for physical products offers only very little benefits in designing and building complex physical products, then not having real-software components is a minor error. But it is a huge error, because it is practically impossible to design and build complex physical products. The flawed definitions for so called software components preventing the research necessary to discover the nature of physical functional component for inventing equivalent software components that are capable of achieving real CBSD.

           It is not a small error to rely on flawed facts (and resulting paradoxical reality) for advancing any scientific field. Mankind still would be in dark ages, if the so called small error (the Earth is at the center) were not yet exposed. More than 500 years ago, even the basic science end up in a paradox (i.e. as a fake science), and exposing the error eventually resulted in transforming it into a real science. Only possible path available for scientific progress is discovering and relying on truths (i.e. fact and reality). Scientific progress is impossible, if researchers and scientists try to advance any science field by relying on flawed facts (and applying brute force to advance the field for prolonged period only leads to altered reality).

Any scientific field ends up in altered reality (e.g. paradox) and as a fake science, if basic facts the researchers have been relying to advance the field has hidden flaws and researchers apply brute force to advance the field without realizing the flaws. Software engineering ended up in an altered reality due to the brute force being applied since mid 1960s to advance software engineering, without ever validating the definitions for so called software components exist today.  Whenever I try to expose flaws in the existing software engineering paradigm, today software researchers justifying the paradox (i.e. altered reality) by using silly excuses such as computer science is different. No meaningful progress is possible until the truth (i.e. reality and facts about physical functional components & CBD of physical products) is discovered, even if it is hard to discover the Truth.

Sunday, April 27, 2014

How can I expose huge errors in seed axioms of computer science and resultant software engineering paradigm?


Please kindly understand why I am having trouble in exposing these huge errors in seed axioms of a complex deeply entrenched paradigm. Since exposing the error in the seed axioms of geocentric-paradigm 400 years ago, I can’t find another example where scientists made such huge error in basic axioms and depended on the erroneous untested axioms (by assuming that the erroneous untested axioms are facts) for nearly half a century for advancing a very popular field such as software engineering.

Untested axioms (having errors) but are considered to be facts:
1.    Each kind of software part or module either having certain characteristics (e.g. reusable or standardized etc.) or conform to a so called component model is defined as a kind of a software component.
2.    Using one or more kinds of such so called software components is defined as a kind of CBD for software.

Let me get to the root of the problem. Every useful engineering concept and invention (i.e. engineering, chemical, pharmaceutical, medical, biotechnology or biological inventions) known to mankind is rooted in scientific facts. The knowledge of scientific facts forms the foundation to the inventions and concepts of engineering and applied sciences. Each engineering invention or concept is derived from a set of facts (i.e. selected from a large base of scientific knowledge) by applying sound reasoning and logic. No such invention could work and any engineering concept ends up in crisis (and flawed), if there are errors in any one of the facts and reasoning or logic.

Every engineering invention and concept is rooted in proven facts and derived by using reasoning and logic. It is impossible to find an exception to this rule in any other engineering discipline, except the definitions for nature and characteristics of the so called software components. These untested axioms (i.e. definitions for so called software components) are made from thin air, without any basis in reality or facts (e.g. by ignoring all the reality and obvious facts known to mankind about the physical functional components). Only basis for the axioms is desire and fantasy of building software by assembling reusable components (as mankind has been building computers). Please review few paragraphs, if you like to see couple of sample invention derived from scientific facts: http://real-software-components.com/forum_blogs/BasicScientificPrinciples.html

In case basic science (e.g. botany, zoology or chemistry) the scientist accumulate the scientific facts. The researchers of applied sciences or engineering rely on the knowledge of the facts and apply reasoning and logic to derive concepts for applied sciences (e.g. engineering, biotech, medical or pharmaceutical fields) to make useful inventions. Few exceptions to this rule are discovery of penicillin or X-ray, which are invented accidentally and applied reasoning and logic to discover scientific facts. These scientific facts helped invent many other kinds of antibiotics or X-ray machines. But ultimately all the concepts and inventions are rooted in the scientific facts.

You may skip this evidence, but it is possible to prove that the axioms are just science fiction: http://real-software-components.com/CBD/main-differences.html AND http://real-software-components.com/RSCC/ecosystem-evolution.html

Please kindly assume this: It is possible to discover essential properties or characteristics uniquely and universally shared by each and every known physical functional component; and also assume that the essential characteristics are {C7, C9}. Please let me define, what an essential character is: No physical part can be a component without having the essential character and the component can no longer be a component, as soon as it looses the essential character (or property).

If such essential characteristics exist for physical functional components and if it is possible to invent equivalent software component (by having the essential characteristics), logic dictates that no other kind of software parts (or modules) can be software component. It is possible to validate the facts and logic for inventing real software components using many other independent ways.

For example, the following is one of many ways to independently validate the facts and reasoning or logic used for inventing real software components: If it is possible to discover essential aspects of uniquely and universally shared by CBD of physical products and the essential aspects are {A3, A6}. If such essential aspects exist for CBD of physical products, logic dictates that the using real software components must result in equivalent CBD for software products (or CBSD), where the real CBSD must shares the essential aspects {A3, A6}.

I discovered such essential characteristics {C7, C9} for physical functional components for inventing real software components that are capable of achieving real CBD (having {A3, A6}) for software products.

The discovery that ‘the Sun is at the center’ implied no other planet can be at the center, which exposed the error in then deeply entrenched axiom ‘the Earth is at the center”. Likewise, this discovery of essential properties implies that no other kind of software parts without having the essential properties {C7, C9}, can be a real component for software (and using such fake software components can never achieve real CBD for software products). Furthermore, discovering the essential aspects of physical phenomenon CBD for physical products to make sure the real software components achieve a CBD for software (i.e. sharing aspect A3 and a6), which is equivalent to the CBD for physical products.

If the above seed axioms for software engineering are not made out of thin air, kindly provide the scientific facts and reasoning or logic used for deriving the axioms. Please forgive me, if the following facts appear arrogant or disrespectful:

The researchers of software engineering wasted billions of dollars and few decades of passionate research by relying on those untested axioms (by erroneously concluding that the axioms are facts). This passionate research (i.e. brute force) spanning many decades for advancing software engineering resulting in a complex paradigm and altered reality (i.e. a paradox). Today software engineering researchers are unable to come out of the paradox and lost their ability to see reality about ideal CBD of physical products and nature of ideal physical functional components.

These erroneous concepts are being taught to impressionable students in class rooms resulting in indoctrinating each new generation in to the paradox (or cult) and later years of experience of using so called software components and CBSE permanently altered the perception of experts (preventing them from seeing of reality). Establishing a new theory is tough; making changes in an existing theory is tougher, particularly when the changes are suggested in a field that had originated nearly half a century ago, and hundreds of books and thousands of articles have meanwhile been published in that field the world over.

I discovered that the essential characteristics for ideal physical functional components are (i) Replaceability (i.e. the component can be disassembled as a unit by removing 3 to 5 lines and re-assembled by implementing by removing 3 to 5 lines) and (ii) Self-contained. So this component is also referred to as RSCC (Replaceable Self Contained Component).

The ability to positively identify is a tacit knowledge that can be and must be acquired: It requires few weeks for analyzing hundreds of functional components in light of equivalent software components for discovering intended meaning of the term ‘Self-contained’ with respect to software (and for acquiring necessary tacit knowledge and tacit expertise for positively identifying multiple SCCs in each large software application).  But in brief, a RSCC is a component custom designed for just one target application, so that the component doesn’t require any more construction or configuration code (i.e. it should require no more than 2 to 3 lines to assemble the component, and removing the 2 to 3 lines must effectively remove the component without leaving any more traces of code associated with the SCC (where the associated code includes communication code or code for getting any data to construct or configure the replaceable component).

Today any large custom application requires implementing tens of thousands to hundreds of thousands (or even millions) of lines of custom application code, even after using all the tools and libraries. Each of these applications comprises multiple ‘Self-contained’ components (or SCCs). When it is impossible to reduce the custom application code (e.g. by using any other kinds of tools or library), the real CBD for software recommends identifying multiple SCCs in the application and implementing the application code of each SCC as RCC (Replaceable Component Class) to make the SCC a RSCC.

Please kindly allow me to illustrate a sample application that is built by assembling real-software-components and achieved real CBD for software: http://real-software-components.com/CBD/City_GIS.html

This sample City_GIS application has just 6 large components, where no component requires more than 3 lines to assemble. In this application, no component requires implementing any more communication code, because each component implements necessary communication code to use the intelligent CASE tool to collaborate with other components and parts of the application: You may find a sample  intelligent CASE tool in FIG-3 at: http://real-software-components.com/CBD/Sample_SoA_CASE_tool.html

Today code base (i.e. all code sections) of almost no large ‘Self-contained’ part (or SCC) is implemented as RCC (Replaceable Component Class) by conscious design effort. That is, the RCC is a new kind of component, so designers must put conscious effort to identify the SCCs in the application. Our CBSD requires identifying multiple SCCs and implement each SCC as a RCC.

If all the SCCs are identified, over 97% of the application code can be implemented in one of the RCCs. In that case, if an application has 200 SCCs and 200 RCCs are implemented (by designing and testing each RCC independently), the application can be built by assembling all the 200 components within few hours.

If the average size of the RCCs is 2500 lines, then total size of the custom application code is 500,000 lines (200*2500). Today this 500K lines end up as spaghetti code (even in case of most optimal design), in multiple non-exclusive files, where the non-exclusive files contains code-sections for more than on SCC. In case of our CBD, these 500K end up in 200 RCCs, where each RCC can be redesigned and tested individually (at any time in the future to add more features, for example, to release future versions of the software application).

Today both cases (existing paradigm and proposed paradigm), requires implementing 500K lines (if code base can be highly optimized). In our case, each SCC/RCC is designed and tested individually as an independent application, so code base end up in exclusive files (i.e. no file contains code for any other part of the application). It requires far less effort to re-factor code base of each RCC to make the overall design optimal. In case of existing paradigm, in reality it is not practical to optimize the code base of the application, so the code for the application could end up 600K+.

I have been passionately doing research on the nature of functional components and CBSD for more than 12 years, after accidentally discovering RCCs and creating 100s of replaceable components and hierarchy of replaceable components (during 1999 and 2002). So I can justify each and every aspect or statement.

Dr. Brooks predictions and laws hold for another 1000 years, if it takes 1000 years to expose this error in seed axioms. The error might appear very small, but it is a huge error and no meaningful progress is possible until this error is exposed. For example, 500 ago no one realized the implications of exposing the error in the seed axioms of geocentric-paradigm. Many philosophers even argued that it would have little or no effect on the advancement of scientific fields.

We can find irrefutable proof that, an error in seed axioms always sidetracks scientific progress. Exposing the errors in the seed axioms puts the progress on the right track and often its implications would be apparent when next great discovery is made by traveling on the right tracks. For example, it was impossible to discover Gravity or Newton’s laws of motion without putting the scientific progress on the right tracks by exposing the erroneous seed axiom for geocentric-paradigm.

It would not be hard to predict the future of basic sciences for 16th century philosophers, if the error in seed axiom “the Earth is static at the center” were not exposed until now. But how could they predict future or “E=M*C-Squared”, fusion bombs, gravity, computers, fiber optic networks, cell-phones and quantum mechanics? Software engineering has been stuck in the rut of spaghetti code and not going anywhere for nearly three decades. It will continue to be stuck in the rut until the errors in the seed axioms are exposed.

It is impossible to invent real CBD for software products without inventing real software components. It is impossible to invent real software components without discovering scientific facts such as the nature and essential properties of the physical functional components and nature and essential aspects of the CBD for physical products. The CBSE researchers must acquire this kind scientific knowledge and then apply sound reasoning and/or logic for (i) inventing “real components for software” and (ii) deriving concepts for “real CBD for software”.

I request researchers to kindly provide the scientific facts and reasoning and/or logic used for deriving the above seed axioms of software engineering, If the axioms are not made out of thin air?

Is any such useful concept or invention (e.g. in any discipline of applied science such as engineering, chemical, pharmaceutical, medical or biotechnology) during past 150 years made out of thin air? Is it possible to find any useful engineering concept or invention created by mankind that is not rooted in a set of scientific facts or derived by applying flawed reasoning and logic by relying on the facts?