The aim of this course is to inculcate on students the general concepts of software engineering and the best practices of the technology. Software Engineering is a collection of techniques, methodologies and tools that help with the production of high quality software systems. It is a rationale-driven activity that involves modeling, problem-solving, and knowledge acquisition. In this course, students will learn how to produce high quality software systems on time and within budget while dealing with complexity and change issues. This course focuses on object-oriented software engineering concepts and provides students with both theoretical and practical knowledge of this field. The Unified Modeling Language (UML) will be presented in detail. Topics covered include basic software engineering concepts, UML modeling techniques, requirements elicitation, use cases, analysis, class/object diagrams and interaction diagrams, system design, software architectures, object design, reuse concepts and design pattern solutions. This course is designed for students who have basic understanding of information technology and who wish to gain knowledge in object-oriented systems development. The emphasis will be on the design and analysis issues using the UML modeling techniques.
Credit Units: 5
Presentation Pattern: Every January
E-Learning: BLENDED - Learning is done MAINLY online using interactive study materials in Canvas. Students receive guidance and support from online instructors via discussion forums and emails. This is supplemented with SOME face-to-face sessions. If the course has an exam component, this will be administered on-campus.