[Architecture design] the idea of building a development architecture

Source: Internet
Author: User

After the conceptual design is complete, the architecture needs to be refined. We will build a development architecture for the development code section. This work is generally completed by an architect or Senior Programmer of a project team or company.

The designer needs to comprehensively consider the business functions, non-business functions, and quality attribute requirements in the conceptual design. Focus on quality attributes during development, such as scalability, reusability, portability, comprehensibility, and testability. The focus is on the actual organization of software modules in the software development environment, including source program files, configuration files, source program packages, compiled target files, and third-party library files.

When designing the development architecture, you can refer to the logical architecture to map the logic layer in the logical architecture to multiple packages in the development architecture, include one or more classes in the logical architecture in the source code file of the development architecture.

Work to be completed in the development architecture design:

* Determine the dependency between the packages to be developed or directly used

* Determine the technology used

* Determine the framework used.

Partitions and layers

Because the complexity of the system is different, the change points in the system must be encapsulated incorrectly.

The layered architecture provides a means to encapsulate change points. The biggest advantage of layered architecture is to localize the overall problem and encapsulate possible changes in different layers. Finally, the system is planned as a one-way dependency layered system, which facilitates modification, expansion, and replacement. From the perspective of "Administration", it is a great benefit to divide the architecture into layers, these layers form a natural boundary for the development team-the skills required by developers at each layer are different. For example, the development team at the user interface layer needs to understand the user interface toolkit used; the development team at the database management layer should be familiar with relevant database skills, persistent tools, or the file systems used ......

But sometimes it is not enough to only layer. Multiple frameworks may be used in the layer, so we need to further partition to form a "two-dimensional architecture" for cross-cutting and vertical cutting ".

Furthermore, we can also reflect the specific usage of the class library and framework. This is necessary, especially when the framework implements key architecture mechanisms. We know that the Framework encapsulates the interaction mechanism and collaboration process between design elements, whether self-developed or implemented by a third party, these design ideas are part of the architecture. However, partitions are suitable for expressing the framework used by applications: using class inheritance or interface implementation to expand the extension points.

Currently, development is increasingly dependent on the directive architecture. Whether we can clarify the relationship between development and architecture is not only related to whether the design ideas are clear and reasonable, it is also related to the smooth development of subsequent programs. At the same time, in order to meet the quality attribute requirements of easy modification, easy testing, and easy scalability, the software architecture must separate the focus, while separating the focus through the presentation layer, business layer, data layer, and so on, it can be supplemented by the partitioning method. The framework is the most common example of partitioning methods. You can further separate the focus-separating application-related and application-independent parts-and encapsulating different changes in different categories.

Finally, it should be noted that partitions are also applicable to the design of the logical 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.