Part A: Course Overview

Course Title: Object Oriented Software Design

Credit Points: 12.00


Course Coordinator: Dr Xiaoyu Xia

Course Coordinator Phone: +61 3 9925

Course Coordinator Email: xiaoyu.xia@rmit.edu.au

Course Coordinator Location: -

Course Coordinator Availability: via email


Pre-requisite Courses and Assumed Knowledge and Capabilities

Enforced Pre-Requisite Courses

Successful completion of the following course/s:

  • COSC1295 Advanced Programming (Course ID: 004316)

Note: it is a condition of enrolment at RMIT that you accept responsibility for ensuring that you have completed the prerequisite/s and agree to concurrently enrol in co-requisite courses before enrolling in a course.

For information go to RMIT Course Requisites webpage.


Course Description

In this course you will apply the Object-Oriented Software Design Paradigm to the development of a complete software system. The primary focus of this course is the coverage of specific Object-Oriented Design Patterns from established pattern catalogues and a comparison of common Software Architectures. Additionally, Object-Oriented Software Engineering principles such as Refactoring and Design by Contract will be applied to form a continuous software quality process.


Objectives/Learning Outcomes/Capability Development

PLO 1: Knowledge - Apply a broad and coherent set of knowledge and skills for developing user-centric computing solutions for contemporary societal challenges.

PLO 2: Problem Solving - Apply systematic problem solving and decision-making methodologies to identify, design and implement computing solutions to real world problems, demonstrating the ability to work independently to self-manage processes and projects.

For more information on the program learning outcomes for your program, please see the program guide.


Upon successful completion of this course, you will be able to:

  1. Explain the differences between Structured Design and Object-Oriented design.
  2. Identify and mitigate the risks associated with the development of large-scale software projects.
  3. Apply the UML design notation as part of the OO development process.
  4. Explain and document diagrammatically specific Design Patterns from established pattern catalogues and apply them to novel design problems.
  5. Apply the process of Refactoring to continuously improve a software product.
  6. Apply Design by Contract to produce robust self-verifying software modules.


Overview of Learning Activities

You will be actively engaged in a range of learning activities such as lectorials, tutorials, practicals, laboratories, seminars, project work, class discussion, individual and group activities. Delivery may be face to face, online or a mix of both.

You are encouraged to be proactive and self-directed in your learning, asking questions of your lecturer and/or peers and seeking out information as required, especially from the numerous sources available through the RMIT library, and through links and material specific to this course that is available through myRMIT Studies Course.


Overview of Learning Resources

RMIT will provide you with resources and tools for learning in this course through myRMIT Studies Course.

There are services available to support your learning through the University Library. The Library provides guides on academic referencing and subject specialist help as well as a range of study support services. For further information, please visit the Library page on the RMIT University website and the myRMIT student portal.


Overview of Assessment

There are no hurdle requirements in this course.

Assessment Task 1: Timed Written Interview Simulation (Content of weeks 1-3, Individual)
Weighting 25%
This assessment supports CLOs 1, 5, 4

Assessment Task 2: Lab 1 (Content of weeks 3-6, practical, individual). You will have 3 tasks to complete. They are a mixture of working with code and answering questions related to the code. You will be using GitHub classrooms, and writing your answers in the markdown file provided.
Weighting 35%
This assessment supports CLOs 3, 5, 6

Assessment Task 3: Lab 2 (Content of Weeks 6-11, practical, individual). You will have 4 tasks to complete. They are a mixture of working with UML, code and answering questions related to the code. You will be using GitHub classrooms, and writing your answers in the markdown file provided.
Weighting 40%
This assessment supports CLOs 1, 2, 3, 4

If you have a long-term medical condition and/or disability it may be possible to negotiate to vary aspects of the learning or assessment methods. You can contact the program coordinator or Equitable Learning Services if you would like to find out more.