Dear Friends,

Every science textbook tries to “describe” nature and properties or characteristics of a class or kind of physical things (e.g. animals, trees, bacteria or viruses) by meticulously observing facts and reality. On the other hand, fiction books or novels “define” (or “re-define”) nature and properties or characteristics of a class or kind of physical things based on imagination or wishful thinking by ignoring or suppressing known facts or reality.

Also, kindly keep in mind, the main or basic difference between a hard science and a pseudo-science (as per Karl Popper’s theory of science or falsificationism): Each pseudo-science tries hard to find confirmations for each belief or hypothesis by ignoring counter evidences, while each hard science must try hard to find counter evidence to disprove each observation, theory or hypothesis.

There are many subtle differences between the meaning and usage of these two words or terms "describe" and "define" (e.g. https://wikidiff.com/definition/description). The science text books on animals describe nature and characteristics of animals, while science books on plants describe nature and characteristics of trees. Likewise, books on viruses or bacteria describe nature and characteristics of viruses or bacteria, and so on.

Every text book for any scientific discipline tries to meticulously describe nature and characteristics or properties of a class of physical beings and/or phenomena. I am sure that the books on animals or plants don't try to re-define the meaning of the term "animal" (or "plant") itself (e.g. based on wishful thinking), by ignoring reality or facts we know about animals (or plants). If any book doing that, we don't call such book a text book for a science or technology. Only fiction books or novels define or re-define nature and characteristics of physical beings or phenomena (based on imagination or wishful thinking or to tell a story), by deliberately suppressing or ignoring known facts or reality.

Real science tries to describe reality. Fake science or fiction defines altered reality 😉.

Likewise, text books on components (for CBD/CBE of software products) must describe nature and characteristics of components that are used for designing and engineering of products. Instead, every textbook on software engineering or software components defining or re-defining the meaning of the term "component", based on wishful thinking by ignoring reality or facts, which are known about physical components that are basic building blocks for designing and engineering of countless products we know or use every day such as cars, bikes, TVs, computers, cell-phones, helicopters, airplanes, jet-fighters or machines (e.g. machinery for factories) to name a few.

Instead of describing nature and characteristics of components that are used for designing and engineering of products (by relying on known facts and reality) like any other textbook on physical beings or phenomena, why every textbook or research paper on software engineering re-defining the meaning of term "component" by deliberately suppressing or ignoring known facts or reality. Isn’t it a fact: No textbook or paper on software engineering or computer science attempted to describe the components?

Real science tries to find counter evidence for disconfirmation (not confirmation), but no one ever tried to disconfirm the beliefs for so-called components or CBD/CBE methods for software. If one try to find from all the published papers or software textbooks (for what is a component for CBD/CBE), he finds many kinds of conflicting definitions, climate of opinions, hypotheses or paradoxical perception of reality based on ideological preferences, such as this sample debate: http://wiki.c2.com/?ComponentDefinition

Only the God has more mysterious definitions than the components for software products, as if no one alive ever seen components that are essential building blocks for designing and engineering of large or complex products. I am pretty sure 😊, that components are not some kind of mysterious things like the Gods. I am not qualified to make any comments on the numerous mysterious definitions for the God ☹, which may be found in all kinds of fiction novels, or books for diverse religions, because I haven't yet seen the God (I don't even know, if the God exists). All the religious leaders have been trying to find confirmation for their sacred beliefs.

I can’t give any proof or assurance about the existence of the God. But I can give proof and assurance to each and every one, that components do exist, and anyone can observe components (if he/she wants to). You can sue me :-), if you can't find components to observe them (e.g. to describe, or to validate descriptions given by others). If you start observing the components that are assembled to build products, most of you must agree that it is wrong to re-define components by ignoring observable reality or facts (as if components are some kind of mysterious being like the God).

Although I am not qualified to make any comments on the conflicting definitions for the God, I am certainly more than qualified to make comments on components, because I have seen components (trust me 😉, I am not lying. I really saw components and trust me that they are not mysterious 😊). I assure you that you can also see components, if you wish to describe the components. I also have been doing research for about a decade by meticulously observing the components, and how they are used (e.g. the role they play) as basic building blocks in designing and engineering of complex products.

