I agree with the feeling of Asaphos; fortunately, it is not possible to make useful / practical architectural documentation - just not accepted.
The main thing for me is to understand for whom the document is intended: when will they use it? Why would they use this? Too many times, it just becomes an exercise to fill out a ticking box form on some project plan.
I assume that you are referring to a software architecture document or a solution architecture document, not an enterprise strategy or something like that.
Remember also that there are two things that a typical architecture document will do:
- Contributing to decisions that need to be made elsewhere: "this is our current thinking - someone, please, decide whether to spend big $$ on a DR site or not, etc."
- Registration decisions: especially the rationale for your decisions.
From the point of view of both the structure and the key information for capture, I would recommend looking at the various representations of the system: logical, physical, data, security, etc. A good starting point is the 4 + 1 model .
[Update:] One of the uses of the artifact is Traceability - from requirements and design of artifacts to code artifacts; and although it may seem that Waterfall is oriented, it actually applies (and works) to Agile-based projects.
[Update:] Artifact does not mean "Word Document". The following is an example of ToC - this is a supporting document / document-based version modeled in the UML Modeling Tool (SparxEA), which also includes requirements. Sometimes you βshouldβ use a document, but I try to be as economical as possible.
[Update:] Another good thing about a good clear document is that for new blood it is easier to understand what they inherit, especially if the previous staff is not available.
The Carnegie Mellon Institute of Software Engineering has a ton of information, and there is a link to a template on the page below: http://www.sei.cmu.edu/architecture/tools/viewsandbeyond/
Ill, that it is very comprehensive - not for the faint of heart (or not enough time).
[Update:] Finally, here is an example of content from a recent project. Despite the fact that in many sections the document is not too long (only about 35 pages, and most of this is diagrams).
Table of Contents 1 Documentation Roadmap 1.1 Document & Version Information 1.1.1 Document Contributors 1.1.2 Referenced Documents 1.1.3 Reviewers 1.1.4 Document Signoff 1.2 Glossary of Terms 1.3 Purpose and Scope of the SAD 1.4 Stakeholder Representation 2 Project Background 2.1 Problem Background 2.2 Solution Overview and Project Phases 2.3 Solution Context 2.3.1 Solution Usage 2.4 Architectural Goals 2.5 Constraints 2.6 Considerations 3 Register of Issues and Decisions 3.1 Issues Register 3.2 Decisions Register 4 Overview of Key Views 5 Functional View 6 Logical Layers View 7 Physical View 7.1 Mapping of Logical and Physical Components 7.2 Mapping of Logical Layers and Bespoke Packages 7.3 Bespoke Physical Components 7.4 Common 7.5 Business Logic 7.6 Data Provider Interfaces 7.7 MS SQL Data Provider 7.8 Data Repository 7.9 External Data Services β Time Sheeting 7.10 External Data Services - DLR 7.11 UI - Flash 7.12 FlourineFX 7.13 UI - ASP.NET 7.14 Model 7.15 Login 7.16 Mapping To Physical Components 7.17 Solution Dependencies 8 Solution Views 8.1 Data View 23 8.1.1 Conceptual Data Model 8.1.2 Physical Data Model 8.2 Technology View 8.2.1 Microsoft Windows Server 8.2.2 Microsoft Internet Information Server 8.2.3 Microsoft SQL Server 8.2.4 Microsoft .Net Framework 8.2.5 Microsoft ASP.NET 8.2.6 Microsoft ASP.NET Role Membership Provider 8.2.7 Dot Net Nuke (DNN) 8.2.8 AntiXSS Library 8.2.9 Microsoft Enterprise Libraries 8.2.9.1 Application Logging Block 8.2.10 Log4Net 8.2.11 Fluorine 8.2.12 Adobe Flash 8.3 Security View 8.3.1 Data Encryption β Data at Rest 8.3.2 Data Encryption β Data in Flight 8.3.3 Authentication 8.3.4 Authorisation 8.3.5 Non-Repudiation 8.3.6 Cross-Site Scripting (XSS) and SQL Injection 8.3.7 Other Security Concerns 8.4 Infrastructure View 8.5 Support View 8.6 Enterprise Standards Compliance 9 Design Patterns and Principles 9.1 Dependency Inversion Principle 9.2 Dependency Injection Pattern 9.3 Factory Pattern 9.4 Persistence Ignorance 9.5 Dependency Injection Appendix β [legacy project name] Phase 1 9.6 Bespoke Physical Components