Subject details

Upon successful completion of this subject you should be able to:

  1. explain and apply the main aspects of software engineering
  2. evaluate requirements for a software system
  3. apply the process of analysis and design using the object-oriented approach
  4. work effectively in a team to analyse the requirements of a complex software system, and solve problems by creating appropriate designs that satisfies these requirements
  5. communicate effectively with others, especially regarding the progress of the system development and the content of the design 
  6. recognise and describe current trends in the area of software engineering. 
  • Topics

    • Introduction to Software Engineering
    • Process and Tools, Introduction to TDD
    • Team work, Project Management and Java
    • UML use case diagrams,user stories
    • UML class and object diagrams
    • UML communication and sequence Diagrams
    • Design Principles and Patterns
    • State Diagrams
    • Activity Diagrams
    • Testing
  • Study resources

    • Instructional Methods

      • Disscusion forum/Discussion Board
      • Embedded Multimedia
      • Online Quizzes/Tests
      • Online assignment submission
      • Podcasting/Leacture capture
      • Standard Media
      • Streaming Multimedia
      • Web links
    • Online Materials

      • Resources and Links
      • Printable format materials
      • Audio-Video streaming
      • Quizzes

Entry Requirements

You are recommended to have completed the following subjects(s) or have equivalent knowledge before starting this unit:


Or have equivalent programming experience before starting this subject.

Special requirements

  • OtherDetails -

    Stable broadband connection required to access online learning materials and live chat sessions / recordings. (note: mobile broadband users may have difficulties participating in live chat sessions)

This degree is designed to provide you opportunity to gain knowledge and skills necessary to analyse, design and implement complex software engineering projects.

You should learn to analyse and design fairly complex real-life systems, working as teams. You are also made aware of current software engineering standards and processes. You are also taught to consider qualitative aspects including maintainability, extensibility, reusability and robustness in every stage of the software-engineering life-cycle. 

At the end of the degree you should be able to combine top-down and bottom-up approaches to software design and choose the most appropriate process considering the underlying technology, project duration, the level of risks and the customer expectations.

  • Assignment 1 (15%)
  • Assignment 2 (15%)
  • Assignment 3 (20%)
  • Invigilated Exam (50%)

Textbooks are subject to change within the academic year. Students are advised to purchase their books no earlier than one to two months before the start of a subject.


  • UML Distilled : A Brief Guide to the Standard Object Modelling Language (3rd Edition)
  • Martin Fowler, Kendall Scott
  • 9780321193681
  • Print
  • Object Oriented Design with UML and Java
  • John Savage
  • 9780080497556
  • Print
View textbooks

Related Degrees

undergraduate RMI-CPT-DEG-2018

Bachelor of Information Technology

  • Foundation Subjects
  • Core Subjects - Level 1
  • Core Subjects - Level 2