WO2016208073A1 - モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム - Google Patents

モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム Download PDF

Info

Publication number
WO2016208073A1
WO2016208073A1 PCT/JP2015/068551 JP2015068551W WO2016208073A1 WO 2016208073 A1 WO2016208073 A1 WO 2016208073A1 JP 2015068551 W JP2015068551 W JP 2015068551W WO 2016208073 A1 WO2016208073 A1 WO 2016208073A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
reuse
source code
determination
degree
Prior art date
Application number
PCT/JP2015/068551
Other languages
English (en)
French (fr)
Inventor
玄太 是木
大輔 福井
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2015/068551 priority Critical patent/WO2016208073A1/ja
Priority to JP2016574022A priority patent/JP6356274B2/ja
Publication of WO2016208073A1 publication Critical patent/WO2016208073A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Definitions

  • the present invention relates to a module reuse determination device, a module reuse determination method, and a module reuse determination program for determining whether or not a module in an already developed source code can be reused.
  • Man-hour estimation is performed when derivative development is performed, and as a result, switching between derivative development and new development may be performed. For this purpose, it is important to accurately grasp reusable modules (modules that contribute to man-hour reduction).
  • the object of the present invention is to provide a technique for supporting improvement of man-hour estimation accuracy of derivative development when developing new software.
  • the module reuse determination device of the present invention calculates a reuse index for each component module of the source code when considering the reuse of the already developed source code,
  • a source code acquisition unit that acquires a source code that is a target for determining whether or not a component module can be reused, and the source code acquisition unit that corresponds to the source code acquired by the source code acquisition unit
  • a data acquisition unit that searches the development / maintenance database related to the source code and acquires the reuse degree calculation usage item data of the target module selected from the configuration module; and the reuse acquired by the data acquisition unit Calculate the module storage degree and module reliability of the target module from the degree calculation usage item data, and from those values
  • a data analysis unit that calculates the degree of reuse of the target module, and a module that determines whether the target module can be reused by comparing the degree of reuse of the target module calculated by the data analysis unit with a registered threshold value Data for identifying and displaying a reuse determination unit and a program diagram representing the
  • the data analysis unit determines the number of days that have elapsed since the determination target module was newly created as the reuse degree calculation use item data, the determination target Using each data of the number of reviews performed for the module or the number of times the function was added / modified for the judgment target module, the module storage degree is multiplied by the coefficient recorded in the reuse degree calculation usage item data table Is calculated.
  • the data analysis unit calls the number of modules to be called a determination target module and the determination target module as the reuse degree calculation use item data. Using each data of the maximum difference in the commit date of the module group or the number of times the module to be judged is tested, the module reliability is calculated by multiplying the coefficient recorded in the reuse degree calculation use item data table.
  • the module reuse determination method of the present invention determines whether reuse is possible by calculating a reuse index for each component module of the source code when considering reuse of already developed source code.
  • the step of acquiring the source code of the target for determining whether or not the component module can be reused, and searching the development / maintenance database related to the source code corresponding to the acquired source code The module of the target module is obtained by multiplying the reuse module calculation use item data of the target module selected from the configuration module by a coefficient registered corresponding to each reuse degree calculation use item data.
  • the module reuse determination program of the present invention calculates a reuse index for each component module of the source code in the computer when considering the reuse of the already developed source code.
  • a module reuse determination program for determining whether or not availability is possible, wherein a source code acquisition procedure for acquiring a source code for determining whether or not a component module can be reused, and the source corresponding to the acquired source code Search the development / maintenance database related to the code and register the data acquisition procedure for acquiring the reuse factor calculation usage item data of the target module selected from the configuration module and corresponding to each reuse factor calculation usage item data Multiply the specified coefficient to obtain the module memory and module reliability of the target module.
  • the degree of derived development man-hours can be determined by determining whether the module can be reused by using the degree of storage for the module and the reliability of the module. Can improve the accuracy of estimation.
  • FIG. 1 is a diagram illustrating an example of hardware and a system configuration of a module reuse determination device according to Embodiment 1.
  • FIG. It is a figure which shows an example of the functional block of the module reuse determination apparatus which concerns on Example 1, the information apparatus A, and the information apparatus B.
  • step S105 of the process which determines reuse of a reuse determination object module. It is a figure which shows an example in which a program figure changes according to the change of a reuse degree calculation utilization item coefficient or a module reuse degree threshold value. It is a detailed flowchart of step S105 of the process which determines the reuse determination object module in Example 2 as a reuse. It is a figure which shows an example in which a program figure changes according to the change of a module reuse degree (1) threshold value or a module reuse degree (2) threshold value.
  • the members of the software development project team store the processing contents for the module reuse determination target source code including a plurality of modules (for example, the number of days elapsed from the creation date of the determination target module is A device that generates a program diagram that highlights a module that is determined to be reusable because it is evaluated as having a high degree of memory (for example, because of shallowness) And an example of the method.
  • the program diagrams are described based on the module call relationship diagram.
  • FIG. 1 is a diagram illustrating an example of the hardware and system configuration of the module reuse determination apparatus 100 according to the first embodiment.
  • a central processing unit 101 As hardware of the module reuse determination apparatus 100, a central processing unit 101, an input device 102 such as a keyboard and a mouse, a main storage device 103 including a ROM (Read Only Memory), a RAM (Random Access Memory), an HDD (A secondary storage device 104 composed of a hard disk drive), a display device 105 composed of a liquid crystal display (LCD), an organic EL display, and a communication device 107 composed of a network interface card (NIC).
  • NIC network interface card
  • the module reuse determination apparatus 100 includes, for example, an information apparatus A110 and an information apparatus B120 that can store a database related to a software development project, such as an information processing apparatus and a network storage, via a communication network 130 such as the Internet. And connected.
  • FIG. 2 is a diagram illustrating an example of functional blocks of the module reuse determination device 100, the information device A110, and the information device B120 according to the first embodiment.
  • the arithmetic unit 200 includes a central processing unit 101 and a main storage device 103.
  • the module reuse determination program 310 stored in the storage unit 300 is loaded into the main storage device 103 and executed by the central processing unit 101.
  • the functions of the source code acquisition unit 201, data acquisition unit 202, data analysis unit 203, module reuse determination unit 204, drawing instruction unit 205, and program diagram creation control unit 206 are realized.
  • the source code acquisition unit 201 acquires the target source code from the database in order to confirm whether or not the modules constituting the already developed source code can be reused in a software development project or the like.
  • the data acquisition unit 202 searches the development / maintenance database related to the software development project in which the source code was developed, and the module that configures the source code The reuse degree calculation use item data necessary for calculating the reuse degree is acquired.
  • the data analysis unit 203 calculates the module storage degree and module reliability of the target module from the reuse degree calculation use item data designated by the user and retrieved from the database, and reuses the target module further from those values. Calculate the degree.
  • the module reuse determination unit 204 compares the calculated degree of reuse of the target module with a threshold value registered in association with the reuse degree calculation formula to determine whether the target module can be reused.
  • the drawing instruction unit 205 performs a highlighting process to clearly indicate the target module that has been determined to be reusable when it is determined that reusability is possible on the program diagram of the source code.
  • the program diagram creation control unit 206 inputs the source code to be evaluated for the degree of reuse of the configuration module, displays the configuration module as a call graph node, and highlights the reusable module. Control the entire process to be displayed.
  • the storage unit 300 includes a secondary storage device 104 and a main storage device 103, and includes a module reuse determination program 310, a reuse degree calculation use item data table 320, module-specific storage degree / reliability data 330, and module reuse.
  • a storage area for storing each of the degree calculation table 340 and the module-specific reuse degree data 350 is provided.
  • the module reuse determination program and each data will be described later.
  • development / maintenance databases 360 and 380 relating to an already developed software development project A are configured.
  • the information device A110 includes, for example, a database 360 that stores development / maintenance data related to a software development project A that has already been developed, and source code A370 developed in the project A therein.
  • the source code A370 is composed of partial programs such as functions and variables.
  • the information apparatus B120 includes another development / maintenance database 380 relating to the software development project A, and other development / maintenance data 390 developed, recorded, or collected in the project A therein.
  • Software development project development / maintenance database centrally manages a variety of software development and maintenance information such as specifications, design, source code, test information, incident information, and email communication history information within the project. Called a repository.
  • the development / maintenance database 360 related to the project A and the other development / maintenance database 380 related to the project A do not necessarily need to be in the above-described locations. Any of the module reuse determination device 100, the information device A110, and the information device B120 May be stored.
  • FIG. 3 shows an example of the reuse degree calculation use item data table 320.
  • the reuse degree calculation usage item data table 320 includes a degree of reuse of a module to be determined (an index calculated to determine the degree of reusability of a module, which will be described later with reference to a calculation formula in FIG. 5). ), Which is an item used for calculating the module name (module storage degree (A) 324 or module reliability (B) 325), and defines data classified in the module reuse degree calculation use item.
  • the name 322 and the coefficient 323 for each data used when calculating the value of the module reuse degree calculation use item are stored.
  • the module storage degree 324 is an index indicating whether or not a person concerned with the module (development project member) including the developer of the module remembers the module. , Modules tend to be highly reusable.
  • the module reliability 325 is an index indicating whether or not the module operates normally. Like the module memory, the higher the value, the higher the module reusability. is there.
  • module storage degree (A) 324 the number of days (A1) that have elapsed since the determination target module was newly created, the number of reviews (A2) performed on the determination target module, and the determination target module The number of times the function is added / modified (A3) is described.
  • module reliability (B) 325 data the number of modules (B1) calling the determination target module, the maximum difference (B2) in the commit date of the module group calling the determination target module, and the determination target module are tested. The number of times (B3) is described.
  • the maximum difference (B2) in the commit date of the module group calling the determination target module will be described.
  • the modified difference information is registered in the database. Registering this difference information is called commit. Since the history is recorded in the database 360 for the last date (that is, the latest update date) when each module of the module group calling the determination target module is modified, each of the module group calling the determination target module The module commit dates are compared to determine the maximum difference (B2). It is determined that a determination target module called from a module with a different generation having a large maximum difference in commit dates has higher reliability than a module being accessed from a wider generation as the maximum difference in commit dates increases.
  • FIG. 4 shows an example of a data table of module-specific storage / reliability data 330.
  • the module storage degree / reliability data 330 includes the module storage degree (A) data name (A1 to A3) described in the reuse degree calculation use item data table 320 for each module 331 in the determination target source code. 322 or module reliability (B) data name (B1 to B3) 322 corresponding to each of the module memory (A) or module reliability (B) is calculated, and each data of module memory (A) A value 334 is stored in the name column 332 or each data name column 333 of the module reliability (B).
  • the value is calculated by multiplying the value of the reuse degree calculation use item data by the data coefficient 323 described in the reuse degree calculation use item data table 320.
  • the module storage degree (A) of the data name 322 “elapsed days since the determination target module was newly created (A1)” is set to “elapsed days since the determination target module was newly created (A1)”.
  • the coefficient 323 “ ⁇ 1/365” corresponding to the reuse degree calculation use item data described in the reuse degree calculation use item data table 320 is multiplied.
  • the module storage degree or module reliability corresponding to the other data name 322 is also calculated by the same method and stored in the data table 330.
  • FIG. 5 shows an example of the module reuse degree calculation table 340.
  • the module reuse degree calculation table 340 includes a calculation item name 341 for a module reuse degree (an index calculated for determining the degree of reusability of the determination target module) calculated for each determination target module.
  • a utilization calculation formula 342, a coefficient 343 used in the calculation formula, and a threshold 344 used in reuse determination are stored.
  • the module reuse degree of the calculation item “storage degree” 345 is calculated by taking the sum of the module storage degrees A i related to the data name 322 selected and designated for use from the reuse degree calculation use item data table 320 by the user.
  • the module reuse factor of the calculation item “reliability” 346 is calculated by taking the sum of the module reliability B i related to the data name 322 selected and designated for use by the user.
  • the module reuse degree of the calculation item “memory degree and reliability degree” 347 is obtained by multiplying the sum of the module memory degree A i related to the data name 322 selected and used by the user by the coefficient C A (0.5), and the user Is calculated by taking the sum of the values obtained by multiplying the sum of the module reliability B i related to the data name 322 selected and used by the coefficient C B (0.5).
  • the coefficients C A and C B of the module storage degree (A) and the module reliability degree (B) used in the calculation item “storage degree and reliability” 347 are 0.5 and 0.5.
  • the total is 1.
  • These coefficients indicate which of the module storage (A) and the module reliability (B) is more important in considering module reuse. If the module memory (A) is greater than 0.5, the module is more important than the module reliability. Conversely, if the module reliability (B) is greater than 0.5, the module is remembered. It also means that the reliability of the module is emphasized. In this embodiment, since it is assumed that the storage degree and the reliability are handled with the same importance, the coefficients of the module storage degree (A) and the module reliability (B) are set to the same value.
  • the threshold of the calculated item “memory” 345 is 3, the threshold of the calculated item “reliability” 346 is 10, the threshold of the calculated item “memory and reliability” 347 is 20, and the threshold of the calculated item “expected degree of conformity” 348 is
  • the sum of the module storage degrees related to the data name 322 selected and designated for use by the user (formula (1)) is 2, and the sum of the module reliability related to the data name 322 selected and designated for use by the user (formula (2) )) Is marked as 3. As will be described later, these are values used in the reuse determination. In the first embodiment, it is assumed that the module reuse degree is calculated by the expression “calculation degree and reliability” 347.
  • module-specific reuse data 350 An example of the module-specific reuse data 350 is shown in the data table of FIG.
  • the module reuse degree 352 calculated for each module 351 using the module reuse degree calculation formula 342 described in the module reuse degree calculation table 340 is stored. Stores the calculated value.
  • the module reuse determination apparatus 100 determines whether each module can be reused among the modules constituting the determination target source code A370 based on the reusability data for each module.
  • the flowchart of the program diagram creation process which highlights the reusable module on the program diagram of the source code A is shown.
  • the program diagram creation process of the present embodiment is performed by reassessing the target module based on an evaluation index that evaluates that the members of the software development project team memorize the processing contents or an evaluation index that evaluates that the reliability of the module is high. Determine whether it is available.
  • step S100 the program diagram creation control unit 206 is activated to start a program diagram creation process.
  • the program diagram creation process executed in the present embodiment inputs the source code to be visualized, displays the modules constituting the source code as, for example, call graph nodes, and the edge between the nodes is a module call relationship diagram, etc.
  • a program diagram (see FIGS. 9 and 11) is created by a known technique for displaying with reference to FIG. On this program diagram, nodes representing modules that are determined to be reusable are displayed in a coordinated manner.
  • step S101 using the input device 102, the user designates a source code to be visualized from, for example, the development / maintenance database 360 related to the already developed software development project A.
  • the source code A370 is designated as the visualization target source code.
  • the source code obtaining unit 201 obtains the source code A370 to be visualized from the development / maintenance database 360 related to the project A via the communication device 107. If the development / maintenance database 360 is huge and the search for the source code A370 is likely to take a long time, a file that is likely to be used as an evaluation target in advance according to a user instruction, such as a module reuse determination device 100, is used. It is also possible to move or copy to a place where search is possible.
  • the data acquisition unit 202 acquires development / maintenance data related to the source code A370 to be visualized via the communication device 107.
  • the corresponding development / maintenance data is not limited to data existing in the development / maintenance database 360 in which the source code A370 is stored, but other development / maintenance database 380 configured in another information device, for example, the information device B120. It is also conceivable to use other development / maintenance data 390 such as e-mail communication history stored in the e.g.
  • a file that is likely to be used is moved or copied in advance to a location where a high-speed search is possible, such as the module reuse determination device 100, in accordance with a user instruction, in order to speed up the subsequent processing. It can be considered.
  • step S102 using the input device 102, the user designates a reuse degree calculation use item data name 322 and a reuse degree calculation item 341 that are used to determine whether or not to reuse a module.
  • the number of days (A1) elapsed since the determination target module was newly created for the module storage degree (A) item 324 as the reuse degree calculation use item data name, and the review performed on the determination target module The number (A2) and the number of times the function is added / modified for the determination target module (A3), the module reliability (B) item 325, the number of modules (B1) that call the determination target module, and the determination target module
  • the user has specified the maximum difference (B2) in the commit date of the module group and the number of times the determination target module has been tested (B3). Further, it is assumed that the user designates “memory degree and reliability” 347 described in the module reuse degree calculation table 340 as the reuse degree calculation item 341 to be used.
  • step S103 the program diagram creation control unit 206 acquires one module as a reuse determination target module from among the modules included in the source code A370 acquired in step S101 that have not yet been determined for reuse.
  • step S104 regarding the module acquired in step S103, the data acquisition unit 202 relates to the reusability calculation use item data name 322 specified by the user in step S102 from the development / maintenance data related to the source code A370 acquired in step S101. Get the data.
  • step S105 the data analysis unit 203 analyzes the data acquired in step S104 and calculates the reuse degree of the reuse determination target module. Then, the module reuse determination unit 204 re-uses the determination target module. Determine whether it is available. In this determination, among the data names 322 described in the reuse degree calculation use item data table 320, “elapsed days since the determination target module was newly created”, “number of reviews performed on the determination target module” , “Number of times the function is added / modified for the determination target module”, “Number of modules that call the determination target module”, “Maximum difference in commit dates of modules calling the determination target module”, and “ It is assumed that the “number of times tested” is used. If the determination is true, the process proceeds to step S106. If the determination is false, the process proceeds to step S107. The details of this process will be described later.
  • step S106 the drawing instruction unit 205 highlights the determination target module as a reusable module on the program diagram.
  • step S107 the drawing instruction unit 205 does not highlight the determination target module as a non-reusable module on the program diagram.
  • step S108 the program diagram creation control unit 206 determines whether there is a module that has not yet been determined for reuse in the source code A370 acquired in step S101. If there is a module for which reuse determination is not performed, the process proceeds to step S103. If there is no module for which reuse determination is not performed, the process proceeds to step S109.
  • step S109 the program diagram creation control unit 206 ends the program diagram creation process.
  • FIG. 8 shows a detailed flowchart of step S105, which is an example of a process for determining reuse of a reuse determination target module.
  • step S102 as the reuse degree calculation use item data name 322, the data related to the module storage degree 324, “the number of days elapsed since the determination target module was newly created”, “review performed on the determination target module “Number” and “number of times the function is added / modified for the determination target module”, “data of the module reliability 325”, “number of modules calling the determination target module”, “module calling the determination target module” It is assumed that the user has specified the “maximum difference of group commit dates” and “the number of times the module to be judged has been tested”. Further, it is assumed that the user designates “memory degree and reliability” 347 described in the module reuse degree calculation table 340 as the reuse degree calculation item 341 to be used.
  • step S201 the data analysis unit 203 calculates the value of the module storage degree 332 or the module reliability 333 of the determination target module according to the reuse degree calculation use item data name 322 specified by the user in step S102.
  • the result is stored in module-specific storage / reliability data 330.
  • all reuses described in the reuse degree calculation use item data table 320 are calculated. It is also conceivable to calculate a value related to the degree calculation use item data name 322. If the value is calculated and stored in the module-specific storage / reliability data 330, the next processing can be skipped the next time the same value is calculated, and the processing speed can be increased.
  • the calculation of the module storage degree or the module reliability value is performed by multiplying the data value corresponding to the reuse degree calculation use item data name 322 by the coefficient 323 described in the reuse degree calculation use item data table 320.
  • the module storage degree relating to “the number of days elapsed since the determination target module was newly created (A1)” is obtained from the development / maintenance data after the number of days elapsed since the determination target module was newly created.
  • it is calculated by multiplying the coefficient 323 “ ⁇ 1/365” described in the reuse degree calculation use item data table 320.
  • step S202 the data analysis unit 203 calculates according to the reuse degree calculation use item data name 322 specified by the user in step S102, and is stored in the module-specific storage degree / reliability data 330.
  • the module reuse degree is calculated using the module reliability data value and the reuse degree calculation formula 342 described in the module reuse degree calculation table 340, and the calculation result is used as the module-specific reuse degree data 350.
  • the user has designated the use of the calculation formula of the calculation item “memory and reliability” 347. The calculation is performed by taking the sum of a value obtained by multiplying the sum of the module storage degrees designated by the user by the coefficient 0.5 and a value obtained by multiplying the sum of the module reliability designated by the user by the coefficient 0.5.
  • step S ⁇ b> 203 the module reuse determination unit 204 stores the determination target module reuse degree 352 stored in the module-specific reuse degree data 350 and the threshold value 344 stored in the module reuse degree calculation table 340. If the former value is greater than or equal to the latter value, it is determined that reuse is possible, and the process proceeds to step S106. If the former value is less than the latter value, it is determined that the reuse is impossible, and the process proceeds to step S107.
  • the coefficient 323 of the reuse degree calculation utilization item data table 320 or the module reuse If each registered value of the threshold value 344 of the usage calculation table 340 is changed, the module emphasized as reusable changes.
  • the values of the coefficient 323 and the threshold value 344 specified by the user are used.
  • a function that can change the program diagram in the direction intended by the user is realized by changing the program diagram in accordance with the change in the values as variable on the screen for displaying the program diagram.
  • sliders that change the reuse factor calculation usage item coefficient 323 and the module reuse factor threshold 344 are displayed at the bottom of the program diagram, and user input that changes the program diagram is accepted.
  • the operation mode is activated by the user specifying the operation mode in the program diagram creation control unit 206.
  • the program diagram creation control unit 206 Upon completion of one program diagram creation process, the program diagram creation control unit 206 immediately starts the next program diagram creation process, and in step S102, the user moves the slider to create a new reuse degree calculation use item. It waits to input the value of the coefficient 323 and / or the module reuse degree threshold value 344.
  • gray nodes indicate modules that are determined to be reusable.
  • the module reuse degree threshold is 10
  • six modules are highlighted as being reusable, but when the module reuse degree threshold slider is operated and changed to 80
  • the module reuse degree threshold is normalized by setting the maximum value among the reuse degrees of all modules calculated by the reuse degree calculation formula corresponding to the module reuse degree calculation item 341 specified by the user as 100. It is assumed that
  • the module reuse degree is used depending on whether or not the module is highlighted.
  • the present invention is not limited to the above, and various usage methods are conceivable.
  • the visualization target source code including a plurality of modules has a high compatibility with other software, in other words, a program diagram highlighting the modules determined to be reusable because they are dead.
  • a program diagram highlighting the modules determined to be reusable because they are dead.
  • FIG. 10 shows a detailed flowchart of step S105, which is an example when the reuse determination target module is determined to be reused in the second embodiment.
  • step S102 as the reuse calculation use item data name 322, data relating to the module storage degree 324, “the number of days elapsed since the determination target module was newly created”, “number of reviews performed on the determination target module ",” Number of times the function is added / modified for the determination target module ", and data related to the module reliability 325," Number of modules that call the determination target module ",” Number of modules calling the determination target module " It is assumed that the user has specified the “maximum difference of commit dates” and “the number of times the module to be judged has been tested”.
  • step S102 it is assumed that the user designates “expected degree of conformity” 348 described in the module reuse degree calculation table 340 as the reuse degree calculation item 341.
  • “expected degree of conformity” 348 is used, the present process of FIG. 10 is executed instead of the process of FIG. 8 as step S105.
  • step S301 Since the process in step S301 is the same as the process in step S201, the description thereof is omitted.
  • step S302 the data analysis unit 203 calculates according to the reuse degree calculation use item data name 322 specified by the user in step S102, and is stored in the module-specific storage degree / reliability data 330.
  • the module reuse degree is calculated using the module reliability data value and the reuse degree calculation formula 342 described in the module reuse degree calculation table 340, and the calculation result is used as the module-specific reuse degree data 350.
  • the user has designated the use of the calculation formula of the calculation item “expected degree of conformity” 348.
  • the sum of the module storage degrees A i relating to the data name 322 selected and designated by the user (Formula (1)) and the sum of the module reliability B i relating to the data name 322 designated and selected by the user (Formula (2) )).
  • step S ⁇ b> 303 the module reuse determination unit 204 stores the “expected degree of conformity” reuse degree (1) of the determination target module stored in the module-specific reuse degree data 350 and the module reuse degree calculation table 340.
  • the stored threshold value 344 is compared, and if the former value is less than the latter value, the process proceeds to step S304. If the former value is greater than or equal to the latter value, the process proceeds to step S107.
  • step S ⁇ b> 304 the module reuse determination unit 204 stores the “expected degree of conformity” reuse degree (2) of the determination target module stored in the module-specific reuse degree data 350 and the module reuse degree calculation table 340.
  • the stored threshold value 344 is compared, and if the former value is greater than or equal to the latter value, the process proceeds to step S106. If the former value is less than the latter value, the process proceeds to step S107.
  • the processing content of the determination target module is ambiguous or forgotten, but a module with high reliability is extracted.
  • the module extracted in this way tends to be highly versatile as a module because of its high utility value even if the processing content is ambiguous or forgotten.
  • the problem that existed in Patent Document 1 described above that is, a module with a high usage record, is difficult to reuse if the compatibility with other software is low, and the accuracy of man-hour estimation was poor Solve the problem.
  • the degree of memory and reliability of the module is calculated, and these are used as an index of the degree of module reuse. It is automatically determined whether or not the usage determination target module can be reused. Using this judgment result, it is possible to improve the man-hour estimation accuracy by building and displaying a program diagram that highlights the module that is judged to be reusable because it is highly compatible with other software, in other words, withered. I can help.
  • the program diagram created by the module reuse determination device 100 of this embodiment by the program diagram creation control unit 206 and displayed on the display device 105 is a module reuse threshold (1) or a module reuse threshold (2).
  • the concept of how much to make a reusable module differs.
  • the module reuse degree threshold (1) described in the module reuse degree calculation table 340 is used.
  • 344 and module reuse degree threshold (2) 344, as shown in FIGS. 11A and 11B the module reuse degree threshold (1) slider or the module reuse degree threshold (2) slider It is also possible to modify the program diagram appropriately according to the purpose and intention by adjusting the value and using the value.
  • gray nodes indicate modules that are determined to be reusable.
  • the module reuse degree threshold (2) when the module reuse degree threshold (2) is 10, six modules are highlighted as being reusable.
  • the module reuse degree threshold (2) slider When changed to 80, only two modules are highlighted as reusable as shown in FIG.
  • the module reuse degree threshold value (1) or the module reuse degree threshold value (2) is set to 100 as the maximum value of the reuse degree (1) 353 or the module reuse degree (2) 354 of all modules. , Each is assumed to be normalized.
  • the module reuse degree is used depending on whether or not the module is highlighted.
  • the present invention is not limited to the above, and various usage methods are conceivable.
  • Module Reuse Determination Device 101 Central Processing Unit 102 Input Device 103 Main Storage Device 104 Secondary Storage Device 105 Display Device 106 Bus 107 Communication Device 110 Information Device A 120 Information device B 130 communication network 200 arithmetic unit 201 source code acquisition unit 202 data acquisition unit 203 data analysis unit 204 module reuse determination unit 205 drawing instruction unit 206 program diagram creation control unit 300 storage unit 310 module reuse determination program storage area 320 degree of reuse Calculated use item data table storage area 321 Item name field 322 Data name field 323 Coefficient field 324 Module storage degree (A) 325 Module reliability (B) 330 Module Storage / Reliability Data Storage Area 331 Module Name Column 332 Each Data Name Column 333 of Module Storage (A) Each Data Name Column 334 of Module Reliability (B) Module Storage (A) or Module Reliability (B) value 340 Module reuse degree calculation table storage area 341 Calculation item name field 342 Reuse degree calculation formula field 343 Coefficient field 344 Threshold field 345 Calculation item “memory degree” 3

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

