Threshold Concepts and Skills in Software Architecture: Instructors' Perspectives
Context: Software Architecture is an important subject and core course in the Software Engineering degree that teaches multiple co-mingled concepts and skills. The academic community believes that students find the course difficult to grasp and master. However, to revise the course curriculum, identification of threshold concepts and skills can help prioritize topics ensuring alignment with course learning objectives.
Objective: The aim of the study was to identify threshold concepts and skills in Software Architecture to help instructors focus on redesigning the curriculum and improving didactics.
Method: We applied the Delphi technique to identify threshold concepts and skills from instructors with teaching experience in university-level Software Architecture courses.
Results: We identified eleven threshold concepts and nine threshold skills with more than 80% agreement among the participants. Six out of twenty-one threshold concepts and skills achieved 100% agreement from participants indicating high consensus. Furthermore, all participants agreed that applying skills to design Software Architecture is more difficult than understanding the underlying theoretical concepts.
Conclusion: The Software Architecture course is demanding, and the industry expects graduating students are prepared to design solutions for complex systems. The identified threshold concepts and skills can help academics to redesign Software Architecture courses, focus on hard to grasp topics, and offer support for skills that are difficult to master. Often theoretical concepts are considered more important than the skills required to apply them in practice. However, instructors agreed that students struggle to apply theoretical concepts in designing solutions. Thus, skills development should be equally emphasized.