Software development support system and software development support method

The software development support system addresses the challenge of dynamic screen control by analyzing existing software to generate reference information, improving development efficiency and quality by considering both static and dynamic structural changes.

JP2025008659APending Publication Date: 2025-01-20HITACHI SYST LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2023111009
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-05
Publication Date
2025-01-20

AI Technical Summary

Technical Problem

Existing technologies struggle to efficiently support the development of software involving screen display control, particularly in dynamic environments, as they fail to account for the similarity in dynamic display controls when identifying relevant information from existing software resources.

Method used

A software development support system that analyzes existing software to identify screen components and events, and generates reference screen information considering both static and dynamic structural changes, enabling the extraction of similar dynamic display controls for new software development.

Benefits of technology

Enhances software development efficiency and quality by providing relevant information for new screens, considering both static and dynamic display controls, thereby facilitating the creation of high-quality software.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025008659000001_ABST
    Figure 2025008659000001_ABST
Patent Text Reader

Abstract

To support the development of software including display control of a screen.SOLUTION: A software development support system is configured to: store existing screen information, which is information to be obtained by analyzing existing software, and to-be-created screen information, which is information to be obtained by analyzing to-be-created software; specify, when an event occurs, the event being the same as a target event which occurs on screen components constituting a screen of the to-be-created software, a screen component on a screen of the existing software in which dynamic structural change occurs; acquire, when the same dynamic structural change as the above dynamic structural change occurs also in the screen of the to-be-created software, information on the screen of the existing software having the specified screen component, from the existing screen information; and generate reference screen information which is information based on the acquired information.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a software development support system and a software development support method. [Background technology]

[0002] In recent years, various technologies have been proposed to improve the efficiency and quality of software development in order to respond to diversifying user needs and shortening life cycles. In particular, since software such as web applications contains many screens and many logics related to controlling their display, various mechanisms have been proposed to efficiently create and verify high-quality software by using existing software resources such as software developed in the past.

[0003] For example, Patent Document 1 describes a screen determination device configured for the purpose of appropriately determining the identity of screens in order to improve the efficiency of screen transition tests in functional tests of Web applications. The screen determination device performs predetermined editing on descriptive information of a first screen related to a Web application and descriptive information of a second screen related to a Web application that is the same as or different from the Web application, and determines the identity of the first screen and the second screen by comparing the edited descriptive information.

[0004] Also, for example, Patent Document 2 describes a program creation support device configured for the purpose of easily and appropriately obtaining a group of multiple screen parts for the purpose of improving the efficiency of development of application screens. The program creation support device identifies multiple screen parts from source code including multiple screen parts to be displayed on a screen, calculates the degree of association between the identified screen parts based on the source code, and identifies a group of related screen parts based on the degree of association between the screen parts. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] JP 2018-116497 A [Patent Document 2] Patent Publication No. 2022-128247 Summary of the Invention [Problem to be solved by the invention]

[0006] However, it is not always easy to find information that will contribute to improving the development efficiency and quality of a screen to be newly created (hereinafter referred to as the "target screen") from among the vast amount of existing software resources. In addition, when the target screen involves dynamic display control, it is necessary to search for appropriate information while also taking into account the similarity of the dynamic display control.

[0007] The screen determination device described in the above Patent Document 1 is configured for the purpose of appropriately determining the identity of screens in order to improve the efficiency of testing, and is not intended to support the task of searching for information from existing software resources. In addition, the screen determination device identifies the identity of screens by statically analyzing the DOM structure (DOM: Document Object Model), and does not take into account the similarity of dynamic display control of the screens when making the determination.

[0008] Furthermore, the program generation support device described in Patent Document 2 identifies a group of screen parts based on the relevance between the screen parts. However, the relevance is based on static information of the screen parts, and does not take into account dynamic display control of the screen when identifying the group.

[0009] The present invention has been made in consideration of the above background, and aims to provide a software development support system and a screen development support method that are capable of supporting the development of software involving screen display control. [Means for solving the problem]

[0010] One aspect of the present invention to achieve the above object is to provide a software program including a screen display control program. A software development support system for providing information to support development, comprising: a processor and a storage device, and the storage device is configured to display a screen. Obtained by analyzing existing software, which is existing software including control The existing screen information, which is the information to be displayed, and the software to be created, including the display control of the screen The screen to be created is information obtained by analyzing the software to be created. and the processor configures a screen of the software to be created. An event occurred that is the same as the target event that occurs in a screen part. When the existing software is installed, a dynamic change in the screen structure occurs. and a dynamic structural change similar to the dynamic structural change of the software to be created is If the problem also occurs on a screen, The screen information is obtained from the existing screen information, and a reference screen is generated based on the obtained information. Generates review screen information.

[0011] Other problems and solutions disclosed in the present application will be made clear in the detailed description and drawings. Effect of the Invention

[0012] According to the present invention, it is possible to support the development of software involving screen display control. [Brief description of the drawings]

