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%) | Exam (60%)
LecturerWilliam Bell

Aims and Objectives

The objectives of this module are to develop and understanding of:

  • Software development lifecycles;
  • User requirements, user stories and use cases;
  • User interface design, data design, design patterns;
  • Tools used to develop large-scale software projects in groups;
  • Testing approaches and associated frameworks;
  • Project management and quality assurance processes.

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;
  • 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;
  • Source code control and build tools;
  • Software development processes.

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.

Reading references are specified on the CS993 MyPlace page, including sections from:

  • "Software engineering", Ian Sommerville, Tenth Edition, 2016 (electronic copy available in library).
  • "Designing with the mind in mind: simple guide to understanding user interface design guidelines", Jeff Johnson, Third Edition, 2021 (electronic copy available in library).
  • "Software Architecture Patterns", M. Richards, 2017 (electronic copy available in library).
  • "Beginning software engineering", Rod Stephens, 2015 (electronic copy available in library).
  • "Pro Git", Scott Chacon and Ben Straub, Second Edition, 2022 (free resource).
  • "Software Engineering: a practitioner's approach", Roger Pressman, Eighth Edition, 2016 (electronic copy available in library).
  • "Scrum Guide", Jeff Sutherland and Ken Schwaber, 2020 (free resource).
  • "DevOps", C. Ebert, G. Gallardo, J. Hernantes and N. Serrano, IEEE Software, vol. 33, no. 3, pp. 94-100, May-June 2016 (electronic copy available in library).
  • "Getting ISO 9001 certified for software development using scrum and open source tools: a case study", Tehnički vjesnik, 2015/12 (electronic copy available in library).

Last updated: 2023-12-18 12:22:22