This module aims to teach systematic methods for developing software. Students learn requirements analysis, design, testing, and project management to build reliable, maintainable software within constraints. This module fits the degree programs by bridging theoretical computer science fundamentals with professional practice. It teaches the essential process of turning algorithms and data structures into large, reliable, and collaborative real-world software systems.
A. Specify a software system based on user requirements analysis, incorporating diverse user needs and accessibility goals. B. Compare software process models, including plan-driven and agile approaches, and explain how they support continuous improvement. C. Apply object-oriented design principles and construct UML diagrams to represent software designs. D. Design and execute test cases for software validation, evaluate core quality assurance practices, and assess key risks associated with software engineering project delivery. E. Discuss ethical responsibilities and professional issues arising throughout the software development lifecycle.
To support student learning, three hours of formal lectures per week set the foundational and theoretical content. And one-hour supervised Lab / Practicals per week provides students with the opportunity to put into practice the content learned during the lectures. In addition, students will be expected to devote eight hours per week for unsupervised private study. Private study will be used for students’ preparation and reflection of lecture material, lab exercises and reading text books and other learning materials. This module uses AI to enhance student learning. An XIPU AI tutor is provided in learning mall for this module, to support students.