[0013] [Figure 1] FIG. 1 is a diagram illustrating a schematic configuration of a software development support system. [Diagram 2] 13 is a flowchart illustrating a reference screen information presentation process. [Diagram 3] 11 is a flowchart illustrating an existing software analysis process. [Figure 4] 1 is an example of an existing screen test scenario. [Diagram 5] 13 is an example of existing screen information. [Figure 6] 11 is an example of screen component attention level information. [Figure 7] 13 is an example of screen information to be created. [Figure 8] 13 is a flowchart illustrating a dynamic structural change example identifying process. [Figure 9] 11 is a diagram illustrating a dynamic structural change example identifying process. FIG. [Figure 10] 13 is a flowchart illustrating a reference screen information generating process. [Figure 11] 11A to 11C are diagrams illustrating a reference screen information generating process. [Figure 12] 11A to 11C are diagrams illustrating a reference screen information generating process. [Figure 13] 13 is an example of a reference screen information presentation screen. [Figure 14A] 1 is a diagram illustrating the technical effect of the present invention. [Figure 14B] 1 is a diagram illustrating the technical effect of the present invention. [Figure 15] 1 is an example of an information processing device used in the configuration of a software development support system. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. Note that the following description and drawings are merely examples for explaining the present invention, and appropriate omissions and simplifications have been made in order to clarify the explanation. The present invention can be implemented in various other forms. Unless otherwise specified, each component may be singular or plural.

[0015] In the following explanation, the same or similar configurations may be given the same reference symbols and duplicate explanations may be omitted. In the following explanation, the letter "S" before a symbol indicates a processing step. Various information (data) in the following explanation may be represented or managed in a manner other than the data structure illustrated. When explaining various types of identification information, expressions such as "identifier" and "ID" are used as appropriate, but these can be interchanged with each other.

[0016] In the following explanation, "existing software" refers to software that has been created / developed in the past. Also, "existing software resources" refers to existing software as well as various information used in the development and maintenance of existing software, such as test scenarios created for existing software.

[0017] In the following explanation, "screen components" refers to elements that software displays on a screen, such as display fields for various types of information (text, figures, tables, graphs, etc.), input fields for various types of information (user operation input fields, selection fields, switches, etc.), various control buttons, etc. For example, in Web application software written in a markup language such as HTML (Hyper Text Markup Language) or XML (eXtensible Markup Language), screen components are defined in the source code as tags (HTML tags, XML tags), "form components," etc.

[0018] In the following description, an event such as a mouse click that occurs on a button, which is a screen component, is called a "screen component event".

[0019] FIG. 1 shows a schematic configuration of a software development support system (hereinafter, referred to as "development support system 1"), which is an information processing system shown as one embodiment of the present invention.

[0020] As shown in the figure, the development support system 1 includes a software resource management device (hereinafter referred to as a "resource management device 40") and a software development support device (hereinafter referred to as a "development support device 100").

[0021] The resource management device 40 and the development support device 100 are both configured using one or more information processing devices (computers). The resource management device 40 and the development support device 100 are connected in a state in which two-way communication is possible via a communication network 5. The communication network 5 is, for example, a LAN (Local Area Network), a WAN (Wide Area Network), the Internet, a dedicated line, a public communication network, etc.

[0022] The resource management device 40 manages existing software resources. As shown in the figure, the resource management device 40 has the functions of a storage unit 41 and an information providing unit 42. The storage unit 41 stores source code (hereinafter referred to as "existing screen source code 411") written for a screen of the existing software (hereinafter referred to as "existing screen"), and a test scenario (hereinafter referred to as "existing screen test scenario 412") used to test the above screen.

[0023] The existing screen source code 411 includes source code describing static information of the screen, such as the structure and definition of the screen (hereinafter also referred to as "static code"), and source code describing dynamic control of the screen, such as screen transitions (hereinafter also referred to as "dynamic code"). An example of the static code is source code written in HTML or XML. An example of the dynamic code is source code written in TypeScript or JavaScript (registered trademark).

[0024] The information providing unit 42 provides the existing screen source code 411 and the existing screen test scenario 412 to the development support device 100 via the communication network 5 as needed.

[0025] The development support device 100 has the functions of a memory unit 110, an information acquisition unit 120, an existing software analysis unit 125, a target screen information receiving unit 130, a target screen analysis unit 132, a target event receiving unit 135, and a reference screen information generating and presenting unit 140.

[0026] Of the above functions, the memory unit 110 stores each piece of information (data) including existing software information 101, existing screen information 111, screen component attention information 112, source code of a screen to be created 113, screen information to be created 114, target event information 115, dynamic structural change example information 116, and reference screen information 117.

[0027] The information acquisition unit 120 acquires existing software resources (existing screen source code 411, existing screen test scenario 412, etc.) from the resource management device 40 via the communication network 5, and manages the acquired information as existing software information 101.

[0028] The existing software analysis unit 125 generates information about the existing software (information about screens, screen components, screen component events, etc., that the existing software has) by analyzing the existing screen source code 411, and manages the generated information as existing screen information 111. The existing software analysis unit 125 performs the above analysis, for example, by using a known source code analysis technique (static analysis technique, dynamic analysis technique). The existing software analysis unit 125 also performs the above analysis, for example, by using an existing screen test scenario 412 created for the existing screen source code 411. The existing software analysis unit 125 also generates the existing screen information 111 based on information acquired by, for example, interactive processing with a user. Details of the existing screen information 111 will be described later.

