University of Technology Sydney

48433 Software Architecture

Warning: The information on this page is indicative. The subject outline for a particular session, location and mode of offering is the authoritative source of all information about the subject for that offering. Required texts, recommended texts and references in particular are likely to change. Students will be provided with a subject outline once they enrol in the subject.

Subject handbook information prior to 2024 is available in the Archives.

UTS: Engineering: Computer Science
Credit points: 6 cp

Subject level:

Undergraduate

Result type: Grade and marks

Requisite(s): 48440 Software Engineering Practice OR 31469 Object-oriented Design OR 31279 Software Development and Processes OR 31244 Applications Programming OR 48024 Programming 2
Anti-requisite(s): 31278 Software Architecture

Recommended studies:

Students are expected to have knowledge of object-oriented design and unified modelling language (UML) – this can be demonstrated through completion of any of the prerequisite subjects or the Foundations of Programming: Object-Oriented Design course available on lynda.com through the UTS: Library.

A quiz is provided to check mastery of the expected prerequisite knowledge. Students are advised to attempt this quiz in the first few weeks of the session.

Description

This subject teaches students current industry practices to design, develop and evaluate software architecture meeting predefined quality characteristics of functionality (suitability, security), usability (operability), efficiency (time behaviour, resource utilisation) and maintainability (changeability, testability). Concepts, theories and technologies underlying the methods and techniques are introduced and explained as required. Students apply the industry practices that they have learned to develop an architecture of a business system.

Subject learning objectives (SLOs)

Upon successful completion of this subject students should be able to:

1. Describe the factors that affect the architectural context and requirements, including stakeholders and their interests, architectural qualities, business requirements and usage scenarios. (B.1)
2. Develop and refine multiple views of a software system architecture, based on the conceptual, execution and implementation architecture. (D.1)
3. Understand the key issues in choosing and implementing architectural patterns, including performance, testing, security, usability, maintainability and reliability qualities. (D.1)
4. Reason about alternative architectural designs to satisfy a system's quality attributes. (C.1)
5. Develop a complete software architecture for a proposed solution to a realistic industry problem. (C.1)

Course intended learning outcomes (CILOs)

This subject also contributes specifically to the development of the following Course Intended Learning Outcomes (CILOs):

  • Socially Responsible: FEIT graduates identify, engage, interpret and analyse stakeholder needs and cultural perspectives, establish priorities and goals, and identify constraints, uncertainties and risks (social, ethical, cultural, legislative, environmental, economics etc.) to define the system requirements. (B.1)
  • Design Oriented: FEIT graduates apply problem solving, design and decision-making methodologies to develop components, systems and processes to meet specified requirements. (C.1)
  • Technically Proficient: FEIT graduates apply abstraction, mathematics and discipline fundamentals, software, tools and techniques to evaluate, implement and operate systems. (D.1)

Contribution to the development of graduate attributes

Engineers Australia Stage 1 Competencies

This subject contributes to the development of the following Engineers Australia Stage 1 Competencies:

  • 1.3. In-depth understanding of specialist bodies of knowledge within the engineering discipline.
  • 1.5. Knowledge of engineering design practice and contextual factors impacting the engineering discipline.
  • 2.3. Application of systematic engineering synthesis and design processes.

Teaching and learning strategies

This subject is taught through facilitated self-learning. All lectures and related material are available online and may be viewed at the student's convenience. Quizzes are provided to enable the student test their understanding and application of knowledge about software architecture.

Students are expected to have studied the tutorial topics in preparation for tutorials. During the first half of the semester the tutorials will demonstrate the topic through application to a problem, followed by student evaluation of the application. Then students will perform an exercise and evaluate each other's work in order to develop their skills in collegial review and ability to identify where an architecture might fail.

During the second half of the semester students will be working on their major assignment. During tutorials each team will present to another team the architecture stage they have developed. The reviewing team will evaluate the presented architecture stage to acknowledge what has been done well, and where the proposed might fail. The review feedback will be communicated to the presenting team as soon as possible after the presentation.

Content (topics)

  • Architecture in context
  • Conceptual, implementation and execution architectures
  • Architectural quality attributes
  • Architectural patterns and styles
  • Architecture evaluation
  • Documenting architectures
  • Software architecture for specific needs, for example
    • Software architecture for product lines
    • Software architecture for real time systems
    • Software architecture for web based systems

