Article - Software Architecture


Background:

TBA

Stack Diagram:

Below is the stack diagram that I use when architecting software applications. Each of the stacks (read from left to right) should be well documented and communicated to each member of the development team.

Architecture Stack
Architecture Stack

Enterprise Stack:

This stack is the cornerstone for all architects as it describes what your software applications should Interop with, how that Interop will communicate, what technologies you will use and how you will make your applications modular; I.E., Services, class libraries, shared components, etc.

Interop:

How does your application connect with other systems? You should finding out the dependencies between your applications and all Interop clients; Java, PHP, legacy COBOL systems, etc.

Communication:

Once you know what you application dependencies and how each of these dependent systems Interop you can decided on the best communication protocols (WCF, web services, remoting, sockets, XML files, etc)

Modularization:

Use this as a rule set for how you will make your applications modular. How will you decide if a set of reusable functionality will be a Service and how will that service be governed? How will you decide what libraries will be commonly shared amongst your applications

Policy Stack:

The policy stack describes in detail how each of the high level functions common to all applications will be governed.

Data Access Policy

TBA

Logging Policy

TBA

Monitoring Policy

TBA

Exception Policy

TBA

Security Policy

TBA

Caching Policy

TBA

Validation Policy

TBA