ソースコードの構成モジュールの再利用可否を判定するモジュール再利用判定装置を、判定対象のソースコードを取得するソースコード取得部と、前記取得したソースコードに対応して、開発・保守データベースを検索して、構成モジュールの再利用度算出利用項目データを取得するデータ取得部と、前記再利用度算出利用項目データより、対象モジュールのモジュール記憶度、モジュール信頼度を算出し、それらの値より対象モジュールの再利用度を算出するデータ解析部と、前記対象モジュールの再利用度を登録した閾値と比較して、前記対象モジュールの再利用の可否を判定するモジュール再利用判定部と、前記ソースコードの構成モジュールをコールグラフのノードとして表すプログラム図を作成し、及び再利用可能と判定されたモジュールを表すノードを強調表示するプログラム図作成制御部とを備えて構成する。

Description

モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム
 本発明は、既開発のソースコード内のモジュールが再利用可能か否かを判定する、モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラムに関する。
 ソフトウェア開発プロジェクトチームが新たなソフトウェアを開発するに際して、そのチームが過去に開発したソフトウェアやソフトウェアの知識は再利用可能な資産として、種々の技法により、新たなソフトウェアを構築するのに役立てられている。
 既存のソフトウェアシステムに手を加えて、機能改善、機能拡張していく、若しくは既成のプログラムを構成しているプログラム部品を再利用する派生開発を行うか、または新規開発を行うかの選択では、派生開発を行うとした場合の工数見積もりを行い、その結果如何で、派生開発か新規開発かを切り替える事がある。これには、再利用可能モジュール(工数低減に寄与するモジュール)を精度良く把握することが重要である。
 特許文献1で開示するプログラム部品利用支援システムでは、モジュール(プログラム部品)の利用実績を測定し、利用実績の高いモジュールを、汎用的に使える再利用可能モジュールと判定する方法が提案されている。