Assessment

Assessment task 1: Required topics quiz

Intent:

This assessment task encourages students to engage and learn the subject progressively. To engage in tutorial discussions effectively students need to demonstrate their understanding of the topic by answering a quiz on the relevant topic.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2 and 4

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

B.1, C.1 and D.1

Type: Quiz/test
Groupwork: Individual
Weight: 20%
Criteria:

Demonstrate comprehension of the topic.

Assessment task 2: Elective topic quiz

Intent:

This assessment task encourages students to study, understand and apply the means of developing specialised software architectures.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2, 3 and 4

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

B.1, C.1 and D.1

Type: Quiz/test
Groupwork: Individual
Weight: 15%
Criteria:

Knowledge and understanding of the selected topic

Assessment task 3: Team project

Intent:

Work in a team to develop an architecture for a specific system in a given context.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2, 3, 4 and 5

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

B.1, C.1 and D.1

Type: Project
Groupwork: Group, group and individually assessed
Weight: 45%
Criteria:

The architectural context reflects an understanding of the problem and its stakeholders.

The developed architecture provides the required functionality and meets its quality objectives.

Rationales for architectural decisions and preferred alternatives are credible.

An individual reflective journal provides the weekly entries throughout the assignment to record your reflection on the learning journey.

Assessment task 4: Peer review

Intent:

Develop and practice the professional skill of reviewing and critiquing the work of peers.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

4

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

C.1

Type: Laboratory/practical
Groupwork: Group, individually assessed
Weight: 20%
Criteria:

Observations and suggestions are well informed and impartial.

Observations and suggestions are intended to improve the work.

Minimum requirements

In order to pass the subject, a student must achieve an overall mark of 50% or more.

Recommended texts

Any of the following texts are recommended for this subject:

Len Bass, Paul Clements, Rick Kazman (2021) Software Architecture in Practice, 4th Edition.

Bass, L., Clements, P. and Kazman, R. (2003), Software architecture in practice, Addison-Wesley, 2nd ed or 3rd ed

Gorton, I. (2006), Essential Software Architecture, Springer, Berlin

Reekie, J. and McAdam, R. (2006), A Software Architecture Primer, Angophora Press, Sydney

References

The following books are all in the UTS library. You may wish to use these to further your knowledge of the field.

Bosch, J. (2000), Design and use of software architectures : adopting and evolving a product-line approach, Harlow, Addison-Wesley

A nice introduction to the “industrial" view of software architecture.

Bass, L., Clements, P. and Kazman, R. (2003), Software architecture in practice, Addison-Wesley, 2nd ed.

Useful supplementary reading for students that want to read a lot.

Hofmeister, C., Nord, R. and Soni, D. (2000), Applied software architecture, Addison- Wesley, Reading, Mass

Interesting look at factors and system context.

Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M. (1996), Pattern-Oriented Software Architecture: A system of patterns, John Wiley & Sons, New York

Contains a good collection of the basic architectural patterns.

Brown, W. J., Malveau, R. C. and Mowbray, T. J. (1998), AntiPatterns : refactoring software, architectures, and projects in crisis, Wiley, New York

Excellent. Contains patterns at all levels, not just architecture.

Clements, P., Bachmann, F., Bass, L. and Garlan, D. (2002), Documenting software architecture: views and beyond, Addison-Wesley, Boston

A slightly different set of view types than in this subject.

Gorton, I. (2006), Essential Software Architecture, Springer, Berlin

Good book from a local Australian author.

Other resources

Lectures

All lectures have been recorded and are available in video format through Canvas. Students enrolled in this subject are expected review these lectures at their convenience.

Announcements during the semester will be posted on Canvas. All students are automatically registered with Canvas. It is your responsibility to check Canvas on a regular basis. Any queries will be replied to by the subject coordinator within the week. Students are free to reply to other students' questions or comments. Please show your fellow students and staff an appropriate level of courtesy when corresponding.

Courseware
Tutorial exercises and study modules for each foundation module 1 through 6 will be posted to Canvas during the semester.

Information on writing style (including ‘writing better English’), developing an argument and a referencing guide can be found at http://www.lib.uts.edu.au/information/writing_skills

Standards

ISO 42000 series of standards for software and systems architecture describe current best practice. These do not specify a method for developing an architecture but do specify the requirements for an architecture description. A standard for architecture evaluation is also being developed.