[0029] Furthermore, the existing software analysis unit 125 obtains an attention level (attention degree) which is information indicating the degree of attention of the user to the screen component that is the subject of a dynamic structural change, and manages the obtained attention level as screen component attention level information 112. The existing software analysis unit 125 generates the screen component attention level information 112, for example, by using an existing screen test scenario 412 created for the existing screen source code 411. Furthermore, the existing software analysis unit 125 generates the screen component attention level information 112, for example, based on information acquired by interactive processing with the user. The screen component attention level information 112 will be described in detail later.

[0030] The target screen information receiving unit 130 receives input of source code (including static code and dynamic code) of a screen that the user wishes to newly create (hereinafter referred to as a "target screen") from the user via a user interface, and manages the received source code as target screen source code 113. Note that the content of the target screen source code 113 does not necessarily have to be complete, and it is sufficient if it describes at least the content that allows for generating reference screen information, which will be described later.

[0031] The screen to be created analysis unit 132 analyzes the screen to be created source code 113 to generate information related to screen component events of the screen to be created, and manages the generated information as screen to be created information 114. The screen to be created analysis unit 132 performs the above analysis, for example, by using a known source code analysis technique (static analysis technique, dynamic analysis technique). The screen to be created analysis unit 132 also performs the above analysis, for example, by using a test scenario created for the screen to be created source code. The screen to be created analysis unit 132 also generates the screen to be created information 114 based on information acquired by interactive processing with a user, for example. The screen to be created information 114 will be described in detail later.

[0032] The target event receiving unit 135 receives information specifying a screen component event (hereinafter referred to as a “target event”) that occurs in a screen component provided on the screen to be created from the user via a user interface, and manages the received information as target event information 115.

[0033] The reference screen information generating and presenting unit 140 generates information on existing software that contributes to improving the development efficiency and quality of a screen to be created as reference screen information 117, and presents to a user information based on the generated reference screen information 117. As shown in the figure, the reference screen information generating and presenting unit 140 has the functions of a dynamic structure change example acquiring unit 1411, a reference screen information generating unit 1412, and a reference screen information presenting unit 1413.

[0034] The dynamic structure change example acquisition unit 1411 identifies (selects) screen parts of the existing software screen that will undergo a dynamic structure change when a target event occurs from the existing screen information 111, and determines whether or not a dynamic structure change similar to the above will also occur in the screen to be created. Note that the dynamic structure change example acquisition unit 1411 makes the above determination based on, for example, whether or not a screen part similar to the screen part after the change due to the dynamic structure change exists in the screen to be created.

[0035] If it is determined in the above judgment that a similar dynamic structural change will also occur in the screen to be created, the dynamic structural change example acquisition unit 1411 acquires information about the screen of the existing software having the identified screen components from the existing screen information 111, and stores the acquired information in the dynamic structural change example information 116 as a dynamic structural change example.

[0036] The dynamic structure mentioned above is, for example, a DOM structure (DOM: Document Object Model). An example of a case where a dynamic structural change occurs in a screen component due to a screen component event is when "when an event occurs such as a click operation with a mouse on a screen component, a button, the contents of a screen component, a table or a graph, are updated."

[0037] The reference screen information generating unit 1412 extracts dynamic structural change cases from the dynamic structural change case information 116 acquired by the dynamic structural change case acquiring unit 1411 by applying at least one of the following first and second extraction methods, and generates reference screen information 117 based on the extracted dynamic structural change cases.

[0038] First extraction method: The similarity between a screen part on which a target event occurs on the screen to be created and a screen part of a dynamic structural change example is calculated, and a dynamic structural change example in which the similarity exceeds a preset threshold is extracted.

[0039] Second extraction method: When there are multiple dynamic structural change cases, priority is given to extracting dynamic structural change cases that execute more logic (methods, functions, etc., hereafter referred to as "event logic") whose co-occurrence rate of logic executed when a target event occurs for each screen component of the dynamic structural change case exceeds a preset threshold value.

[0040] The reference screen information presenting unit 1413 provides the user with information based on the reference screen information 117 generated by the reference screen information generating unit 1412 via a user interface. The above information is information that identifies existing software resources (such as the screens of the existing software and source codes related to the display control of the screens, test scenarios, etc.) that contribute to improving the development efficiency and quality of the screen to be created.

[0041] Next, the main processes performed in the development support system 1 will be described.

[0042] 2 is a flowchart for explaining a process (hereinafter referred to as "reference screen information presentation process S200") in which the development support device 100 generates and presents reference screen information 117 for a screen to be created that has been accepted from a user. The reference screen information presentation process S200 will be explained below with reference to the same figure.

[0043] First, the development support device 100 acquires existing software information to be used for generating reference screen information 117 from the resource management device 40, and performs a process (hereinafter referred to as "existing software analysis process S211") to generate existing screen information 111 and screen component attention information 112 based on the acquired existing software information.

[0044] 3 is a flowchart for explaining the existing software analysis process S211. The existing software analysis process S211 will be explained below with reference to FIG.

[0045] First, the information acquisition unit 120 acquires the existing screen source code 411 and the existing screen test scenario 412 from the resource management device 40, and manages them in the storage unit 110 as the existing software information 101 (S311).

