Teaching Software Architecture in Industrial and Academic Contexts: Similarities and Differences