特開平10-063494号公報
 しかしながら、利用実績の高いモジュールでも、開発後の時間経過等の要因でプロジェクトチームにとって内容が曖昧になっていたり、忘れている場合、信頼性が低い場合、または他のソフトウェアへの適合性が低い場合は、再利用が難しく、特許文献1の方法では工数見積もりの精度が悪かった。
 本発明は、新たなソフトウェアを開発するに際して、派生開発の工数見積もり精度の向上を支援する技術を提供することを目的とする。
 上記課題を解決するために、本発明のモジュール再利用判定装置は、既開発のソースコードの再利用を検討するに際して、該ソースコードの構成モジュール単位に、再利用度の指標を算出して、再利用の可否を判定するモジュール再利用判定装置において、構成モジュールの再利用可否を判定する対象のソースコードを取得するソースコード取得部と、前記ソースコード取得部が取得した前記ソースコードに対応して、前記ソースコードに係る開発・保守データベースを検索して、構成モジュールより選択された対象モジュールの再利用度算出利用項目データを取得するデータ取得部と、前記データ取得部が取得した前記再利用度算出利用項目データより、対象モジュールのモジュール記憶度、モジュール信頼度を算出し、それらの値より対象モジュールの再利用度を算出するデータ解析部と、前記データ解析部が算出した前記対象モジュールの再利用度を登録された閾値と比較して、前記対象モジュールの再利用の可否を判定するモジュール再利用判定部と、前記ソースコードの構成モジュールをコールグラフのノードとして表すプログラム図を作成し、及び前記モジュール再利用判定部が再利用可能と判定したモジュールを表すノードを識別して表示するデータを作成するプログラム図作成制御部とを備えて構成される。
 また、本発明の他の特徴としては、前記モジュール再利用判定装置において、前記データ解析部が、前記再利用度算出利用項目データとして、判定対象モジュールが新規作成されてからの経過日数、判定対象モジュールに対して実施したレビュー数、または判定対象モジュールに対して機能追加/修正した回数、の各データを使用して、再利用度算出利用項目データ表に記録する係数を乗算してモジュール記憶度を算出する。
 また、本発明のその他の特徴としては、前記モジュール再利用判定装置において、前記データ解析部が、前記再利用度算出利用項目データとして、判定対象モジュールを呼ぶモジュール数、判定対象モジュールを呼んでいるモジュール群のコミット日の最大差、または判定対象モジュールのテストされた回数、の各データを使用して、再利用度算出利用項目データ表に記録する係数を乗算してモジュール信頼度を算出する。
 また、本発明のモジュール再利用判定方法は、既開発のソースコードの再利用を検討するに際して、該ソースコードの構成モジュール単位に、再利用度の指標を算出して、再利用の可否を判定するモジュール再利用判定方法において、構成モジュールの再利用可否を判定する対象のソースコードを取得する工程と、前記取得したソースコードに対応して、前記ソースコードに係る開発・保守データベースを検索して、構成モジュールより選択された対象モジュールの再利用度算出利用項目データを取得する工程と、前記再利用度算出利用項目データ毎に対応させて登録してある係数を乗算して、対象モジュールのモジュール記憶度、およびモジュール信頼度を算出し、それらの値より対象モジュールの再利用度を、ユーザ指定の再利用度算出式を選択して算出する工程と、前記算出した対象モジュールの再利用度を、前記再利用度算出式と対応して登録された閾値と比較して、前記対象モジュールの再利用の可否を判定する工程と、前記ソースコードの構成モジュールをコールグラフのノードとして表すプログラム図を表示部に表示し、及び再利用可能と判定したモジュールを表すノードを強調表示する工程とを有して構成される。
 また、本発明のモジュール再利用判定プログラムは、既開発のソースコードの再利用を検討するに際して、コンピュータに、該ソースコードの構成モジュール単位に、再利用度の指標を算出して、再利用の可否を判定させるモジュール再利用判定プログラムであって、コンピュータに、構成モジュールの再利用可否を判定する対象のソースコードを取得するソースコード取得手順と、前記取得したソースコードに対応して、前記ソースコードに係る開発・保守データベースを検索して、構成モジュールより選択された対象モジュールの再利用度算出利用項目データを取得するデータ取得手順と、前記再利用度算出利用項目データ毎に対応させて登録してある係数を乗算して、対象モジュールのモジュール記憶度、およびモジュール信頼度を算出し、それらの値より対象モジュールの再利用度を、ユーザ指定の再利用度算出式を選択して算出するデータ解析手順と、前記算出した対象モジュールの再利用度を、前記再利用度算出式と対応して登録された閾値と比較して、前記対象モジュールの再利用の可否を判定するモジュール再利用判定手順と、前記ソースコードの構成モジュールをコールグラフのノードとして表すプログラム図を表示部に表示し、及び前記モジュール再利用判定手順で再利用可能と判定したモジュールを表すノードを強調表示するプログラム図作成制御手順とを実行させることを特徴とするモジュール再利用判定プログラムである。
 本発明によれば、ソースコード内に含まれるモジュールに関し、該モジュールに対する記憶度や、該モジュールの信頼度を用いて、該モジュールが再利用可能か否かを判定する事で、派生開発工数の見積もり精度向上を支援する事が出来る。