[0046] Next, the existing software analysis unit 125 selects one existing screen from the existing software information 101 (S312).

[0047] Next, the existing software analysis unit 125 judges whether or not there is an existing screen test scenario 412 created for the selected existing screen (existing screen source code 411) (S313). If there is an existing screen test scenario 412 (S313: Yes), the process proceeds to S314, and if there is no existing screen (S313: No), the process proceeds to S315.

[0048] In S314, the existing software analysis unit 125 generates the existing screen information 111 by analyzing (static analysis, dynamic analysis) the selected existing screen source code 411.

[0049] 4 shows an example of an existing screen test scenario 412. The illustrated existing screen test scenario 412 is a test scenario for verifying the operation of software when an event (a mouse click operation) occurs on a button "button", which is a screen component. The illustrated existing screen test scenario 412 verifies whether a table "table" is displayed correctly when a screen component event (a mouse click operation) occurs on a button "Search", which is a screen component provided on a screen "pageA".

[0050] 5 shows an example of the existing screen information 111. As shown in the figure, the illustrated existing screen information 111 is composed of a plurality of records having the following items: existing screen component event ID 511, existing screen ID 512, static code analysis result 513, and dynamic code analysis result 514.

[0051] Among the above items, the existing screen part event ID 511 stores an identifier of a screen part event of an existing screen (hereinafter, referred to as an "existing screen part event ID").

[0052] In the existing screen ID 512, an identifier of an existing screen (hereinafter, referred to as an "existing screen ID") is stored.

[0053] The static code analysis result 513 stores the analysis result of the static code (in this example, the analysis result of HTML) included in the existing screen source code 411. As shown in the figure, the static code analysis result 513 includes a static analysis result 5131 and a dynamic analysis result 5132.

[0054] The static analysis result 5131 includes the static analysis result for each component of a screen component. In this example, the components are exemplified as "screen component tag" which is the name of the tag of the screen component, "screen component attribute" which is attribute information of the screen component, "screen component label" which is the label (name) of the screen component, and "screen component event" which is an event (screen component event) that occurs in the screen component. The contents of the static analysis result 5131 are used in the above-mentioned "first extraction method".

[0055] Dynamic analysis result 5132 stores information (in this example, the name of the screen component tag) indicating screen components that are subject to dynamic structural changes when the above-mentioned "screen component event" occurs (for example, screen components such as a table "table" or a graph "graph" whose contents are updated when a screen component event (a mouse click "click" operation) occurs on the button "Search") as the dynamic analysis result of the screen components.

[0056] The name of the event logic (method name in this example) executed when the above-mentioned "screen component event" occurs is stored in the dynamic code analysis result 514. The contents of the dynamic code analysis result 514 are used in the above-mentioned "second extraction method".

[0057] Returning to FIG. 3, next, in S315, the existing software analysis unit 125 generates the screen component attention degree information 112 based on the existing screen test scenario 412 of the selected existing screen source code 411.

[0058] 6 shows an example of the screen component attention level information 112. The illustrated screen component attention level information 112 includes information indicating the level of attention of a user (such as a test executor) to a screen component that is a target of a dynamic structural change in a screen component event that causes a dynamic structural change in the screen.

[0059] As shown in the figure, the screen component attention level information 112 illustrated includes information on the source of a screen component event (event source 611) and the destination of the event (event destination 612) in association with each other.

[0060] Of these, the event source 611 has items of an event source screen component tag 6111 in which the name of the tag of the screen component where the screen component event occurs is stored, and an event 6112 in which the name of the screen component event is stored.

[0061] In addition, the event destination 612 has items such as a dynamic structure change screen component tag 6121 in which the name of the tag of the screen component that is the subject of dynamic structure change is stored, and an event 6112 in which the user's degree of attention to the screen component of the dynamic structure change screen component tag 6121 is stored.

[0062] The attention level is calculated based on, for example, the number of times (appearance frequency) the name of the screen component of the dynamic structure change screen component tag 6121 is described in the test scenario. In this example, the higher the attention level value, the higher the attention level.

[0063] 3, in S316, the existing software analysis unit 125 determines whether or not there is an existing screen that has not been selected in S312. If there is an existing screen that has not been selected (S316: Yes), the process returns to S312. If there is no existing screen that has not been selected (S316: No), the existing software analysis process S211 ends, and the process proceeds to S212 in FIG.

[0064] In the above, a case has been described in which the development support device 100 automatically generates the existing screen information 111 and the screen component attention information 112 based on the existing software information. However, the existing screen information 111 and the screen component attention information 112 may be created or generated by other methods, such as the known source code analysis technique described in the explanation of the functions of the existing software analysis unit 125.

[0065] 2, in S212, the screen information receiving unit 130 receives source code of the screen to be created from the user via the user interface, and manages the received source code in the storage unit 110 as screen source code to be created 113. In addition, the target event receiving unit 135 receives designation of a target event from the user via the user interface, and manages information indicating the received target event in the storage unit 110 as target event information 115.

[0066] Next, the screen analysis unit 132 analyzes the screen source code 113 to generate the screen information 114 to be generated, and stores the screen information 114 in the storage unit 110 (S213).

