Software development support device and software development support method

The software development support device and method streamline the selection of software components by automating the comparison and matching process, enhancing efficiency in software development projects.

JP2025114063APending Publication Date: 2025-08-05ASTEMO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024008480
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-24
Publication Date
2025-08-05

AI Technical Summary

Technical Problem

The process of selecting software components for reuse in software development projects is time-consuming due to the need for manual comparison of numerous components with project characteristics.

Method used

A software development support device and method that automatically compare project attributes with software component attributes, calculate a degree of match for each item, and output the most suitable components based on intimacy scores.

Benefits of technology

Automatically selects suitable software components, reducing the time required for selection and improving efficiency in software development projects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025114063000001_ABST
    Figure 2025114063000001_ABST
Patent Text Reader

Abstract

To automatically select software components suitable for a software development project, thereby reducing the time required to select the software components.SOLUTION: A device comprises: a comparison unit for comparing project attribute information with software component attribute information, and calculating a degree of match for each item; an intimacy calculation unit for integrating the degree of match and item weighting for each item, and calculating a degree of intimacy between a software development project and software components by adding the integrated results for each item; and an output unit for outputting a combination of the software development project and software components, and the degree of intimacy. The comparison unit calculates the degree of match for each item for each of a plurality of software components that becomes application candidates to the software development project, the intimacy calculation unit calculates the degree of intimacy for each of the plurality of software components, and the output unit outputs the combination of the software components and software development project with the highest degree of intimacy, along with the degree of intimacy.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 device and a software development support method. [Background technology]

[0002] In software development projects, software components developed in previous software development projects are reused. Reused software components exist for each function they realize, and even if the functions are equivalent, there can be many different software components depending on the microcontrollers they can be applied to and the customers they work with. Currently, when reusing software components, development information on the microcontrollers and customers is gathered, and matching software components are manually selected from a list of software components and provided to the software component user.

[0003] Patent Document 1 is known as a technology for managing software components. Patent Document 1 addresses the issue of "providing a software component management device that manages changes to software components by classifying them into essential parts and auxiliary parts, thereby improving the utilization efficiency of the software components," and discloses as a solution the following: "The software component management device according to the present invention comprises a component recording unit that records management information for software components in which essential parts and auxiliary parts are identified, a usage system recording unit that records usage systems and software components in association with each other, a registration / update unit that registers and updates the management information for the software components and the usage system, and an information notification unit that notifies the usage system of information, wherein the registration / update unit determines whether a change in the software component to be updated is an essential part or an auxiliary part, and then updates at least one of the component recording unit and the usage system recording unit, and the information notification unit notifies the usage system of the change information if the change corresponds to an essential part of the software component" (see Abstract of Patent Document 1).

