Achieving 20/20 Vision Through Architecture Viewpoints, Page 3
The Deployment Viewpoint is a logical view of the hardware/software environment. It includes all the major nodes (for example, clients and servers) and the software components observable at runtime that reside on them. UML Deployment diagrams can be used to depict the deployment view.
Figure 5: Sample deployment diagram
An instance of the solution architecture environment as sketched in the deployment viewpoint will be needed to support each phase of the software development lifecycle including development, integration, quality assurance, staging, and production.
The Infrastructure Viewpoint is a physical view of the hardware/software environment. It depicts all of the redundant hardware devices used for load balancing and fail over. UML Deployment or network diagrams can be used to illustrate this viewpoint.
You've now reviewed the three "what" viewpoints (Functional Requirement, Non Functional Qualities, Domain Model) and the four "how" viewpoints (Conceptual, Architecture Scenario, Deployment, and Infrastructure). Unlike the blind men, you now have 20/20 vision and can effectively engage various project stakeholders.
The following table illustrates how a given viewpoint helps an architect engage with different stakeholders.
|Stakeholder||Viewpoints Used to Engage Stakeholder|
|Business Analyst||The Functional Requirement Viewpoint provides a high level understanding of the functional requirements and can be used to begin detailed use cases. The Non Functional Quality Viewpoint ensures that expectations of the system such as number of users, transaction volumes, response time, and the like are discussed, debated, and clearly articulated.|
|Project Manager||By identifying the main architectural components and interfaces, the Conceptual Viewpoint helps to develop a work breakdown structure for a successful project plan that pro-actively involves all partnering areas.|
|Developers||The Architecture Scenario View depicts architecture use cases that may need to be proven via an Architecture Baseline and further documented by more detailed interface contracts and component designs.|
|Data Modeler||The Domain Model View provides the basis for beginning more detailed design on the object model and persistence architecture.|
|Configuration Manager||The Deployment View communicates the logical view of software assets as they are deployed through the runtime architecture and seeds the effort for creating build and deployment scripts.|
|Infrastructure Manager||The Infrastructure View communicates the high physical infrastructure design and is informed by the Deployment View and Non Functional Qualities View.|
|Quality Assurance||The Functional Requirement View can be used to begin test case development. The Non Functional Qualities View and Architecture Scenario View can be used to plan performance tests.|
The story about the six blind men teaches you to be careful of having a myopic view. Architecture viewpoints provide a broadminded view of both the problem and the solution. The Functional Requirement, Non Functional Qualities, and Domain Model viewpoints provide a high level understanding of the "what". The Conceptual, Architecture Scenario, Deployment, and Infrastructure viewpoints clearly articulate the "how."
Figure 6: Solution Architecture Viewpoints
Each viewpoint helps the architect successfully partner and engage with other project stakeholders including business analysts, project managers, developers, data modelers, and other key roles.
Do you suspect that you have blind spots on your project that could impede its success?
If so, then consider using architecture viewpoints to gain a holistic view of the project and to successfully identify and partner with stakeholders. The rest is up to you!
- John Godfrey Saxe (1816-1887), The Blind Men and the Elephant
- Software Engineering Institute, Architecture Documentation
About the Author
Jeff Ryan is an enterprise architect with over twenty years experience architecting and implementing thoughtful solutions to business problems. He has published over twenty articles on enterprise architecture, SOA, XML, XSLT, Java, and other subjects.