Software Architectural Styles
1. Data-Centered Architecture
- Definition:
A central data repository is used, and multiple components interact with it to read, modify, or update data.
- Characteristics:
- A single data source (repository or blackboard).
- Loose coupling between components.
- Components communicate indirectly through the data store.
- Examples:
- Database Management Systems (DBMS)
- Version Control Systems (Git, SVN)
- Blackboard Systems (used in AI and expert systems)
2. Data Flow Architecture
- Definition:
Data moves through a sequence of processing elements, where each step transforms the data before pas
- Characteristics:
- Transformation-based processing (input -> process -> output).
- Components are loosely coupled.
- Well suited for stream processing and signal processing applications.
- Types:
- Batch Processing Systems (e.g., payroll systems).
- Pipeline Architecture (e.g., image processing, compilers).
- Examples:
- Unix Pipes and Filters
- Compilers (Lexical Analysis -> Syntax Analysis -> Code Generation)
3. Call and Return Architecture
- Definition:
This architecture is based on function calls where a main program calls submodules, forming a hierarchica
- Characteristics:
- Modular and structured approach.
- Control flows from the main module to submodules via function calls.
- Used in procedural programming.
- Types:
- Main-Subroutine Architecture (e.g., C, Pascal).
- Object-Oriented Architecture (e.g., Java, C++).
- Examples:
- Library-based applications
- Object-oriented software (Java, C++)
- Client-Server Systems (e.g., Web Applications)
4. Layered Architecture
- Definition:
The system is organized into layers, where each layer provides services to the layer above it and depends
- Characteristics:
- Separation of concerns (each layer has a specific role).
- Encapsulation and abstraction are used.
- Changes in one layer do not affect other layers.
- Examples:
- Operating Systems (OS) (Hardware -> Kernel -> Shell -> Applications)
- Network Protocols (TCP/IP, OSI Model)
- Web Applications (Presentation -> Business Logic -> Data Layer)
Comparison Table:
| Architecture Style | Key Feature | Example Applications |
|-------------------|--------------------------------|------------------------------|
| Data-Centered | Centralized data storage | DBMS, Git |
| Data Flow | Sequential data transformation | Compilers, Unix Pipes |
| Call and Return | Function-based structure | OOP, Client-Server Apps |
| Layered | Organized into hierarchical layers | OS, Web Apps, TCP/IP |