実施例1に係るモジュール再利用判定装置のハードウェア及びシステム構成の一例を示す図である。 実施例1に係るモジュール再利用判定装置、情報装置A、及び情報装置Bの機能ブロックの一例を示す図である。 実施例における再利用度算出利用項目データ表の一例を示す図である。 実施例におけるモジュール別記憶度・信頼度データの一例を示す図である。 実施例におけるモジュール再利用度算出表の一例を示す図である。 実施例におけるモジュール別再利用度データの一例を示す図である。 実施例における、処理内容を記憶している、信頼性が高い、または他のソフトウェアへの適合性が高いために、再利用可能と判定したモジュールを強調表示するプログラム図作成フローチャートの一例を示す図である。 再利用判定対象モジュールを再利用判定する処理のステップS105の詳細フローチャートである。 再利用度算出利用項目係数やモジュール再利用度閾値の変更に応じてプログラム図が変化する一例を示す図である。 実施例2における再利用判定対象モジュールを再利用判定する処理のステップS105の詳細フローチャートである。 モジュール再利用度(1)閾値やモジュール再利用度(2)閾値の変更に応じてプログラム図が変化する一例を示す図である。
 以下、本発明によるモジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラムに関する一実施形態を、図面を用いて詳細に説明する。
 本実施例1では、複数のモジュールを含むモジュール再利用判定対象ソースコードに対して、ソフトウェア開発プロジェクトチームのメンバーが処理内容を記憶している(例えば、判定対象モジュールの作成日からの経過日数が浅いなどのため、メンバーの記憶度が高いと評価される場合)、またはモジュールの信頼性が高いと評価されるために、再利用可能だと判定したモジュールを強調したプログラム図を生成する装置、およびその方法の一例を示す。プログラム図の種類は複数考えられるが、本実施例では、プログラム図としてモジュールの呼出関係図をベースにして記載している。
 図1は、実施例1に係るモジュール再利用判定装置100のハードウェア及びシステム構成の一例を示す図である。モジュール再利用判定装置100のハードウェアとして、中央処理装置101、キーボードやマウス等の入力装置102、ROM(Read Only Memory)、RAM(Random Access Memory)などにより構成される主記憶装置103、HDD(Hard Disk Drive)などにより構成される二次記憶装置104、LCD(Liquid Crystal Display)、有機ELディスプレイなどにより構成される表示装置105、及びNIC(Network Interface Card)などにより構成される通信装置107を有する。尚、各装置は、バス106によって接続され、各装置間で相互にデータの送受信が可能である。また、モジュール再利用判定装置100は、例えば、インターネット等の通信ネットワーク130を介して、情報処理装置やネットワークストレージといった、ソフトウェア開発プロジェクトに関するデータベースを保存する事が可能な情報装置A110、および情報装置B120と接続されている。
 図2は、実施例1に係るモジュール再利用判定装置100、情報装置A110、及び情報装置B120の機能ブロックの一例を示す図である。
 演算部200は、中央処理装置101、および主記憶装置103により構成され、記憶部300に記憶されるモジュール再利用判定プログラム310を主記憶装置103にローディングして、中央処理装置101で実行することにより、ソースコード取得部201、データ取得部202、データ解析部203、モジュール再利用判定部204、描画指示部205、プログラム図作成制御部206の各機能を実現する。
 ソースコード取得部201は、ソフトウェア開発プロジェクトなどで既開発のソースコードを構成するモジュールの再利用可否を確認するために、対象となるソースコードをデータベースより取得する。
 データ取得部202は、前記対象となるソースコードが取得されたことに対応して、当該ソースコードが開発されたソフトウェア開発プロジェクトに係わる開発・保守データベースを検索して、ソースコードを構成するモジュールの再利用度を算出するために必要となる再利用度算出利用項目データを取得する。
 データ解析部203は、ユーザが指定して、データベースから検索した再利用度算出利用項目データより、対象モジュールのモジュール記憶度、モジュール信頼度を算出して、それらの値より更に対象モジュールの再利用度を算出する。
 モジュール再利用判定部204は、前記算出した対象モジュールの再利用度を、再利用度算出式と対応させて登録している閾値と比較して、前記対象モジュールの再利用の可否を判定する。
 描画指示部205は、再利用の可否を判定した対象モジュールを、ソースコードのプログラム図の上で、再利用が可と判定された場合には明示するために強調表示処理をする。
 プログラム図作成制御部206は、構成モジュールの再利用度を評価する対象のソースコードを入力して、その構成モジュールをコールグラフのノードとして表示するプログラム図の表示と、再利用可能なモジュールを強調表示する処理全体を制御する。
 記憶部300は、二次記憶装置104、および主記憶装置103により構成され、モジュール再利用判定プログラム310、再利用度算出利用項目データ表320、モジュール別記憶度・信頼度データ330、モジュール再利用度算出表340、及びモジュール別再利用度データ350の各データを記憶する記憶領域を有する。モジュール再利用判定プログラム、および各データについては以降に説明する。
  また、情報装置A110、および情報装置B120には、例えば既開発済みのソフトウェア開発プロジェクトAに関する開発・保守データベース360,380がそれぞれ構成されている。
 尚、本実施例においては、モジュール再利用判定装置100の演算部200の機能ブロックの全てが中央処理装置101によって実行または操作されるソフトウェアプログラムやデータであるものとして説明するが、一部または全ては、ハードウェアとして実現されても良い。また、本来は、これらの機能ブロックに加え、各機能ブロックの起動や管理等を行うOS(Operating System)や制御プログラム等が存在するが、本実施例では、これらの機能ブロックの連携動作を適宜説明することとし、OSや制御プログラムがここで適宜説明された連携動作に必要となる機能ブロックの起動や動作管理を行う事は自明であるので、これらのOSや制御プログラムについては説明及び記載を省略する。
 情報装置A110は、例えば既開発済みのソフトウェア開発プロジェクトAに関する開発・保守データを格納するデータベース360、及びその中にはプロジェクトAにおいて開発されたソースコードA370を備えている。例えば、ソースコードA370は、関数や変数等の部分的プログラムで構成されている。
  情報装置B120は、ソフトウェア開発プロジェクトAに関するその他の開発・保守データベース380、及びその中にはプロジェクトAにおいて開発、記録、または収集されたその他の開発・保守データ390を備えている。
 ソフトウェア開発プロジェクトの開発・保守データベースは、仕様・デザイン・ソースコード・テスト情報・インシデント情報・プロジェクト内のメール交信履歴情報など、ソフトウェア開発、および保守における各工程の様々な情報を一元管理する。リポジトリと呼ばれる。尚、プロジェクトAに関する開発・保守データベース360、及びプロジェクトAに関するその他の開発・保守データベース380は必ずしも上述の場所にある必要はなく、モジュール再利用判定装置100、情報装置A110、及び情報装置B120のいずれに格納されていても良い。
 図3に、再利用度算出利用項目データ表320の一例を示す。再利用度算出利用項目データ表320には、判定対象のモジュールの再利用度(図5に算出式を示して後述するが、モジュールの再利用性の良否の程度を判定するために算出する指標)を算出するために利用する項目である、モジュール記憶度(A)324、またはモジュール信頼度(B)325という項目名321、モジュール再利用度算出利用項目内で分類されるデータを定義するデータ名322、及びモジュール再利用度算出利用項目の値を算出する際に使用する、データ毎の係数323を格納する。
 ここで、モジュールの記憶度324とは、該モジュールの開発者を含む該モジュールの関係者(開発プロジェクトメンバー)が該モジュールを覚えているか否かの程度を示す指標であり、この値が高い程、モジュールの再利用可能性が高い傾向がある。
  また、モジュールの信頼度325とは、モジュールが正常に動作するか否かの程度を示す指標であり、モジュールの記憶度と同じく、この値が高い程、モジュールの再利用可能性が高い傾向にある。
 本実施例では、モジュール記憶度(A)324のデータとして、判定対象モジュールが新規作成されてからの経過日数(A1)、判定対象モジュールに対して実施したレビュー数(A2)、及び判定対象モジュールに対して機能追加/修正した回数(A3)を記載している。
  また、モジュール信頼度(B)325のデータとして、判定対象モジュールを呼ぶモジュール数(B1)、判定対象モジュールを呼んでいるモジュール群のコミット日の最大差(B2)、及び判定対象モジュールのテストされた回数(B3)を記載している。
 「判定対象モジュールを呼んでいるモジュール群のコミット日の最大差(B2)」を説明する。前記プロジェクトAに関する開発・保守データベース360などから、モジュールなどをプロジェクトメンバーのローカル環境にコピーしてきて、該モジュールに修正を加えた場合に、前記データベースへ修正後の差分情報を登録する。この差分情報を登録することをコミットと呼ぶ。判定対象モジュールを呼んでいるモジュール群の各モジュールが修正された最終日(すなわち最新の更新日)は、前記データベース360に履歴が記録されているので、判定対象モジュールを呼んでいるモジュール群の各モジュールのコミット日を比較して、最大差(B2)を求める。コミット日の最大差が大きい世代の異なるモジュールから呼ばれている判定対象モジュールは、コミット日の最大差が大きい程、より広い世代のモジュールからアクセスされていることより信頼度が高いと判定する。
 図3の再利用度算出利用項目データ322毎に、モジュール記憶度(A)324やモジュール信頼度(B)325の算出で使用する係数323があり、A1は-1/365、A2は3、A3は5、B1は1、B2は1/365、B3は4とデータ表に記載している。これらの係数を利用したモジュール再利用度項目値の算出方法は後述する。
 図4に、モジュール別記憶度・信頼度データ330のデータテーブルの一例を示す。モジュール別記憶度・信頼度データ330には、判定対象ソースコード内のモジュール331毎に、再利用度算出利用項目データ表320に記載してあるモジュール記憶度(A)データ名(A1~A3)322、またはモジュール信頼度(B)データ名(B1~B3)322それぞれに対応する、モジュール記憶度(A)またはモジュール信頼度(B)の値が算出され、モジュール記憶度(A)の各データ名欄332、またはモジュール信頼度(B)の各データ名欄333に値334が格納される。
 値の算出は、再利用度算出利用項目データの値に、再利用度算出利用項目データ表320記載のデータ用係数323を乗算する事で行う。
  例えば、データ名322が“判定対象モジュールが新規作成されてからの経過日数(A1)”のモジュール記憶度(A)は、“判定対象モジュールが新規作成されてからの経過日数(A1)”を、関係する開発・保守データ390から取得した上で、再利用度算出利用項目データ表320に記載してある、再利用度算出利用項目データに対応する係数323“-1/365”を乗算して算出する。他のデータ名322に対応するモジュール記憶度、またはモジュール信頼度に関しても、同様の方法で算出して、データテーブル330に格納する。
 図5に、モジュール再利用度算出表340の一例を示す。モジュール再利用度算出表340には、判定対象モジュール毎に算出する、モジュール再利用度(判定対象モジュールの再利用性の良否の程度を判定するために算出する指標)の算出項目名341、再利用度算出式342、該算出式で使用する係数343、及び再利用判定で使用する閾値344を格納する。
 本実施例では、算出項目341として、“記憶度”345、“信頼度”346、“記憶度と信頼度”347、及び“適合期待度”348の4つを記載している。算出項目“記憶度”345のモジュール再利用度は、ユーザが再利用度算出利用項目データ表320から使用するとして選択指定したデータ名322に関するモジュール記憶度Aの和を取る事で算出する。算出項目“信頼度”346のモジュール再利用度は、ユーザが使用するとして選択指定したデータ名322に関するモジュール信頼度Bの和を取る事で算出する。算出項目“記憶度と信頼度”347のモジュール再利用度は、ユーザが使用するとして選択指定したデータ名322に関するモジュール記憶度Aの和に係数C(0.5)を乗算した値と、ユーザが使用するとして選択指定したデータ名322に関するモジュール信頼度Bの和に係数C(0.5)を乗算した値の和を取る事で算出する。算出項目“適合期待度”348のモジュール再利用度は、二つ存在し、ユーザが使用するとして選択指定したデータ名322に関するモジュール記憶度Aの和(数式(1))と、ユーザが使用するとして選択指定したデータ名に関するモジュール信頼度Bの和(数式(2))である。
 算出項目“記憶度と信頼度”347で使用している、モジュール記憶度(A)とモジュール信頼度(B)の係数C,Cは、本実施例では、0.5、0.5であり、双方合わせて1となる。これらの係数は、モジュールの再利用を考える上で、モジュール記憶度(A)とモジュール信頼度(B)のどちらをより重視するかを示す。もし、モジュール記憶度(A)が0.5より大きければ、モジュールの信頼性よりも、モジュールを覚えているかを重視し、逆にモジュール信頼度(B)が0.5より大きければ、モジュールを覚えているかよりも、モジュールの信頼性を重視している事を意味する。本実施例では記憶度と信頼度を同等の重要度で扱うものと仮定しているため、モジュール記憶度(A)とモジュール信頼度(B)の係数を同じ値としている。
 算出項目“記憶度”345の閾値は3、算出項目“信頼度”346の閾値は10、算出項目“記憶度と信頼度”347の閾値は20、算出項目“適合期待度”348の閾値は、ユーザが使用するとして選択指定したデータ名322に関するモジュール記憶度の和(数式(1))の方が2、ユーザが使用するとして選択指定したデータ名322に関するモジュール信頼度の和(数式(2))の方が 3と記載している。後述するが、これらは再利用判定の際に用いる値である。尚、本実施例1では、算出項目“記憶度と信頼度”347の式でモジュール再利用度を算出するものとする。
 図6のデータテーブルに、モジュール別再利用度データ350の一例を示す。モジュール別再利用度データ記憶領域350には、モジュール再利用度算出表340に記載しているモジュール再利用度の算出式342を使用して、モジュール351毎に計算した、モジュール再利用度352の算出値を格納する。
 図7に、モジュール再利用判定装置100で、判定対象ソースコードA370を構成するモジュールの中で、各モジュールが再利用可能か否かをモジュール別再利用度データに基づいて判定して、判定対象ソースコードAのプログラム図上で再利用可能なモジュールを強調表示するプログラム図作成処理のフローチャートを示す。
  本実施例のプログラム図作成処理は、ソフトウェア開発プロジェクトチームのメンバーが処理内容を記憶していると評価する評価指標、またはモジュールの信頼性が高いと評価する評価指標に基づいて、対象モジュールが再利用可能か否かを判定する。
 ステップS100において、プログラム図作成制御部206が起動されて、プログラム図の作成処理を開始する。本実施例で実行されるプログラム図の作成処理は、可視化対象ソースコードを入力して、そのソースコードを構成するモジュールを例えばコールグラフのノードとして表示し、ノード間のエッジはモジュール呼出関係図などを参照して表示する公知の技術によりプログラム図(図9、図11を参照)を作成する。このプログラム図の上で、再利用が可能と判定されるモジュールを表すノードを協調表示する。
 ステップS101において、入力装置102を用いて、例えば既開発済みのソフトウェア開発プロジェクトAに関する開発・保守データベース360の中から可視化するソースコードをユーザが指定する。本実施例では可視化対象ソースコードとしてソースコードA370を指定したものとする。ユーザが可視化対象ソースコードを指定すると、ソースコード取得部201が、通信装置107を介して、プロジェクトAに関する開発・保守データベース360の中から、可視化対象であるソースコードA370を取得する。もし開発・保守データベース360が巨大で、ソースコードA370の検索に時間が掛かりそうな場合には、ユーザ指示により、予め、評価対象として使いそうなファイルを、例えばモジュール再利用判定装置100といった高速な検索が可能となる場所へ移動またはコピーしておく事も考えられる。
 また、同時に、データ取得部202が、通信装置107を介して、可視化対象であるソースコードA370に関する開発・保守データを取得する。該当する開発・保守データは、ソースコードA370が格納されている開発・保守データベース360に存在するデータに限らず、その他の情報装置、例えば情報装置B120に構成されているその他の開発・保守データベース380に格納されている例えばメールの交信履歴等のその他の開発・保守データ390を利用する事も考えられる。ソースコードの場合と同じく、この後の処理高速化に向け、ユーザ指示により、予め、使いそうなファイルを、例えばモジュール再利用判定装置100といった高速な検索が可能となる場所へ移動またはコピーしておく事も考えられる。
 ステップS102において、入力装置102を用いて、モジュールの再利用判定を行うために用いる、再利用度算出利用項目データ名322、及び再利用度算出項目341をユーザが指定する。本実施例では、再利用度算出利用項目データ名として、モジュール記憶度(A)項目324の、判定対象モジュールが新規作成されてからの経過日数(A1)、判定対象モジュールに対して実施したレビュー数(A2)、及び判定対象モジュールに対して機能追加/修正した回数(A3)を、モジュール信頼度(B)項目325の、判定対象モジュールを呼ぶモジュール数(B1)、判定対象モジュールを呼んでいるモジュール群のコミット日の最大差(B2)、及び判定対象モジュールのテストされた回数(B3)をユーザが指定したものとする。また、利用する再利用度算出項目341として、モジュール再利用度算出表340記載の“記憶度と信頼度”347をユーザが指定したものとする。
 ステップS103において、プログラム図作成制御部206が、ステップS101で取得したソースコードA370に含まれる、未だ再利用判定を行っていないモジュールの内より、一つのモジュールを再利用判定対象モジュールとして取得する。
 ステップS104において、ステップS103で取得したモジュールに関し、データ取得部202が、ステップS101で取得したソースコードA370に関する開発・保守データから、ステップS102でユーザが指定した再利用度算出利用項目データ名322に関するデータを取得する。
 ステップS105において、データ解析部203が、ステップS104で取得したデータを解析して、再利用判定対象モジュールの再利用度を算出した上で、モジュール再利用判定部204が、該判定対象モジュールは再利用可能か否かを判定する。本判定では、再利用度算出利用項目データ表320に記載されたデータ名322のうち、“判定対象モジュールが新規作成されてからの経過日数”、“判定対象モジュールに対して実施したレビュー数”、“判定対象モジュールに対して機能追加/修正した回数”、“判定対象モジュールを呼ぶモジュール数”、“判定対象モジュールを呼んでいるモジュール群のコミット日の最大差”、及び“判定対象モジュールのテストされた回数”を使用するものと想定している。判定が真であれば、ステップS106へ進む。判定が偽であれば、ステップS107へ進む。尚、本処理内容は後に詳述する。
 ステップS106において、描画指示部205が、該判定対象モジュールを再利用可能なモジュールとしてプログラム図上で強調表示する。
 ステップS107において、描画指示部205が、該判定対象モジュールを再利用可能でないモジュールとしてプログラム図上で強調表示しない。
 ステップS108において、プログラム図作成制御部206が、ステップS101で取得したソースコードA370に未だ再利用判定を行っていないモジュールがあるか否かを判定する。再利用判定を行っていないモジュールがある場合は、ステップS103へ進む。再利用判定を行っていないモジュールが無い場合は、ステップS109へ進む。
 ステップS109において、プログラム図作成制御部206が、プログラム図作成処理を終了する。
 図8に、再利用判定対象モジュールを再利用判定する処理の一例であるステップS105の詳細フローチャートを示す。ステップS102にて、再利用度算出利用項目データ名322として、モジュール記憶度324に関するデータである、“判定対象モジュールが新規作成されてからの経過日数”、“判定対象モジュールに対して実施したレビュー数”、及び“判定対象モジュールに対して機能追加/修正した回数”を、また、モジュール信頼度325に関するデータである、“判定対象モジュールを呼ぶモジュール数”、“判定対象モジュールを呼んでいるモジュール群のコミット日の最大差”、及び“判定対象モジュールのテストされた回数”をユーザが指定したことを想定している。また、利用する再利用度算出項目341として、モジュール再利用度算出表340記載の“記憶度と信頼度”347をユーザが指定したことを想定している。
 ステップS201において、データ解析部203が、ステップS102でユーザが指定した再利用度算出利用項目データ名322に従って、判定対象モジュールのモジュール記憶度332、またはモジュール信頼度333の値を算出して、算出結果をモジュール別記憶度・信頼度データ330へ格納する。この際、ユーザが指定した再利用度算出利用項目データ名322に関するモジュール記憶度またはモジュール信頼度の値だけを算出するのではなく、再利用度算出利用項目データ表320に記載の全ての再利用度算出利用項目データ名322に関する値を算出しておく事も考えられる。値を算出してモジュール別記憶度・信頼度データ330へ格納したものは、次回、もし同じ値を計算する際には本処理のスキップが可能であり、処理の高速化を図る事が出来る。
 モジュール記憶度またはモジュール信頼度の値の算出は、再利用度算出利用項目データ名322に対応するデータ値に、再利用度算出利用項目データ表320記載の係数323を乗算する事で行う。例えば、“判定対象モジュールが新規作成されてからの経過日数(A1)”に関するモジュール記憶度は、判定対象のモジュールが新規作成されてからの経過日数を、開発・保守データから取得し、その値に対し、再利用度算出利用項目データ表320記載の係数323“-1/365”を乗算する事で算出する。
 ステップS202において、データ解析部203が、ステップS102でユーザが指定した再利用度算出利用項目データ名322に従って算出して、モジュール別記憶度・信頼度データ330に格納されている、モジュール記憶度、またはモジュール信頼度のデータ値と、モジュール再利用度算出表340に記載された再利用度算出式342を利用して、モジュール再利用度の算出を行い、算出結果をモジュール別再利用度データ350へ格納する。本実施例では、算出項目“記憶度と信頼度”347の算出式利用をユーザが指定した事を想定している。ユーザが指定したモジュール記憶度の和に係数0.5を乗算した値と、ユーザが指定したモジュール信頼度の和に係数0.5を乗算した値の和を取る事で算出する。
 ステップS203において、モジュール再利用判定部204が、モジュール別再利用度データ350に格納されている、判定対象モジュールの再利用度352と、モジュール再利用度算出表340に格納されている閾値344、とを比較して、前者の値が後者の値以上であれば再利用可能と判定して、ステップS106へ進む。また、前者の値が後者の値未満であれば再利用不可と判定して、ステップS107へ進む。
 本実施例の効果として、上述した特許文献1に存在した課題、すなわち利用実績が高いモジュールでも、時間経過等の要因で内容が曖昧になっている(忘れている)場合や、信頼性が低い場合は、再利用が難しく、工数見積もりの精度が悪かったという課題を解決する。つまり、プログラム図形式で可視化対象ソースコードに関係のある開発・保守情報を利用して、モジュールの記憶度や信頼度を算出し、これらをモジュールの再利用度の指標として利用する事で、再利用判定対象モジュールが再利用可能か否かを自動で判定する。該判定結果を用いて、ソフトウェア開発プロジェクトチームのメンバーが処理内容を記憶している、または信頼性が高いために再利用可能と判定したモジュールを強調したプログラム図を構築・表示する事で、工数見積もり精度の向上を支援する事が出来る。
 本実施例のモジュール再利用判定装置100が、プログラム図作成制御部206によって作成して、表示装置105に表示するプログラム図においては、再利用度算出利用項目データ表320の係数323、またはモジュール再利用度算出表340の閾値344の各登録値を変更すれば、再利用可能として強調されるモジュールが変わる。本プログラム図を利用する目的や意図に応じて、どの程度を再利用可能モジュールとするか、また再利用可能モジュールとして信頼性を重視するか、記憶している事を重視するか、の考え方は異なる。そのため、例えば、再利用度算出利用項目データ表320の係数323、またはモジュール再利用度算出表340の閾値344の各登録値の代わりに、ユーザが指定した係数323、および閾値344の各値をプログラム図を表示する画面上で可変として、それらの値の変化に追随させてプログラム図を変化させて、ユーザが意図する方向にプログラム図を変えられる機能を実現する。
 図9(A),(B)に示すプログラム図の下部に、再利用度算出利用項目係数323、モジュール再利用度閾値344を変化させるスライダを表示して、プログラム図を変化させるユーザ入力を受付ける動作モードを、プログラム図作成制御部206にユーザが指定入力して起動する。プログラム図作成制御部206は、1回のプログラム図作成処理を終了すると、直ちに次のプログラム図作成処理を起動して、ステップS102において、ユーザがスライダを動かして、新たな再利用度算出利用項目係数323、および/または、モジュール再利用度閾値344の値を入力するのを待機する。ユーザが、当初、スライダによって可変とする再利用度算出利用項目データ名322、及びモジュール再利用度算出項目341を指定入力することによって該当する再利用度算出利用項目係数323、及びモジュール再利用度閾値344の各スライダが作成されるので、以後は、ユーザがスライダを操作して、係数323、及び閾値344を変えるごとに、変えられた係数323、及び閾値344を反映して、プログラム図作成処理のステップS103以降が実行されて、変更後のプログラム図が描画される。
 図9(A),(B)で示すプログラム図の中で、灰色のノードは再利用可能だと判定されたモジュールを示している。
  図9(A)のように、モジュール再利用度閾値が10の時には6つのモジュールが再利用可能として強調表示されているが、モジュール再利用度閾値スライダを操作して、80へと変更した場合には、図9(B)のように2つのモジュールだけが再利用可能として強調表示されている。ここで、モジュール再利用度閾値は、ユーザが指定したモジュール再利用度算出項目341に対応する再利用度算出式によって算出される全てのモジュールの再利用度のうちの最大値を100として正規化した事を想定している。
 尚、本実施例では、モジュール再利用度を、モジュールを強調表示するか否かで利用する事としたが、上記に限らず、様々な利用法が考えられる。
 本実施例2では、複数のモジュールを含む可視化対象ソースコードに対して、他のソフトウェアへの適合性が高い、言い換えると枯れているために、再利用可能だと判定したモジュールを強調したプログラム図を生成する方法の一例を記す。尚、実施例1と大半が同じため、差分に焦点を当てて記述する。
 図10に、本実施例2において、再利用判定対象モジュールを再利用判定する際の一例であるステップS105の詳細フローチャートを示す。ステップS102にて、再利用算出利用項目データ名322として、モジュール記憶度324に関するデータである、“判定対象モジュールが新規作成されてからの経過日数”、“判定対象モジュールに対して実施したレビュー数”、及び“判定対象モジュールに対して機能追加/修正した回数”を、またモジュール信頼度325に関するデータである、“判定対象モジュールを呼ぶモジュール数”、“判定対象モジュールを呼んでいるモジュール群のコミット日の最大差”、及び“判定対象モジュールのテストされた回数”をユーザが指定した事を想定している。更に、ステップS102にて、ユーザが、再利用度算出項目341としてモジュール再利用度算出表340に記載されている“適合期待度”348を指定したものとする。“適合期待度”348を利用する場合には、ステップS105として、図8の処理の代わりに、図10の本処理が実行される。
 ステップS301の処理は、ステップS201の処理と同じため、説明を省略する。
 ステップS302において、データ解析部203が、ステップS102でユーザが指定した再利用度算出利用項目データ名322に従って算出して、モジュール別記憶度・信頼度データ330に格納されている、モジュール記憶度、またはモジュール信頼度のデータ値と、モジュール再利用度算出表340に記載された再利用度算出式342を利用して、モジュール再利用度の算出を行い、算出結果をモジュール別再利用度データ350へ格納する。本実施例では、算出項目“適合期待度”348の算出式利用をユーザが指定した事を想定している。ユーザが使用するとして選択指定したデータ名322に関するモジュール記憶度Aの和(数式(1))と、ユーザが選択使用するとして指定したデータ名322に関するモジュール信頼度Bの和(数式(2))で算出する。
 ステップS303において、モジュール再利用判定部204が、モジュール別再利用度データ350に格納されている、判定対象モジュールの“適合期待度”再利用度(1)と、モジュール再利用度算出表340に格納されている閾値344、とを比較し、前者の値が後者の値未満であれば、ステップS304へ進む。また、前者の値が後者の値以上であれば、ステップS107へ進む。
 ステップS304において、モジュール再利用判定部204が、モジュール別再利用度データ350に格納されている、判定対象モジュールの“適合期待度”再利用度(2)と、モジュール再利用度算出表340に格納されている閾値344、とを比較し、前者の値が後者の値以上であれば、ステップS106へ進む。また、前者の値が後者の値未満であれば、ステップS107へ進む。
 つまり、他のソフトウェアへの適合性が高く汎用的に使えるモジュールとして、判定対象モジュールの処理内容は曖昧または忘れているが、信頼度は高いモジュールを抽出する。このようにして抽出したモジュールは、処理内容が曖昧または忘れていても、利用価値が高いという事で、モジュールとして汎用性が高い傾向にある。
 本実施例の効果として、上述した特許文献1に存在した課題、すなわち利用実績が高いモジュールでも、他のソフトウェアへの適合性が低い場合は、再利用が難しく、工数見積もりの精度が悪かったという課題を解決する。つまり、プログラム図形式で可視化対象ソースコードに関係のある開発・保守情報を利用して、モジュールの記憶度や信頼度を算出し、これらをモジュールの再利用度の指標として利用する事で、再利用判定対象モジュールが再利用可能か否かを自動で判定する。該判定結果を用いて、他のソフトウェアへの適合性が高い、言い換えると枯れているために再利用可能と判定したモジュールを強調したプログラム図を構築・表示する事で、工数見積もり精度の向上を支援する事が出来る。
 本実施例のモジュール再利用判定装置100が、プログラム図作成制御部206によって作成して、表示装置105に表示するプログラム図は、モジュール再利用度閾値(1)、またはモジュール再利用度閾値(2)を変更すれば、再利用可能として強調されるモジュールが変わる。本プログラム図を利用する目的や意図に応じて、どの程度を再利用可能モジュールとするか等の考え方は異なるため、例えば、モジュール再利用度算出表340に記載されたモジュール再利用度閾値(1)344やモジュール再利用度閾値(2)344の代わりに、図11(A),(B)で示すように、モジュール再利用度閾値(1)スライダ、またはモジュール再利用度閾値(2)スライダを調整してその値を利用する事で、目的や意図に応じて、プログラム図を適宜作り替える事も考えられる。
 図11(A),(B)で示すプログラム図の中で、灰色のノードは再利用可能だと判定されたモジュールを示している。図11(A)のように、モジュール再利用度閾値(2)が10の時には6つのモジュールが再利用可能として強調表示されているが、モジュール再利用度閾値(2)スライダを操作して、80へと変更した場合には、図11(B)のように2つのモジュールだけが再利用可能として強調表示される。ここで、モジュール再利用度閾値(1)またはモジュール再利用度閾値(2)は、全てのモジュールの再利用度(1)353またはモジュール再利用度(2)354のうちの最大値を100として、それぞれ正規化した事を想定している。
 尚、本実施例では、モジュール再利用度を、モジュールを強調表示するか否かで利用する事としたが、上記に限らず、様々な利用法が考えられる。
