I study computer science and we have subject named Software Engineering, we learn that each software should pass through a long process starting from requirement engineering and ending with Evoluation (Change Requests, Bug reports, Quality management) all this is based on hierarchy its head is the Project Manager and creating an endless levels. Additionaly many works should be done, filling Forms such assignment forms, creating contracts ... etc
- Isn't Class Diagrams enough ? why do we need all these Diagrams (Component, Sequence, Class, Control, Deployment, Interaction, Distribution, Implementation Diagrams ... and more)
- Do all Software Engineering Companies work this way ?
- Doesn't this increase cost of a Software as we need to employ many people (Managers, Requierment Engineers, System and Software Analysts, Senior and Junior Developers, Testers, ... etc) ?
- Doesn't this increase the Time, in which the Software is developed in ? do clients wait ? do they not get disturbed ?
- Isn't kind of bureaucracy ?
I don't try to give a personal opinion here, I really like this subject but i just want to understand and know if this is really economically efficient ?.