Software engineering architecture and mode

xiaoxiao2021-03-06  95

What is Architecture

Software architecture is often referred to as architecture, refers to software frame structures that can be prefabricated and reconfiguous. The architecture is still in the development period. For its definition, the academic community has not yet formed a unified comment, while different angles of perspective will also cause different understanding of the software architecture. The following is some mainstream standard perspectives.

ANSI / IEEE 610.12-1990 Software Engineering Standard Vocabulary For architectural definitions: "The architecture is the basic organizational structure of a system that is related to the relationship between components, components, the relationship between components and environments, and knows the above Principle of Design and Evolution.

Mary Shaw and David Garlan believe that the software architecture is a level of algorithm design and data structural design in the software design process. Architecture problems include organizational and global control structures, communication protocols, synchronization, data storage, and design elements, design elements, and selection between design elements. The basic idea of ​​the Garlan & Shaw model is: Software Architecture = {Component, Connector, Constrain}. The component can be a set of code, such as a program module; can also be a separate program, such as a database server. The connector can be a process call, a pipe, a remote procedure call (RPC), and the like, which are used to represent the interaction between the members. The constraint is generally the rule of the object, or specifies the form and conditions of the component connection, for example, the upper layer member can request the service of the lower member, it is not possible; the two objects may not send a message; the code copy migration is constrained; Such a connection is invalid under conditions.

There are still many other perspectives regarding the definition of the architecture, such as BASS definition, Booch & Rumbaugh & Jacobson definition, Perry & Wolf model [7], BOEHM model, etc. However, its core content is the structure of the software system, which represents the Garlan & Shaw model, emphasizes the basic elements of the architecture to be components, connectors, and their constraints (or connection semantics), which are constructed from constructive The angle and even the software architecture, and the IEEE definition not only emphasizes the basic composition of the system, but also emphasizes the environment of the architecture and the interaction of the outside world.

What is pattern (Pattern)

The concept of pattern (Pattern) was earliered by the Architect Christopher Alexander in the 1970s. It is used in the construction field. In the middle of the 1980s, the Mid-Ward Cunningham and Kent Beck introduced their ideas into software, 1994 began by Hillside Group. (Founded by Kent Beck) and OOPSLA jointly launched an international PLOP (Pattern Language Of Programming) meeting, and now the pattern has become a hot topic in the field of software engineering, which has more influence in the computer field more than in the architectural world. Impact.

Christopher Alexander divides the pattern into three parts: first is Zhou Kiang (Context, or a context), what is the status of what is the status of the model; its second is the motivation, means a problem or expected Target; its third is a solution, refers to a constructor or configuration of each motive or resolving the problem elaborated. He proposed that the pattern is a rule that represents three relationships of acute, motivation, solutions, and each model describes a problem that has occurred in a certain hiemer, and the core of the problem solution, mode is It is a thing that is another process (Process), not only describing the matter itself, but also presents what the process is generated. This definition has been widely accepted by the software. The application of software model has a major role in software development, mainly in:? Software mode is a long-term design software, management organization software development and other practices in practice and abstraction, is a multiplexed software design method, process Management of empirical tools. Mode is similar to a combination of boxing in boxing, which provides a series of idea routines in software development. For example, through the mode of use, it is advantageous to create a concise, exquisite design in a complex system.

Software mode provides us with a set of simple and universal design, management, organization vocabulary, while models also provide us with a standard standard for describing abstract things, which can greatly promote communication between people and people during software development. And the exchange in software development is critical. "The reason for the failure of software projects can eventually be traced back to the information that should be transmitted and accurately transmitted to the person you should receive."

Architecture and pattern relationship

Because the architecture and pattern are often mentioned in current software development, many people are easily confused to confuse these two terms, and in this, there is no very unified definition of the academic community.

Architecture and mode should be a process that is covered by mutual coverage, but in general, Architecture is more concerned about the so-called high-level design, and the focus of the model is in the design of the "guidelines or guidance scheme" in the design, Therefore, in different levels, the problem is formed on different problem domains. Compared to system analysis, the architecture is a solution to solving problems, and system analysis is to solve these problems. Both of these will be used, but the angle of focus is slightly different, and the architecture tends to architecture mode, and the system Analysis is more use of design patterns and specific languages. The architecture emphasizes the relationship between the structure of the software system and its various elements, and the model is the relationship of abstract levels. For example, the design mode is some "guidelines" after experience abstract, and uses these Mode, helps the relationship between the system element (Elements) and the organizational system elements in architectural design.

The mode is an experienced "guideline" and is verified in a single practice. There are different modes in different levels, small to language implementation (such as Singleton). On different levels, the mode provides guidance from different levels, such as architectural design, three-story applications, distributed applications, etc. These technical architectural models provide the theoretical reference for architecture design, and in the field of programming, design models The relationship is provided to describe the relationship between the various elements (in the object-oriented domain, more refer to the class), and the "design pattern of the object-oriented software" is the classic masterpiece at this level. In the implementation of the language, the same implementation mode, such as the Delegate (observer) mode implementation in .NET. Compared to system analysis or design patterns, the architecture considers problems from a higher level, so concerned is reflected in the "unchanged" factor, such as system deployment, more concern, more concerned with layered grading design, The deployment scheme proposed on this basis is the focus of the architecture consideration. Architecture cares for application models, more embodies in the influence of technology to solve these business differences, care about whether it is a distributed application, and how to design, it is also designed, and it is also concerned about performance and security. Therefore, in such cases Next, a series of techniques such as cluster, load balancing, fault migration, etc. will be considered.

It is hoped that the architecture and mode is unlikely to distinguish between the way, because it is interactive intersection and providing services, such as the famous MVC (Model-View-Controll) is an example, in design mode is a very classic The mode is equally applicable in the architecture. For system architects that are familiar with architectural design, it seems to be able to explain the relationship between architectures and patterns: the architecture is Hight-Level Design, focusing on different business-friendly solutions, and the pattern is General PrinciPle (General Principle ).

转载请注明原文地址:https://www.9cbs.com/read-96174.html

New Post(0)