The course discusses the theories, methods and tools of software engineering for developing large and complex software systems. The main contents are requirement specification, system modeling, architectural design, object-oriented analysis and design, verification and validation. The Unified Modeling Language (UML) and its CASE tool are used to analyze and design the course project systems.