
Maybe. Really I'm just interested in what exactly a theoretical basis for software engineering would look like. The papes I was reading suggested that we may be reaching the point in CS research where we cannot progress further without an underlying theoretical base (like electrical theory underpins electronics which is in turn underpinned by atomic/molecular/ionic theory).
I think you are comparing apples and oranges here. I think your vision of software engineering is too narrow. Electrical theory explains a finite set of observed electrical properties. Software is a language that can express too much to be stated in a single theory. It is too expressive. You might as well try to make a general theory of communication which covers all possible communication, speech, evocation, persuasion, poetry, art and expression. Software engineering would then be a substantial subset of this general theory. In order to have a meaningful theoretical discussion you must break down the subject into a finite set of rational observable components with observable relations between them. You then attempt theories to explain what you observe. The problem with communication (of which software engineering is a subset) is that it is infinitely extensible. As long as there are new areas of software problems to solve we can't put a bound on it. It is not even clear what you mean when you ask what a "theoretical basis of software engineering would look like." Engineering doesn't have theories. Science has theories; engineers apply these theories to solve specific problems. You would do better to think of a specific aspect of software engineering that you think needs explaination. Without specific questions you will never have useful theories. When you narrow your self to specific questions you will likely find plenty of literature that discuss them. Be careful or you will fall down the rabbit hole that has swallowed literary criticism, chasing meaningless but pretty ideas that go nowhere, lost in endless reflections of ideas that seem like they must mean something but can't be nailed down. This is the curse of language, many more things can be said than have meaning. You don't start with a theory, you start with specific questions and observations that need explaination. Theories provide possible and hopefully testable explainations. The results suggested by these theories, once validated as useful and predictive, can be the basis for the next level of theories. Let me give a specific example. You don't ask for a theory of physics. Physics is too general a thing to have one theory. On the other hand we have a set of theories which describe various fields; gravitation, electromagnetic, strong and weak forces. These theories are pretty mature and usefully and predidictively explain the specific fields. These field theories have a lot in common and now that they are well developed and tested it is worthwhile looking for a unified field theory in which the specific fields are merely special cases. Physicists have been hoping for this one for 80 years. You try to build a general theory when the specific theories are well understood. This does not describe the condition of software engineering or even of so called "computer science."