[0067] 7 shows an example of the screen information to be created 114. As shown in the figure, the illustrated screen information to be created 114 is composed of multiple records having the items of a screen component event ID to be created 711, a static code analysis result 713, and a dynamic code analysis result 714. One record of the screen information to be created 114 corresponds to one screen component event.

[0068] Of the above items, the screen part event ID 711 stores an identifier of a screen part event of a screen to be created (hereinafter, referred to as a "screen part event ID to be created").

[0069] The analysis results of the static code included in the source code of the screen to be created (in this example, the analysis results of HTML) are stored in the static code analysis result 713. As shown in the figure, the static code analysis result 713 includes a static analysis result 7131 and a dynamic analysis result 7132.

[0070] Among these, the static analysis result 7131 includes the static analysis result for each component of the screen component. In this example, the components are exemplified as "screen component tag" which is the name of the tag of the screen component, "screen component attribute" which is attribute information of the screen component, "screen component label" which is the label of the screen component, and "screen component event" which is an event that occurs in the screen component. The contents of the static analysis result 5131 are used (referenced) in the "first extraction method" described above.

[0071] Furthermore, the dynamic analysis result 7132 stores information (in this example, the name of the screen component tag) indicating the screen components that are subject to dynamic structural changes when the above-mentioned "screen component event" occurs (for example, screen components such as a table or a graph that are displayed when an event (a mouse click operation) occurs on the "Search" button)) as the dynamic analysis result of the screen components.

[0072] The dynamic code analysis result 714 stores the name of the event logic that is executed when the above-mentioned "screen component event" occurs.

[0073] Returning to FIG. 2, next, in S214, the reference screen information generating and presenting unit 140 selects one screen component having the target event from the screen to be created.

[0074] Next, the reference screen information generating and presenting unit 140 refers to the screen information to be created 114 and judges whether or not the static analysis result 7131 of the screen component of the selected screen to be created stores (completes) information required for generating the reference screen information 117 (S215). If the necessary information is not stored (S215: No), the process proceeds to S219. If the necessary information is stored (S215: Yes), the process proceeds to S216. For example, the reference screen information generating and presenting unit 140 judges that the necessary information is not stored when no information is stored in the screen component event of the static analysis result 7131 of the screen component of the selected screen to be created. Also, for example, the reference screen information generating and presenting unit 140 judges that the necessary content is stored in the static analysis result 7131 of the selected screen component when the number of components in which appropriate content is stored in the static analysis result 7131 exceeds a preset threshold, and judges that the necessary content is not stored in the static analysis result 7131 of the selected screen component when the number is equal to or less than the threshold.

[0075] Next, in S216, the dynamic structure change example acquisition unit 1411 performs a process of identifying a dynamic structure change example and generating dynamic structure change example information 116 (hereinafter, referred to as "dynamic structure change example identification process S216").

[0076] 8 is a flowchart for explaining the dynamic structure change example identification process S216. The dynamic structure change example identification process S216 will be explained below with reference to the same figure.

[0077] First, the dynamic structure change example acquisition unit 1411 selects one screen component event from the existing screen information (selects one record of the existing screen information 111 in FIG. 5) that will cause a dynamic structural change in the screen components when a target event occurs (S811).

[0078] Next, the dynamic structure change example acquisition unit 1411 judges whether or not there is a screen component on the screen to be created that will cause a dynamic structure change similar to the dynamic structure change caused by the selected screen component event (S812). If there is a screen component on the screen to be created that will cause a similar dynamic structure change (S812: Yes), the process proceeds to S813, and if it is determined that there is no such screen component on the screen to be created (S812: No), the process proceeds to S814.

[0079] FIG. 9 shows an example of the above determination. In the example shown in FIG. 9, the target event is a click operation of the mouse on a button "button" that is a screen component. In this example, the existing screen information 111 includes a screen component that causes a dynamic structural change, that is, the contents of a table "table" are updated when the target event "click" occurs. Therefore, the dynamic structural change example acquisition unit 1411 identifies the screen component (its record) and determines whether or not a dynamic structural change similar to the dynamic structural change caused by the screen component also exists in the screen to be created (S812). In this example, since the screen component "table" is included in the screen information 114 to be created, the dynamic structural change example acquisition unit 1411 determines that the screen to be created includes a screen component that causes a dynamic structural change similar to the dynamic structural change caused in the screen component by the selected screen component event (S812: Yes).

[0080] 8, in S813, the dynamic structure change example acquiring unit 1411 stores information of the record of the selected screen component event (the record with the existing screen component event ID of "1" in the example of FIG. 9) from the existing screen information 111 of the selected screen component event as a dynamic structure change example in the dynamic structure change example information 116. In addition, the dynamic structure change example acquiring unit 1411 further acquires information of the record of another screen component event involving a dynamic structure change similar to the above screen component event (the record with the existing screen component event ID of "2" in the example of FIG. 9) from the existing screen information 111, and stores the acquired information in the dynamic structure change example information 116 as a dynamic structure change example.

