Presentation: "Patterns in Architecture"
Time: Wednesday 10:30 - 11:30
Location: Stanford
As stated in the Patterns of Software Architecture Book, “An architectural pattern expresses a fundamental structural organization schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them.” From this we can see that in comparison to Design Patterns, Architectural Patterns are considered larger in scale. From a software engineering perspective, they are the idea of describing architectural design ideas as prototypical examples and reusable pieces. Many different types of common architectural patterns arise from different types of systems (i.e. Pipes, Filters, Model-View-Controller, Layers, Blackboard, etc). Quite often, you will see a common grouping of common design and architectural patterns implemented in frameworks which can be used to more quickly specify and develop software programs.
It could be said that all software systems have some form of architecture, even if it is not explicitly described. This makes sense if you regard the architecture as existing in the system itself. This could of course be the architecture of a Big Ball of Mud, however some form of architecture exists in any program or software system. Thus, common Patterns of Architecture arise from different architectural styles. This talk will give an overview of some core Architectural Patterns. Additionally some common Patterns that arise from different Architectural Styles will be examined and described such as those seen in building Adaptive Systems, Service Oriented Architecture, and the like.