Disclosure of Invention
In view of the foregoing, an object of the present application is to provide a system development method, apparatus, electronic device, and storage medium, so as to increase the development rate of the system.
In a first aspect, the present application provides a method for developing a system, the method comprising: analyzing the customer demand, determining the division of functional modules of the system, and generating programs of the functional modules aiming at any functional module in the system by the following modes: determining a plurality of execution steps for satisfying the function description according to the function description of the function module; for each execution step, determining a category of the execution step; compiling unit codes corresponding to each execution step according to the category of the execution step; and generating programs of the functional modules based on the unit codes corresponding to all the execution steps and the association relation between each execution step.
Preferably, for each execution step, the category of the execution step is determined by: determining a target compiling tool and a preset plugin library corresponding to the target compiling tool, wherein the preset plugin library comprises a plurality of algorithm plugins, and each algorithm plugin is associated with a plugin attribute number; determining a corresponding target attribute number according to the content of the executing step; matching is carried out in a preset plugin library so as to determine whether plugin attribute numbers which are the same as the target attribute numbers exist or not; if yes, determining the category of the executing step as multiplexing category; if not, determining the category of the executing step as a new category.
Preferably, according to the category of each execution step, compiling the unit code corresponding to the execution step, which specifically includes: compiling a unit code corresponding to the execution step through a target algorithm plug-in aiming at the execution step of the multiplexing category, wherein the plug-in attribute number of the target algorithm plug-in is the same as the target attribute number; and compiling unit codes corresponding to the execution steps according to the content of the execution steps aiming at the execution steps of the new category.
Preferably, the program editing interface includes a display area for displaying all the codes compiled, and further includes: acquiring target unit codes determined from all codes displayed in a display area; acquiring the name and the plug-in attribute number of an algorithm plug-in set in an algorithm plug-in information editing interface; and generating a corresponding algorithm plug-in based on the target unit code, and storing the acquired name and plug-in attribute number of the algorithm plug-in and the association of the algorithm plug-in a preset plug-in library.
Preferably, the algorithm plug-in is used by: determining a target algorithm plug-in response to the selection operation of the target algorithm plug-in; determining whether editing of the target algorithm plug-in is required; if editing is not needed, adding codes corresponding to the target algorithm plug-in on the appointed position of the display area of the program editing interface; if editing is needed, adding a modified code corresponding to the target algorithm plug-in on the appointed position of the display area of the program editing interface.
Preferably, the method further comprises: generating a semiconductor production system based on the generated functional modules and the association relation between the functional modules; testing a semiconductor production system based on a target application scene; the target application scene is a semiconductor automatic production scene to be applied by the semiconductor production system.
Preferably, the step of analyzing the customer requirement and determining the division of the functional modules of the system specifically includes: according to the target application scene, analyzing the requirements of a semiconductor production system; dividing a plurality of functions of the semiconductor production system according to the requirements of the semiconductor production system; and determining each function of the determined semiconductor production system as a corresponding functional module.
In a second aspect, the present application provides a development apparatus for a system, the apparatus comprising:
the analysis module is used for analyzing the demands of the clients and determining the division of the functional modules of the system;
a generating module for generating, for any one of the functional modules in the system, a program of the functional module by:
the generating module comprises a dividing unit and a processing unit, wherein the dividing unit is used for determining a plurality of executing steps for meeting the function description according to the function description of the function module;
a judging unit configured to determine, for each execution step, a category of the execution step;
the compiling unit is used for compiling the unit codes corresponding to the execution steps according to the category of each execution step;
and the arrangement unit is used for generating programs of the functional modules based on unit codes corresponding to all the execution steps and the association relation between each execution step.
In a third aspect, the present application further provides an electronic device, including: a processor, a memory and a bus, the memory storing machine-readable instructions executable by the processor, the processor and the memory communicating over the bus when the electronic device is operating, the machine-readable instructions when executed by the processor performing the steps of a method of developing a system as described above.
In a fourth aspect, the present application also provides a computer readable storage medium having stored thereon a computer program which, when executed by a processor, performs the steps of a method of developing a system as described above.
The application provides a development method, a device, electronic equipment and a storage medium of a system, wherein the development method, the device, the electronic equipment and the storage medium are used for determining the division of functional modules of the system by analyzing the demands of clients, and generating programs of the functional modules aiming at any functional module of the system by the following modes: determining a plurality of execution steps for satisfying the function description according to the function description of the function module; for each execution step, determining a category of the execution step; compiling unit codes corresponding to each execution step according to the category of the execution step; based on the unit codes corresponding to all the execution steps and the association relation between each execution step, the program of the functional module is generated, and different compiling modes can be adopted when different execution steps are classified, so that the development rate of the system is improved.
In order to make the above objects, features and advantages of the present application more comprehensible, preferred embodiments accompanied with figures are described in detail below.
Detailed Description
For the purposes of making the objects, technical solutions and advantages of the embodiments of the present application more clear, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is apparent that the described embodiments are only some embodiments of the present application, but not all embodiments. The components of the embodiments of the present application, which are generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of the present application, as provided in the accompanying drawings, is not intended to limit the scope of the application, as claimed, but is merely representative of selected embodiments of the application. Based on the embodiments of the present application, every other embodiment that a person skilled in the art would obtain without making any inventive effort is within the scope of protection of the present application.
First, application scenarios applicable to the present application will be described. The method and the device can be applied to the development of the customized semiconductor production system. The existing development flow is generally: according to the requirements set by the user, analyzing the requirements by a developer; a developer designs a system integral frame and a flow according to the analysis result; and (3) performing software development and testing according to the flow, and finally, releasing the tested software to a user for use.
According to research, based on the characteristics of the semiconductor industry, some semiconductor devices do not have the factors of common protocol conditions, industrial production line differences and the like, and different customized semiconductor production systems are required to be developed for different clients according to the actual application scenes of users. In this case, in the development of a customized semiconductor production system, it is often necessary to recompile all codes, which is slow, troublesome in code multiplexing, and susceptible to the actual production environment.
Referring to fig. 1, fig. 1 is a flowchart of a method for developing a system according to an embodiment of the present application. As shown in fig. 1, the development method of the system provided in the embodiment of the present application includes:
s101, analyzing the requirements of clients and determining the division of functional modules of the system.
In the step, the customer demand is analyzed, and the step of dividing the functional modules of the system is determined, which specifically comprises the following steps:
and analyzing the requirements of the semiconductor production system according to the target application scene. The multiple functions of a semiconductor production system are divided according to the requirements of the semiconductor production system. And determining each function of the determined semiconductor production system as a corresponding functional module.
It is understood that semiconductor CIM systems are made up of a variety of industrial software and are life-level systems for semiconductor manufacturing. For example, tens of software systems such as Manufacturing Execution System (MES), equipment control platform (EAP), recipe Management System (RMS), yield Management System (YMS), etc., where each piece of industrial software corresponds to one or more functions. Taking the device control platform as an example, at least multiple functions such as device data acquisition, logic judgment, instruction execution and the like are needed, the function codes corresponding to different devices may be different, multiple function modules can be divided, and the multiple function modules are associated with each other to jointly realize the corresponding functions.
S102, generating programs of each functional module. Wherein, for any one of the functional modules in the system, the program of the functional module is generated by:
and step one, determining a plurality of execution steps for meeting the function description according to the function description of the function module.
It will be appreciated that a functional module is typically comprised of multiple execution steps. For example, the wafer is automatically tested, at least comprising a plurality of steps for controlling the action of the mechanical arm, collecting feedback parameters of the sensor, and analyzing test results based on the feedback parameters. For another example, the functional module corresponding to "acquire pad trace rectangle" includes the following steps: intercepting the picture of the selected area, identifying the rectangle conforming to the outline of the area condition, screening the size of the rectangle, recording the rectangle as a picture format, storing the picture format in a file server, and removing the repeated rectangle.
And step two, determining the category of each execution step for each execution step.
As shown in fig. 2, fig. 2 is a flowchart illustrating a step of determining a category of an execution step according to an embodiment of the present application. Here, for each execution step, the category of the execution step is determined by:
s201, determining a target compiling tool and a preset plugin library corresponding to the target compiling tool, wherein the preset plugin library comprises a plurality of algorithm plugins, and each algorithm plugin is associated with a plugin attribute number.
The compiling tool is programming software and is also used for indicating the compiling environment and the compiling language. The preset plug-in library is created in advance, and the mapping relation between the content of different execution steps and the implementation codes is counted based on codes of a semiconductor production system developed in a history mode. And encapsulates the separate execution steps as a plug-in. The plug-in is used only by modifying the input or output of the plug-in.
S202, according to the content of the executing step, determining the corresponding target attribute number.
Here, for convenience in searching for the plug-in, attribute classification may be performed according to the content of the execution step, and different attributes are denoted by different numbers. The category may be parameter acquisition, algorithm, instruction generation, etc., and the category may be GetNeedleTrailHandler (needle mark recognition processing class), kvmStateHandler (Kvm state change processing class), mesHandler (Mes communication processing class), serviceStateHandler (service state simulation change processing class), alarmHandler (alarm simulation processing class), etc., taking the semiconductor generation link as an example. The numbering here may be in the form of numerals or letters. For example, the execution steps herein may be GetNeedleTrailRect (acquire pad trace rectangle), pushStateChange (push Kvm state change), getfilddata (acquire RFID data), getLotData (acquire Lot data), pushServiceStateChange (service state simulation state change data), dealwitharksync (record alarm).
S203, matching is carried out in a preset plugin library so as to determine whether a plugin attribute number identical to the target attribute number exists.
S204, if the type exists, determining the type of the executing step as a multiplexing type;
s205, if the new category does not exist, determining the category of the executing step as the new category.
Here, the number is used to match in a preset plugin library, if a plugin capable of realizing the current execution step exists in the preset plugin library, the execution step can be determined to be a multiplexing type, and compiling can be completed by adding a plugin form. If the execution step is a new category, the developer needs to design and write the new category by himself.
And thirdly, compiling unit codes corresponding to the execution steps according to the category of each execution step.
The step of compiling the unit code corresponding to each execution step according to the category of the execution step specifically comprises the following steps:
and compiling a unit code corresponding to the execution step by a target algorithm plug-in aiming at the execution step of the multiplexing category, wherein the plug-in attribute number of the target algorithm plug-in is the same as the target attribute number. And compiling unit codes corresponding to the execution steps according to the content of the execution steps aiming at the execution steps of the new category.
By doing code compilation with plug-ins, a number of repeated code entry tasks can be reduced. Meanwhile, for the execution steps of the new category, a designer can select similar plug-ins for modification according to the situation.
And step four, generating a program of the functional module based on the unit codes corresponding to all the execution steps and the association relation between each execution step.
In the step, all the determined execution steps are required to be arranged into a complete functional module according to the association relation.
Therefore, by classifying the contents of the execution steps, repeated writing of codes in the development process of the semiconductor production system can be avoided, and the development efficiency is improved.
Referring to fig. 3, fig. 3 is a flowchart illustrating steps for generating an algorithm plug-in according to an embodiment of the present application. As shown in fig. 3, the program editing interface includes a display area, where the display area is used to display all the compiled codes, and the development method of the system provided in the embodiment of the application includes:
s301, acquiring target unit codes determined from all codes displayed in a display area.
The display area may be the bottom code corresponding to other developed semiconductor production systems or the newly compiled code. The user can intercept the target unit code through the mouse.
S302, acquiring the name and the plug-in attribute number of the algorithm plug-in set in the algorithm plug-in information editing interface.
The user can edit the information such as the name and the plug-in attribute number for the target unit code so as to facilitate the subsequent use.
S303, generating a corresponding algorithm plug-in based on the target unit code, and storing the acquired name and plug-in attribute number of the algorithm plug-in and the association of the algorithm plug-in a preset plug-in library.
Wherein the algorithm plug-in is used by:
and responding to the selection operation of the target algorithm plug-in, and determining the target algorithm plug-in. It is determined whether editing of the target algorithm plug-in is required. If editing is not needed, adding codes corresponding to the target algorithm plug-in on the appointed position of the display area of the program editing interface. If editing is needed, adding a modified code corresponding to the target algorithm plug-in on the appointed position of the display area of the program editing interface.
When the algorithm plug-in is used, after the user selects the target algorithm plug-in, details of the target algorithm plug-in can be displayed to the user, the user confirms whether the change is needed, and particularly when the implementation code of the execution step of the new category is compiled, the input burden of the code can be greatly reduced, and only similar algorithm plug-ins are needed to be searched for modification.
The method is not limited to the process of system development, and can also reduce the workload of developers by using an algorithm plug-in to complete the modification of codes when the modification of a certain functional module is updated in the process of system updating. If a function module is to be updated, only the new code needs to be updated into the plug ins folder.
In one embodiment of the present application, after all the functional modules are produced, the method further comprises:
and generating a semiconductor production system based on the generated functional modules and the association relation among the functional modules. And testing the semiconductor production system based on the target application scene. The target application scene is a semiconductor automatic production scene to be applied by the semiconductor production system.
The principle of generating the functional module by the code arrangement of the execution steps is the same, a semiconductor production system is formed by a plurality of functional modules, an application scene is simulated, and the stability, the accuracy and even the safety of the system are tested.
According to the development method of the system, provided by the embodiment of the application, through a dynamic loading module development mode, only codes related to development business are needed in customization, compiled into dll forms and copied to the catalogue of the production environment, so that the development or updating of the system can be realized, the development efficiency is improved, and meanwhile, the development is not easily influenced by the production environment.
Based on the same inventive concept, the embodiment of the present application further provides a development device of a development system of a system corresponding to the development method of the development system of the system, and since the principle of solving the problem by the device in the embodiment of the present application is similar to that of the development method of the development system of the system described in the embodiment of the present application, the implementation of the device may refer to the implementation of the method, and the repetition is omitted.
Referring to fig. 4, fig. 4 is a schematic structural diagram of a development device of a system according to an embodiment of the disclosure. As shown in fig. 4, the development apparatus 400 of the system includes:
the analysis module 410 is configured to analyze the client requirements and determine the functional module division of the system;
a generating module 420, configured to generate, for any one of the functional modules in the system, a program of the functional module by:
wherein the generating module 420 includes a dividing unit 4200 for determining a plurality of execution steps for satisfying the function description according to the function description of the function module;
a judging unit 4202 for determining, for each execution step, a category of the execution step;
a compiling unit 4204, configured to compile a unit code corresponding to each execution step according to a category of the execution step;
the sorting unit 4206 is configured to generate a program of the functional module based on unit codes corresponding to all execution steps and an association relationship between each execution step.
In a preferred embodiment, for each execution step, the determination unit 4202 determines the category of the execution step by: determining a target compiling tool and a preset plugin library corresponding to the target compiling tool, wherein the preset plugin library comprises a plurality of algorithm plugins, and each algorithm plugin is associated with a plugin attribute number; determining a corresponding target attribute number according to the content of the executing step; matching is carried out in a preset plugin library so as to determine whether plugin attribute numbers which are the same as the target attribute numbers exist or not; if yes, determining the category of the executing step as multiplexing category; if not, determining the category of the executing step as a new category.
In a preferred embodiment, the compiling unit 4204 is specifically configured to: compiling a unit code corresponding to the execution step through a target algorithm plug-in aiming at the execution step of the multiplexing category, wherein the plug-in attribute number of the target algorithm plug-in is the same as the target attribute number; and compiling unit codes corresponding to the execution steps according to the content of the execution steps aiming at the execution steps of the new category.
In a preferred embodiment, the program editing interface includes a display area for displaying all the compiled codes, and a storage module (not shown) for acquiring the target unit codes determined from all the codes displayed in the display area; acquiring the name and the plug-in attribute number of an algorithm plug-in set in an algorithm plug-in information editing interface; and generating a corresponding algorithm plug-in based on the target unit code, and storing the acquired name and plug-in attribute number of the algorithm plug-in and the association of the algorithm plug-in a preset plug-in library.
In a preferred embodiment, the system further comprises an editing module (not shown in the figure) for using the algorithm plug-in by: determining a target algorithm plug-in response to the selection operation of the target algorithm plug-in; determining whether editing of the target algorithm plug-in is required; if editing is not needed, adding codes corresponding to the target algorithm plug-in on the appointed position of the display area of the program editing interface; if editing is needed, adding a modified code corresponding to the target algorithm plug-in on the appointed position of the display area of the program editing interface.
In a preferred embodiment, the system further comprises a sorting module for generating a semiconductor production system based on the generated functional modules and the association relation between the functional modules; testing a semiconductor production system based on a target application scene; the target application scene is a semiconductor automatic production scene to be applied by the semiconductor production system.
In a preferred embodiment, the analysis module 410 is specifically configured to analyze the requirements of the semiconductor production system according to the target application scenario; dividing a plurality of functions of the semiconductor production system according to the requirements of the semiconductor production system; and determining each function of the determined semiconductor production system as a corresponding functional module.
Referring to fig. 5, fig. 5 is a schematic structural diagram of an electronic device according to an embodiment of the present application. As shown in fig. 5, the electronic device 500 includes a processor 510, a memory 520, and a bus 530.
The memory 520 stores machine-readable instructions executable by the processor 510, and when the electronic device 500 is running, the processor 510 communicates with the memory 520 through the bus 530, and when the machine-readable instructions are executed by the processor 510, the steps of the development method of the system in the method embodiment described above may be executed, and the specific implementation manner may refer to the method embodiment and will not be described herein.
The embodiment of the present application further provides a computer readable storage medium, where a computer program is stored on the computer readable storage medium, and when the computer program is executed by a processor, the steps of a development method of a system in the embodiment of the method may be executed, and a specific implementation manner may refer to the embodiment of the method and will not be described herein.
It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described systems, apparatuses and units may refer to corresponding procedures in the foregoing method embodiments, and are not repeated herein.
In the several embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. The above-described apparatus embodiments are merely illustrative, for example, the division of the units is merely a logical function division, and there may be other manners of division in actual implementation, and for example, multiple units or components may be combined or integrated into another system, or some features may be omitted, or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be through some communication interface, device or unit indirect coupling or communication connection, which may be in electrical, mechanical or other form.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in each embodiment of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit.
The functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a non-volatile computer readable storage medium executable by a processor. Based on such understanding, the technical solution of the present application may be embodied essentially or in a part contributing to the prior art or in a part of the technical solution, in the form of a software product stored in a storage medium, including several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-only memory (ROM), a random access memory (RandomAccessMemory, RAM), a magnetic disk, an optical disk, or other various media capable of storing program codes.
Finally, it should be noted that: the foregoing examples are merely specific embodiments of the present application, and are not intended to limit the scope of the present application, but the present application is not limited thereto, and those skilled in the art will appreciate that while the foregoing examples are described in detail, the present application is not limited thereto. Any person skilled in the art may modify or easily conceive of the technical solution described in the foregoing embodiments, or make equivalent substitutions for some of the technical features within the technical scope of the disclosure of the present application; such modifications, changes or substitutions do not depart from the spirit and scope of the technical solutions of the embodiments of the present application, and are intended to be included in the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.