[0081] In S814, the dynamic structure change example acquisition unit 1411 determines whether or not there is another screen part event not selected in S811 in the existing screen information 111. If there is another screen part event not selected in the existing screen information 111 (S814: Yes), the process returns to S811. If there is no another screen part event not selected in the existing screen information 111 (S814: No), the dynamic structure change example identification process S216 ends, and the process proceeds to S217 in FIG. 2.

[0082] 2, the reference screen information generating unit 1412 then performs a process (hereinafter referred to as "reference screen information generating process S217") of generating reference screen information 117 based on the dynamic structural change example information 116. In the following, a case where both the first extraction method and the second extraction method described above are applied will be described as an example.

[0083] 10 is a flowchart for explaining the reference screen information generating process S217. The reference screen information generating process S217 will be explained below with reference to FIG.

[0084] First, the reference screen information generating unit 1412 extracts dynamic structure change cases from the dynamic structure change case information 116 by applying the above-mentioned first extraction method (S1011). Specifically, the reference screen information generating unit 1412 obtains a similarity between a screen part on which a target event occurs on the screen to be created and a screen part of a dynamic structure change case, and extracts a dynamic structure change case whose similarity exceeds a preset threshold value.

[0085] 11 is a diagram for explaining the first extraction method. In this example, the similarity between the description of the screen parts of the target event of the screen to be created and the description of the screen parts of the dynamic structure change example is obtained by comparing the static analysis result of the screen information 114 to be created and the static analysis result of the existing screen information 111. As shown in the figure, in this example, the contents of each item (screen part components) of the static analysis result 7131 of the screen information 114 to be created and the contents of each item (screen part components) of the static analysis result 5131 of the existing screen information 111 all match, so the similarity is set to, for example, 100%. Note that, for example, if the contents of only one item do not match, the similarity is set to, for example, 75%.

[0086] In the example shown in the figure, "Search" is stored in the screen part label of the static analysis result 7131 of the screen information 114 to be created, while "search" is stored in the static analysis result of the existing screen information 111, and although the two do not match at the wording level, they have the same meaning, so they are determined to "match" (similar match) by semantic content analysis. The above semantic content analysis is performed, for example, by known natural language processing technology or artificial intelligence (AI (Artificial Intelligence) related technology).

[0087] 10, the reference screen information generating unit 1412 then determines whether the number of dynamic structure change examples extracted in S1011 exceeds a preset threshold (≧2) (S1012). If the number of extracted dynamic structure change examples is equal to or less than the preset threshold (S1012: No), the process proceeds to S1014. If the number of extracted dynamic structure change examples exceeds the preset threshold (S1012: Yes), the process proceeds to S1013.

[0088] In S1013, the second extraction method is further applied to the dynamic structure change examples extracted in S1011, thereby further narrowing down the dynamic structure change examples extracted in S1011. Specifically, the reference screen information generating unit 1412 preferentially extracts a predetermined number of dynamic structure change examples from the dynamic structure change examples extracted in S1011, which have a greater number of event logics that are executed when a target event occurs for each screen component, and the co-occurrence frequency of the event logics exceeds a preset threshold value.

[0089] 12 is a diagram for explaining the second extraction method. The diagram shows an example of a dynamic structural change case extracted by applying the first extraction method in S1011. Note that the meaning of each item is the same as that of the existing screen information 111 (the symbols are the same as those of the existing screen information 111).

[0090] In this example, information on three records with existing screen component event IDs of "1", "2", and "3" is extracted as dynamic structure change examples from the existing screen information 111. In this example, in the record (dynamic structure change example) of a screen component event with an existing screen component event ID of "1", when the target event "click" occurs, the event logic "method A" and "method C" are executed. In addition, in the record (dynamic structure change example) of a screen component event with an existing screen component event ID of "2", when the target event "click" occurs, the event logic "method A" and "method C" are executed. In this example, since "method A" and "method C" are included (co-occur) in two records (dynamic structure change examples), the reference screen information generating unit 1412 narrows down the dynamic structure change examples extracted by the first extraction method to records with screen component event IDs of "1" and "2".

[0091] 10, next, in S1014, the reference screen information generating unit 1412 generates the reference screen information 117 based on the dynamic structural change examples extracted or narrowed down in S1011 or S1014. After that, the process proceeds to S218 in FIG.

[0092] Although the above description has been given of an example in which both the first extraction method and the second extraction method are applied, dynamic structural change cases may be extracted by applying only one of the methods.

[0093] 2, in S218, the reference screen information presentation unit 1413 presents information based on the reference screen information 117 to the user via a user interface. For example, the reference screen information presentation unit 1413 generates a screen (hereinafter referred to as "reference screen information presentation screen 1300") on which information based on the reference screen information 117 is described, and presents it to the user.

[0094] 13 shows an example of a reference screen information presentation screen 1300. The illustrated reference screen information presentation screen 1300 shows information on existing software that contributes to improving development efficiency and quality when a user creates a screen to be created. Note that the reference screen information presentation screen 1300 may also include other information related to the contents of the reference screen information 117 and acquired from the existing software information 101 or the existing screen information 111.

