Software Architecture Pattern Categories
There are several commonly accepted categories for architectural patterns. These are organized based on the problems the patterns solve. The categories relate closely to architectural "views" described in the the Rational Unified Process (RUP).
These pattern categories are broken down as follows:
- Structural
- Organizing software into manageable development units
- Distribution
- Distributing processing across multiple computing resources
- Concurrency
- Managing parallel processing
- Persistency
- Storing data in a durable format such as files and databases
- Presentation
- Dealing with user interfaces
Reference Architectures, Benefits and Drawbacks
A reference architecture is a collection of patterns that form a system. These patterns should be proven to work together. Reference architectures are generally purpose built for a particular business focus within a technical context. For instance, a company might have a reference architecture for Java based CRUD web applications and another for .NET desktop applications.
Benefits:
- Saves developers time in determining appropriate strategies
- Less risk as collection of patterns are proven to work
- Provides a centralized baseline to adopt new technologies
Drawbacks:
- Offers less flexibility as approach is predetermined
- Must be maintained and modified for observed weaknesses
- Can hinder teams if they mistakenly apply the architecture for the wrong purpose
Notes on Real Life Architecture Patterns
Resources