I agree with Leo that the theory is different from practice, and the whole answer is very good.
Theory vs. Practice
We have to be careful.
Many theories are designed to be implemented and tested in practice. They may or may not work.
But in the case of Software Engineering, what happens in general is the inverse. Much of the theory came from the observation of practice or borrowing from other areas of knowledge, such as factory procedures or project management.
The problem is that these things do not work the same way, after all you do not develop software in the same way that you build a car on production lines or if you build a building.
Analogies
Although not perfect, many analogies with these other areas help us understand what we are doing.
Similarly, a step-by-step like the one described in the question does not consist of a fixed rule to be followed, but an abstraction of what is actually done.
In other words, it's not like a cookbook or an assembly manual where you perform each step and get the final product. Think of Software Engineering theory as an attempt to make explicit or describe what we often do without even understanding.
Example
Suppose you had an idea for an internal system for your company that will improve a particular process.
You go to the person in charge of the area and ask some questions to understand how things really work.
Then he goes back to his desk and writes a text telling what the system could do to effectively improve the process.
Then you come back to talk to the person in charge and explain your proposal, that is, how you intend to make it work easier or more effective, save effort, reduce mistakes, or anything along those lines.
Imagine that he liked the idea and tells you that he would be grateful to work with you to make it real.
At this point you go back to your desk and spend a day or two sketching your idea better, creating screenshots, perhaps modeling the database, and then putting together a small, simple prototype,
Now you call the person in charge and show them what you did. Imagine he likes it, thinks he's on the right track, and just gives some hints about some details that would look better in another way.
Finally, you would spend another one or two weeks to improve the prototype, polish the interface, put some security and make the first version available.
The person responsible then starts using with his team, checks that the result has been positive and from there he will start asking for some improvements, minor adjustments and new features to further improve the gain.
Explanation
All I described above trying not to use technical terms is exactly how a project could work using the same steps described in the question, but with an agile approach.
Note that even in the agile project you have the requirements analysis, description of the system in user stories, thinking about the objects that will make up the solution and making those objects work.
The main differences are:
- It may not be necessary to spend a lot of time doing diagrams unless this is relevant to your understanding of the problem
- In the agile process, one does not try to find out everything the system must do for ever and ever, but focus on an initial idea that solves the most critical problem, test if it works, receive feedback and iterate again, that is, go back to the first step to create a new system version better and with more functionality
- The focus is on meeting customer needs and not simply creating a computational model and beautiful diagrams
Considerations
Use Software Engineering concepts to understand the principles of software development, and then use engineering or management techniques to help improve your work.
Sometimes, when the work environment is chaotic, it is advisable to adopt some existing development model. But in general, the ideal is not to try to follow a textbook, but to adapt the available methods that are relevant to you and then try to do a more effective job.
What does not work out should simply be discarded. For example, I recommend you try to make a simple class diagram without spending much time thinking about absolutely all possible relationships and attributes. After a while you will realize how useful this diagram was and not, and in the next cycle you will have more security to decide this.