Should the components (that are used as building blocks in designing and engineering of large or complex products) be defined (as in fiction novels by ignoring facts or reality) or described (e.g. like animals, or bacteria in science textbooks)? We re-define things, if we want to write a fiction novel. We describe things, if we want to write science book. Isn't it wrong to teach such fiction books (that use re-defined paradoxical components by suppressing known facts or reality) to impressionable young students in the universities by fooling them that they are learning science or technology?

If mankind can acquire and accumulate valid knowledge (for describing each of them) by observing diverse classes of things or beings (e.g. animals, plants, viruses, bacteria, fungi, light, electrons, atoms or molecules to name a few), why isn't it possible to acquire and accumulate valid knowledge (for describing them) by observing good old components that are visible in plain sight (unlike viruses, bacteria, atoms or molecules), where the components can be hold in our hands or dissect to see inner workings.

All the textbooks for any other thing such as trees or animals, describe how each of them are, by observing the reality and facts meticulously. On the other hand, all the books on software are blindly defining components (by ignoring reality or facts), how components should be (based on ideological preferences, or wishful thinking). Science describes things based on known facts and reality (and open for empirical falsification). Fiction defines (i.e. re-defines) things based on imagination or wishful thinking.

Instead of describing components (that are building blocks for component-based designing or engineering of products), software researchers re-defined the meaning of the term “components” (by ignoring known facts or reality). I spent years to discover accurate description for components. Whatever they are, I can say that the so-called components are not components. Today everyone is being fooled that software engineering has been using components and CBD/CBE (Component Based Designing and Engineering) by pointing to the use of so-called components.

It is not hard to describe nature and properties (or characteristics) of components and basic steps or process for CBD/CBE of large or complex physical products: It is just an Aristotelian science to make meticulous observations of components and basic steps or process of designing and building the products using components, for example, to acquire and accumulate BoK (Body of Knowledge) comprising theories, hypothesis and facts. It further requires applying Popperian falsification, for example, either (i) to eliminate flawed theories or hypothesis, or (ii) perfecting surviving theories or hypothesis little-by-little by gaining deeper insights.

The BoK for description can be perfected using sound reasoning and proven scientific method (that has been perfected for past 300 years by brilliant philosophers of science), such as: If I want to describe Swans, I would make hundreds of observations such as (i) all swans are white, or (ii) all swans have heart or lungs etc. I know reasons why no swan can live without a heart, but I don’t know why swans can’t survive, if it is not white (e.g. if it is black or blue). Finding a black swan doesn’t surprise me. But finding a swan without heart puts everything I know in doubt.

In summary: Real science tries to describe reality. Fake science or fiction defines altered reality 😉.

Why members of software community respond viciously, whenever I try to describe properties of components that are essential for CBD/CBE and essential steps for CBD/CBE. I am only trying my best to describe facts and reality of components and CBD. If it is a blasphemy, I didn’t receive that memo. Is there is any ban on describing reality of components/CBE? If such memos exist, kindly share with me 😊.

The catastrophic result: Software researchers re-defined components (based on wishful thinking by ignoring known facts or reality) for decades until early 1990s dreaming to invent a utopia for building software products by assembling reusable or COTS (Commercially off the Shelf) components. Instead we got nightmares. Today designing and engineering of software products ended up in nightmarish spaghetti code or infamous software crisis.

Isn’t this a fact: Except designing and engineering of large software products, no other product is affected by the infamous spaghetti code/design. Either size, complexity or one-of-a-kind uniqueness of a product (e.g. fully working pre-production prototype for next-generation jet-fighters, quantum supercomputer, nuclear powered spacecraft or locomotive) cannot prevent designers from partitioning each product into multiple components of optimal size and build the product by assembling the components, where each component is designed, created and tested individually.

Today no large or complex software product is built by assembling such components, where each component can be redesigned and tested individually (at any time in the future). The code base for each of the components is free from spaghetti code, because each component can be designed and tested individually free from spaghetti code.

The code base for whole product would be free from spaghetti code, since the whole code base of the product is partitioned and implemented as pluggable components (as illustrated by FIG-2 in the attached PDF). But, today the structure of code base for each and every large or complex software product ended up as spaghetti code (as illustrated by FIG-1 in the attached PDF).

Best Regards,

Raju Chiluvuri

More Raju Chiluvuri's questions See All
Similar questions and discussions