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 2025 is available in the Archives.
Credit points: 6 cp
Subject level:
Undergraduate
Result type: Grade and marksRequisite(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.