Adapting Cooperative Learning to Teach Software
Architecture in Multiple-Role Teams
Steve Chenoweth, Mark Ardis and Cheryl Dugas
2
Outline
• Challenges teaching software architecture
• Cooperative learning• Experience at Rose-Hulman and
RIT
3
Architect in the Middle
Maintainer Easy toMaintain
User Easy toUse
Developer Easy toDevelop
Customer Cheap toBuild
Architect
4
Cooperative Learning
• Small teams of students• Positive interdependence• Face-to-face interaction• Individual accountability and
personal responsibility• Interpersonal and small-group
skills• Group processing
5
Course at Rose-Hulman
• Junior-level course in Software Architecture and Design for BSSE
• Students:– Invented projects– Designed architecture– Implemented skeleton of system
6
Small Teams
Sally SarahSam
Alan Alex Alice
Mark MaxMaryMaggie
Ben BethBertBecky
7
Projects - Teams of Teams
P1:
P2:
P3:
P4:
Customer
Customer
Customer
Customer
Architect
Architect
Architect
Architect
Developer
Developer
Developer
Developer
8
Meetings - 1st 20 min
Customer
Ben
Customer
Beth
Customer
Becky
Architect
Mark
Architect
Mary
Architect
Max
Architect
Sam
Architect
Sally
Architect
Sarah
Customer
Alan
Customer
Alex
Customer
Alice
9
Meetings - 2nd 20 min
Architect
Ben
Architect
Beth
Architect
Becky
Customer
Mark
Customer
Mary
Customer
Max
Customer
Sam
Customer
Sally
Customer
Sarah
Architect
Alan
Architect
Alex
Architect
Alice
10
Course at RIT
• Senior-level course in Software Architecture for BSSE
• Students:– Invented projects– Designed architecture
• Special meeting rooms used
11
RIT Meetings - 1st 15 MinutesRoom 1 Room 2
Customer
Ben
Customer
BethDeveloper
Bert
Developer
Becky
Architect
Mark
Architect
Mary
Architect
Max
Architect
Maggie
12
RIT Meetings - 2nd 15 MinutesRoom 1 Room 2
Architect
Ben
Architect
Beth Architect
Bert
Architect
Becky
Customer
Mark
Customer
Mary
Developer
Max
Developer
Maggie
13
RIT Meetings - 3rd 15 MinutesRoom 1 Room 2
Architect
Ben
Architect
Beth
Architect
Bert
Architect
Becky
Architect
Mark
Architect
Mary
Architect
Max
Architect
Maggie
14
Results
• Role playing is essential for software architecture courses
• Cooperative learning is effective at individual and team levels
• Participation on multiple projects is important
15
Slides Available
http://www.se.rit.edu/~ardis/pubs.html