Skip to Content

Courses

Print or email this page: Print this page Email a Friend

 

Software Architectures and Design

Unit Code:HIT3310



Credit Points

Duration

Contact Hours

Campus

Prerequisite

Corequisite

12.5 Credit Points

1 Semester or equivalent

36 hours

Hawthorn, Sarawak

HIT2308 Software Development Practices or HIT1031 Introduction to Software Engineering

Nil

Related Course/s:

A unit of study in the Bachelor of Science (Computer Science and Software Engineering), Bachelor of Science (Professional Software Development), Bachelor of Engineering (Telecommunication and Network Engineering), Bachelor of Science (Information Technology) and Bachelor of Engineering (Telecommunication and Network Engineering)/ Bachelor of Science (Computer Science and Software Engineering)

Aims & Objectives:

The unit aims to facilitate an in-depth study of state-of-the-art approaches and techniques for system design with a special focus on the relationship between non-functional requirements and software architectures.

Learning Outcomes
Upon successful completion of this unit students will be able to:
  • create and identify abstractions at suitable levels for given user goals and system constraints and justify their rationale
  • Given a set of user goals and priorities:
    - identify constraints and quality goals of the software system under consideration
    - derive a matching requirements specification, and
    - evaluate the requirements specification with regards to consistency, completeness, verifiability, and feasibility
  • Given a system's architecture:
    - identify common patterns used within its structure
    - determine the architecture’s benefits and limitations, and
    - valuate the architecture in terms of the user goals and priorities
  • Given a system's specification:
    - make architectural decisions, 
    - use common patterns to produce an architectural structure, 
    - appropriately document their decisions and structure, and 
    - describe the benefits and limitations of their structure
  • Students will be able to communicate their architectural decisions and structures using a contemporary modelling language.

Teaching Methods:

Lecture (24 hrs), Tutorial (12 hrs)

Assessment:

Peer and self assessment,  Performance reviews

Content:

  • Specifications: 
    - User goals
    - Constraints
    - Priorities
    - Validation
    - Analysis
  • Patterns and Abstractions: 
    - Abstractions in Software
    - Levels of abstraction
    - Common patterns (structural and behavioural)
    - Pattern recognition and identification
    - Pattern Systems
  • Software Architectures: 
    - Decisions vs. structures 
    - Architectural patterns
    - Documentation and Communication
  • Architectural Styles
    - Message-driven architectures 
    - Client-server architectures 
    - Layered architectures
    - Service Oriented architectures

References:

Len Bass, Paul Clements, and Rick Kazman, Software Architecture in Practice (2nd Edition), Addison-Wesley, 2003
David Budgen, Software Design (2nd Edition), Addison-Wesley, 2003
Eric Evans, Domain-Driven Design, Addison-Wesley, 2004
Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns,Addison-Wesley, 1995
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad and Michael Stal, Pattern-Oriented Software Architecture: A System of Patterns, Wiley, May 1996 
Ian Sommerville, Software Engineering (8th Edition), Addison-Wesley, August 2007
Craig Larman, Applying UML and Patterns (3rd Edition), Prentice Hall, 2005
Soren Lauesen, Software Requirements: Styles and Techniques, Addison-Wesley, 2002
Rebecca Wirfs-Brock and Alan McKean, Object Design, Addison-Wesley, 2003
Jeff Garland and Richard Anthony, Large-Scale Software Architecture, Wiley, 2003.