2007Journal of computing sciences in collegesRequires access

Learning the lessons of architecture patterns

Neil B. Harrison, Alistair Cockburn

Open publisher page 0 citations

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.

About this research paper

What this paper is about

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.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available 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.

Key concepts: Computer science, Architecture, Reference architecture, Software architecture description, Space-based architecture, Applications architecture, Software architecture, Database-centric architecture

Related papers

Back to paper searchBrowse research topicsOriginal source
Learning the lessons of architecture patterns — Research Paper | ScholarLens