Learning the lessons of architecture patterns

  • Authors:
  • Neil B. Harrison;Alistair Cockburn

  • Affiliations:
  • Utah Valley State College, Orem, UT;Humans and Technology, Salt Lake City, UT

  • Venue:
  • Journal of Computing Sciences in Colleges - Papers of the Fourteenth Annual CCSC Midwestern Conference and Papers of the Sixteenth Annual CCSC Rocky Mountain Conference
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Architecture patterns are established approaches to software architecture. They describe a system structure that meets the needs of an application to be designed in a given domain. Architecture patterns are commonly used in industry, and therefore, software engineering students should be familiar with architecture patterns and how to use them. In our second semester software engineering course, we taught architecture patterns by giving students experience in using them. We gave the students a programming assignment, and required them to implement it four different times, following four different architecture patterns. The first pattern was procedural design, the second was object-oriented design, the third was the Pipes and Filters pattern, and the fourth was the Blackboard pattern. The students were required to write a short essay about their experience using each of the patterns. We intended to teach them three things through this exercise. First, they should learn what software architecture is. Second, they should what an architecture pattern is. Third, they should learn a few architecture patterns, and that different patterns have different strengths and applications. The results were that the students did gain a deeper understanding of software architecture. They learned about architecture patterns, and through painful experience, learned the value of selecting an appropriate architecture for the task at hand. We find this to be a useful way to teach the basics of architecture patterns. A similar exercise might be used more extensively in a full course on software architecture. In this paper, we describe architecture patterns, and the four used in the exercise. We describe the exercise and the results, and what the students learned.