0% found this document useful (0 votes)
15 views4 pages

Architectural Design Software Overview

Uploaded by

farhanfarooqff0
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views4 pages

Architectural Design Software Overview

Uploaded by

farhanfarooqff0
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Introduction: The software needs the architectural design to represents the

design of software. IEEE defines architectural design as “the process of


defining a collection of hardware and software components and their interfaces
to establish the framework for the development of a computer system.” The
software that is built for computer-based systems can exhibit one of these many
architectural styles.
Each style will describe a system category that consists of :

 A set of components(eg: a database, computational modules) that will


perform a function required by the system.
 The set of connectors will help in coordination, communication, and
cooperation between the components.
 Conditions that how components can be integrated to form the system.
 Semantic models that help the designer to understand the overall properties
of the system.
The use of architectural styles is to establish a structure for all the components
of the system.
Taxonomy of Architectural styles:

1] Data centered architectures:

 A data store will reside at the center of this architecture and is accessed
frequently by the other components that update, add, delete or modify the
data present within the store.
 The figure illustrates a typical data centered style. The client software
access a central repository. Variation of this approach are used to transform
the repository into a blackboard when data related to client or data of interest
for the client change the notifications to client software.
 This data-centered architecture will promote integrability. This means that
the existing components can be changed and new client components can be
added to the architecture without the permission or concern of other clients.
 Data can be passed among clients using blackboard mechanism.
Advantage of Data centered architecture
 Repository of data is independent of clients
 Client work independent of each other
 It may be simple to add additional clients.
 Modification can be very easy
Data centered architecture

2] Data flow architectures:

 This kind of architecture is used when input data is transformed into output
data through a series of computational manipulative components.
 The figure represents pipe-and-filter architecture since it uses both pipe and
filter and it has a set of components called filters connected by lines.
 Pipes are used to transmitting data from one component to the next.
 Each filter will work independently and is designed to take data input of a
certain form and produces data output to the next filter of a specified form.
The filters don’t require any knowledge of the working of neighboring filters.
 If the data flow degenerates into a single line of transforms, then it is termed
as batch sequential. This structure accepts the batch of data and then
applies a series of sequential components to transform it.
Advantages of Data Flow architecture
 It encourages upkeep, repurposing, and modification.
 With this design, concurrent execution is supported.
The disadvantage of Data Flow architecture
 It frequently degenerates to batch sequential system
 Data flow architecture does not allow applications that require greater user
engagement.
 It is not easy to coordinate two different but related streams

Data Flow architecture


3] Call and Return architectures: It is used to create a program that is
easy to scale and modify. Many sub-styles exist within this category. Two of
them are explained below.

 Remote procedure call architecture: This components is used to present


in a main program or sub program architecture distributed among multiple
computers on a network.
 Main program or Subprogram architectures: The main program structure
decomposes into number of subprograms or function into a control
hierarchy. Main program contains number of subprograms that can invoke
other components.

4] Object Oriented architecture: The components of a system


encapsulate data and the operations that must be applied to manipulate the
data. The coordination and communication between the components are
established via the message passing.
Characteristics of Object Oriented architecture
 Object protect the system’s integrity.
 An object is unaware of the depiction of other items.
Advantage of Object Oriented architecture
 It enables the designer to separate a challenge into a collection of
autonomous objects.
 Other objects are aware of the implementation details of the object, allowing
changes to be made without having an impact on other objects.
5] Layered architecture:

 A number of different layers are defined with each layer performing a well-
defined set of operations. Each layer will do some operations that becomes
closer to machine instruction set progressively.
 At the outer layer, components will receive the user interface operations and
at the inner layers, components will perform the operating system
interfacing(communication and coordination with OS)
 Intermediate layers to utility services and application software functions.
 One common example of this architectural style is OSI-ISO (Open Systems
Interconnection-International Organisation for Standardisation)
communication system.

Common questions

Powered by AI

Architectural styles significantly influence maintainability and robustness by defining how system components interact and integrate. Styles like layered architectures enhance maintainability through encapsulation of functionality within layers, allowing independent changes without cross-layer impacts. This reduces complexity and potential errors during updates, contributing to robustness. Data-centered architectures separate data management from client processing, promoting robustness by minimizing client dependency, thus facilitating maintenance. Meanwhile, object-oriented architectures enhance both maintainability and robustness by encapsulating functions within objects with defined interfaces, allowing for safe modifications and error isolation. Each style prescribes specific integration patterns that influence how easily a software system can evolve in response to changing requirements while maintaining operational stability .

