IFQ563 Object Oriented Design


To view more information for this unit, select Unit Outline from the list below. Please note the teaching period for which the Unit Outline is relevant.


Unit Outline: Session-3A 2024, QUT Online, Online

Unit code:IFQ563
Credit points:6
Pre-requisite:IFN501 or (IFN555 and IFN556) or (IFQ555 and IFQ556) or Admission to IN15 or IQ15 or IN16 or IQ16 or IN17
Equivalent:IFN563
Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of the teaching period.

Overview

Builds upon the concepts that you have learned in IFQ556, introducing methods of Object Oriented Design which will allow you to solve more complex, real world problems. In this unit you will learn how to identify potential objects and classes by examining the real-world context that the programming is modelling. By basing our software design on entities that exist in the real world, we maximise the chances that our software architecture will age and evolve gracefully - i.e. we won’t need to restructure our application completely as the requirements change. This is because our choice of objects is stable - the entities that an organisation needs to deal with (for example Customers, Invoices, Vehicles and Projects) will not change completely overnight. You will also learn about and apply several standard software design principles and patterns. Finally, you will learn how such designs are professionally communicated and used as part of object-oriented software design processes.

Learning Outcomes

On successful completion of this unit you will be able to:

  1. Explain object-oriented design and its benefits in building maintainable and extensible software
  2. Model real-world problems using object oriented abstractions
  3. Communicate object-orientated designs professionally to peers
  4. Create maintainable and extensible software using standard object oriented design principles and patterns

Content

  • Object-oriented design methodology
  • Design principles (SOLID, DRY, KISS, YAGNI)
  • Design patterns
  • Class diagrams and object diagrams.
  • Understand how object-oriented design supports real-world software development.

Learning Approaches

This unit will use a blended approach to teaching making use of online resources, lectures, practical laboratory experiments, and your own individual practice. The online resources will include readings and videos from a variety of sources to help explain complex topics. You will read the expected materials and attempt weekly exercises. Each week you will complete design and programming exercises so that you can get rapid weekly feedback regarding your progress. The term-long project is split into two parts, the first creating a preliminary object-oriented design for a substantial real-world problem and the second allowing you to implement this design and discover how it copes with changes to requirements.

Feedback on Learning and Assessment

Feedback in this unit is provided in the following ways:

  • You can ask the teaching staff for advice and assistance during the teaching sessions.
  • You will receive formative peer and academic feedback on your practical exercises conducted in the unit.
  • You will receive written feedback on submitted assessment items.

Assessment

Overview

The assessment is designed to allow you to demonstrate your comprehension of the core object-oriented design concepts covered in this unit.

Unit Grading Scheme

7- point scale

Assessment Tasks

Assessment: Problem Solving Task

Preliminary design exercises.

This is an assignment for the purposes of an extension.

Weight: 30
Length: Approximately 3-6 pages of design diagrams
Individual/Group: Individual
Due (indicative): Week 3
Related Unit learning outcomes: 2, 3

Assessment: Design Project

Create and document an object-oriented design and implement it using C# for a larger real-world motivated problem.

This is an assignment for the purposes of an extension.

Weight: 70
Length: 5-10 page report plus approximately 500 lines of code.
Individual/Group: Individual
Due (indicative): Assignment Week
Related Unit learning outcomes: 1, 3, 4

Academic Integrity

Students are expected to engage in learning and assessment at QUT with honesty, transparency and fairness. Maintaining academic integrity means upholding these principles and demonstrating valuable professional capabilities based on ethical foundations.

Failure to maintain academic integrity can take many forms. It includes cheating in examinations, plagiarism, self-plagiarism, collusion, and submitting an assessment item completed by another person (e.g. contract cheating). It can also include providing your assessment to another entity, such as to a person or website.

You are encouraged to make use of QUT’s learning support services, resources and tools to assure the academic integrity of your assessment. This includes the use of text matching software that may be available to assist with self-assessing your academic integrity as part of the assessment submission process.

Further details of QUT’s approach to academic integrity are outlined in the Academic integrity policy and the Student Code of Conduct. Breaching QUT’s Academic integrity policy is regarded as student misconduct and can lead to the imposition of penalties ranging from a grade reduction to exclusion from QUT.

Resources

  • There will be no prescribed textbook (there may be some optional reference books)
  • Microsoft Visual Studio Software (available free of charge to ICT students)
  • Link to other online resources will also be provided.

Risk Assessment Statement

There are no unusual health or safety risks associated with this unit.