Saturday, May 24, 2014

There is only one possible Right Path for scientific progress and scientific progress stagnates, if an error sidetracks the progress into a wrong direction.

There is only one possible Right Direction for scientific progress. It is not possible for any meaningful progress for any scientific field if the field ended up in a wrong direction by making a mistake (e.g. a mistake sidetracks the research of any scientific discipline). Each and every scientific fact exist on right path and there exists only one right path, so no useful discovery can be found, if an error deviates researchers into wrong path.

The software engineering ended up in a ditch, because the basic facts or concepts such as definitions for so called software components and CBD for software made out of thin air (without any basis in reality). It is impossible to find any evidence that the definitions for software components and CBSD are made out of thin air, by ignoring known reality and in contradiction to reason and logic:
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.

Please refer to the figures in WebPage: FIG-1 shows the reality of planetary paths until 500 years ago. Thousands of concepts, observations (e.g. experimental results) and facts were accumulated for 1000 of years by concluding that ‘the Earth is at the center’. All these concepts, observations (e.g. experimental results) and facts were derived by realign that the erroneous fact ‘the Earth is at the center’ (i.e. geocentric model). Each fact or concept added by relying on observations (e.g. experimental results) and earlier concepts/facts under the influence of conformational bias. Each fact and concept was consistent with this perceived reality and re-enforced the strength of perceptions and conventional wisdom.

            About 500 years ago Copernicus questioned the validity of the root axiom ‘the Earth is at the center’ (i.e. geocentric model). He proposed that ‘the Sun is at the center’ (heliocentric-model). After many decades of struggles and sacrifice of great researchers (e.g. Kepler, Bruno and Galileo) alternative reality emerged, this is shown in FIG-4. Few break away group of researchers created hundreds of new concepts, observations and concepts by concluding that the heliocentric-model is a fact and by relied on heliocentric-model.

            During this transition period from geocentric model to heliocentric model, the researchers divided into two camps, where one camp (or school of thought) insisting that the geocentric-paradigm is reality while other camp (or school of thought) insisting that the heliocentric-paradigm is reality. Each paradigm is comprised and supported by hundreds or thousands of concepts, facts and observations (which were accumulated for many years). Each concept and fact belongs to any paradigm is consistent with other concepts and facts of the paradigm, where most of the concepts and facts are either interdependent with each other.

Of course, the researchers advance any scientific discipline by adding more and more new facts, concepts and observations (e.g. including results of experiments). Each of the new concept or fact is derived by relying on already existing concepts and facts of then prevailing paradigm. If the new concept or fact is verified and accepted, the new concept or fact would become part of knowledge base of the paradigm for other researchers to create more new concept or fact. This knowledge base can be seen as a matrix or web of interdependent concepts and facts.

I liked Mr. Ian Phillips analogy sparse matrix for the knowledge base of mankind, where each non-empty cell contains a fact or concept having varying degree of accuracy or clarity. That is, some facts or concepts are 100% accurate (or clear), while other facts or concepts are X% accurate or clear (where X% is a number between 50% and 100%). I feel, a puzzle or matrix is a good analogy for a paradigm, were no cell is empty but contains a piece (i.e. fact, concept, observation or empirical evidence). Although each of the concepts or facts of a paradigm is not 100% accurate, each fact or concept is consistent with other facts and concepts of the matrix. All the concepts, facts and empirical evidence together paint the reality of the paradigm on the puzzle or matrix (e.g. by filling each cell with a piece of the painting having various degree of clarity/accuracy).

If the error geocentric-model is not exposed, few more thousands of concepts, facts and empirical observations would be accumulated and added to the expanded matrix (by now). Each of the added concepts, facts and empirical observations compliment each other and in consistent with the perceived reality (i.e. FIG-1). But now we know that it was a wrong path and the erroneous geocentric axiom sidetracked the scientific progress into a wrong path.

Then deeply entrenched geocentric paradigm and then evolving heliocentric paradigm co-existed for few decades, where each school of thought (i.e. paradigm) tried to discredit the other school thought. The proponents of heliocentric model faced very complex questions, such as, if the Earth is moving (i.e. circling the Sun) why the moon is not left behind (i.e. how could the moon is circling the moving Earth)? It was impossible to find any valid answer, since gravity was not yet discovered. But Galileo was able to find an empirical explanation: He discovered that Jupiter has moons and the moons are circling the Jupiter. It is a valid explanation and empirical evidence, since both camps agree that the Jupiter is circling a planet that was at the center. That is, one camp believed that the Jupiter circling the Earth, while the other camp believed that the circling the Sun, but no one disputed the fact that the Jupiter and other planets such as Saturn are circling/moving. Galileo improved telescope, which allowed him to see that Jupiter has moons and the moons circling the Jupiter.

Eventually the heliocentric paradigm won because it provided far more accurate predictions for paths of planetary orbits (e.g. by removing inexplicable epicycles and retrograde motions from the planetary paths). For example, astronomers were able to predict planetary positions far more accurately by using laws of Kepler. The heliocentric model resulted in far more accurate concepts, facts and predictable observations having fewer and fewer inconsistencies by having far higher degree of clarity and accuracy (e.g. for each of the concepts or facts for each of the pieces/cells in the puzzle/matrix).

