Comment Reverse engineering and software development (Score 1) 158
Preparing diagrams and other non-text, and non-code specifications and gradually shifting to code is understood to be the way to go and proper engineering. Code generators are meant to automate this process.
Non-code notations, however, have no prospects to develop into definitive, catch-all specifications, which then could be converted into a secodary derivative, the code.
Programming languages have much better prospects to have specifications embedded. Eiffel with its Design by Contract and other features has already gone a long way in this direction.
So the code is the definitive source, allowing automated extraction of specifications and various descriptive materials.
Software engineering is (going to be) reverse.