1 x 120-minute lecture weekly
1 x 120-minute workshop weekly
2 x 1-hour project works weekly
Enrolment not permitted
ENGR2792 has been successfully completed
Assumed knowledge
Computer skills such as acquired in ENGR8731 Microprocessors GE. Students without the assumed knowledge should check with the topic coordinator as to the background required, as there will be no additional assistance to compensate for missing background.
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. Understand the role of ethics in the software engineering process and as software engineers in general
  8. Conduct independent additional studies on issues related to software design and present findings in a written research report