Taking software engineering seriously

Why this is important?

For me, this is important because as a practitioner of the trade I have a historical responsibility to layout the best possible base for future practitioners and for the future of the profession.

What is it?

It seems that software engineering is correctly a branch of engineering discipline, because many take it for granted, even many respected authorities.

Nevertheless, as Carl Sagan and others have said, it is healthy to challenge the veracity of the evidence that comes from the authority.

If we took as premise that all engineering is applied factual science (unlike formal sciences -of which there are no applications for the very reason they are formal), and the sine qua non attribute for a science to exist is that it is made of theories; and each theory is a system of laws; and each law is a general, necessary and constant relationship between phenomena (observed facts); and the observed facts can be perceived with the senses and repeatable...

I am wondering...

Where are the laws for the science of software?

If there are no such laws –as postulates, axioms or at least theorems, then there is no science of software.

If there is no science of software, how can possibly be a software engineering?

Is truly the software engineering a branch of engineering? What is then? Craftsmanship? Why not? Which are the implications to the profession of making programs for digital computers?

I found the following article very interesting:
Computer Science is Really a Social Science