Creating a Software Architecture
So far, we have considered architecture in general and looked at how software architecture is both similar to and different from architecture in other domains. We now turn our attention to the “how” of software architecture. Where should the architect focus her attention when she is creating the architecture for a software system?
The first concern of a software architect is not the functionality of the system.
That’s right—the first concern of a software architect is not the functionality of the system.
For example, if we offer to hire you to develop the architecture for a “web-based application,” would you start by asking us about page layouts and navigation trees, or would you ask us questions such as:
Who will host it? Are there technology restrictions in the hosting environment?
Do you want to run on a Windows Server or on a LAMP stack?
How many simultaneous users do you want to support?
How secure does the application need to be? Is there data that we need to protect? Will the application be used on the public Internet or a private intranet?
Can you prioritize these answers for me? For example, is number of users more important than response time?
Depending on our answers to these and a few other questions, you can begin sketching out an architecture for the system. And we still haven’t talked about the functionality of the application.
Now, admittedly, we cheated a bit here because we asked for a “web-based application,” which is a well-understood domain, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access