[0004] Patent Document 2 is known as a technology for selecting software components. Patent Document 2 addresses the issue of "enabling the selection and easy creation of software components that satisfy required specifications," and discloses a solution to this problem as follows: "Software components are stored as software component cases, a component search unit searches for the software components using specification attribute keys, an automatic correction unit corrects the details of the software components using the keys and rules, a user generates code and a manual correction unit corrects the software components as needed, and once a valid software component is created, it is registered as a component case for reuse. Thereafter, a fuzzy search for software components is performed using predetermined attribute-related rules, and the code content of the software components is changed and corrected in accordance with the required specifications using predetermined code modification rules" (see Abstract of Patent Document 2). [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2007-241610 [Patent Document 2] Japanese Patent Application Publication No. 9-69041 Summary of the Invention [Problem to be solved by the invention]

[0006] When a user reuses a software component, he or she must check the applicability and compatibility of the software component with the software development project. This requires comparing the characteristics of a large number of software components with the characteristics of the software development project, which is time-consuming, and as a result, selecting software components takes a long time.

[0007] Although Patent Documents 1 and 2 describe the management and selection of software components, neither describes nor suggests the problem of the time required to select software components suitable for a software development project, nor how to solve this problem.

[0008] Therefore, an object of the present disclosure is to provide a software development support device and a software development support method that automatically select software components suitable for a software development project and reduce the time required to select the software components. [Means for solving the problem]

[0009] The software development support device of the present disclosure includes, for example, a first comparison unit that compares project attribute information, which represents attributes of a software development project using a plurality of items, with software component attribute information, which represents attributes of a software component using the plurality of items, and calculates a degree of match for each of the items; a first intimacy calculation unit that adds up the degree of match calculated by the first comparison unit and the weighting of the items for each of the items, and adds up the results of the additions for each of the items to obtain a first intimacy that represents a degree of intimacy between the software development project and the software component; and an output unit that outputs a combination of the software development project and the software component and the first intimacy, wherein the first comparison unit calculates the degree of match for each of the plurality of software components that are candidates for application to the software development project, the first intimacy calculation unit calculates the first intimacy for each of the plurality of software components, and the output unit outputs the combination of the software component with the highest first intimacy among the plurality of software components and the software development project, and the first intimacy.

[0010] Further, the software development support method of the present disclosure is, for example, a software development support method using a software development support device, the software development support device including a first comparison unit, a first intimacy calculation unit, and an output unit, wherein the first comparison unit compares, for each of a plurality of software components that are candidates for application to a software development project, project attribute information that represents the attributes of the software development project using a plurality of items with software component attribute information that represents the attributes of the software component using the plurality of items, and calculates a degree of agreement for each of the items, the first intimacy calculation unit accumulates, for each of the plurality of software components, the degree of agreement calculated by the first comparison unit and the weighting of the item, and adds up the accumulated results for each item, and uses the result as a first intimacy that represents the intimacy between the software development project and the software component, and the output unit outputs a combination of the software component with the highest first intimacy among the plurality of software components and the software development project, and the first intimacy. [Effects of the Invention]

[0011] The present disclosure provides a software development support device and a software development support method that automatically select software components suitable for a software development project and reduce the time required for selecting the software components. Problems, configurations, and effects other than those described above will become clear from the description of the following embodiments. [Brief explanation of the drawings]

[0012] [Figure 1] FIG. 2 is a diagram illustrating an example of a functional block diagram of the software development support device. [Figure 2] FIG. 10 is a diagram illustrating an example of a flowchart of processing by the software development support device. [Figure 3] FIG. 10 is a diagram illustrating an example of project attribute information. [Figure 4] FIG. 2 illustrates an example of a software component shelf. [Figure 5]FIG. 10 is a diagram illustrating an example of software component attribute information. [Figure 6] FIG. 10 is a diagram illustrating calculation of a first intimacy degree. DETAILED DESCRIPTION OF THE INVENTION

[0013] Hereinafter, an embodiment will be described in detail with reference to the accompanying drawings. Fig. 1 shows an example of a functional block diagram of a software development support device 10. The software development support device 10 includes an input unit 11, a comparison unit 12, a familiarity calculation unit 13, and an output unit 14, and supports the selection of optimal software components for a software development project.

[0014] The software development support device 10 is, for example, a computer equipped with a processor and memory. The processor functions as a functional unit that provides a predetermined function by executing processing in accordance with a program loaded into the memory. In the case of FIG. 1, the software development support device 10 functions as an input unit 11, a comparison unit 12, an intimacy calculation unit 13, and an output unit 14 by executing the program. In the following description, when describing processing by a program, the program and functional units may be described as the main units, but the main hardware unit is a processor or an arithmetic processing device (computer) configured including the processor. The arithmetic processing device executes processing in accordance with a program loaded into memory, using resources such as memory and a communication interface as appropriate. The processor may be a central processing unit (CPU) or a graphical processing unit (GPU). Furthermore, processing to realize a function is not limited to software program processing, and can also be implemented using a dedicated circuit. Examples of the dedicated circuit include a field programmable gate array (FPGA) and an application-specific integrated circuit (ASIC).

[0015] 2 is a diagram showing an example of a flowchart of processing by the software development support device 10. Each component of the software development support device 10 will be described with reference to FIG.

[0016] In step S101, the input unit 11 accepts input of project attribute information. The project attribute information represents attributes of a software development project using multiple items. FIG. 3 is a diagram showing an example of project attribute information. The multiple items in the project attribute information include, for example, the model number of the microcontroller used in the software development project, the type of OS, and the customer / product, and information for each item is expressed as a character string. The project attribute information also includes function classification codes for functions required for the software development project. In FIG. 3, the function classification codes "PP," "QQ," and "RR" are entered as information for the item "Required Functions." Note that this project attribute information is input into the software development support device 10 by the developer when selecting software components for the software development project.

[0017] In step S102 of FIG. 2, the comparison unit 12 first refers to the software component shelf where software components are stored. An example of the software component shelf is shown in FIG. 4. The software component shelf 20 stores multiple reusable software components 21 created in past software development projects, along with software component attribute information 22, which represents the attributes of the software components 21 using multiple items. An example of the software component attribute information is shown in FIG. 5. The software component attribute information includes the model number of the microcontroller corresponding to the software component, the type of OS, and the customer / product when the software component was created, and information for each item is expressed as a character string. Furthermore, a software component constitutes a single function, either alone or in combination with other software components. Therefore, the software component attribute information includes the function classification code of the function to which the software component applies. In FIG. 5, the function classification code "PP" is entered as information for the "Corresponding Function" field. The comparison unit 12 obtains software component attribute information from the software component shelf, including the function classification code that matches the function classification code in the project attribute information. For example, since the project attribute information in FIG. 3 includes the function classification code "PP," the comparison unit 12 acquires the software component attribute information in FIG. 5, which includes the function classification code "PP," based on the project attribute information. At this time, if there are multiple pieces of software component attribute information that include the same function classification code, all of them are acquired. In this way, by acquiring only software components related to functions necessary for the software development project and performing the processing described below, it is possible to omit processing related to unnecessary software components and shorten the processing time of the software development support device 10.

[0018] The comparison unit 12 then compares the project attribute information with the software component attribute information for each of a plurality of software components that are candidates for application to the software development project, and calculates the degree of match for each item. For example, when comparing the project attribute information in Fig. 3 with the software component attribute information in Fig. 5, it determines whether the information matches for three items: "microcomputer model number," "OS type," and "customer / product," and calculates the degree of match.

[0019] The degree of match is calculated for each item by comparing character strings representing information for each item. For example, the "OS type" in the project attribute information in FIG. 3 is "B," and the "OS type" in the software component attribute information in FIG. 5 is also "B." Therefore, the comparison unit 12 determines that there is a perfect match for the "OS type" item and calculates the degree of match as 1. In contrast, the "Customer / Product" in the project attribute information in FIG. 3 is "C / D," and the "Customer / Product" in the software component attribute information in FIG. 5 is "E / F." Therefore, the comparison unit 12 determines that there is a mismatch for the "Customer / Product" item and calculates the degree of match as 0. Note that, when the "microcontroller model number" differs only by a predetermined number of characters (e.g., one or two characters) from the end, there is no significant difference between the microcontrollers themselves. Therefore, when the "microcontroller model number" differs only by a predetermined number of characters from the end, the comparison unit 12 determines that there is a similarity and calculates the degree of match as a value greater than 0 but less than 1. Specifically, for example, if only one character from the end differs, the degree of match is 0.8, and if only two characters from the end differ, the degree of match is 0.4. An example of an item for which a similar similarity determination exists is "AUTOSAR version." By determining not only match and mismatch but also similarity in this way, the accuracy of the degree of match is improved, and the accuracy of the first intimacy and second intimacy, which are calculated using the degree of match, is also improved.

[0020] In step S103 of FIG. 2, the intimacy calculation unit 13 calculates a first intimacy representing the intimacy between the software development project and the software components based on the degree of similarity calculated by the comparison unit 12 for each of a plurality of software components that are candidates for application to the software development project. FIG. 6 is a diagram illustrating the calculation of the first intimacy. In FIG. 6, the first line lists the names of items (microcomputer model number, OS type, customer / product) commonly included in the project attribute information and the software component attribute information, and the leftmost column lists the intimacy. The second line lists information for each item included in the project attribute information of FIG. 3. The third line lists the weight for each item. The fourth line lists information for each item included in the software component attribute information of FIG. 5. The fifth line lists the results of match, similarity, or mismatch determined by the comparison unit 12. The sixth line lists the integrated results of the weight and the degree of similarity for each item, and the leftmost column lists the sum of the integrated results for each item. As shown in the sixth line, the intimacy calculation unit 13 multiplies the degree of match and the weight for each item, adds up the results for each item, and sets the sum as the first degree of intimacy. Therefore, as shown in FIG. 6, the first degree of intimacy is 7. As mentioned above, the degree of match is 1 if the items match, 0 if they do not match, and a value greater than 0 and less than 1 if the items are similar, depending on the degree of similarity. Here, the degree of match is 0.8 because the model numbers of the microcontrollers differ only by one character from the end. The weight for each item is variable and may be set based on past software development projects or by the developer. For example, when a developer inputs project attribute information into the input unit 11, the developer may also set the weight for each item.

[0021] 2, when a software component and another software component are used in combination in a software development project, the comparison unit 12 compares the software component attribute information of the one software component with the software component attribute information of each of a plurality of other software components that are candidates for combination with the one software component, and calculates the degree of agreement for each item. The method of calculating the degree of agreement in step S104 is the same as in step S102.

[0022] 2, the intimacy calculation unit 13 calculates a second intimacy representing the intimacy between a given software component and each of a plurality of other software components that are candidates for combination with the given software component in the project. The method for calculating the second intimacy in step S105 is the same as the method for calculating the first intimacy in step S103.

[0023] Note that, if there is a track record of combining one software component with another software component in past software development projects and there is information on the second intimacy, the comparison unit 12 and the intimacy calculation unit 13 may omit steps S105 and S106. The track record of combinations in past software development projects and the information on the second intimacy are, for example, linked to the software components and software component attribute information as software component usage history information and stored in the software component shelf.

[0024] In step S106 of Figure 2, the output unit 14 outputs a combination of a software component with the highest first intimacy among multiple software components and a software development project, and the first intimacy, and a combination of a software component with another software component with the highest second intimacy among multiple other software components, and the second intimacy.

[0025] In some software development projects, a first essential requirement for software components may be defined, such as "matching microcomputer model numbers." In this case, the output unit 14 outputs the combination of the software component with the highest first intimacy among the software components that satisfy the first essential requirement and the software development project, as well as the first intimacy.

[0026] Furthermore, a second essential requirement may be defined for a software component that is required of other software components. In this case, the output unit 14 outputs a combination of the software component and another software component that has the highest second intimacy among other software components that satisfy the second essential requirement, along with the second intimacy. An example of such a second essential requirement is a requirement such as "excluding software components that have previously caused problems when combined." Information about this requirement, such as information about problems that have occurred when combined with other software components, is included in the usage history information of the software component, and the output unit 14 refers to the usage history information of the software component to determine whether the second essential requirement is satisfied.

[0027] In this way, by using the first and second essential requirements, it becomes possible to select software components that better reflect customer requirements and past performance. Here, the first and second essential requirements are used in step S106, but this is not limiting. For example, before calculating the degree of match in step S102, candidates for software components to be applied to the software development project may be narrowed down based on the first essential condition, and before calculating the degree of match in step S104, candidates for other software components to be combined with one software component may be narrowed down based on the second essential condition.

[0028] 1 illustrates a case in which the comparison unit 12 and the intimacy calculation unit 13 are depicted as one functional block in the software development support device 10, with the comparison unit 12 performing steps S102 and S104 in Fig. 2 and the intimacy calculation unit 13 performing steps S103 and S105 in Fig. 2, but this is not limiting. For example, the software development support device 10 may be configured to include a first comparison unit that performs step S102 in Fig. 2, a first intimacy calculation unit that performs step S103, a second comparison unit that performs step S104, and a second intimacy calculation unit that performs step S105.

[0029] Furthermore, the software component attribute information stored on the software component shelf in Figure 4 may be entered by the developer when the software components are stored on the software component shelf after development is complete, or may be entered by the software component manager when collecting the software components and storing them on the software component shelf.

[0030] The present disclosure automatically selects software components suitable for a software development project, and further automatically selects a combination of software components suitable for the software development project, thereby reducing the time required to select software components. [Explanation of symbols]

[0031] 10... software development support device, 11... input unit, 12... comparison unit, 13... familiarity calculation unit, 14... output unit, 20... software component shelf, 21... software component, 22... software component attribute information 22

Claims

1. a first comparison unit that compares project attribute information, which expresses attributes of a software development project using a plurality of items, with software component attribute information, which expresses attributes of software components using the plurality of items, and calculates a degree of agreement for each of the items; a first intimacy calculation unit that accumulates the degree of coincidence calculated by the first comparison unit and the weighting of the item for each of the items, and adds up the accumulated results for each of the items to obtain a first intimacy that represents the intimacy between the software development project and the software component; an output unit that outputs the combination of the software development project and the software component and the first intimacy; the first comparison unit calculates the degree of match for each of the items for each of the software components that are candidates for application to the software development project; the first intimacy calculation unit calculates the first intimacy for each of the plurality of software components; The output unit outputs a combination of the software component having the highest first degree of intimacy among the plurality of software components and the software development project, and the first degree of intimacy. A software development support device characterized by:

2. 2. The software development support device according to claim 1, a second comparison unit that, when a software component and another software component are used in combination in the software development project, compares the software component attribute information regarding the one software component with the software component attribute information regarding the other software component, and calculates the degree of agreement for each item; a second intimacy calculation unit that calculates, for each of the items, the degree of coincidence calculated by the second comparison unit and the weighting of the item, and adds up the results of the calculations for each of the items to obtain a second intimacy that represents the intimacy between the one software component and the other software component; the second comparison unit calculates the degree of match for each of the plurality of other software components that are candidates for combination with the one software component, for each of the items; the second intimacy calculation unit calculates the second intimacy for each of the other software components; The output unit outputs a combination of the other software component having the highest second intimacy among the plurality of other software components and the one software component, and the second intimacy. A software development support device characterized by:

3. 3. The software development support device according to claim 2, the project attribute information and the software component attribute information are each represented by a character string, and The first comparison unit and the second comparison unit set the degree of match to 1 when the character strings are an exact match, set the degree of match to a value greater than 0 and less than 1 when a predetermined number of characters from the end of the character strings are different, and set the degree of match to 0 when the character strings are neither an exact match nor similar. A software development support device characterized by:

4. 2. The software development support device according to claim 1, The software development project defines a first essential requirement for the software component, The output unit outputs a combination of the software component having the highest first degree of intimacy among the software components that satisfy the first essential requirement and the software development project, and the first degree of intimacy. A software development support device characterized by:

5. 3. The software development support device according to claim 2, a second essential requirement that the one software component requires of the other software component is defined; The output unit outputs a combination of the one software component and the other software component having the highest second degree of intimacy among the other software components that satisfy the second essential requirement, and the second degree of intimacy. A software development support device characterized by:

6. 2. The software development support device according to claim 1, the software component attribute information includes a function classification code of a function to which the software component corresponds; the project attribute information includes the function classification code of the function required for the software development project; The first comparison unit compares the project attribute information with the software component attribute information including the function classification code included in the project attribute information. A software development support device characterized by:

7. A software development support method using a software development support device, the software development support device includes a first comparison unit, a first intimacy calculation unit, and an output unit; the first comparison unit compares, for each of a plurality of software components that are candidates for application to a software development project, project attribute information that expresses attributes of the software development project using a plurality of items with software component attribute information that expresses attributes of the software component using the plurality of items, and calculates a degree of agreement for each of the items; the first intimacy calculation unit, for each of the plurality of software components, integrates the degree of coincidence calculated by the first comparison unit and the weighting of the item, and adds up the integration results for each of the items to obtain a first intimacy that represents the intimacy between the software development project and the software component; The output unit outputs a combination of the software component having the highest first degree of intimacy among the plurality of software components and the software development project, and the first degree of intimacy. A software development support method comprising:

Citation Information

Patent Citations

  • Generation support method for software component

    JP1997069041A

  • Software component management device, software component management method and software component

    JP2007241610A