When we talk about the architecture of a software, we talk about a plan that describes a set of aspects and decisions that are important to a software. This implies taking into consideration all kinds of requirements (performance, security, etc.), the organisation of the system, how do the the system parts communicate between each other, if there are some external dependencies, what are the guidelines and implementation technologies, what are the risks to take into consideration, and many more.
The architecture of a Software includes decisions. If you would make a change to one of the software’s aspects or decisions, would there be a huge impact and would it be very hard to change it?
Most probably, the answer will be yes. So why is it that we talk so much about having a good software architecture?
Here are the three main reasons why a good software architecture is so important when it comes to development.
A basis for communication: software architecture is a sort of plan of the system and is primordial for the understanding, the negotiation and the communication between all the stakeholders (user side, customer, management, etc.). In fact, it makes it easier to understand the whole system and therefore makes the decisions process more efficient.
The earliest decisions: the first decisions taken are at this stage. Those early decisions have a huge importance on the rest of the project and become very difficult to change the more we advance in the process
Transferability of the model: software architecture defines the model of the software and how it will function. Having it makes it possible to reuse this model for other softwares; code can be reused as well as the requirements. All the experience we get while doing that architecture is also transferred. This mean that we know and can reuse the consequences of the early decisions we took on the first place.
In this course, you will learn the main aspects of software architecture in detail.