Topics
- 1.what is Software Architecture
- 2. Why Do We Need Software Architecture?
- 3. What Does Software Architecture Decide?
- 4. Types of Software Architecture
- 5. Software Development Methodology (SDM)
- 6.Why is SDM Needed?
- 7. Benefits of SDM(Software Development Methodology)
- 8. Types of Software Development Methodologies
Software Architecture refers to the high-level structure and design of a software system. It defines how different components of the software are organized and how they interact with each other.
Just like a blueprint is needed to build a house, software also needs a blueprint before development begins—this blueprint is called software architecture.
Simple Meaning
Software Architecture = Structure + Design + Planning of a software system before coding.
-
Easier Development
A clear architecture provides a structured plan, making development easier. -
Reduces Errors
Proper planning helps avoid major design mistakes later. -
Better Performance
A good architecture ensures efficient and fast software performance. -
Easy Maintenance and Updates
Well-designed architecture allows future modifications and upgrades easily. -
Improved Security
Proper architectural planning helps protect the system from vulnerabilities.
Software architecture defines several important aspects of a system:
-
System Components (Modules)
Example modules: Login, Payment, Chat, Notification. -
Communication Between Components
How modules interact using APIs, messaging systems, or data flow. -
Data Storage
Where and how data will be stored (Databases, files, cloud storage). -
Technologies and Tools
Programming languages and frameworks such as Java, Python, MySQL, or React.
1 Monolithic Architecture
All components of the software are combined into one large application.
Advantages
-
Simple to develop initially
Disadvantages
-
Difficult to update and scale when the system grows
Example
Early versions of platforms like Facebook.
2 Layered Architecture (N-Tier Architecture)
The system is divided into multiple layers, such as:
-
UI Layer – User interface
-
Business Logic Layer – Application rules
-
Data Layer – Database management
Example
Most enterprise web applications.
3 Client–Server Architecture
Two main components:
-
Client → sends requests
-
Server → processes requests and sends responses
Example: A web browser like Google Chrome requesting data from a web server like Apache HTTP Server.
4 Microservices Architecture
Large applications are broken into many small independent services, each performing a specific task.
Examples include platforms like Netflix, Amazon, and Uber.
Advantages
-
Highly scalable
-
Faster development and deployment
Disadvantages
-
More complex infrastructure and management
5 Event-Driven Architecture
Different components communicate through events or messages.
Example:
When a user clicks “Add to Cart” on an e-commerce site, an event is triggered and the cart updates automatically.
6 Service-Oriented Architecture (SOA)
Applications are built using multiple services that communicate over a network.
Example:
Large banking systems often use SOA to integrate different services like payments, accounts, and authentication.
Software Development Methodology (SDM) is a structured process used to plan, design, develop, test, and deliver software efficiently.
It provides rules, guidelines, and stages that help teams build software in an organized and systematic way.
Simple Meaning
SDM = Step-by-step process to build software efficiently and with good quality.