Three dimensions of software architecture design)

Source: Internet
Author: User

Architectural Design is a very big topic. No matter how many articles are written, it is always the tip of the iceberg, but it is more practical. This article mainly introduces the position and role of object-oriented Oo, AOP and SOA in architecture design.

The architecture design has three dimensions, or we need to consider three directions when considering the architecture.

These three dimensions are object-oriented, aspect-oriented, and service-oriented.

These three dimensions can be seen as orthogonal, but different dimensions are mutually verified, mutually supported, and the entire architecture.

Figure: Architecture three-dimensional structure diagram

Object-oriented

The object-oriented technology was initially designed for Object-Oriented Programming. Its emergence marked by the simula language in the 1960s s, in addition, the Improvement and standardization of the Smalltalk language have gained more extensions and comments on previous ideas.

In the middle and late 1980s S, object-oriented programming gradually matured and was understood and accepted by the computer industry. People began to further consider the issue of object-oriented development. Until now, object-oriented has become a very popular programming method and software design architecture.

Object-Oriented development has three main objectives: reusability, flexibility, and scalability, emphasizing the "abstraction", "encapsulation", "inheritance", and "polymorphism" of objects ". It allows people to think about programs in a way closer to the real world. This can be said to be the greatest progress of Object-oriented thinking.

In the application of OO ideas, many good experiences and skills have emerged in the industry, and a large number of design patterns have emerged. It can be said that object-oriented is a very important aspect of system analysis and design.

Aspect-Oriented

The aspect orientation was initially derived from the hook technology. In essence, it is to meet the expansion requirements and allow for free expansion of functions in the program.

Aspect orientation is not only a programming technology, but also an architectural design idea. If Oo is used to analyze and cut the entire system vertically, it can be considered that AOP is used to segment the system horizontally.

In a simple understanding, Oo and AOP provide us with the idea of an analysis system from two different perspectives. The aspect orientation can make up for the object-oriented defects. The two methods can be combined to analyze the system more effectively.

We believe that OO is a way of thinking close to human understanding of nature, but it is not necessarily the same for the east.

When Westerners see a complex system, there is only one idea: "decomposition", which splits the system into one piece, and then studies each part.

When the orients see a complex system, they will pay more attention to the relationships in the system and study the system as an organic whole, this is also the difference between eastern and western views on things.

These two ways of thinking have no problem. It would be better to solve the problem if they are combined to analyze the problem. The same is true for object-oriented and object-oriented aspects, which correspond to the natural ways of thinking that humans understand.

Service-oriented

Service orientation can be said to be a hot concept recently. This includes the SAAs (software as a service), software as a service. To be accurate, service-oriented is not just a concept of the software industry. This should begin with the industrial structure of society.

There are three social industries: First-industry agriculture, second-industry, and third-Industry Service. The primary industry in the earliest society was the first industrial agriculture, with a history of nearly years.

In the lower half of the 18th century, the industrial revolution started in the UK has had a fundamental impact on people's lives. The main industry of society has become the secondary industry.

It still belongs to the industrial age, or some people say "the post-industrial age ". In the post-industrial age, the social economic system must gradually transform to the tertiary industry service industry. Service-oriented is actually a migration of the focus of the socio-economic system.

Back to the software industry, the main industries in society will be transformed into services, and the natural software industry will also change accordingly, that is, the service-oriented mentioned here. In the future, service orientation will affect the Software Delivery Model and the entire software industry system.

In terms of architecture, service-oriented is a way for the system to publish functions. In addition, different systems can communicate and collaborate effectively in this way. A common implementation technology is web service.

Software Overview

Three dimensions of Software Architecture Design: Object-oriented, aspect-oriented, and service-oriented.

One of the oldest dimensions is object-oriented. It has been around for decades and is a relatively mature dimension. It solves the problem by designing the internal structure of the system.

The idea of aspect orientation can make up for the defect of object orientation. The object-oriented approach cannot separate cross-cutting concerns, but the aspect-oriented approach is designed to solve this problem. The aspect orientation is the same as the object-oriented design that addresses the internal structure of the system.

Service-oriented is more about the external aspects of the system. Simply put, the function is released. It does not focus on the implementation of the internal structure of the system. Therefore, service orientation does not conflict with object-oriented or aspect orientation.

These three dimensions are not absolutely isolated. They affect, constrain, and develop each other. When analyzing the architecture, we need to consider these three dimensions at the same time, which helps us design a better architecture.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.