Syllabuses - PG

CS993 - Software Engineering

TIMETABLETEACHING MATERIAL
Credits20
Level5
SemesterSemester 2
AvailabilityPossible elective
PrerequisitesCS995 and CS994
Learning Activities BreakdownLectures: 20 | Tutorials: 0 | Labs: 40
Assignment: 70 | Self Study: 70
AssessmentGroup Project Report (40%) | Individual Project Report (60%)
LecturerWilliam Bell

Aims and Objectives

This module aims to:

  • Develop an understanding of the software development life-cycle;
  • Develop an understanding of the tools used to develop large scale software;
  • Develop an understanding of developing software in a group environment;
  • Develop an understanding of how software engineers operate in industry;
  • Develop an understanding of how the tools are used to control the complexity of developing large software in groups.

Learning Outcomes

After completing this module participants will be able to:

  • Understand the key components involved in designing, building and testing a software system;
  • Gain experience of the software development processes typically used within industry;
  • Be familiar with the main tools and technologies used to support the development and management of software systems;
  • Understand how to work as part of a team to design, build, test and deliver a software system.

Syllabus

  • The importance of users and capturing and communication requirements (e.g. via use cases);
  • Principles of software architecture and design; key elements of UML and design patterns;
  • Implementation considerations: coding practices, idioms, implementation-related design principles;
  • Testing: principles and supporting frameworks (e.g. n- Unit);
  • Source code control and build tools (e.g. Git, Maven…);
  • Software development processes (primarily Agile development methodology).

Recommended Reading

This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.

Beginning Software Engineering. R. Stephens, Sybex (electronic copy available in library).

Last updated: 2023-01-25 18:02:09