C Language
DSA
Software Engineering
Software Architecture
Operating System
Big Data

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
1.what is Software Architecture

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.

2. Why Do We Need Software Architecture?
  • 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.

3. What Does Software Architecture Decide?

Software architecture defines several important aspects of a system:

  1. System Components (Modules)
    Example modules: Login, Payment, Chat, Notification.

  2. Communication Between Components
    How modules interact using APIs, messaging systems, or data flow.

  3. Data Storage
    Where and how data will be stored (Databases, files, cloud storage).

  4. Technologies and Tools
    Programming languages and frameworks such as Java, Python, MySQL, or React.

4. Types of Software Architecture

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:

  1. UI Layer – User interface

  2. Business Logic Layer – Application rules

  3. 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.

5. Software Development Methodology (SDM)

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.