Writing software can be like building buildings, tall ones with elevators and lots of cool stuff. In fact it isn’t even anything particularly new, the technology is called Model Based Software Engineering (MBSE), also called MDA, MDE, etc.
These technologies are being used by Boeing, Airbus, Volvo, Saab, Daimler, etc. Companies that produce software where blowing up on the launch pad is not an option and very bad PR. I believe that software developers are not aware of these technologies is that the companies using them are keeping them a trade secret and relatively few universities even teach the techniques.
Then along came UML and that totally wrecked the methodology for all but the most dedicated companies, such as those mentioned above.
Buildings and rockets are built by engineers, that is people who understand the foundations of what they are doing and are prepared to invest the time and effort into detailed design with extensive model checking before building prototypes to further validate the designs before building the real thing.
Unfortunately most software is created by artisans and hackers. Calling themselves “software engineers” is like a guy with a rusty pair of pliers calling himself a “dentist” or a butcher calling himself a “surgeon”.