Software is a fundamental part of modern life, deeply embedded in various industries and businesses. However, software development is a complex and expensive process, requiring careful engineering of intricacies, prevention of bugs, and timely delivery of functional, safe, and secure products. Software systems are so ubiquitous that their presence often goes unnoticed until a bug occurs. A single bug can cause critical software failures, leading to significant social and economic consequences. This highlights the need for innovative theories, techniques, and tools to enhance software quality, reliability, and maintainability.
The Software Engineering stream in the Graduate Diploma and Master of Information Technology programs focuses on the technical and organizational methods, practices, and tools necessary for developing large-scale, complex software systems. Software engineering addresses real-world problems through effective engineering practices that encompass software requirements, architecture, programming language implementation, software analysis and verification, and quality and security assurance. The program emphasizes the foundations and applications in the core disciplines of software engineering. It provides students with fundamental knowledge, skills, and hands-on experience by balancing theory and practice, engaging students in active learning, and promoting team collaboration on projects derived from real-world scenarios.
Several aspects of software engineering specialization are considered: