2 Oliveira, B. R. N. and Nakagawa, E. Y.
desired skills of architects are mostly developed or gained through experience
over many years designing software architectures [3,5,8]. Otherwise, instructors
have usually a small amount of time during courses to address software architec-
ture topics that students further face in industry and also to teach those topics
in an adequate way that ease the path throughout their career. Other reasons
that make teaching software architecture too difficult are deeply discussed in
[4]. Without appropriate directions for teaching software architecture, designing
suitable architectures for particular problems becomes challenging for software
architects.
To overcome the inherent and challenging nature of teaching software ar-
chitecture, many initiatives were already proposed, as summarized in [10]. This
study reported several initiatives, including types of experience in software ar-
chitecture education, software architecture topics considered relevant for the
learning process, categories of learning objectives, and educational approaches.
For instance, [8] proposed a card game to support the learning process regarding
architectural decision making. Similarly, [5] developed a card game that leverages
the learning of ADD (Attribute-Driven Development). A project-based learning
approach was designed and applied to teach architectural design process in agile
projects [7]. Case-based learning has also been explored in different occasions
and ways to achieve simple to high-order learning objectives, including in soft-
ware architecture [6,11,12,13]. Whereas the use of cases for learning purposes has
benefits [14,15,16], the adoption of a case-based approach is not an easy task.
Instructors have had diverse inherent difficulties, such as the finding, selection,
and development of cases, design of instructional material, design of in-class ac-
tivities based on cases, and assurance that the learning objectives are achieved
appropriately, as also previously presented in [17]. Hence, the research question
that motivated the conduction of this work was: How is it possible to adequately
use case-based learning for software architecture education?
The main goal of this paper is to present CBSAE, a case-based learning
approach that explores the use of cases for software architecture education. In
short, CBSAE encompasses the definition of learning objectives, selection of cases
(i.e., finding and assessment of cases as well as conduction of case studies), and
design of instructional material and activities. For that, we used Design Science
as a research method and conducted three evaluations to verify the relevance of
adopting cases and the viability of our approach. As a result, we observe that
CBSAE is useful for leveraging software architecture education.
The remainder of this paper is organized as follows. Section 2 presents
CBSAE. Section 3 presents results of the preliminary evaluations, whereas
Section 4 discusses the results and future work, and Section 5 presents the
final remarks.
2 CBSAE: A Case-Based Learning Approach
CBSAE is composed of three main activities, as shown in Figure 1.1. Defini-
tion of Topics and Learning Objectives aims at establishing the learning