I'm currently learning for an exam in Software Engineering. However, I'm becoming frustrated by the apparently impractical and unrealistic techniques for producing high-quality code suggested in the lecture.
[edit:added this illustration from response to a comment]
For example, it was suggested that one could use linguistic analysis to design an application. That is, write down a use case in prose, underline all substantives and turn them into classes, underline all adjectives and turn them into attributes and so on. This is done to create an exhaustive UML diagram which can then be turned into code almost automatically. I would be pretty surprised if this would work in real life
There was however one chapter I enjoyed reading, which talked about what methodology Microsoft is using to develop their software. (Article: http://portal.acm.org/citation.cfm?id=255698, requires ACM membership)
So my questions is:
Are there other resources available which show how software development is done at large, successful companies? (successful meaning they deliver quality code in a timely fashion)
Also, are there any negative Examples available, e.g. examples of how software development is done in companies that regularly produce buggy and late releases?