Soft test system architecture designer model essay 3: On architecture-based software design methods and applications

On Architecture-Based Software Design Method and Application

 

 

Summary:

 

In May 2017, I participated in the development of the company's "Data Center Management System" project, and served as a system architect, responsible for the system architecture design. The system aims to realize the unified monitoring and management of the devices in the company's data centers scattered across the country. Taking the data center management system as an example, this paper discusses the specific application of the architecture-based software design method in the project. The introduction focuses on the three stages of architecture requirements, architecture design, and architecture implementation. In the stage of architecture requirements, the requirements were comprehensively obtained through user interviews, questionnaires, on-site observation, and prototype construction; in the stage of architecture design, the system architecture was modeled through the 4+1 view in the UML model; in the stage of architecture realization , the system components are acquired, developed and assembled. The project was officially launched after the completion of acceptance in November 2018. It has been delivered and has been running stably, and has received awards from the company and praise from users.

(Welcome to exchange notes 345092496)

text:

Background and project overview:

 

In July 2016, China Telecom proposed the 3.0 strategy to adapt to the era of intelligence and transform and upgrade through intelligence, focusing on promoting network intelligence, business ecology, and operation intelligence, building an industry-leading open platform for the Internet of Things, and providing customers with powerful Internet of Things capability application services, reshaping customer business processes, mining business value, and reducing operating costs. On the one hand, the company implements the group strategy. On the other hand, due to the continuous expansion of the company's business over the years, it has gradually built multiple data centers across the country. The traditional data center management mode is stand-alone, that is, a management system is designed for each data center. System, arrange management personnel to be responsible for status monitoring, event processing and data reporting. With the continuous increase of data centers and wide geographical distribution, continuing to use the traditional stand-alone mode will increase a lot of human and material resources.

How to manage all equipment in all data centers in a unified manner, reduce management costs, and reduce human and material expenditures has become an urgent problem for the company to solve. Our company has been engaged in data center equipment production, module design, equipment management and related software development for many years, and has rich relevant experience. After discussions with all department leaders of the company, it is decided that the development department will be responsible for developing a data center management system. The company set up a development team of 12 people and 3 system implementers, and appointed me as the system architect of the project, responsible for software architecture design and development.

After careful combing, the system is divided into four main modules. The device access module is a module connected to the gateway device, which is responsible for message interaction with the gateway device; the message processing module converts the incoming message of the device and the processing results of the business layer into a format that can be recognized and processed by each; the rule module according to the custom The rules feed back the processing results of the corresponding messages and persist the messages; the business modules include system management, device management, network component management, notification management, rule management, log management and other functions.

 

Transition:

ABSD is architecture-driven, emphasizing that software architecture design is driven by a combination of business, quality, and functional requirements. Emphasis is placed on describing software architecture with perspectives and views, and describing requirements with use cases and quality scenarios. ABSD has three foundations, namely, functional decomposition, choice of architectural style, and use of software templates. This article first introduces the development stages of ABSD and what activities are included in each stage, and discusses the specific application of ABSD in combination with the project, and finally discusses the problems and solutions I encountered during the development of this project, as well as my personal insights.

 

argument:

Technology Introduction:

 

Architecture-based software design (ABSD) includes six stages: architecture requirements, architecture design, architecture documentation, architecture review, architecture implementation, and architecture evolution. The architecture requirements phase clarifies the user’s expectations for the system in terms of function, behavior, performance, and design constraints, including requirements acquisition, identification of components, and architecture review; the architecture design phase generates and adjusts architecture decisions according to requirements, including proposing architecture models, mapping components, Analyze the interaction of components, generate architecture and review; analyze and sort out the architecture design in the architecture documentation stage, and generate architecture specifications and architecture quality instructions; in the architecture review stage, evaluate whether the architecture can meet the requirements and achieve quality attributes, whether the division of hierarchical components is reasonable, Identify potential risks and find defects and errors in the design early; implement the architecture in the architecture implementation stage, including architecture analysis and design, component implementation, assembly and system testing; the architecture evolution stage mainly solves the problem of changing user requirements during development, including architecture evolution Planning, component changes, updated component interactions, component assembly testing and technical reviews.

 

Combine project:

