The most comprehensive set of viewpoints is provided in Rozanski and Woods Software Systems Architecture. The architect needs to represent complex systems in a way that is manageable and understandable by a range of business and technical stakeholders. In this approach, the architecture description is partitioned into a number of separate but interrelated views, each of which describes a separate aspect of the architecture. Collectively, the views describe the whole system. In any significant system there are a number of cross cutting concerns which are better described in a joined up way, this approach use the concept of perspectives to help with this. This is very well described in the book describing how to approach developing and documenting the architecture of software applications.