Traditional Culture Encyclopedia - Traditional stories - Analysis of several common software architectures and their characteristics

Analysis of several common software architectures and their characteristics

Analysis of several common software architectures and their characteristics: The software crisis in 1960s made people pay attention to the research of software engineering. At first, people paid attention to the choice of data structure and algorithm in software design. However, with the continuous expansion of the scale of software system, the design and specification of the overall system structure has become extremely important. With the intensification of the software crisis, the concept of software architecture came into being. The software architecture focuses on the global organization form of the software system, grasps the internal relations between the parts of the system at a higher level, and shifts the focus of software development from hundreds of codes to the design of architecture elements and their interactions with larger granularity. Compared with traditional software technology, software architecture theory not only helps to solve the problem of increasing scale and complexity of software systems, but also helps to reuse components and improve software productivity. Aspect-oriented software development (AOSD) holds that the system is composed of core concerns and crosscutting concerns. Core concerns are the main functions and goals to be achieved by software, and crosscutting concerns are those that have crosscutting effects with core concerns, such as system logs, transaction processing and authority verification. AOSD makes the design and maintenance of the system easier by separating the crosscutting concerns and core concerns of the system.

In 2002, Navasa et al. of Estremadura University [1] proposed that AO-SA should be introduced into the design of software architecture, which can combine the advantages of both, but did not give a detailed method to construct AO-SA.

Although there is no unified understanding of the concept of aspect-oriented software architecture at present, it is generally believed that aspect components are added to the traditional software architecture to encapsulate the crosscutting concerns of the system. At present, there is relatively little research on aspect-oriented software architecture model at home and abroad, and even less research on its component unit model, which usually only focuses on the component units of aspect components. Aspect components were first proposed by Lieberherr et al [2]. It is formed on the basis of Adaptive Plug and Play Component (APPC) by introducing the idea of AOP to extend the modifiable interface of the suite. However, the definition of request interface and service interface is vague, and a clear aspect component model is not given. Pawlak et al. [3] put forward an aspect-oriented framework, which mainly includes an aspect component model-Java aspect component (JAC), but this aspect component model only includes the pointcut, and integrates the suggestions in AOP into the expression of the pointcut, mainly from the perspective of implementation, without giving detailed aspect components. This paper not only focuses on the component model of aspect-oriented software architecture, but also analyzes its other two components in detail, namely components and connectors, because all parts of aspect-oriented software architecture are interrelated.

1 related concepts of aspect-oriented software architecture

Aspect-oriented software architecture involves many concepts, which will be introduced separately below. Software architecture has a wide influence in the field of software engineering, but it has not yet formed a unified and standard definition. At present, it is generally believed that software architecture includes components, connectors and constraints [4]. Among them, constraints describe the requirements of architecture configuration and topology, and determine the connection relationship between components and connectors of architecture. So the software architecture can be written as

Software architecture) = component)+

Connector)+constraint

Component is one of the basic elements of software architecture. Generally speaking, a component refers to a software unit with certain functions, clear identification, complete semantics, correct grammar and reusable value. However, at present, there is no unified standard for the specific structure and composition of components, and some major component technologies do not use the same component types. In addition, the currently widely accepted component definitions do not include specific software component models. For example, Szyperski et al. [6] gave a famous definition of software component: a software component is a structural unit, which has only a specific contract interface and explicit context dependency, can be deployed independently, and is easy to be integrated by a third party. However, there is a generally accepted view about the software component model, that is, a software component is a software unit with the functions of service provision and service request [7].

Connectors are another basic component of software architecture. They are building blocks for establishing interactions between components and managing these interaction rules. Connector was first put forward by Shaw [8], who suggested that connector should be the first kind of entity in software architecture to represent the interaction between public components. At present, there is no unified understanding of connectors. Although the necessity of connector is emphasized in the software architecture, there is little research on connector model and its practical application is not mature.

Aspect-oriented software architecture adds aspect component units to the traditional software architecture. Generally speaking, aspect component is a special component, which encapsulates the crosscutting concerns of the system. At present, the research of aspect component model is still in its infancy.

2 Aspect-oriented software architecture model

Because the traditional software architecture model includes components, connectors and constraints, and the aspect-oriented software architecture is an extension of the traditional software architecture, the aspect-oriented software architecture model structure includes components, connectors, aspect components and constraints. Among them, constraints describe the configuration and topology requirements of aspect-oriented architecture, and determine the connection relationship among components, connectors and aspect components of the architecture, and components, connectors and aspect components are its three basic components. The models of these three components are designed in detail below.

What does VDOI mean in software architecture? Software architecture is a set of structural elements with certain forms, namely components, including processing components, data components and connection components. The processing component is responsible for processing data. Data components are processed information, and connection components connect different parts of the architecture. This definition focuses on distinguishing processing components, data components and connection components, and this method is basically maintained in other definitions and methods.

