Introduction to Software Engineering; Essential Software Attributes; Socio-Technical Systems; Dependability; Software Processes; Project Management; Software Functional and Non-Functional Requirements; Requirements Engineering Processes; System Models: Context, Behavioral and Object Models; Critical Systems Specification; Formal Specification; Architectural Design; Distributed Systems Architecture; Application Architectures; UML Design Models; Object-Oriented Design; Real-Time Software Design; User Interface Design.