The biggest and irrefutable proof for the heliocentric-model was that it put scientific progress on the right tracks and allowed the science to progress on right tracks, since It is not possible for any meaningful progress for any scientific field if the field ended up in a wrong direction by making a mistake (e.g. a mistake sidetracks the research of any scientific discipline). This progress resulted in discovery of Newton’s laws of motion and gravity, where these laws of science provided irrefutable proof and decisive victory for the heliocentric-model.

In light of all this knowledge of history and accumulation of scientific knowledge one can show: There is only one possible right direction and researchers can make progress by finding and staying on the right path. An error such as ‘the Earth is at the center’ can sidetrack the progress and end up in a ditch. If a scientific field ends up in wrong path, and researchers apply brute force to advance the field, the resulting matrix of concepts and facts that are less accurate and reliable for making predictions. Also comprises of anomalies and inconsistencies that are justified by using silly excuses (e.g. software is different or unique, without providing any valid justification for why and what manner software is different or unique).

The designing of any complex software is not unique or different from designing of complex one-of-a-kind physical products. It is possible to discover the essential properties uniquely and universally shared by each and every known physical functional component. Likewise it is possible to discover essential aspects/concepts uniquely and universally shared by CBD of each and every physical product.

Once the essential properties and the essential aspects/concepts are discovered, it is possible to invent real software components (e.g. by having the essential properties) for achieving the real CBSD (CBD for software), where the real CBSD is shares the essential aspects/concepts and equivalent to the CBD of physical products. A new matrix of concepts and facts would evolve for real CBSD, where each of the concept or observation would be equivalent and identical to the concepts exist for the matrix of CBD of physical products and physical functional components. However, today already there exists a complex matrix of concepts, facts and empirical results for software engineering and CBSE, which resulted from untested definitions for software components (which are made out of thin air). Please refer to the exiting definitions for software components given at the top.

If there are errors in above definitions, it is a scientific miracle for software engineering to make any meaningful progress and no meaningful progress is possible until the errors are fixed for putting the progress in right direction. The discoveries such as gravity, laws or motion can be found only when science is progressing in right direction, since such scientific truths exists only on the right path.

Only way to keep the scientific or technological progress on the right path by making sure that critical concepts and facts are free from fatal errors. It is not necessary that the facts and concepts must be 100% accurate. For example, Copernicus only proposed that the Sun is at the center, and assumed that the planets are traveling around the Sun in circular orbits (while in reality the planets were traveling around the Sun in elliptical orbits). Although it is not error free, the discovery of Copernicus is a step in the right direction (while geocentric model evolved by relaying on a fatal error).

I am sure Kepler must have realized that the earth is traveling in an elliptical path around the Sun (since he is living on the Earth and by measuring the approximate distance between him and the Sun for few years to plot the path). If this resulted in elliptical path, he could hypothesis that other planets also must be also traveling on elliptical paths, which can be confirmed by tracking their locations for few years. Also Keler’s greatness was that he gained valuable insights, which were quantified by his 2nd and 3rd law. I am sure, the third law was instrumental in determining that the gravity is inversely proportional to the square of the distance (instead of just distance or cube of the distance).

I have been doing research on nature and essential aspects of real software components and CBD of physical products for more than a decade. I am confident that I found accurate definitions for real software components and real CBSD. These definitions resulted in a new paradigm supported by a matrix of concepts, facts and empirical evidence (or experimental results). For example, experimental results include building software applications as hierarchy of replaceable components by assembling software components (that are equivalent to the physical functional by sharing the essential properties).

My website contains many WebPages that present various concepts and aspects of a matrix for the newly proposed CBSD paradigm. The concepts, facts and observations are consistent with each other and with the new reality that is resulted by relying on our accurate definitions for real software components and CBSD. Even if the concepts and facts are not perfect, they are consistent with the reality (in light paradigm for physical functional components and CBD for physical products). It is error to validate these concepts by relying on the concepts in the matrix for old paradigm.

If one is going is a right path, he finds many concepts that perfectly complement and fit with each other. This assures him that he is going in the right direction. Also he can make predictions and find evidence that his predictions are accurate. I believe, this new paradigm can offer 5 to 10 folds increase in manual productivity for large software applications. The new paradigm is much simpler and answers many questions that were not answered by older paradigm.

But experts unfortunately feel new paradigm is complex, because they need to learn few dozen new simpler concepts, even if the older paradigm has hundreds of much harder concepts (since they already mastered concepts in the matrix for older paradigm over the years). For example, the researchers already absorbed and digested the concepts in the older paradigm without questioning their validity (from by reading text books and in class rooms as students). But in case of concepts of newer paradigm, they question the validity of each of the concepts in light of the erroneous concepts and facts of older paradigm. For example, 500 years ago saying that the Sun is at the center offended common sense and deeply entrenched conventional wisdom.

P.S: It reminds me of my ‘Vi’ and c-shell skills of Unix. For many years, I was much comfortable with ‘Vi’ and 2 or 3 letter aliases for doing any thing. For example, in Unix I had an alias to go to any folder, since all the projects I work has aliases, but I need to make many selections using mouse to go to a working folder. I reluctantly learned the editors and mouse, only when I was forced to develop software on PC using IDE. I worked over five years on Unix so highly accustomed to the environment, but it may take few months to get the same level of comfort (so I was reluctant to learn new paradigm, so to speak).