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: http://real-software-components.com/more_docs/epicyles_facts.html.
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).