1 x 120-minute lecture weekly
1 x 120-minute workshop weekly
2 x 1-hour project works weekly
Enrolment not permitted
ENGR8792 has been successfully completed
Assumed knowledge
Fundamental knowledge of information systems and programming.
Topic description
This topic focuses on the design phase of the software development lifecycle and the associated testing commensurate with this phase. Basic concepts of design, testing, and enabling techniques will be reviewed. The design process will be covered with an emphasis on the use of UML (Unified Modelling Language) as well as design patterns and architectural models. Approaches to ensuring quality in design will be emphasised as well as the need for systematic documentation.
Educational aims
This topic introduces methods to extend students' understanding of the process, techniques and methods of software development with a particular emphasis on the object oriented paradigm; the nature of and the role of metrics; architectural design; user interfaces; and design patterns in software development; the processes, techniques and methods involved in a systematic engineering approach to the testing of conceptual designs; and to further increase the student's understanding of the nature of and the role of structured documentation, notation - particularly UML (the Unified Modelling Language) - and quality assurance.
Expected learning outcomes
At the completion of the topic, students are expected to be able to:

  1. Describe the key features of the object-oriented paradigm
  2. Discuss the advantages and disadvantages of the object-oriented approach for software development
  3. Describe how the approach impacts on the nature of the development process
  4. Specify and perform the activities involved in object-oriented analysis and design (OOAD)
  5. Describe the basics of UML (the Unified Modelling Language) and apply these to OOAD
  6. Describe the nature of design patterns and their contribution to design solutions
  7. Have a clear understanding of the role of ethics in the software engineering process and as software engineers in general