As part of the App Arch Guidance project, we've created an organizing frame to help think about application architecture:
Anatomy of the App Arch Meta Frame
You can see from the figure, we have a few parts that work together:
- Scenarios - You can't evaluate an architecture in a vacuum. Scenarios are the backdrop and the context.
- Quality Attributes / Qualities - This is your classic set of reliability, security, performance, flexibility, maintainability ... etc.
- Requirements / Constraints - These are the user, business, and technical rules that shape your architecture.
- App Types - This is your overall shape. This includes Web app, Rich Client, Mobile, ... etc. While the line may blur, there's important distinctions among application types.
- Architecture Styles - This includes architectural patterns such as N-tier, client-server, SOA, ... etc. You can see shifts in styles over the years such as from object-orientation to message-orientation.
- Architecture Frame - These are the architectural "hot spots." This is where your key engineering decisions happen.
How We Use the Frame
We use the frame to explore and gain insight into different aspects of application architecture. App arch is a big space. We'll be using the frame to catalog and organize our various principles, patterns, practices, and assets.
Keep in mind that this is a meta-frame (so it's a frame of frames.) We'll have a collection of frames that shine the spotlight on more focused areas.
What do you think? ...