100 モジュール再利用判定装置
101 中央処理装置
102 入力装置
103 主記憶装置
104 二次記憶装置
105 表示装置
106 バス
107 通信装置
110 情報装置A
120 情報装置B
130 通信ネットワーク
200 演算部
201 ソースコード取得部
202 データ取得部
203 データ解析部
204 モジュール再利用判定部
205 描画指示部
206 プログラム図作成制御部
300 記憶部
310 モジュール再利用判定プログラム記憶領域
320 再利用度算出利用項目データ表記憶領域
321 項目名欄
322 データ名欄
323 係数欄
324 モジュール記憶度(A)
325 モジュール信頼度(B)
330 モジュール別記憶度・信頼度データ記憶領域
331 モジュール名欄
332 モジュール記憶度(A)の各データ名欄
333 モジュール信頼度(B)の各データ名欄
334 モジュール記憶度(A)またはモジュール信頼度(B)の値
340 モジュール再利用度算出表記憶領域
341 算出項目名欄
342 再利用度算出式欄
343 係数欄
344 閾値欄
345 算出項目“記憶度”
346 算出項目“信頼度”
347 算出項目“記憶度と信頼度”
348 算出項目“適合期待度”
350 モジュール別再利用度データ記憶領域
351 モジュール名欄
352 再利用度欄
353 モジュール再利用度(1)欄
354 モジュール再利用度(2)欄
360 プロジェクトAに関する開発・保守データベース
370 ソースコードA
380 プロジェクトAに関するその他の開発・保守データベース
390 プロジェクトAに関するその他の開発・保守データ

