The Thing That Software Architecture is NOT
The following lists are some misconceptions about software architecture:
- Architecture and design are the same thing
- Architecture and insfrastructure are the same thing
- Architecture is just structure
- Architecture is flat and one blueprint is enough
- Architecture cannot be measured or validated
- Architecture is Art or Science
Misconception: Architecture and design are the same thing
Architecture is design, but is not all of the design. Architecture is about making decisions on how the system will be built, it stops at the major abstractions, the major elements - the elements that are structurally important, but also those that have a more lasting impact on the performance, reliability, cost, and adaptability of the system. In constrast, design involves a lot more in order to take the design to implementation.
In a word, architecture is the fundamental, architecturally-significant aspects of the design.
Misconception: Architecture and infrastructure are the same thing
The infrastructure is an integral and important part of the architecture: It is the foundation. Choices of platform, operating systems, middleware, database, and so on, are major architectural choices.
Architecture must include the application architecture plus the infrastructure architecture.
Misconception: Architecture is just structure
Architecture is more than just the structural organization of design elements, it also includes the description of how these elements collaborate, as well as why things are the way they are (the rationale).
The architecture must describer how the architecture fits into the current business context and must address how it can be developed within the current development context.
Misconception: Architecture is flat and one blueprint is enough
Architecture is a complex beast; it is many things to many different stakeholders. Using a single blueprint to represent architecture results in an unintelligible semantic mess. Like building architects who have floor
plans, elevations, electrical cabling diagrams, and so on, we need multiple blueprints to address different concerns, and to express the separate but interdependent structures that exist in an architecture.
Misconception: Architecture cannot be measured or validated
Architecture is not just a whiteboard exercise that results in a few interconnected boxes and is then labeled a high-level design. The development of the architecture involves design, implmentation, testing, etc. There are
many aspects you can validate by inspection, systematic analysis, simulation, or modelization.
Misconception: Architecture is Art or Science
If there is a spectrum between art (creative) and science (prescriptive), architecture is somewhere in-between.
The architecture problem space is quite large. One of the reasons that architecture cannot yet be considered a science is that there are no good guidelines on how to traverse the solution space, "prune it", and then apply the selected solutions.
Architecture is becoming an engineering discipline (it is steadily moving toward the science end of the spectrum). Nevertheless, it is not a strict science because if you put two architect in seperate rooms, give them just the requirements, each will (most probably) come up with a different architecture. However, if you constrain them with a set of architectural patterns, their results will be more similar.