[0095] In the illustrated reference screen information presentation screen 1300, information on the screens constituting the existing software (existing screen ID 1312, event logic ID 1313, event logic match, and screen part event ID 1314 of the existing screen information) is displayed as existing software information in the order of attention of the screen part attention information 112 (recommended order 1311 in the figure). Of the above information, the event logic match 1314 is the match between the event logic of the screen to be created and the event logic of the dynamic structure change example. By referring to the reference screen information presentation screen 1300 when creating a screen to be created, the user can easily identify existing software that contributes to improving development efficiency and quality, and can efficiently create a high-quality screen to be created using existing software resources related to the identified existing software.

[0096] As described above, the development support system 1 of this embodiment can support the development of software involving screen display control. Furthermore, when the screen to be created involves dynamic display control, the development support system 1 can generate reference screen information 117 taking into consideration the similarity of the dynamic display control and provide information based on the reference screen information 117 to the user.

[0097] For example, as shown in Fig. 14A, in a conventional method based only on static information, even if the existing software screens ("past screen A" and "past screen B" in the figure) have screen parts in common with the screen to be created ("new screen" in the figure), if the layouts of the two are different, they are not necessarily determined to be similar. For example, in the figure, "past screen A" is determined to be similar, but "past screen B" is determined to be not similar.

[0098] On the other hand, as shown in FIG. 14B, in the case of the development support system 1 of this embodiment, the similarity between the screen of the existing software and the screen to be created is determined while taking into consideration the dynamic structural changes of the screen (screen component) caused by screen component events, so that even if the layouts of the two are different, screens with similar dynamic display control can be extracted from the existing software resources.

[0099] <Information processing device> FIG. 15 is a hardware configuration example of an information processing device used to realize the resource management device 40 and the development support device 100 constituting the development support system 1. As shown in the figure, the illustrated information processing device 10 includes a processor 11, a main storage device 12, an auxiliary storage device 13, an input device 14, an output device 15, and a communication device 16. Note that the illustrated information processing device 10 may be realized, in whole or in part, by using virtual information processing resources provided by using a virtualization technology, a process space separation technology, or the like, such as a virtual server provided by a cloud system. In addition, all or in part of the functions provided by the information processing device 10 may be realized by a service provided by the cloud system via an API or the like. The development support system 1 may be configured by using a plurality of information processing devices 10 connected to each other so as to be able to communicate with each other.

[0100] In the figure, the processor 11 is configured using, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), an FPGA (Field Programmable Gate Array), an ASIC (Application Specific Integrated Circuit), an AI (Artificial Intelligence) chip, etc.

[0101] The main memory device 12 is a device that stores programs and data, and is, for example, a Read Only Memory (ROM), a Random Access Memory (RAM), or a non-volatile memory (Non Volatile RAM (NVRAM)).

[0102] The auxiliary storage device 13 is, for example, an SSD (Solid State Drive), a hard disk drive, an optical storage device (CD (Compact Disc), DVD (Digital Versatile Disc), etc.), a storage system, an IC card, a read / write device for a recording medium such as an SD card or an optical recording medium, a storage area of ​​a cloud server, etc. Programs and data can be read into the auxiliary storage device 13 via a recording medium reader or a communication device 16. The programs and data stored (memorized) in the auxiliary storage device 13 are read into the main storage device 12 as needed.

[0103] The input device 14 is an interface that accepts input from the outside, and is, for example, a keyboard, a mouse, a touch panel, a card reader, a pen-input tablet, a voice input device, or the like.

[0104] The output device 15 is an interface that outputs various information such as the process progress and the process result. The output device 15 is, for example, a display device (liquid crystal monitor, LCD (Liquid Crystal Display), graphic card, etc.) that visualizes the above-mentioned various information, a device that converts the above-mentioned various information into voice (voice output device (speaker, etc.)), and a device that converts the above-mentioned various information into text (printer, etc.). For example, the information processing device 10 may be configured to input and output information to and from other devices via the communication device 16.

[0105] The input device 14 and the output device 15 constitute a user interface for receiving information from the user and presenting information.

[0106] The communication device 16 is a device that realizes communication with other devices. The communication device 16 is a wired or wireless communication interface that realizes communication with other devices via the communication network 5, and is, for example, a NIC (Network Interface Card), a wireless communication module, a USB module, or the like.

[0107] The information processing device 10 may be implemented with, for example, an operating system, a file system, a DBMS (DataBase Management System) (relational database, NoSQL, etc.), a KVS (Key-Value Store), etc.

[0108] The various functions of the resource management device 40 and the development support device 100 are realized by the processor 11 constituting each of them reading and executing a program stored in the main memory device 12, or by the hardware constituting each of them (FPGA, ASIC, AI chip, etc.). The development support system 1 stores the various information (data) described above, for example, as a table of a database or a file managed by a file system.

[0109] Although the embodiment of the present invention has been described above, it goes without saying that the present invention is not limited to the above embodiment and can be modified in various ways without departing from the gist of the present invention. For example, the above embodiment has been described in detail to explain the present invention in an easy-to-understand manner, and the present invention is not necessarily limited to having all of the configurations described. In addition, it is possible to add, delete, or replace part of the configuration of the above embodiment with other configurations.