Claims (9)

  1.  既開発のソースコードの再利用を検討するに際して、該ソースコードの構成モジュール単位に、再利用度の指標を算出して、再利用の可否を判定するモジュール再利用判定装置であって、
     構成モジュールの再利用可否を判定する対象のソースコードを取得するソースコード取得部と、
     前記ソースコード取得部が取得した前記ソースコードに対応して、前記ソースコードに係る開発・保守データベースを検索して、構成モジュールより選択された対象モジュールの再利用度算出利用項目データを取得するデータ取得部と、
     前記データ取得部が取得した前記再利用度算出利用項目データより、対象モジュールのモジュール記憶度、モジュール信頼度を算出し、それらの値より対象モジュールの再利用度を算出するデータ解析部と、
     前記データ解析部が算出した前記対象モジュールの再利用度を登録された閾値と比較して、前記対象モジュールの再利用の可否を判定するモジュール再利用判定部と、
     前記ソースコードの構成モジュールをコールグラフのノードとして表すプログラム図を作成し、及び前記モジュール再利用判定部が再利用可能と判定したモジュールを表すノードを識別して表示するデータを作成するプログラム図作成制御部と
     を備えたことを特徴とするモジュール再利用判定装置。
  2.  請求項1に記載のモジュール再利用判定装置において、
     表示装置が、前記ソースコードの構成モジュールをコールグラフのノードとして表すプログラム図を表示して、その中の前記モジュール再利用判定部が再利用可能と判定したモジュールを表すノードを強調表示することを特徴とするモジュール再利用判定装置。
  3.  請求項1に記載のモジュール再利用判定装置において、
     前記データ解析部が、前記再利用度算出利用項目データとして、判定対象モジュールが新規作成されてからの経過日数、判定対象モジュールに対して実施したレビュー数、または判定対象モジュールに対して機能追加/修正した回数、の各データを使用して、再利用度算出利用項目データ表に記録する係数を乗算してモジュール記憶度を算出することを特徴とするモジュール再利用判定装置。
  4.  請求項1に記載のモジュール再利用判定装置において、
     前記データ解析部が、前記再利用度算出利用項目データとして、判定対象モジュールを呼ぶモジュール数、判定対象モジュールを呼んでいるモジュール群のコミット日の最大差、または判定対象モジュールのテストされた回数、の各データを使用して、再利用度算出利用項目データ表に記録する係数を乗算してモジュール信頼度を算出することを特徴とするモジュール再利用判定装置。
  5.  請求項3、または請求項4に記載のモジュール再利用判定装置において、
     前記データ解析部が、ユーザが指定した以下の再利用度算出式を選択して、
    (1)式:1つ以上の再利用度算出利用項目データを使用して算出した各モジュール記憶度の和、
    (2)式:1つ以上の再利用度算出利用項目データを使用して算出した各モジュール信頼度の和、
    (3)式:1つ以上の再利用度算出利用項目データを使用して算出した各モジュール記憶度の和に係数を乗算した値と、1つ以上の再利用度算出利用項目データを使用して算出した各モジュール信頼度の和に係数を乗算した値とを加算、
    (4)式:1つ以上の再利用度算出利用項目データを使用して算出した各モジュール記憶度の和と、1つ以上の再利用度算出利用項目データを使用して算出した各モジュール信頼度の和の両方の値を算出、
     いずれかの再利用度算出式を使用して、前記判定対象モジュールの再利用度を算出することを特徴とするモジュール再利用判定装置。
  6.  請求項5に記載のモジュール再利用判定装置において、
     前記モジュール再利用判定部が、前記データ解析部が選択した前記再利用度算出式が、(1)式、(2)式、または(3)式である場合には、算出された前記判定対象モジュールの再利用度と、前記再利用度算出式に対応付けて記録されている閾値とを比較して、前記再利用度が前記閾値以上である場合に、前記判定対象モジュールは再利用可能であると判定することを特徴とするモジュール再利用判定装置。
  7.  請求項5に記載のモジュール再利用判定装置において、
     前記モジュール再利用判定部が、前記データ解析部が選択した前記再利用度算出式が、(4)式である場合には、算出された前記判定対象モジュールの再利用度(各モジュール記憶度の和、各モジュール信頼度の和)と、前記再利用度算出式に対応付けて記録されている閾値(第1の閾値、第2の閾値)とを比較して、前記各モジュール記憶度の和が前記第1の閾値未満であり、及び前記各モジュール信頼度の和が前記第2の閾値以上である場合に、前記判定対象モジュールは再利用可能であると判定することを特徴とするモジュール再利用判定装置。
  8.  既開発のソースコードの再利用を検討するに際して、該ソースコードの構成モジュール単位に、再利用度の指標を算出して、再利用の可否を判定するモジュール再利用判定方法であって、
     構成モジュールの再利用可否を判定する対象のソースコードを取得する工程と、
     前記取得したソースコードに対応して、前記ソースコードに係る開発・保守データベースを検索して、構成モジュールより選択された対象モジュールの再利用度算出利用項目データを取得する工程と、
     前記再利用度算出利用項目データ毎に対応させて登録してある係数を乗算して、対象モジュールのモジュール記憶度、およびモジュール信頼度を算出し、それらの値より対象モジュールの再利用度を、ユーザ指定の再利用度算出式を選択して算出する工程と、
     前記算出した対象モジュールの再利用度を、前記再利用度算出式と対応して登録された閾値と比較して、前記対象モジュールの再利用の可否を判定する工程と、
     前記ソースコードの構成モジュールをコールグラフのノードとして表すプログラム図を表示部に表示し、及び再利用可能と判定したモジュールを表すノードを強調表示する工程とを有することを特徴とするモジュール再利用判定方法。
  9.  既開発のソースコードの再利用を検討するに際して、コンピュータに、該ソースコードの構成モジュール単位に、再利用度の指標を算出して、再利用の可否を判定させるモジュール再利用判定プログラムであって、
     コンピュータに、
     構成モジュールの再利用可否を判定する対象のソースコードを取得するソースコード取得手順と、
     前記取得したソースコードに対応して、前記ソースコードに係る開発・保守データベースを検索して、構成モジュールより選択された対象モジュールの再利用度算出利用項目データを取得するデータ取得手順と、
     前記再利用度算出利用項目データ毎に対応させて登録してある係数を乗算して、対象モジュールのモジュール記憶度、およびモジュール信頼度を算出し、それらの値より対象モジュールの再利用度を、ユーザ指定の再利用度算出式を選択して算出するデータ解析手順と、
     前記算出した対象モジュールの再利用度を、前記再利用度算出式と対応して登録された閾値と比較して、前記対象モジュールの再利用の可否を判定するモジュール再利用判定手順と、
     前記ソースコードの構成モジュールをコールグラフのノードとして表すプログラム図を表示部に表示し、及び前記モジュール再利用判定手順で再利用可能と判定したモジュールを表すノードを強調表示するプログラム図作成制御手順と、
     を実行させることを特徴とするモジュール再利用判定プログラム。