In the stage of architectural requirements, the main problem encountered at this stage is that the OJ platform needs to support the teaching activities of programming courses in the whole school, which requires effective and rapid comprehensive acquisition of requirements. In the early stage of requirements, we used a combination of user interviews and questionnaires, and divided the requirements research team into several groups to collect requirements separately. Through detailed communication with the course teaching team leader, we have an overall and comprehensive understanding of the main business functions and user roles of the OJ system. Afterwards, a questionnaire form was made and distributed to all teachers. After statistics and sorting, we learned about the teaching activities and process details of the programming course. In the middle stage of the demand, with the assistance and arrangement of the course teaching team leader, we followed the teacher to the computer laboratory of the school to observe the current experimental teaching site of the programming course, and learned that in the traditional experimental teaching method, Specific operating procedures for students and teachers. In the later stage of requirements, we have basically completed the collection of most of the business requirements, and constructed a simulated OJ system through rapid prototyping for users to try and give feedback, allowing users to participate in the design and providing a workflow Indispensable experience in aspects and business fields also provides strong support for future projects to pass the acceptance.

  In the architecture design stage, the main problem encountered at this stage is how to reasonably design and describe the software architecture. We model the architecture with the 4+1 view in the UML model. The scene view is modeled using the use case diagram in the UML model, combined with user needs, four types of user roles are defined in the system: students, teachers, system administrators, and outsiders, and corresponding roles are identified for these roles. Example. The logical view is modeled using the package diagram in the UML model. After analysis, we decided to adopt the microservice architecture style for development, and divided the system into three parts: front-end Web services, platform guarantee services, and business services. Front-end web services are combined with load balancing and server clusters; platform guarantee services are divided into API gateway, service registration center, and monitoring platform to realize the basic service framework; business services are divided into multiple microservices to realize specific business functions. The physical view is modeled using the deployment diagram in the UML model. The system microservice adopts a distributed deployment method. Each microservice can deploy multiple instances on the same physical machine or multiple physical machines at the same time according to the actual situation. The cluster performs unified access through load balancing and is deployed in routing mode. The internal network and external network of the system belong to different logical networks. In the choice of load balancing algorithm, the least connection method is used.

   In the stage of architecture realization, the main problem encountered in this stage is how to realize and assemble the system components. Component realization is divided into two ways: obtaining existing components and developing new components. The OJ system needs to interface with the educational administration and OA systems, and we use the SDK provided by the developer to implement it; the basic framework of the microservice architecture, such as Spring Cloud, Eureka, and the compiler called by the evaluation machine, etc., are directly integrated with third-party software implementations. Basic functions such as user management, role authority management, log record, content maintenance, and message center common to common information systems are realized by using the corresponding components accumulated in the past project development of the unit. For OJ system-specific functional components, special development is required. We use a variety of design patterns, such as the decorator pattern to realize the expansion of the same test question in various usage scenarios such as experiment assignments, competitions, and exams, and the strategy pattern to achieve Different compilation methods of the evaluation machine for C language, Java, Python and other programming languages. After the component realization is completed, we adopt different component assembly methods according to different business types. For example, the examination service obtains test question information from the question bank and adopts the synchronous message method; the program evaluation service is a time-consuming operation and adopts the asynchronous message method; the business involving the approval process adopts the workflow-based assembly method.

 

Conclusion:

 

From the overall perspective of this project development, a good choice of architectural style reduces the coupling degree between modules, improves system performance, usability and modifiability and other indicators, meets the company's expected requirements, and ensures the rapid secondary development of the system in the later stage development and data access. However, some problems were encountered during the system development process. First, due to the large number of devices, using IDs to identify devices would result in poor data visualization and make it difficult to locate devices. For this reason, I use the combination of longitude and latitude positioning and device ID identification, use Echarts+VUE to obtain data, and use Baidu map as the base to visually display all devices, which is convenient for quick positioning. Second, the interaction between a large number of control layer codes and the persistence layer of the relational database makes the running speed low. To improve efficiency, I added Redis as a cache and an Elasticsearch search engine. Although the complexity of the system has increased, the data access rate has been greatly improved. Big improvement.

The successful completion of this project has accumulated more experience for me in the selection of the architectural style of the project. At the same time, it also exposed some deficiencies in the selection of the architectural style. Do better in the project.

 

 

 

Guess you like

Origin blog.csdn.net/qq_38951230/article/details/126982921