Hierarchical Software Architecture & its Types Presentation

n6nwfxgj2r 103 views 14 slides Jun 02, 2024
Slide 1
Slide 1 of 14
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14

About This Presentation

This is Software architecture and design presentation of topics Hierarchical Architecture, Master slave architecture, main sub routine architecture style, their advantages and disadvantages.t describes how hierarchical architectures organize systems into layers with specific responsibilities that in...


Slide Content

SOFTWARE DESIGN AND ARCHITECTURE

HIERARCHICAL ARCHITECTURE Hierarchical architecture views the whole system as a hierarchy structure, in which the software system is decomposed into logical modules or subsystems at different levels in the hierarchy. Each level of the hierarchy serves a specific purpose and interacts with other levels in a well-defined manner. This approach is crucial for building large-scale, complex systems where clarity, organization, and scalability are paramount. Lower level modules provide services to upper level modules. Lower level modules: provide more specific functionality. For example, the data access layer might consist of classes or modules responsible for interacting with the database, executing queries, and handling data manipulation. Security modules might include functions for authentication, authorization, encryption, and input validation.

HIERARCHICAL ARCHITECTURE

HIERARCHICAL ARCHITECTURE(CONTD.) Middle level modules: provide domain-dependent functions. These modules contain the core business logic of the application. For instance, in an e-commerce platform, the middle-level modules could encompass functionalities like order processing, inventory management, payment processing, and user management. These modules abstract away the specifics of how data is stored or accessed and focus on implementing the actual business rules and processes. Upper level modules : provide abstract functionality in forms of user interfaces. These modules are responsible for user interaction and interface presentation. In a web application, the upper-level modules include components related to the user interface, such as web pages, forms, navigation menus, and other interactive elements.

HIERARCHICAL ARCHITECTURE(CONTD.) In terms of code organization: Lower-level modules may consist of reusable functions or classes that provide basic functionalities needed throughout the application. Middle-level modules encapsulate the core logic of the application, ensuring that business rules are implemented consistently and independently of specific user interfaces or data storage mechanisms. Upper-level modules contain code related to the presentation layer, including HTML, CSS, JavaScript for web applications, or UI components in other types of applications.

VIRTUAL MACHINE ARCHITECTURE HIERARCHICAL ARCHITECTURE MAIN-SUB ROUTINE ARCHITECTURE MASTER-SLAVE ARCHITECTURE

MAIN –SUB ROUTINE The aim of this style is to reuse the modules and freely develop individual modules or subroutine. In this style, a software system is divided into subroutines by using top-down refinement according to desired functionality of the system. These refinements lead vertically until the decomposed modules is simple enough to have its exclusive independent responsibility. Functionality may be reused and shared by multiple callers in the upper layers. There are two ways by which data is passed as parameters to subroutines, namely − Pass by Value − Subroutines only use the past data, but can’t modify it. Pass by Reference & minu ; Subroutines use as well as change the value of the data referenced by the parameter.

MASTER-SLAVE ARCHITECTURE In master-slave architecture, slave provides duplicate services to the master and the master chooses a particular result between slaves by a certain selection strategy. It provides replicated services to the master. Master-slave architecture is suitable for applications where reliability of software is critical issue and can be implemented to minimize semantic errors. This architecture has faster computation and easy scalability. Master-slave architecture has limitations also, it is hard to implement, not all problems can be divided and has portability issue. Slave performs the same functional task by different algorithms and methods or totally different functionality.

Functionality and Features The master node in this architecture is responsible for coordinating all tasks, including data processing, resource allocation, scheduling, and communication management. Slave nodes execute the tasks distributed by the master node and communicate the results back to the master. Key features of this architecture include: Centralization of control Parallel processing Improved  data consistency Data replication.

BENEFITS The master-slave Architecture in database replication offers several benefits. Firstly, it provides fault tolerance, as even if the master database fails, one of the slave databases can be promoted to become the new master. Secondly, it allows for load balancing, as read requests can be distributed among the slave databases, reducing the load on the master. Lastly, it improves data availability, as client applications can be read from any of

Challenges and Limitations Despite its benefits, the Master-Slave architecture has its set of challenges. These include: Scalability issues Potential performance bottlenecks Additionally, the system relies heavily on the master node, making  load balancing  a considerable challenge.

Performance Master-Slave architecture effectively bolsters data processing speed by enabling parallel processing. Nevertheless, the performance hinges on the capacity and efficiency of the master node.