  Software architecture education remains challenging for instructors,
students, and software industry professionals. Several initiatives have been
proposed to mitigate the inherent challenges, including games, supporting
tools, collaborative courses, and hands-on projects. Case-based learning has
been introduced in software architecture, and its benefits are recognized.
However, choosing the right cases that cover the stated learning objectives and
developing learning activities to achieve high-order learning are also
challenging. The main goal of this paper is to present a case-based learning
approach that guides the development of learning objectives, the finding and
selection of real-world software architecture cases, and the design of
instructional activities. We applied our approach in software architecture
related courses during the past few years. The results show that it can
leverage the ways to adequately explore cases for educational purposes while
also motivating instructors and students to the software architecture
education.
