Software Architecture-Software Architecture In Software Engineering-Software Architecture Patterns

Hello, and welcome to this introductory tutorial on software architecture. This is Inder. Here is an example of an architecture design called three-tier architecture. But, let us see some concepts first and we will come back to it. First, what is software architecture? It is the foundation or the fundamental design of a software system. Now, a software architecture has software elements or components, the function of these software elements, and the relationships between these software elements. Software architecture shows how it addresses key business objectives such as performance, reliability, and security. Next, why do we need to have a software architecture? Why not develop a software system directly? The first reason is that a new software system needs to have an architecture just as a computer needs an architecture or a building needs an architecture. Without an architecture, developers would just build the system in the way they consider fit.

Such a software system when built may be difficult to maintain or change. Because each developer built their component in their way. Secondly, a software architecture helps existing developers and new software developers as well as stakeholders understand the structure of their software system. If the software architecture is implemented, it is possible to address the key risks to the system. Such a software system can have higher code maintainability.

OIP-20

Developers can have more productivity and greater adaptability to system changes. Software architecture documentation shows the system organization. This helps in the reuse of design and code across different projects. Next, who is a software architect? A Software Architect is the role that decides the fundamental structure of software systems and documents them. In his role, a software architect analyzes the business requirements first. Then he identifies the key risks to the software system. And most importantly, he makes fundamental choices about the software system. It is difficult time-consuming or even practically impossible to change these choices once a system is built. Now, let us see some example architecture patterns also called architecture designs. First the 3-tier architecture. Now, a three-tier architecture separates the Presentation tier, Application Logic tier, and Data Management tier on different servers. The benefits of three-tier architecture are better scaling because each tier can be scaled up independently. If we want to have a higher configuration server, we can just change the servers that support the Presentation tier or any other tier. Also, additional security can be implemented on the Data Management tier.

Another example is Peer-to-peer architecture. The benefit of using P2P architecture is that there is no single point of failure. Even if one node fails, other nodes can continue working. This is different from Client-Server architecture where if the server fails, the entire system stops working. So, in this tutorial, we learned what is software architecture, why we need a new system to have a software architecture and What is the software architect’s role. We also saw a couple of examples of architectural patterns. That’s all in this video. Thank you and see you in my other videos…

th-17