3. Viewpoints and Views
When you start the daunting task of designing the architecture of your system, you will find that you have some difficult architectural questions to answer.
• What are the main functional elements of your architecture?
• How will these elements interact with one another and with the outside world?
• What information will be managed, stored, and presented?
• What physical hardware and software elements will be required to support these functional and information elements?
• What operational features and capabilities will be provided?
• What development, test, support, and training environments will be provided?
A common temptation—one you should strongly avoid—is to try to answer all of these questions by means of a single, ...