Call and return architectures can be applied to distributed systems by implementing remote procedure calls (RPCs), where functions are invoked across a network of computers. This allows different systems or nodes to perform tasks as if they were local, leveraging control hierarchy by decomposing tasks into subprograms distributed across various components. For efficient design, the system should ensure robust communication protocols, manage latency through asynchronous callbacks where possible, and maintain a clear directory of services to enable components to call each other seamlessly, thus optimizing resource distribution and task execution across the network .

Call and return architectures, such as remote procedure call and main program-subprogram styles, provide scalability by modularizing programs into subprograms that can be extended or modified independently. This architecture simplifies complexity by establishing a clear control hierarchy but can become difficult to manage as the hierarchy grows dense. Layered architectures, on the other hand, divide a system into layers, each responsible for a set of operations. This promotes scalability by allowing changes within a single layer without significantly impacting others. The layered approach also simplifies complexity by creating a structured path from user operations down to machine instruction sets. However, it can sometimes introduce overhead by enforcing strict interaction guidelines between layers .

Object-oriented architectural styles offer flexibility through encapsulation, where data and operations are bundled within objects. This encapsulation allows developers to modify an object independently of other components, as objects are not aware of the internal implementations of others. This independence protects the system’s integrity and enables changes to be made to one object without affecting the rest, facilitating easier maintenance and scalability. The message-passing coordination method further ensures that objects can interact flexibly while maintaining their autonomy .

Data-centered architectural styles are characterized by a central data store which is accessed by various components that update, add, delete, or modify data. This architecture promotes integrability by ensuring that the repository of data is independent of the clients using it. Clients operate independently of each other, and it is simple to add new clients without needing approval from or affecting existing clients. The use of a blackboard mechanism for data sharing among clients reinforces integrability, allowing components within the architecture to operate without direct interference with one another .

Object-oriented architecture benefits integration by encapsulating data and operations within objects, which interact through defined message-passing interfaces. This encapsulation ensures that each object’s internal processes remain hidden, allowing disparate components to be integrated without revealing implementation details. As a result, systems can incorporate diverse objects whose interactions are governed by clear, consistent interfaces, ensuring a flexible yet coherent integration of components. This approach simplifies both the development and modification of complex systems by allowing objects to be added or modified independently as long as they adhere to predefined communication protocols .

Layered architectures achieve extendability by structuring the system into distinct layers, each performing a defined set of operations. These layers interact with adjacent layers, ensuring that changes in one layer do not directly affect others. This separation facilitates adding new functionalities within a specific layer without altering other layers, minimizing impact on the overall system. A common example of layered architecture is the OSI-ISO communication model, which defines multiple layers with specific networking functions, allowing for easier modifications and extensions to individual layers like adding new protocols or technologies .

The pipe-and-filter architecture supports concurrent execution by having each filter (component) work independently to transform input data into output data, which can then be passed through pipes to the next filter. This enables multiple filters to process data simultaneously without waiting for others to complete, facilitating parallel processing. However, its limitations include the difficulty of dealing with applications requiring user engagement, as the architecture does not easily support interactive processes. Additionally, it often degenerates into a batch sequential system, making it less flexible for certain dynamic applications .

The primary challenge with data flow architectures in high-interactivity applications is their sequential processing nature, which often does not handle asynchronous user events efficiently. The architecture typically processes data in a prescribed sequence, relying heavily on predefined data flows between filters. This can limit responsiveness and flexibility since interactive applications may require immediate feedback and complex event handling that is beyond the capabilities of traditional data flow designs. As a result, integrating interactive elements usually necessitates additional components or architectural structures to manage user interactions .

Data-centered architectures promote simplicity in adding new clients by centralizing the data repository, which acts as the sole point of interaction for clients. As the repository is independent of individual clients, new clients can be integrated by simply interfacing with the repository without needing to affect or be affected by other existing clients. This decoupling ensures that each client operates independently of others, minimizing client interdependence. Thus, the architecture supports easy scaling and client diversity while maintaining system stability .

You might also like