Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Multi-paradigm design for C++
Software Architecture in Practice
Software Architecture in Practice
Hi-index | 0.00 |
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.