Software Design and Architecture

Subject SWEN90007 (2015)

Note: This is an archived Handbook entry from 2015.

Credit Points: 12.5
Level: 9 (Graduate/Postgraduate)
Dates & Locations:

This subject has the following teaching availabilities in 2015:

Semester 2, Parkville - Taught on campus.
Pre-teaching Period Start not applicable
Teaching Period 27-Jul-2015 to 25-Oct-2015
Assessment Period End 20-Nov-2015
Last date to Self-Enrol 07-Aug-2015
Census Date 31-Aug-2015
Last date to Withdraw without fail 25-Sep-2015

Timetable can be viewed here. For information about these dates, click here.
Time Commitment: Contact Hours: 36 hours, comprising of two 1-hour lectures and one 1-hour workshop per week
Total Time Commitment:

200 hours

Study Period Commencement:
Credit Points:
Semester 1, Semester 2


One of the following:

433-428 Software Processes and Management

Study Period Commencement:
Credit Points:
June, Semester 1, Semester 2
Not offered in 2015



Recommended Background Knowledge:

433-606 Modelling Complex Software Systems

Non Allowed Subjects:

Students cannot enrol in and gain credit for this subject and:

Core Participation Requirements:

For the purposes of considering request for Reasonable Adjustments under the Disability Standards for Education (Cwth 2005), and Student Support and Engagement Policy, academic requirements for this subject are articulated in the Subject Overview, Learning Outcomes, Assessment and Generic Skills sections of this entry.

It is University policy to take all reasonable steps to minimise the impact of disability upon academic study, and reasonable adjustments will be made to enhance a student's participation in the University's programs. Students who feel their disability may impact on meeting the requirements of this subject are encouraged to discuss this matter with a Faculty Student Adviser and Student Equity and Disability Support:


Dr Timothy Miller



Subject Overview:


One of the main challenges in developing enterprise-wide distributed systems is in choosing the right software architectures. In this subject students will study software architectures in depth and the principles, techniques and tools for creating, developing and evaluating software architectures


Topics covered in this subject will be drawn from: design styles and architectural patterns; design strategies; domain specific architectures; evaluation of designs; architectural design for non-functional requirements; and modelling architectures.

Learning Outcomes:


On completion of this subject the student is expected to:

  1. Analyse large scale and distributed systems and select appropriate architectures for them
  2. Evaluate architectures both qualitatively and quantitatively
  3. Make suitable trade-offs between different architectures
  • A multi-staged, pair-based project in which students propose features of a system with properties commonly found in large-scale distributed enterprise systems, engineer an architectural design for that systems, and implement and evaluate it using industry-standard enterprise tools and frameworks. The project will consist of four reports totalling about 2000 words, requiring approximately 35 – 40 hours of work (30%). The four stages of the project are due in weeks 3 (nominate features of the system), 7 (architectural design and implementation), 10 (re-factored design and implementation), and 12 (performance evaluation) respectively. ILOs 1, 2, and 3 will be addressed by the pair project
  • A three-hour end-of-semester written examination during the exam period (70%).

Hurdle requirement: To pass the subject, a student must obtain:

  • At least 50% overall
  • At least 50% (15/30) in project work; and
  • At least 50% (35/70) in the written examination.

Intended Learning Outcomes (ILOs) 1-3 will be addressed by both the pair project and the end-of-semester written exam.

Prescribed Texts:


Breadth Options:

This subject is not available as a breadth subject.

Fees Information: Subject EFTSL, Level, Discipline & Census Date
Generic Skills:

On completion of this subject students should have the following skills:

  • Ability to apply knowledge of science and engineering fundamentals
  • Ability to undertake problem identification, formulation, and solution
  • Ability to utilise a systems approach to complex problems and to design and operational performance
  • Proficiency in engineering design
  • Ability to manage information and documentation
  • Capacity for creativity and innovation
  • Ability to function effectively as an individual and in multidisciplinary and multicultural teams, as a team leader or manager as well as an effective team member.


The subject will be delivered through a combination of lectures and workshops. Students will also complete the architectural design, implementation, and evaluation of a system with features commonly found in large-scale distributed enterprise systems, which will reinforce the material covered in lectures.


A book of notes will be made available at the University of Melbourne bookshop at the start of the semester. The two key additional resources for the subject are:

  1. Fowler, Martin. Patterns of enterprise application architecture. Addison-Wesley Professional, 2003.
  2. Hohpe, Gregor, and Bobby Woolf. Enterprise integration patterns: Designing, building, and deploying messaging solutions. Addison-Wesley Professional, 2004.


Large-scale enterprise systems are present in almost every modern business. The ability to engineer and integrate such systems is a skill that has ever-increasing demand, and requires different techniques and principles than “programming in the large”.

There will be two lectures from industry-based lecturers who will describe their approaches to architectural design of large-scale distributed enterprise systems.

Related Course(s): Master of Philosophy - Engineering
Ph.D.- Engineering
Related Majors/Minors/Specialisations: B-ENG Software Engineering stream
Master of Engineering (Software with Business)
Master of Engineering (Software)

Download PDF version.