A railway application software development process management method
Through standardized management of the railway application software development process, including business needs analysis, branch development, automatic code scanning and security scanning, the problems of low software development efficiency and poor quality have been solved, a complete closed loop from business needs to software release has been achieved, and the efficiency and quality of software development have been improved.
Patent Information
- Application Number
- CN202510189441.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-20
- Publication Date
- 2025-09-12
- Estimated Expiration
- 2045-02-20
AI Technical Summary
The railway application software development process is not standardized and the technical control is not standard, resulting in low software development efficiency and poor quality, and failure to gain recognition from business parties.
A railway application software R&D process management method is provided, which includes obtaining business requirement information, analyzing and decomposing it, determining R&D requirements, generating software architecture diagrams, performing branch development and automatic static code scanning, merging codes, building and storing artifacts, and performing safety information scanning and acceptance testing.
It has achieved the standardization and normalization of the railway application software development process, improved the efficiency and quality of software development, ensured the ideality of software development results, and gained recognition from business parties.
Smart Images

Figure CN120045164B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of railway application software development management, and in particular to a railway application software development process management method. Background Art
[0002] Currently, railway application software development faces challenges such as non-standardized R&D processes and substandard technical controls. First, each railway business involves numerous information systems, but responses to business requirements are often delayed and lack review, often leading to duplicate development. Second, the entire R&D process lacks unified architectural management, resulting in weak collaborative development capabilities. Furthermore, testing management is lacking, with testing phases lacking necessary use case input, resulting in poor alignment with requirements during acceptance.
[0003] In summary, the above-mentioned reasons of non-standard R&D process and non-standard technical control will ultimately lead to low efficiency and poor quality of software R&D, resulting in unsatisfactory software development results and failure to be recognized by the business side.
[0004] Based on this, how to provide a railway application software R&D process management method with R&D process specifications and technical control standards to improve the efficiency and quality of software R&D has become a technical problem that needs to be solved urgently in this field. Summary of the Invention
[0005] The purpose of this application is to provide a railway application software development process management method to normalize and standardize the railway application software development process, which is conducive to improving the efficiency and quality of software development.
[0006] To achieve the above objectives, this application provides the following solutions:
[0007] A railway application software development process management method, the railway application software development process management method comprising:
[0008] Obtain business demand information for railway application software R&D projects;
[0009] Analyze, disassemble and distribute the business demand information to determine R&D demand information;
[0010] Performing architecture design based on the R&D requirement information, determining R&D tasks, and generating a software architecture diagram; the software architecture diagram includes source code security information;
[0011] Conduct branch development on the R&D task to form multiple development tasks, and monitor the development progress of each development task in real time;
[0012] Automatically perform static code scanning on the branch code corresponding to the completed development task, and update the source code security information in the software architecture diagram according to the automatic static code scanning result; the branch code includes development branch code and trunk branch code;
[0013] Merge the branch codes that have completed automatic static code scanning to obtain the merged code;
[0014] Automatically construct, package, and store the merged code to obtain a product;
[0015] Performing a security information scan on the product to obtain a product that has completed the security information scan;
[0016] The product that has completed the security information scan is accepted and tested and released.
[0017] Optionally, the railway application software development process management method is applied to a railway application software development process management system, the railway application software development process management system includes a project management module, a continuous integration and delivery module, a testing module and an environment management module, the project management module, the continuous integration and delivery module and the testing module are connected in sequence, and the environment management module is connected to the project management module, the continuous integration and delivery module and the testing module respectively;
[0018] The project management module is used to register the project information of the railway application software R&D project, wherein the project information includes the project name, business party information, project investment information and sub-project information;
[0019] The continuous integration and delivery module is used to register the system information corresponding to the railway application software R&D project, the system information including the system name and system function introduction, and to associate the corresponding project or sub-project by synchronizing with the information of the project management module;
[0020] The test module is used to provide test case management capabilities as well as UI testing, interface testing and performance testing capabilities to support functional testing and acceptance testing, and generate test results;
[0021] The environment management module is used to provide and manage the resources required for the operation of the containerized application, and divide the resources into a test area, a pre-release area, and a production area. The test area, the pre-release area, and the production area are isolated from each other.
[0022] Optionally, obtain business requirement information for the railway application software development project, including:
[0023] Entering the project information of the railway application software development project using the project management module;
[0024] Determining business requirement information of the railway application software development project based on the project information;
[0025] Conduct a preliminary review of the business demand information. The preliminary review refers to reviewing and screening the business demand information, returning unreasonable demands and demands that do not need to be met in the business demand information for modification, and using reasonable demands and demands that need to be met in the business demand information as the business demand information, and executing the steps of "analyzing, disassembling and distributing the business demand information to determine R&D demand information."
[0026] Optionally, analyzing, decomposing, and distributing the business demand information to determine R&D demand information specifically includes:
[0027] Utilizing the project management module to analyze and decompose the business demand information to generate the R&D demand information;
[0028] The R&D requirement information is entered into the sub-project in the project management module, and acceptance test cases are entered into the test module.
[0029] Optionally, the R&D task is branched to form multiple development tasks, and the development progress of each development task is monitored in real time, specifically including:
[0030] Based on the R&D tasks, the continuous integration and delivery module is used to create development branches to form multiple development tasks;
[0031] Synchronize the development task information of all the development tasks using the continuous integration and delivery module, and display the development task information in a list format;
[0032] Each of the development tasks is associated with the branch name of the development branch, and after the association, code is pulled and developed, and the development progress of each development task is monitored in real time.
[0033] Optionally, performing automatic static code scanning on the branch code corresponding to the completed development task, and updating the source code security information in the software architecture diagram according to the automatic static code scanning result, specifically includes:
[0034] Using the continuous integration and delivery module to perform automatic static code scanning on the branch code corresponding to the completed development task to obtain an automatic static code scanning result; the automatic static code scanning result includes passing the automatic static code scanning or failing the automatic static code scanning;
[0035] According to the automatic static code scanning result, an alarm is issued for the branch code that fails the automatic static code scanning, and the automatic static code scanning result is sent to the project management module;
[0036] According to the automatic static code scanning result, the project management module is used to update the source code security information in the software architecture diagram.
[0037] Optionally, the branch codes that have completed the automatic static code scanning are merged to obtain the merged code, which specifically includes:
[0038] For the branch code that has completed the automatic static code scan, using the continuous integration and delivery module to initiate a branch merge request, wherein the branch merge request refers to a request to merge the development branch code and the trunk branch code in the branch code that has completed the automatic static code scan;
[0039] When the branch merge request is approved, the development branch code and the trunk branch code in the branch code that has completed the automatic static code scanning are merged using the continuous integration and delivery module to obtain the merged code;
[0040] When the branch merge request fails to pass the review, the branch code that has completed the automatic static code scanning is rolled back and modified.
[0041] Optionally, the merged code is automatically constructed, packaged, and stored to obtain a product, specifically including:
[0042] Utilizing the continuous integration and delivery module to automatically build and package the merged code, analyzing the dependencies referenced by the source code, generating software composition analysis SPDX document data, and synchronizing the software composition analysis SPDX document data to the project management module;
[0043] Analyze SPDX document data according to the software composition, and use the project management module to update all dependency information of components in the software architecture diagram, wherein the dependency information includes the name of the dependency package, the version number of the dependency package, the source of the dependency package, and whether the dependency package is open source;
[0044] The continuous integration and delivery module is used to store the packaged artifacts in an artifact warehouse, and to generate a name and version number for the artifacts.
[0045] Optionally, performing a security information scan on the product to obtain a product having completed the security information scan specifically includes:
[0046] Using the continuous integration and delivery module to perform security information scanning on the artifact, generate security risk information of the artifact, and send the security risk information of the artifact to the project management module;
[0047] Based on the security risk information of the product, using the project management module to update the software architecture diagram and the security risk information of the product;
[0048] Using the continuous integration and delivery module to perform a labeling operation on the artifact that has passed the security information scan, to generate label information for the artifact;
[0049] According to the label information of the artifact, the artifact is subjected to label inspection, and the artifact that passes the label inspection is deployed using the continuous integration and delivery module.
[0050] Optionally, acceptance testing and release of the product that has completed the security information scan may include:
[0051] Deploy environmental information using the environment management module, and add and configure the environmental information using the continuous integration and delivery module; the environmental information includes a test environment, a pre-release environment, and a production environment;
[0052] Based on the environmental information, using the test module to provide UI testing, interface testing, and functional testing for the product that has completed the security information scan, and generate test results; the test results include passing or failing the acceptance test;
[0053] Synchronizing the test results to the project management module, and generating new work tasks based on the artifacts that failed the acceptance test; the new work tasks are used to correct software defects corresponding to the artifacts that failed the acceptance test;
[0054] According to the test results, the continuous integration and delivery module is used to deploy the products that pass the acceptance test in the production environment, and the new version of the software after the update is accessed according to the URL published by the environment management module, thereby realizing a closed loop from business needs to software release.
[0055] According to the specific embodiments provided in this application, this application discloses the following technical effects:
[0056] The present application provides a method for managing the research and development process of railway application software. The method obtains the business demand information of the railway application software research and development project, and determines the research and development demand information through analysis, disassembly and distribution; then performs architectural design to determine the research and development tasks, and generates a software architecture diagram; then forms an artifact through branch development, automatic static code scanning, branch code merging, and code building, packaging and storage; finally, the artifact is scanned for security information, and the artifact that has completed the security information scan is accepted and released. Based on the business demand information, the present application completes the acceptance test and release of the artifact through operations such as automatic static code scanning and security information scanning, realizes a complete closed loop from business demand to software release, and realizes the standardization and standardization of the research and development process of railway application software. It can improve the efficiency and quality of software research and development, thereby obtaining more ideal software development results, which is conducive to obtaining recognition from business parties. BRIEF DESCRIPTION OF THE DRAWINGS
[0057] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0058] Figure 1 This is an application environment diagram of a railway application software development process management method provided in one embodiment of the present application.
[0059] Figure 2 A flowchart of a railway application software development process management method provided in one embodiment of the present application.
[0060] Figure 3 A schematic diagram of the structure of a railway application software development process management system provided in one embodiment of the present application.
[0061] Figure 4 A schematic diagram of the workflow of each functional module provided in one embodiment of the present application. DETAILED DESCRIPTION
[0062] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.
[0063] In order to make the above-mentioned purposes, features and advantages of the present application more obvious and easy to understand, the present application is further described in detail below with reference to the accompanying drawings and specific implementation methods.
[0064] The railway application software development process management method provided in the embodiment of the present application can be applied to Figure 1 In the application environment shown. Among them, the terminal 102 communicates with the server 104 through the network. The data storage system can store the data that the server 104 needs to process. The data storage system can be set up separately, integrated on the server 104, or placed on the cloud or other servers. The terminal 102 can send business demand information to the server 104. After the server 104 receives the business demand information, the server 104 analyzes, disassembles and distributes the business demand information to determine the R&D demand information; then performs architectural design to determine the R&D tasks and generate a software architecture diagram; conducts branch development on the R&D tasks to form multiple development tasks; performs automatic static code scanning on the branch codes corresponding to the completed development tasks; merges the branch codes that have completed the automatic static code scanning; automatically builds the code, packages and stores it to obtain the product; performs security information scanning on the product; and performs acceptance testing and release on the product that has completed the security information scan. The server 104 can feedback the released software product to the terminal 102. In addition, in some embodiments, the railway application software development process management method can also be implemented independently by the server 104 or the terminal 102. For example, the terminal 102 can directly perform software development processing based on the business demand information, or the server 104 can obtain the business demand information from the data storage system and perform software development processing based on the business demand information.
[0065] The terminal 102 may be, but is not limited to, various desktop computers, laptop computers, tablet computers, etc. The server 104 may be implemented as an independent server or a server cluster consisting of multiple servers, or may be a cloud server.
[0066] In an exemplary embodiment, Figure 2 As shown, a railway application software development process management method is provided. The method is executed by a computer device, specifically a computer device such as a terminal or a server, or a terminal and a server. In the embodiment of the present application, the method is applied to Figure 1 The server 104 in the example is used for explanation, and the steps include the following steps S1 to S9.
[0067] Step S1: Obtain business requirement information for a railway application software development project.
[0068] Step S2: Analyze, decompose and distribute the business demand information to determine R&D demand information.
[0069] Step S3: Perform architecture design based on the R&D requirement information, determine R&D tasks, and generate a software architecture diagram; the software architecture diagram includes source code security information.
[0070] Step S4: branch the R&D task to form multiple development tasks, and monitor the development progress of each development task in real time.
[0071] Step S5: Automatically perform static code scanning on the branch code corresponding to the completed development task, and update the source code security information in the software architecture diagram according to the automatic static code scanning result; the branch code includes development branch code and trunk branch code.
[0072] Step S6: Merge the branch codes that have completed the automatic static code scanning to obtain the merged code.
[0073] Step S7: automatically construct, package, and store the merged code to obtain a product.
[0074] Step S8: Scan the product for security information to obtain a product that has completed the security information scan.
[0075] Step S9: Perform acceptance testing and release on the product that has completed the security information scan.
[0076] In an exemplary embodiment, a railway application software development process management system is provided, in which the railway application software development process management method is applied. Figure 3 As shown in the figure, the railway application software R&D process management system includes functional modules such as project management module, continuous integration and delivery module, testing module and environment management module. Among them, the project management module, continuous integration and delivery module and testing module are connected in sequence, and the environment management module is connected to the project management module, continuous integration and delivery module and testing module respectively.
[0077] In this embodiment, the project management module is used to register project information of railway application software R&D projects. The project information includes project name, business party information, project investment information, and sub-project information.
[0078] In this embodiment, the continuous integration and delivery module is used to register the system information corresponding to the railway application software R&D project. The system information includes the system name and system function introduction, and is associated with the corresponding project or sub-project by synchronizing the information with the project management module.
[0079] In this embodiment, the test module is used to provide test case management capabilities as well as UI testing, interface testing, and performance testing capabilities to support functional testing and acceptance testing, and generate test results. These test results are synchronized to the project management module and formed into new work tasks for fixing defects in the software.
[0080] In this embodiment, the environment management module is used to provide and manage the resources required to run containerized applications. The resources are divided into a test area, a staging area, and a production area, corresponding to the test environment, the staging environment, and the production environment, respectively. The test area, the staging area, and the production area are isolated from each other. The test area refers to the environment where testers conduct functional testing; the staging area refers to the environment where acceptance testing is performed by simulating the actual production environment; and the production area refers to the environment where the software is officially produced and run.
[0081] In the railway application software development process management system of this embodiment, the project management module primarily collects information from other functional modules, such as the continuous integration and delivery module and the testing module, to demonstrate project development progress. The information systems in the continuous integration and delivery module correspond to the projects in the project management module. Test results generated by the testing module are registered in the project management module to urge R&D personnel to swiftly correct defects. The continuous integration and delivery module deploys the software in the environment provided by the environment management module for testing, release, and other purposes.
[0082] Based on the above-mentioned railway application software development process management system, step S1 of this embodiment obtains business demand information of the railway application software development project, which specifically includes the following steps.
[0083] Step S11: using the project management module to input the project information of the railway application software development project.
[0084] Step S12: Determine the business requirement information of the railway application software development project based on the project information.
[0085] Step S13: Conduct a preliminary review of the business demand information. This preliminary review involves reviewing and screening the business demand information, returning unreasonable and unmet requirements in the business demand information for revision, and retaining reasonable and unmet requirements in the business demand information as the business demand information, executing step S2 (analyzing, deconstructing, and distributing the business demand information to determine R&D demand information).
[0086] In this embodiment, step S2 analyzes, decomposes and distributes the business demand information to determine R&D demand information, which specifically includes the following steps.
[0087] Step S21: Analyze and decompose the business demand information using the project management module to generate the R&D demand information.
[0088] Step S22: Enter the R&D requirement information into the sub-project in the project management module, and enter the acceptance test case into the test module.
[0089] In this embodiment, step S4 performs branch development on the R&D task to form multiple development tasks, and monitors the development progress of each development task in real time, which specifically includes the following steps.
[0090] Step S41: Based on the R&D tasks, a development branch is created using the continuous integration and delivery module to form multiple development tasks.
[0091] Step S42: Utilize the continuous integration and delivery module to synchronize the development task information of all the development tasks, and display the development task information in a list format.
[0092] Step S43: associate each of the development tasks with the branch name of the development branch, pull and develop the code after association, and monitor the development progress of each development task in real time.
[0093] In this embodiment, step S5 performs automatic static code scanning on the branch code corresponding to the completed development task, and updates the source code security information in the software architecture diagram according to the automatic static code scanning result, which specifically includes the following steps.
[0094] Step S51: Use the continuous integration and delivery module to perform automatic static code scanning on the branch code corresponding to the completed development task to obtain an automatic static code scanning result, wherein the automatic static code scanning result includes passing the automatic static code scanning or failing the automatic static code scanning.
[0095] Step S52: Based on the automatic static code scanning result, an alarm is issued for the branch code that fails the automatic static code scanning, and the automatic static code scanning result is sent to the project management module.
[0096] Step S53: Based on the automatic static code scanning result, the project management module is used to update the source code security information in the software architecture diagram.
[0097] In this embodiment, step S6 merges the branch codes that have completed the automatic static code scanning to obtain the merged code, which specifically includes the following steps.
[0098] Step S61: For the branch code that has completed the automatic static code scanning, use the continuous integration and delivery module to initiate a branch merge request. The branch merge request is a request to merge the development branch code and the trunk branch code in the branch code that has completed the automatic static code scanning.
[0099] Step S62: When the branch merge request is approved, the continuous integration and delivery module is used to merge the development branch code and the trunk branch code in the branch code that has completed automatic static code scanning to obtain the merged code.
[0100] Step S63: When the branch merge request fails to pass the review, the branch code that has completed the automatic static code scanning is rolled back for modification.
[0101] In this embodiment, step S7 automatically constructs, packages, and stores the merged code to obtain a product, which specifically includes the following steps.
[0102] Step S71: Utilize the continuous integration and delivery module to automatically build and package the merged code, analyze the dependencies referenced by the source code, generate software composition analysis SPDX document data, and synchronize the software composition analysis SPDX document data to the project management module.
[0103] Step S72: Analyze the SPDX document data based on the software composition, and use the project management module to update all dependency information of the components in the software architecture diagram. The dependency information includes the name of the dependency package, the version number of the dependency package, the source of the dependency package, and whether the dependency package is open source.
[0104] Step S73: Utilize the continuous integration and delivery module to store the packaged artifacts in the artifact warehouse, and generate the name and version number of the artifacts.
[0105] In this embodiment, step S8 performs security information scanning on the product to obtain the product after the security information scanning is completed, which specifically includes the following steps.
[0106] Step S81: Use the continuous integration and delivery module to scan the product for security information, generate security risk information of the product, and send the security risk information of the product to the project management module.
[0107] Step S82: Based on the security risk information of the product, use the project management module to update the software architecture diagram and the security risk information of the product.
[0108] Step S83: Use the continuous integration and delivery module to perform a labeling operation on the product that has passed the security information scan to generate label information for the product.
[0109] Step S84: perform label check on the artifact according to the tag information of the artifact, and deploy the artifact that passes the label check using the continuous integration and delivery module.
[0110] In this embodiment, step S9 performs acceptance testing and release on the product that has completed the security information scan, which specifically includes the following steps.
[0111] Step S91: Deploy environment information using the environment management module, and add and configure the environment information using the continuous integration and delivery module; the environment information includes a test environment, a pre-release environment, and a production environment.
[0112] Step S92: Based on the environmental information, use the test module to provide UI testing, interface testing, and functional testing for the product that has completed the security information scan, and generate test results; the test results include passing or failing the acceptance test.
[0113] Step S93: Synchronize the test results to the project management module, and create new tasks based on the artifacts that failed the acceptance test. The new tasks are used to correct software defects corresponding to the artifacts that failed the acceptance test.
[0114] Step S94: Based on the test results, the continuous integration and delivery module is used to deploy the products that have passed the acceptance test in the production environment, and the new version of the software after the update is accessed according to the URL published by the environment management module, thereby realizing a closed loop from business needs to software release.
[0115] Based on business demand information, this embodiment completes the acceptance test and release of the product through operations such as automatic static code scanning and security information scanning, realizing a complete closed loop from business demand to software release, and realizing the normalization and standardization of the research and development process of railway application software. It can improve the efficiency and quality of software research and development, thereby obtaining more ideal software development results, which is conducive to obtaining recognition from business parties.
[0116] In order to make the technical solution of this embodiment clearer, the following is a detailed description of the implementation steps and workflow of the railway application software development process management method based on the railway application software development process management system in this embodiment in the form of examples. Figure 4 As shown, it mainly includes the following contents.
[0117] (1) Obtain business demand information for railway application software R&D projects.
[0118] Enter the project information of the railway application software R&D project in the project management module, determine the business demand information, and conduct a preliminary review; based on the review results, the system construction project can be established. The review results are divided into two situations: 1) If the business demand is unreasonable, return it for modification; 2) If the business demand is reasonable, distribute the business demand.
[0119] In this embodiment, the preliminary review is performed manually to preliminarily screen out unreasonable business requirements that do not need to be met. For example, some business requirements are too large and exceed the project boundaries, and are therefore considered unreasonable; some business requirements already have corresponding functions in the software and are already able to meet the business requirements, and are therefore considered business requirements that do not need to be met again.
[0120] (2) Analyze, disassemble and distribute business demand information to determine R&D demand information.
[0121] In the project management module, business requirements are analyzed and broken down to generate corresponding R&D requirements and enter them into the subprojects within the project management module. At the same time, acceptance test cases are entered into the testing module. Acceptance test cases are written based on user requirements to verify that the software meets the user's business requirements.
[0122] (3) Design the architecture based on R&D requirements information.
[0123] In this embodiment, the technical manager performs architecture design based on R&D demand information, generates and updates the software architecture diagram in the project management module; registers R&D tasks in the project management module, and dispatches the R&D tasks to corresponding developers.
[0124] (4) Carry out branch development for R&D tasks and monitor the development progress of each development task in real time. Create development branches in the corresponding code repository in the continuous integration and delivery module to form multiple development tasks; the continuous integration and delivery module will synchronize the development task information of all development tasks and display them in a list; associate the branch name with the development task, then pull and develop the code, and monitor the development progress of each development task in real time.
[0125] (5) Automatically perform static code scanning and alarms on the branch codes corresponding to the completed development tasks.
[0126] Submit the branch code corresponding to the completed development task to the code warehouse, and perform automatic static code scanning through the continuous integration and delivery module. Branch codes with serious errors in the automatic static code scanning results and those that fail the automatic static code scanning will be warned through the page. All automatic static code scanning results will be sent to the project management module to update the source code security information of the corresponding functional modules in the system's software architecture diagram.
[0127] In this embodiment, in addition to alarms, a threshold value can also be set in the pipeline. When the error level exceeds the threshold value, the pipeline execution is stopped, that is, the continuous integration and delivery process ends. The user needs to fix the error first and then execute again.
[0128] (6) Merge the branch codes that have completed automatic static code scanning.
[0129] A branch merge request is filed in the continuous integration and delivery module. The branch code that fails the branch merge request review will be returned to the developer for modification. After the branch code that passes the branch merge request review is confirmed to be merged in the continuous integration and delivery module, the development branch code is merged with the trunk branch code to obtain the completed merged code.
[0130] (7) Automatically build and package the merged code and store the product.
[0131] The merged code is automatically built and packaged through the continuous integration and delivery module; while automatically building the code, the continuous integration and delivery module will analyze the dependencies referenced by the source code, generate a software composition analysis SPDX document, and synchronize the software composition analysis SPDX document to the project management module; after receiving the software composition analysis SPDX document, the project management module updates all dependency information of the components in the software architecture diagram according to the composition information of the software in the software composition analysis SPDX document. The dependency information includes: the name of the dependent package, the version number of the dependent package, the source of the dependent package, and whether the dependent package is open source; the packaged products are stored in the internal product warehouse by the continuous integration and delivery module, and the product name and version number are generated.
[0132] Here, "dependency" refers to external libraries or components referenced in the source code, which are required for building, packaging, and running the code. Specifically, dependencies can be third-party open source libraries, private libraries, or other modules, which are usually managed through package management tools. Package management tools include Maven, npm, pip, etc. This process involves analyzing all external dependencies referenced in the source code. The focus of the analysis is to determine the external libraries that the source code directly or indirectly depends on, and the metadata of each dependency, such as the name of the dependent package, the version number of the dependent package, the source of the dependent package, and whether the dependent package is open source.
[0133] (8) Scan the product for safety information.
[0134] After receiving a new artifact, the continuous integration and delivery module automatically triggers a security information scan of the artifact and generates a scan result report, including the security risk information of the artifact; the security risk information will be sent to the project management module; after receiving the security risk information, the project management module updates the software architecture diagram and updates the security risk information of the artifact of the corresponding component; the continuous integration and delivery module will label the artifacts that pass the security information scan; during the labeling operation, the artifact is hashed using an internally managed private key, and the hash value is recorded in the continuous integration and delivery module; the continuous integration and delivery module deploys the artifacts in the artifact library, and before deployment, it will check the artifact's tag information. Only artifacts that pass the tag check will be allowed to be deployed.
[0135] (9) Carry out acceptance testing and release of products that have completed security information scanning.
[0136] The continuous integration and delivery module will add and configure the environment information deployed in the environment management module, including the test environment, staging environment, and production environment. After the environment information is deployed, the test module provides UI testing, interface testing, and functional testing capabilities, and generates test results. The test results will be synchronized to the project management module to form new work tasks, which are used to modify defects in the software corresponding to the products that failed the acceptance test.
[0137] For products that pass the acceptance test, the operation and maintenance personnel will deploy them in the production environment in the continuous integration and delivery module. At this time, business personnel can access the new version of the software after the update through the URL published by the environment management module, realizing a closed loop from business needs to software release.
[0138] In actual application, when a business requirement is proposed by a business partner for a railway application software development project, the project manager can enter the business requirement information for the railway application software development project into the project management module. The project manager also registers the project information for the railway application software development project, including the project name, business partner information, project investment information, and subproject information. If a large project consists of several subprojects, the subproject information must be registered under the project. The technical manager registers the project's corresponding system information, including the system name and a brief description of its functions, in the continuous integration and delivery module. The technical manager then uses the information in the project management module to simultaneously select the corresponding project or subproject for association. The information manager conducts a preliminary review of the business requirement information in the project management module. Irrational business requirements are returned for revision, while reasonable business requirements are assigned to the project manager for processing. After receiving the business requirement information, the project manager conducts decomposition—the process of analyzing and breaking it down—to determine subsystem requirements. The project manager then enters the decomposed business requirements into the subprojects in the project management module and distributes them to the technical leaders of the corresponding systems. The project manager also writes acceptance test cases and enters them into the test module. After receiving the R&D requirement information corresponding to the business requirements of the system, the technical manager conducts architectural design and manually updates the system's software architecture diagram in the project management module to implement architectural updates. The technical manager registers R&D tasks in the project management module and assigns them to the corresponding developers, that is, assigns each subtask of the R&D task to each developer. Each developer receives the subtask assigned to them in the project management module and creates a development branch in the corresponding code repository in the continuous integration and delivery module; the continuous integration and delivery module synchronizes the development task information of all the developer's development tasks and displays it in a list. When creating a development branch, the developer associates the branch name with the development task, and then pulls and develops the code.
[0139] When developers submit the branch code corresponding to the completed development task to the code repository, the automatic static code scan of the continuous integration and delivery module will be automatically triggered. Branch codes that fail the automatic static code scan will be warned through the page. All automatic static code scan results will be sent to the project management module to update the source code security information of the corresponding functional modules in the software architecture diagram. Developers will submit branch merge requests in the continuous integration and delivery module, and the branch merge requests will be sent to the technical manager. After receiving the branch merge request, the technical manager will review the branch code; for the branch code that passes the review, the technical manager will click "Allow Merge" in the continuous integration and delivery module, and the development branch code will be merged with the main branch code. Changes in the main branch code will automatically trigger the automatic code build and packaging process of the continuous integration and delivery module. While automatically building the code, the continuous integration and delivery module will analyze the dependencies referenced by the source code, generate a software composition analysis SPDX document, and synchronize the software composition analysis SPDX document to the project management module; after receiving the software composition information in the software composition analysis SPDX document, the project management module updates all dependency information of the components in the software architecture diagram, including: dependent package name, dependent package version number, dependent package source, and whether the dependent package is open source.
[0140] The continuous integration and delivery module stores packaged artifacts in an internal artifact repository and generates artifact names and version numbers. Upon receiving a new artifact, the continuous integration and delivery module automatically triggers a security scan and generates security risk information for the artifact. This security risk information is then sent to the project management module, which then updates the software architecture diagram and the corresponding component artifacts. The continuous integration and delivery module tags artifacts that pass the security scan. Tags refer to permission tags. This tagging process involves calculating a hash value for the artifact using an internally managed private key, which is then recorded in the continuous integration and delivery module. The continuous integration and delivery module deploys artifacts from the artifact repository. Before deployment, it checks the artifact's tag information and allows deployment of only those that pass the tag check, thus implementing permission tagging for artifact deployment. The continuous integration and delivery module synchronizes the environment information deployed in the environment management module and deploys to the test, staging, and production environments based on user needs. After the continuous integration and delivery module deploys the artifacts in the test environment, the testing module provides capabilities such as UI testing, interface testing, and functional testing, and generates test results. The test results will be synchronized to the project management module to form new work tasks for correcting defects in the software. After the continuous integration and delivery module deploys the artifacts in the pre-release environment, the testing module provides capabilities such as acceptance testing and stress testing, and extracts test cases from the test cases to automatically perform related tests. The test results will also be synchronized to the project management module, and will also form new work tasks for correcting defects in the software. The continuous integration and delivery module will deploy the artifacts that have passed the acceptance test in the production environment. At this time, business personnel can access the new version of the software after the update through the URL published by the environment management module, realizing a complete closed loop from business needs to software release.
[0141] This embodiment integrates the project management module, continuous integration and delivery module, testing module, and environment management module to form a complete R&D process management system. It optimizes all aspects of railway software R&D, including project management, continuous integration and delivery, testing management, and environment management, thereby forming a railway application software R&D process management method with the following advantages.
[0142] (1) Standardized development process: By uniformly managing information such as projects, business requirements, architecture design, and development tasks, security audits are strengthened, the entire development process is standardized, and duplicate development and inefficient collaboration are reduced. This effectively addresses the current problems of lack of unified architecture management, weak collaborative development capabilities, lack of security audits, and disconnected development, testing, and release processes due to the lack of unified development and deployment management tools.
[0143] (2) Automated construction and integration: Through the continuous integration and delivery module, code is automatically built and packaged, improving the efficiency and quality of code delivery.
[0144] (3) Dependency management and security compliance: Automatically analyze dependencies in the code and generate software composition analysis SPDX documents, providing transparency of dependency information and ensuring the legality, open source nature, and version security of all dependent packages.
[0145] (4) Security scanning and risk management: By performing automatic static code scanning and security information scanning on branch codes and artifacts respectively, security risks can be discovered and handled in advance, security can be improved, and the current problems of lack of audit, lack of security of source code and artifacts, and lack of dependency compliance can be solved.
[0146] (5) Automated testing and defect management: Through the integration of automated testing and acceptance testing, the correctness and stability of software functions are ensured, and defects can be discovered and repaired in a timely manner, effectively solving the current problems of lack of systematic test management, insufficient test cases, weak acceptance and demand, and development results not being recognized by the business.
[0147] (6) Complete closed loop from business requirements to software release: From the collection of business requirements to software release, the entire process is clearly recorded and managed to ensure that the tasks and deliverables at each stage can be tracked and verified, ultimately achieving a complete closed loop so that each business requirement can be responded to in a timely manner and software products can be released efficiently, effectively solving the current problems of irregular business requirement management, untimely response to business requirements, and repeated development.
[0148] The technical features of the above embodiments can be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0149] This document uses specific examples to illustrate the principles and implementation methods of this application. The description of the above examples is only intended to help understand the method and core concept of this application. At the same time, for those skilled in the art, based on the concept of this application, there may be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as limiting this application.
Claims
1. A railway application software development process management method, characterized in that: The railway application software development process management method includes: Obtain business demand information for railway application software R&D projects; Analyze, disassemble and distribute the business demand information to determine R&D demand information; Performing architecture design based on the R&D requirement information, determining R&D tasks, and generating a software architecture diagram; the software architecture diagram includes source code security information; Conduct branch development on the R&D task to form multiple development tasks, and monitor the development progress of each development task in real time; Automatically perform static code scanning on the branch code corresponding to the completed development task, and update the source code security information in the software architecture diagram according to the automatic static code scanning result; the branch code includes development branch code and trunk branch code; Merge the branch codes that have completed automatic static code scanning to obtain the merged code; Automatically construct, package, and store the merged code to obtain a product; Performing a security information scan on the product to obtain a product that has completed the security information scan; Perform acceptance testing and release of the products that have completed the security information scan; The railway application software development process management method is applied to a railway application software development process management system, which includes a project management module, a continuous integration and delivery module, a testing module, and an environment management module. The project management module, the continuous integration and delivery module, and the testing module are connected in sequence, and the environment management module is connected to the project management module, the continuous integration and delivery module, and the testing module respectively. The project management module is used to register the project information of the railway application software R&D project, wherein the project information includes the project name, business party information, project investment information and sub-project information; The continuous integration and delivery module is used to register the system information corresponding to the railway application software R&D project, the system information including the system name and system function introduction, and to associate the corresponding project or sub-project by synchronizing with the information of the project management module; The test module is used to provide test case management capabilities as well as UI testing, interface testing and performance testing capabilities to support functional testing and acceptance testing, and generate test results; The environment management module is used to provide and manage the resources required for the operation of the containerized application, and divide the resources into a test area, a pre-launch area, and a production area, wherein the test area, the pre-launch area, and the production area are isolated from each other; Acceptance testing and release of the products that have completed the security information scan, specifically including: Deploy environmental information using the environment management module, and add and configure the environmental information using the continuous integration and delivery module; the environmental information includes a test environment, a pre-release environment, and a production environment; Based on the environmental information, using the test module to provide UI testing, interface testing, and functional testing for the product that has completed the security information scan, and generate test results; the test results include passing or failing the acceptance test; Synchronizing the test results to the project management module, and generating new work tasks based on the artifacts that failed the acceptance test; the new work tasks are used to correct software defects corresponding to the artifacts that failed the acceptance test; According to the test results, the continuous integration and delivery module is used to deploy the products that pass the acceptance test in the production environment, and the new version of the software after the update is accessed according to the URL published by the environment management module, thereby realizing a closed loop from business needs to software release.
2. The railway application software development process management method according to claim 1, characterized in that: Obtain business requirements information for railway application software R&D projects, including: Entering the project information of the railway application software development project using the project management module; Determining business requirement information of the railway application software development project based on the project information; Conduct a preliminary review of the business demand information. The preliminary review refers to reviewing and screening the business demand information, returning unreasonable demands and demands that do not need to be met in the business demand information for modification, and using reasonable demands and demands that need to be met in the business demand information as the business demand information, and executing the steps of "analyzing, disassembling and distributing the business demand information to determine R&D demand information." 3. The railway application software development process management method according to claim 2, characterized in that: Analyze, disassemble and distribute the business demand information to determine R&D demand information, including: Utilizing the project management module to analyze and decompose the business demand information to generate the R&D demand information; The R&D requirement information is entered into the sub-project in the project management module, and acceptance test cases are entered into the test module.
4. The railway application software development process management method according to claim 3, characterized in that: Conduct branch development on the R&D task to form multiple development tasks, and monitor the development progress of each development task in real time, including: Based on the R&D tasks, the continuous integration and delivery module is used to create development branches to form multiple development tasks; Synchronize the development task information of all the development tasks using the continuous integration and delivery module, and display the development task information in a list format; Each of the development tasks is associated with the branch name of the development branch, and after the association, code is pulled and developed, and the development progress of each development task is monitored in real time.
5. The railway application software development process management method according to claim 4, characterized in that: Automatically perform static code scanning on the branch code corresponding to the completed development task, and update the source code security information in the software architecture diagram according to the automatic static code scanning results, specifically including: Using the continuous integration and delivery module to perform automatic static code scanning on the branch code corresponding to the completed development task to obtain an automatic static code scanning result; the automatic static code scanning result includes passing the automatic static code scanning or failing the automatic static code scanning; According to the automatic static code scanning result, an alarm is issued for the branch code that fails the automatic static code scanning, and the automatic static code scanning result is sent to the project management module; According to the automatic static code scanning result, the project management module is used to update the source code security information in the software architecture diagram.
6. The railway application software development process management method according to claim 5, characterized in that: Merge the branch codes that have completed automatic static code scanning to obtain the merged code, which specifically includes: For the branch code that has completed the automatic static code scan, using the continuous integration and delivery module to initiate a branch merge request, wherein the branch merge request refers to a request to merge the development branch code and the trunk branch code in the branch code that has completed the automatic static code scan; When the branch merge request is approved, the development branch code and the trunk branch code in the branch code that has completed the automatic static code scanning are merged using the continuous integration and delivery module to obtain the merged code; When the branch merge request fails to pass the review, the branch code that has completed the automatic static code scanning is rolled back and modified.
7. The railway application software development process management method according to claim 6, characterized in that: Automatically construct, package, and store the merged code to obtain a product, specifically including: Utilizing the continuous integration and delivery module to automatically build and package the merged code, analyzing the dependencies referenced by the source code, generating software composition analysis SPDX document data, and synchronizing the software composition analysis SPDX document data to the project management module; Analyze SPDX document data according to the software composition, and use the project management module to update all dependency information of components in the software architecture diagram, wherein the dependency information includes the name of the dependency package, the version number of the dependency package, the source of the dependency package, and whether the dependency package is open source; The continuous integration and delivery module is used to store the packaged artifacts in an artifact warehouse, and to generate a name and version number for the artifacts.
8. The railway application software development process management method according to claim 7, characterized in that: Scanning the product for security information to obtain a product that has completed the security information scan specifically includes: Using the continuous integration and delivery module to perform security information scanning on the artifact, generate security risk information of the artifact, and send the security risk information of the artifact to the project management module; Based on the security risk information of the product, using the project management module to update the software architecture diagram and the security risk information of the product; Using the continuous integration and delivery module to perform a labeling operation on the artifact that has passed the security information scan, to generate label information for the artifact; According to the label information of the artifact, the artifact is subjected to label inspection, and the artifact that passes the label inspection is deployed using the continuous integration and delivery module.
Citation Information
Patent Citations
Code template management method and system
CN114416117A
Application development method and device
CN119065637A