Mechanical engineers learn the limitations of materials under mechanical loads. Electrical engineers learn the limitations of materials under electrical loads.
Civil engineering, mechanical engineering, chemical engineering, and electrical engineering are all essentially applied physics.
What is software engineering? The only limitation to software complexity is the finite capacity of the human mind. If humans were infinitely intelligent, we could instantaneously produce optimal machine code for any solvable problem.
Therefore, software engineering is a branch of applied psychology, attempting to define processes that will enable humans to write software with minimal error.
Mechanical engineers and electrical engineers have the luxury of working with standard components, whose characteristics have been thoroughly measured.
However, we haven't figured out how to produce programmers with any repeatability at all. The enormous variability in human capacity makes software engineering a very soft discipline. The only thing "software engineering" has in common with other engineering fields is the word "engineering".
Software engineering is much more like business administration. About the best we can do is look at past projects, searching for common practices among the successful projects. Even then, no set of processes can guarantee success, no more than an MBA can assure the success of a new business.
Almost all the useful advances in software engineering have come from working programmers, not from academics. Academics have produced things like Ada and the Capability Maturity Model. Working programmers invented test-driven development, and continuous refactoring, and all the agile practices we now consider essential.