What is software architecture? If the research on software architecture only stays in the informal block diagram stage, it is difficult to meet the needs of further development. In order to support architecture-based development, it is necessary to have analysis and development tools with formal modeling symbols and architecture descriptions. Judging from the current situation of software architecture research, a lot of progress has been made in this field recently, among which Wright system proposed by Robert J.A.11en of Carnegie Mellon University in l997 is a representative one. Wright is a structural description language, which is based on a formal and abstract system model and provides a practical tool for describing and analyzing software architecture and structural methods. Wright mainly focuses on describing the structure, configuration and methods of software components and system connections. It uses an explicit and independent connection model as an interactive way, which enables the system to describe the abstract behavior of the system with a logical predicate symbol system without relying on a specific system instance. The system can also judge the consistency and integrity of the system structure specification through a set of static checks. From these characteristics, Wright system is really suitable for the description and analysis of large-scale systems.

I know a little about the software architecture of my music box, and I hope I can help you.

The structure of Cool Music Box is very simple and practical:

1. is divided into network receiving information.

Provide better music support for players.

2. Music player.

It's cool, but I don't have the gorgeous interface of other software.

In terms of music playback, online audio-visual songs are smoother, providing automatic updates of the current song and the previous song and the next song.

It gives people a simple feeling and makes them easier to use.

3. Connect the application software, such as Cool Me karaoke.

Cool me provides more choices for everyone to meet the needs of different people.

Download connection

Cool my download connection gives people the choice of downloading when they choose, giving people a practical feeling.

I won't introduce many other advantages.

I hope I can help you.

What is dynamic software architecture? Baidu Encyclopedia: Software architecture is a set of structural elements with certain forms, namely components, including processing components, data components and connection components. The processing component is responsible for processing data. Data components are processed information, and connection components connect different parts of the architecture. This definition focuses on distinguishing processing components, data components and connection components, and this method is basically maintained in other definitions and methods.

?

Analysis on the Research Status of Software Architecture Description Language; You said you wanted it, but I just wiped it. I can still read the words clearly, but there is a lot of shit stuck on them. Do you want it?

What language is fast in software architecture? I wonder if you are talking about ABB's fast robot programming language?

If yes, please refer to the following brief introduction, hoping to give you a good idea.

1. In ABB robot, the programming language of robot logic, motion and IO control is called RAPID.

2. Fast language is similar to high-level language programming, similar to VB and C language structure. Therefore, as long as you know the general high-level language programming, you can quickly master the fast language programming.

3. Development tools can use RobotStudio.

4. The corresponding introduction is as follows:

Official introduction: abb. /product/seitp 327/5859 a6f 2 147 f09a 2482570 e 40033 a 505 . aspx。

Official community: abb ../product/AP/seitp327/5ba5e014dee5c4804825752a001f2650.aspx.

At present, there are not many related Chinese materials, so I suggest going to the library to find some related books to study.

Some files can be found in Baidu Library, which are listed as follows:

ABB robot programming language-basic description of rapid programming: wenku.baidu./view/5cbd44ec998f22bcd10da0.

Technology and Application of Robot Studio: Wen Ku. Baidu, please. /view/966747 a3 d 1f 34693 daef 3 e 96。

Robot studio tutorial: wenku.baidu./view/7d071324a5e9856a5612603e.

What are the basic steps of software architecture risk analysis? A successful architecture follows various guiding principles and best practices. SEI has done a lot of research in this field, and finally established several methods to improve and evaluate the architecture. The four representative methods are as follows:

Quality attribute seminar (QAW)

Architecture trade-off analysis (ATAM)

Software architecture analysis method (SAAM)

Active intermediate design review (ARID)

QAW is executed before the architecture definition, ARID is executed during the design work, and ATAM and SAAM are executed after the architecture is completed. The execution of the derived parts of these methods is directed by the coordinator.

How to design software based on software architecture? Software architecture is a set of components with certain forms, including processing components, data components and connection components. The processing component is responsible for processing data. Data components are processed information, and connection components connect different parts of the architecture. This definition focuses on distinguishing processing components, data components and connection components, and this method is basically maintained in other definitions and methods.

(1) structural model

This is the most intuitive and general modeling method. This method describes the structure with the concepts of components and connectors of the architecture, and attempts to reflect the important semantic content of the system through the structure, including the configuration, constraints, implicit assumptions, style and nature of the system. The core of studying structural model is architecture description language.

Pipeline/filter architecture

(2) Frame model

The frame model is similar to the structural model, but it pays less attention to the details of describing the structure and more attention to the overall structure. The framework model is mainly aimed at some special problems and establishes a structure that only aims at and adapts to this problem.

(3) Dynamic model

Dynamic model is a supplement to structure or frame model, which studies the behavior of "big particles" in the system. For example, describe the reconfiguration or evolution of the system. Dynamics can refer to the process of configuration, establishment or removal of communication channels or calculation of the overall structure of the system. This system is often incentive-oriented.

(4) Process model

Process model studies the steps and process of building a system. Therefore, this structure is the result of following some process instruction codes.

(5) Functional model

The model holds that the architecture consists of a set of hierarchical functional components, and the lower layer provides services for the upper layer. It can be regarded as a special frame model.

These five models have their own advantages and disadvantages, so it may be more appropriate to unify them organically to form a complete model to describe the software architecture. For example, Kruchten put forward a perspective model of "4+ 1" in 1995. The "4+ 1" model describes the software architecture from five different perspectives: logical perspective, process perspective, physical perspective, development perspective and scene perspective. Each perspective only cares about one side of the system, and the combination of five perspectives can reflect the whole content of the system software architecture.