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 ?.

  • 1
    $\begingroup$ What research have you done? I think you should do some more reading. Software development doesn't have to be that way. Try reading about agile development practices. There's lots written on that subject. $\endgroup$ – D.W. Jul 18 '14 at 16:58
  • 1
    $\begingroup$ A poor student asks a professor how he can get from his home in Paris to a conference he wishes to attend in New York, without paying the high cost of air fare. The professor says, "You must hire a team of engineers to build you a boat to cross the ocean." The student says, "But, professor, hiring all those people will be expensive and I'll have to wait a long time before my boat is finished. Can't I just walk?" "If you try to walk," says the professor, "perhaps you'll never get there at all." $\endgroup$ – David Richerby Jul 18 '14 at 18:37
  • 2
    $\begingroup$ I think that's a reasonable question - how often are these techniques used in practice? Do they really help? Empirical research must have been done on this subject, though I'm not sure how reliable it is. $\endgroup$ – Yuval Filmus Jul 18 '14 at 22:19
  • 1
    $\begingroup$ this might be more a question for Software Engineering. see eg waterfall vs agile development styles. another famous book on subj is mythical man month by brooks $\endgroup$ – vzn Jul 18 '14 at 23:06
  • 1
    $\begingroup$ You ask at least five distinct questions at once, not all of which are ontopic here (e.g. those asking for industry experience). Please focus on a specific question that can be answered by drawing on science and/or engineering principles. $\endgroup$ – Raphael Jul 19 '14 at 13:50