Covers software life cycle models (waterfall, spiral, etc.), domain engineering methods, requirements analysis methods (including formal specifications), software design principles and methods, verification and testing methods, resource and schedule estimation for individual software engineers, component-based software development methods and architecture, languages for describing software processes. Includes a project where some of the software engineering methods (from domain modeling to testing) are applied in an example.
The only prerequisite is some background in object-oriented programming.
The textbook for this course is Bernd Bruegge and Allen Dutoit Object-Oriented Software Engineering Conquering Complex and Changing Systems Prentice-Hall, 2000. ISBN 0-13-489725-0