[0110] In addition, the above-mentioned configurations, functional units, processing units, processing means, etc. may be realized in part or in whole by hardware, for example, by designing them as integrated circuits. In addition, the above-mentioned configurations, functions, etc. may be realized in software by a processor interpreting and executing a program that realizes each function. Information such as the program, table, file, etc. that realizes each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), an IC card, an SD card, a DVD, or other recording medium.

[0111] The above-described layouts of the various functional units, processing units, and databases of each information processing device are merely examples, and may be changed to optimal layouts in terms of the performance, processing efficiency, and communication efficiency of the hardware and software included in these devices.

[0112] Furthermore, the configuration (schema, etc.) of the database that stores the various types of data described above can be flexibly changed from the perspective of efficient use of resources, improved processing efficiency, improved access efficiency, improved search efficiency, and the like. [Explanation of symbols]

[0113] 1 Development support system, 5 Communication network, 30 Resource management device, 31 Existing screen source code, 32 Existing screen test scenario, 35 Information providing unit, 100 Development support device, 110 Memory unit, 101 Existing software information, 111 Existing screen information, 112 Screen component attention degree information, 113 Screen source code to be created, 114 Screen information to be created, 115 Target event information, 116 Dynamic structure change case information, 117 Reference screen information, 120 Information acquisition unit, 125 Existing software analysis unit, 130 Screen information to be created receiving unit, 135 Target event receiving unit, 140 Reference screen information generation and presentation unit, 1411 Dynamic structure change case acquisition unit, 1412 Reference screen information generation unit, 1413 Reference screen information presentation unit, S200 Reference screen information presentation process, S211 Existing software analysis process, S216 Dynamic structural change case identification process, S217 Reference screen information generation process, 1300 Reference screen information presentation screen

Claims

1. A software development support system that provides information to support development of software including screen display control, The information processing device includes a processor and a storage device. The storage device, Existing screen information is information obtained by analyzing existing software, which is existing software including screen display control; Screen information to be created is information obtained by analyzing the software to be created, which is software to be created including screen display control; Remember, The processor, Identifying a screen part of the existing software that causes a dynamic structural change in the screen when an event occurs that is the same as a target event that occurs in a screen part that is a part constituting a screen of the software to be created; When a dynamic structural change similar to the dynamic structural change occurs in the screen of the software to be created, information on the screen of the existing software having the identified screen component is obtained from the existing screen information; generating reference screen information based on the acquired information; Software development support system.

2. 2. The software development support system according to claim 1, The processor, obtaining a similarity between a screen part of the screen of the software to be created, where the target event occurs, and a screen part of the identified screen of the existing software, and if the similarity exceeds a preset threshold, acquiring information of the screen of the existing software having the identified screen part from the existing screen information; generating information based on the acquired information as the reference screen information; Software development support system.

3. 3. The software development support system according to claim 2, the processor determines the degree of similarity based on a correspondence between a component of a screen part on which the target event occurs of the screen of the software to be created and a component of a screen part of the identified screen of the existing software; Software development support system.

4. 4. The software development support system according to claim 3, the screen components are described in a source code of the software using a markup description language; The components of the screen parts are at least one of a tag of the screen part, an attribute of the screen part, a label of the screen part, and a name of an event of the screen part. Software development support system.

5. 3. The software development support system according to claim 2, The processor, If it is determined that there are a plurality of screen components of the screen of the identified existing software, obtaining, from the existing screen information, information on the screen that executes a greater number of logics, the co-occurrence of which exceeds a preset threshold value for each of the screen components when the target event occurs; generating information based on the acquired information as the reference screen information; Software development support system.

6. 2. The software development support system according to claim 1, the storage device stores an existing screen test scenario, which is a test scenario used to test a screen of the existing software; the processor generates the existing screen information based on the existing screen test scenario; Software development support system.

7. 2. The software development support system according to claim 1, The processor, calculating an attention level, which is information indicating a degree of attention of a user to the screen part that is a target of a dynamic change in the screen structure, based on an existing screen test scenario that is a test scenario used for testing a screen of the existing software; If there are multiple screen components on the screen of the identified existing software, outputting the reference screen information based on a screen of the existing software having the screen component with a high degree of attention with priority; Software development support system.

8. 2. The software development support system according to claim 1, The dynamic structure change is a change in a DOM (Document Object Model) structure. Software development support system.

9. 2. The software development support system according to claim 1, The processor generates and outputs a screen including information based on the reference screen information. Software development support system.

10. A software development support method for providing information for supporting development of software including screen display control, comprising: An information processing device having a processor and a storage device, Existing screen information is information obtained by analyzing existing software, which is existing software including screen display control; Screen information to be created is information obtained by analyzing the software to be created, which is software to be created including screen display control; storing the A step of identifying a screen component of the existing software screen that will cause a dynamic structural change in the screen when an event occurs that is the same as a target event that occurs in a screen component that is a component constituting a screen of the software to be created; acquiring information on a screen of the existing software having the identified screen component from the existing screen information when a dynamic structural change similar to the dynamic structural change occurs in the screen of the software to be created; and generating reference screen information based on the acquired information; A software development support method for performing the above.

Citation Information

Patent Citations

  • Screen determination device and program

    JP2018116497A

  • Program generation support apparatus, program generation support method, and program generation support program

    JP2022128247A