Software Architecture


We can define the software architecture as the top-level design of software systems. It hides the details of how the software needs to be developed, but it has the overall system characteristics. Basically, in this architectural view, we just see the internal software structure such as:
·      The key software modules
·      The communications and interactions between components
·      The roles and responsibilities of subsystems
In other words, the software architecture helps us to understand the system as a whole, then the later development must fit the designed architecture.
The software architecture is also a guide of how the system could be extended in the future. Moreover, it could help us to define the scope of the system.

Personally, in my short experience, software architecture is very important in every software project. It provides you a clear idea of what you are going to do. Also, it is a guideline to have a better understand of the problem. As the reading says, it is easier to divide the work in teams, because you already define the different modules and also the interactions between them. In my experience, I have been working following software architectural designs using AWS such as Lambda, SNS, SQS and API Gateway. On each project, before we started to code, we have design meetings to discuss the problem that we have to solve. Then, we discuss the needed components to solve the problem. Once we have the requirements and the components needed, we use to draw a diagram of how the components, and which technologies, are going to communicate each other. Finally, we divide the work among the developers, and each of us must to follow the architecture. It makes the assigned work clearer and team work more efficient. I think that software is the key of success of every software project.

Comentarios

Entradas populares