PCT/JP2015/068551 2015-06-26 2015-06-26 モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム WO2016208073A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2015/068551 WO2016208073A1 (ja) 2015-06-26 2015-06-26 モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム
JP2016574022A JP6356274B2 (ja) 2015-06-26 2015-06-26 モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/068551 WO2016208073A1 (ja) 2015-06-26 2015-06-26 モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム

Publications (1)

Publication Number Publication Date
WO2016208073A1 true WO2016208073A1 (ja) 2016-12-29

Family

ID=57586181

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/068551 WO2016208073A1 (ja) 2015-06-26 2015-06-26 モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム

Country Status (2)

Country Link
JP (1) JP6356274B2 (ja)
WO (1) WO2016208073A1 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695861A (ja) * 1992-09-10 1994-04-08 Minolta Camera Co Ltd プログラム部品再利用管理装置
JPH08212254A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 処理情報管理装置
WO2003069466A1 (fr) * 2002-02-18 2003-08-21 Japan Science And Technology Agency Système d'évaluation de l'importance d'un composant logiciel
WO2006033159A1 (ja) * 2004-09-24 2006-03-30 Fujitsu Limited 業務モデル図作成支援プログラム、方法、 及び装置
JP2008171318A (ja) * 2007-01-15 2008-07-24 Matsushita Electric Ind Co Ltd ソフトウェア開発ツール
JP2010097474A (ja) * 2008-10-17 2010-04-30 Nec Corp 依存関係提示方法、装置及びプログラム
JP2015032141A (ja) * 2013-08-02 2015-02-16 日本電気株式会社 アセット情報管理装置、制御方法、及びプログラム
WO2015063954A1 (ja) * 2013-11-01 2015-05-07 株式会社日立製作所 プログラム図作成装置、プログラム図作成方法、及びプログラム図作成プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005234814A (ja) * 2004-02-18 2005-09-02 Fujitsu Ltd プログラム、プログラム構築方法、記憶媒体、プログラム構築システム、端末装置
JP5236564B2 (ja) * 2009-04-20 2013-07-17 株式会社日立製作所 ソフトウェア再利用支援方法及び装置
WO2015019536A1 (ja) * 2013-08-05 2015-02-12 日本電気株式会社 情報処理装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695861A (ja) * 1992-09-10 1994-04-08 Minolta Camera Co Ltd プログラム部品再利用管理装置
JPH08212254A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 処理情報管理装置
WO2003069466A1 (fr) * 2002-02-18 2003-08-21 Japan Science And Technology Agency Système d'évaluation de l'importance d'un composant logiciel
WO2006033159A1 (ja) * 2004-09-24 2006-03-30 Fujitsu Limited 業務モデル図作成支援プログラム、方法、 及び装置
JP2008171318A (ja) * 2007-01-15 2008-07-24 Matsushita Electric Ind Co Ltd ソフトウェア開発ツール
JP2010097474A (ja) * 2008-10-17 2010-04-30 Nec Corp 依存関係提示方法、装置及びプログラム
JP2015032141A (ja) * 2013-08-02 2015-02-16 日本電気株式会社 アセット情報管理装置、制御方法、及びプログラム
WO2015063954A1 (ja) * 2013-11-01 2015-05-07 株式会社日立製作所 プログラム図作成装置、プログラム図作成方法、及びプログラム図作成プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
L.H.ETZKORN: "Automated reusability quality analysis of 00 legacy software", INFORMATION AND SOFTWARE TECHNOLOGY, vol. 43, no. Issue 5, pages 295 - 308, XP055055784, ISSN: 0950-5849 *

