This subject uses a problem-based learning approach to the task of analysing and designing an architecturally complex software system. The subject is not limited to the set topics or material taught in class. Problem-based learning requires students to participate and take the initiative. It is up to the students to work out what they need to learn in order to solve the problem.
Skills that are likely to be gained include: use of architectural views and strategies; understanding of architecture in terms of components, connectors, constraints and behaviour; application of formal architecture design languages (ADLs); architectural design patterns and frameworks; assessment of software architecture performance, reliability, openness, modularity; application of formal techniques; and use of COTS, middleware solutions and interfaces in software architecture.
Assessment: In this subject, students deal with the major phase of the project life cycle, the architecture and high-level design phase. To make the task more manageable, the project is divided into three parts (three sets of assignments). Assignment 1 is the draft of the deliverable, which allows students to prepare for the main deliverable. Assignment 2 is the main project deliverable. In Assignment 3 students are required to review the final deliverable.
Each student works in a group of six to eight people. Each group has two teams of three to four people focusing on one component of the final deliverable.
The final exam is designed to assess students' individual skills and knowledge of the discipline.
Autumn semester, City campus
Spring semester, City campus