For me the key thing is to understand who the document is for: when would they use it? Why would they use it? Too many times it simply becomes a form-filling exercise for ticking boxes on some project plan.

I’m assuming you mean a software architecture document or solution architecture document – and not an enterprise strategy or something.

Remember too that there’re two things a typical architecture document will do:

Providing input into decisions to be made elsewhere: “this is our current thinking – would someone please decide whether to spend the big $$ for a DR site or not, etc”.

Recording decisions: particularly justifying your decisions.

In terms of both structure and key information to capture I’d recommend looking at different views of the system: logical, physical, data, security, and so on. A good starting point is the 4+1 model.

[Update:] One of the uses of such an artefact is Traceability – from requirements and design artefacts through to code artefacts; and while that might sound Waterfall orientated it actually applies (and works) for Agile based projects as well.

[Update:] Artefact doesn’t mean “Word Document”. The ToC example below is a supporting document / document based version of the system modelled in a UML modelling tool (SparxEA) which includes requirements as well. Sometimes you “have to” use a document, but I try to be as sparing as possible.

[Update:] The other good thing about a nice clearly laid out document is that it’s easier for new blood to get some understanding of what they are inheriting – especially if previous staff are not available.

4+1 is a view model designed by Philippe Kruchten for “describing the architecture of software-intensive systems, based on the use of multiple, concurrent views”.[1] The views are used to describe the system from the viewpoint of different stakeholders, such as end-users, developers and project managers. The four views of the model are logical, development, process and physical view. In addition selected use cases or scenarios are used to illustrate the architecture serving as the ‘plus one’ view. Hence the model contains 4+1 views:[1]

Development view: The development view illustrates a system from a programmer’s perspective and is concerned with software management. This view is also known as the implementation view. It uses the UML Component diagram to describe system components. UML Diagrams used to represent the development view include the Package diagram.[2]

Logical view: The logical view is concerned with the functionality that the system provides to end-users. UML diagrams used to represent the logical view include, class diagrams, and state diagrams.[2]

Physical view: The physical view depicts the system from a system engineer’s point of view. It is concerned with the topology of software components on the physical layer as well as the physical connections between these components. This view is also known as the deployment view. UML diagrams used to represent the physical view include the deployment diagram.[2]

Process view: The process view deals with the dynamic aspects of the system, explains the system processes and how they communicate, and focuses on the runtime behavior of the system. The process view addresses concurrency, distribution, integrators, performance, and scalability, etc. UML diagrams to represent process view include the activity diagram.[2]

Scenarios: The description of an architecture is illustrated using a small set of use cases, or scenarios, which become a fifth view. The scenarios describe sequences of interactions between objects and between processes. They are used to identify architectural elements and to illustrate and validate the architecture design. They also serve as a starting point for tests of an architecture prototype. This view is also known as the use case view.

The 4+1 view model is generic and is not restricted to any notation, tool or design method. Quoting Kruchten,

The “4+1” view model is rather “generic”: other notations and tools can be used, other design methods can be used, especially for the logical and process decompositions, but we have indicated the ones we have used with success.