17/02/2021
Why Software Architecture is Important?
Software architecture determines the quality and longevity of your system.
“Building flexible software that scales is challenging”
Ok but why ?
It can be expressed using four views, including both technical structures and processes:
* Logical view is concerned with the functionality that the system provides to end-users.
* Development view illustrates a system from a programmer’s perspective and is concerned with software management.
* Process view deals with the dynamic aspect of the system, explains the system processes and how they communicate, and focuses on the runtime behavior of the system.
* Physical view depicts the system from a system engineer's point of view. It is concerned with the topology of software components on the physical layer, as well as communication between these components.
Following this definition, an architecture model is a description of a system required to reason about its functionality and its scope, comprising the software elements, the relations between them, and the properties of both elements and relations.
How you benefit from good software architecture ?
Having a software architecture in place will offer you some rather relevant benefits, above all the following top 4:
1. Higher productivity. It is easier to add new features to existing software, since the structure is already in place, and the location for every new piece of code is known beforehand.
2. Better code maintainability. It is easier to maintain software based on an architecture, as the structure of the code is visible and known, so it’s easier to extend the software or find bugs and anomalies.
3. Higher adaptability. New features, such as a different front end, or adding a process rule are easier to achieve, as the software architecture creates a clear separation of concerns.
4. Quality. More reliable assessment of system quality attributes like performance, security, interoperability, reliability, availability.
There is a lot I can write or read about Do’s and Don’ts of software architecture, especially when it comes to micro services.
(Topic for future post - Micro services)
Follow - .dev