软件体系架构方面英文文章翻译----软件工程架构设计
Software Engineering | Architectural Design
02 Dec, 2022
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:
- 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
- Data flow architectures:
- This kind of architecture is used when input data to be 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 pipes.
- Pipes are used to transmit 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.
Advantage of Data Flow architecture
- It encourages upkeep, repurposing, and modification.
- With this design, concurrent execution is supported.
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
-
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.
- 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.
\2. 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.
软件工程 | 架构设计
02 Dec, 2022
简介:软件需要架构设计来代表软件的设计。IEEE将架构设计定义为 "定义硬件和软件组件的集合及其接口的过程,以建立计算机系统的开发框架"。为基于计算机的系统所构建的软件可以表现出这许多架构风格中的一种。
每种风格都会描述一个系统类别,它包括: 。
- 一组组件(例如:数据库、计算模块),将执行系统所需的功能。
- 一组连接器将有助于组件之间的协调、沟通和合作。
- 形成系统的组件如何被整合的条件。
- 语义模型,帮助设计者理解系统的整体属性。
架构风格的使用是为了给系统的所有组件建立一个结构。
架构风格的分类:。
- 以数据为中心的架构。
- 一个数据存储将位于这个架构的中心,并被其他组件频繁访问,这些组件更新、添加、删除或修改存储中的数据。
- 该图说明了一个典型的以数据为中心的风格。客户端软件访问一个中央存储库。当与客户相关的数据或客户感兴趣的数据改变了对客户软件的通知时,这种方法的变种被用来将存储库变成黑板。
- 这种以数据为中心的架构将促进可整合性。这意味着现有的组件可以被改变,新的客户端组件可以被添加到架构中,而不需要其他客户端的许可或关注。
- 数据可以使用黑板机制在客户端之间传递。
以数据为中心的架构的优点*
- 数据存储库是独立于客户端的
- 客户端相互独立工作
- 添加额外的客户端可能很简单。
- 修改可以非常容易
以数据为中心的架构
- 数据流架构。
- 当输入数据要通过一系列的计算操作组件转化为输出数据时,就会采用这种架构。
- 图中表示的是管道和过滤器架构,因为它同时使用了管道和过滤器,它有一组被称为过滤器的组件通过管道连接。
- 管道用于将数据从一个组件传输到下一个组件。
- 每个过滤器都独立工作,被设计为接受某种形式的数据输入,并产生数据输出到下一个指定形式的过滤器。这些过滤器不需要了解相邻过滤器的工作情况。
- 如果数据流退化为单行转换,那么它就被称为批处理顺序。这种结构接受一批数据,然后应用一系列的顺序组件来转换它。
数据流架构的优势
- 它鼓励维护、再利用和修改。
- 通过这种设计,支持并发执行。
数据流架构的缺点*
- 它经常退化为批量顺序系统。
- 数据流架构不允许需要更多用户参与的应用。
- 要协调两个不同但相关的数据流并不容易
数据流架构
-
调用和返回架构。
它用于创建一个易于扩展和修改的程序。这个类别中存在许多子风格。下面解释其中的两个。
- 远程程序调用架构:该组件用于在网络上多台计算机之间分布的主程序或子程序架构中呈现。
- 主程序或子程序架构:主程序结构分解为若干子程序或功能的控制层次。主程序包含一些可以调用其他组件的子程序。
- 面向对象的架构:系统的组件封装了数据和必须应用于操作数据的操作。组件之间的协调和通信是通过消息传递建立的。
面向对象体系结构的特点。
- 对象保护系统的完整性。
- 一个对象不知道其他项目的描述。
面向对象体系结构的优点*
-
它使设计者能够将一个挑战分离成一个自主对象的集合。
-
其他对象知道该对象的实现细节,允许在不对其他对象产生影响的情况下做出改变。
\2. 分层架构:
-
定义了一些不同的层,每一层都执行一组明确定义的操作。每一层都会做一些逐渐接近机器指令集的操作。
-
在外层,组件将接收用户界面操作,在内层,组件将执行操作系统接口(与操作系统通信和协调)。
-
中间层为实用服务和应用软件功能。
-
这种架构风格的一个常见例子是OSI-ISO(开放系统互连-国际标准化组织)通信系统。
来自GeeksForGeeks