Software Architecture

Pankajan Satkunam
2 min readMay 27, 2020

Software Architecture is the very important to create a quality software. In the SDLC (Software Development Life Cycle), first we collect the requirements After that we are going to design the system according to the requirements. In the designing phase we create the Software Architecture that tell about the overall structure of the software system. The person who create software architecture called Software Architect. He must be very experience person so it is take more than 6years to become an Software Architect.

From the Software Architecture we create the detailed design that have every detail of the software e.g: what language we are going to use, what datastructure we use like that. So It is like a blueprint for a house. If the blueprint is good then it help to modify and maintain very easily. The Software which have a good software architecture that is portable, maintainable and reusable. So that is very important in software development. All of the software development depend on that. If we want to create a big software then we must have big team fot that. So everyone must work together and each of them must understand what they do. So this Software Architecture document help for that.

C4 diagram
C4 diagram

We can model the Software Architecture using the C4 diagram. In the diagram we have 4 levels. These levels help to view a complecated system very easily like the google maps. So very complecated system can be represent very easily. In first level tell about the available sytems, second level tell about the container details and third level tell about components details how each components communicate with each others, inside the container. The last level is the detailed designs. That tell about the classes, interfaces and datastructure details. So the system is very simple in the first level but very complecated in the last level like google map. when we are zooming, it become very complecated.

In the Architecture design we use the Architecture design patterns. These patterns help to understand the system and implement our system very easily. We have many kind of design patterns So we category those in two kind.

  1. Code level Design Patterns: Those use to in implement the software in code base. e.g: factory design pattern, adapter pattern, fascade pattern….
  2. Architecture Design Patterns: Those tell about the overall software system structures. e.g:client-server architecture pattern,3-tier architecture pattern, Dataflow architecture pattern………

--

--

Pankajan Satkunam

Software Engineering undergraduate at University of Kelaniya