A Collaborative Approach to Teaching Software Architecture