Also Published As

Publication number Publication date
JP6356274B2 (ja) 2018-07-11
JPWO2016208073A1 (ja) 2017-06-29

Similar Documents

Publication Publication Date Title
US11106626B2 (en) Managing changes to one or more files via linked mapping records
US8185563B2 (en) Data-visualization system and method
Pilehchian et al. A conceptual approach to track design changes within a multi-disciplinary building information modeling environment
JP2019061614A (ja) 設計支援装置および設計支援方法
US10346290B2 (en) Automatic creation of touring tests
JP5614843B2 (ja) ソフトウェア設計・運用統合管理システム
US8548967B1 (en) System for visual query and manipulation of configuration management records
JP6092686B2 (ja) 運用作業フロー作成支援方法および運用作業フロー作成支援システム
CN117280321A (zh) 在版本控制系统中的变化估计
Molka et al. Conformance checking for BPMN-based process models
US20110087614A1 (en) System for representing an organization
US20050010597A1 (en) System and method of determining impact of model changes
US8166453B2 (en) Method and system for inconsistency resolution with cycle detection in a model-driven software environment
JP4084731B2 (ja) 設計変更支援システム
CN116820480A (zh) 一种提升代码可读性的方法及装置
US20150254584A1 (en) Estimates using historical analysis
JP6356274B2 (ja) モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム
JP2012168900A (ja) プログラミング装置、プログラム
JP2019197405A (ja) プロジェクト状況管理装置、プロジェクト状況管理プログラム及びプロジェクト状況管理方法
JP6157166B2 (ja) 部品生成システムおよび方法ならびにプログラム
Kiziltas et al. Automated generation of customized field data collection templates to support information needs of cost estimators
Weber et al. Detecting inconsistencies in multi-view uml models
JPH1153391A (ja) データベースアクセス方法
Florez et al. Modeling and Analyzing Imperfection in Enterprise Models.
Shah et al. Towards MLOps: A DevOps Tools Recommender System for Machine Learning System

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2016574022

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15896391

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15896391

Country of ref document: EP

Kind code of ref document: A1