WO2016051596A1 - ソフトウェア移植作業支援装置及びソフトウェア移植作業支援方法 - Google Patents

ソフトウェア移植作業支援装置及びソフトウェア移植作業支援方法 Download PDF

Info

Publication number
WO2016051596A1
WO2016051596A1 PCT/JP2014/076579 JP2014076579W WO2016051596A1 WO 2016051596 A1 WO2016051596 A1 WO 2016051596A1 JP 2014076579 W JP2014076579 W JP 2014076579W WO 2016051596 A1 WO2016051596 A1 WO 2016051596A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
dependency
source code
past
dependence
Prior art date
Application number
PCT/JP2014/076579
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/JP2014/076579 priority Critical patent/WO2016051596A1/ja
Publication of WO2016051596A1 publication Critical patent/WO2016051596A1/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 porting work support apparatus and a software porting work support method for supporting software porting work.
  • the present invention has been made in consideration of the above points, and provides a software porting work support apparatus and software porting work support method capable of determining the dependency of software to be ported using past porting information. It is what we are going to propose.
  • a software porting work support device for supporting porting work for porting software to different operating environments, the past showing the dependence of the previously ported software on the operating environment.
  • a storage unit that stores dependence cases; and a processing unit that determines the dependence of software to be ported based on the past dependence cases, wherein the processing unit includes source code that constitutes the software to be ported Dependent part candidates are detected from each line based on a dependency condition for determining whether or not a dependent part depending on the operating environment is included, and for each line of the source code including the detected dependent part candidate, The matching rate with the dependency part included in the source code line of the past dependency example corresponding to the same dependency condition as the part candidate is calculated, and the ported software is calculated.
  • the correction coefficient is calculated according to the number of matches between the names of the file storage areas of all the source codes and the names of the file storage areas of all the source codes of the software including the past dependency cases, and the matching rate with the dependent section According to a result obtained by multiplying the correction coefficient by the correction coefficient, a dependence coefficient indicating dependence on the operating environment is calculated.
  • a software porting work support method in a software porting work support device for supporting porting work for porting software to different operating environments includes: A storage unit that stores past dependency cases indicating dependency on the operating environment of software transplanted in the past, and a processing unit that determines the dependency of the software to be ported based on the past dependency cases.
  • the processing unit detects a dependency part candidate based on a dependency condition for determining whether a dependency part depending on an operating environment is included from each line of source code constituting the software to be transplanted;
  • the processing unit for each line of the source code including the detected dependent part candidate, has the same dependency condition as the dependent part candidate.
  • a software porting work support method is provided.
  • the software porting operation can be facilitated by determining the dependency of the software to be ported using the information of the past porting operation.
  • FIG. 1 is a block diagram showing the configuration of the software porting work support system according to the present embodiment.
  • the software porting work support system 1 includes a porting work support device 10, a worker device 11, and a network 12.
  • the transplantation work support device 10 is a server, for example, and is a device that can share information with the worker device 11 through the network 13.
  • the worker device 11 is, for example, a PC (Personal Computer), a smartphone, a tablet terminal, a mobile phone, or the like, and is a device that can share information with the transplantation work support device 10 through the network 13.
  • PC Personal Computer
  • the network 12 is, for example, the Internet, a local area network, USB (Universal Serial Bus), remote USB, wireless LAN, Bluetooth (registered trademark), infrared communication, IC tag function, TransferJET (registered trademark), LTE, HSPA (High Speed Packet). Access) and EV-DO (Evolution Data Only).
  • the transplantation work support device 11 and the worker device 12 can be connected to each other via the network 13.
  • FIG. 2 is a diagram illustrating an example of the configuration of the transplant work support device 10.
  • the transplantation work support apparatus 10 includes a communication unit 101, an input unit 102, a display unit 103, a control unit 104, a power supply unit 105, a storage 106, a memory 107, a bus 108, and the like.
  • the transplantation work support apparatus 11 stores the dependent part determination processing unit 111 in the storage 106, and the control unit 104 expands the program module corresponding to the dependent part determination processing unit 111 from the storage 106 to the memory 107, and However, by executing the program module, the processing of the present embodiment can be realized.
  • the program may be stored in the storage 106 before the device is shipped, or may be an optical medium such as a CD (Compact Disk), a DVD (Digital Versatile Disk), or a BlueRay Disc (registered trademark), a semiconductor memory, or the like. It may be stored in a medium and installed in the storage 106 via a medium connection unit (not shown). Alternatively, it may be downloaded from the network 13 via the communication unit 101 or downloaded from the base station and installed in the storage 106.
  • a medium connection unit not shown
  • it may be downloaded from the network 13 via the communication unit 101 or downloaded from the base station and installed in the storage 106.
  • the communication unit 101 is a wireless LAN, Bluetooth (registered trademark), infrared communication, IC tag function, TransferJET (registered trademark), LTE (Long Term Evolution), HSPA (High Speed Packet Access), EV-DO (Evolution Data Only). And a wireless communication function such as WiMAX, or a wired communication function such as Ethernet (registered trademark), and transmits and receives various types of information.
  • the wireless communication function includes an antenna, a modulation / demodulation circuit, and the like.
  • the wired communication function includes a connector, a modulation / demodulation circuit, and the like.
  • network communication performed via a network and direct communication performed directly between devices without using a network
  • a network for example, Bluetooth (registered trademark), wireless USB, Felica (registered trademark), ZigBee (registered) Trademark), Z-WAVE (registered trademark), visible light communication, infrared communication, NFC (Near Field Communication) (registered trademark), and iBeacon (registered trademark)
  • Bluetooth registered trademark
  • wireless USB wireless USB
  • Felica registered trademark
  • ZigBee registered trademark
  • Z-WAVE registered trademark
  • visible light communication infrared communication
  • NFC Near Field Communication
  • iBeacon registered trademark
  • the input unit 102 includes one or more of a keyboard, a mouse, a cursor key, and a numeric keypad, receives a user operation, and inputs an input signal based on the operation to the control unit 104.
  • an input signal may be generated by voice recognition, image recognition, gesture recognition, or the like and input to the control unit 104.
  • the display unit 103 and the input unit 102 may be integrated as in a touch panel.
  • the input unit is installed as a processing unit having the same function at a location away from the transplantation work support device 10, and an input signal based on the operation is transmitted to the control unit 104 via the network 13 or direct communication between devices. You may enter.
  • the display unit 103 includes a liquid crystal display, an organic EL (Electro-Luminescence) display, a panel such as electronic paper, a driver circuit, and the like. Under the control of the control unit 104, arbitrary information (for example, characters, still images, and Video). The display unit 103 may have a plurality of panels that can display different information.
  • a liquid crystal display an organic EL (Electro-Luminescence) display
  • a panel such as electronic paper
  • a driver circuit and the like.
  • arbitrary information for example, characters, still images, and Video
  • the display unit 103 may have a plurality of panels that can display different information.
  • the control unit 104 includes a CPU (Central Processing Unit), an MPU (Micro Processing Unit), and a DSP (Digital Signal Processor), and controls the overall operation of the transplantation work support device 10 by executing a predetermined program. To do. It is assumed that the processing operation of the present embodiment including a flowchart described later is also executed by the control unit 104 unless otherwise noted.
  • CPU Central Processing Unit
  • MPU Micro Processing Unit
  • DSP Digital Signal Processor
  • the power supply unit 105 includes a battery, an AC adapter, a charging circuit, and the like, and supplies power to each unit of the transplantation work support device 10 and charges the battery. In addition, it checks the status of whether the transplantation work support device 10 is battery-driven or AC adapter-driven, and checks the remaining battery level.
  • the storage 106 is composed of a recording medium built in the transplantation work support apparatus 10, a removable external recording medium, an optical disk, or the like, and stores various types of information.
  • an application program can be stored under the control of the control unit 104.
  • various information created by the application program is stored.
  • a structural analysis result management database 112 that manages the structural analysis result of the source code
  • a dependency condition management database 113 that manages a list of dependency conditions, and a determination result of whether or not the source code is a dependent part
  • a dependent part determination result management database 114 to be managed a directory structure management database 115 to manage a directory structure, and a dependent part coefficient management database 116 in which a list of dependent part coefficients is managed are stored.
  • the memory 107 is composed of a DRAM (Dynamic Random Access Memory) or the like, and is controlled by an instruction from the control unit 104.
  • the function part of the application program stored in the storage 106 is expanded in the memory 107.
  • the bus 108 is a transmission path for each unit to transmit a signal to each other.
  • the worker apparatus 11 includes a communication unit 101, an input unit 102, a display unit 103, a control unit 104, a power supply unit 105, a storage 106, a memory 107, and a bus 108 in the same manner as the transplantation work support device 10 in FIG. Since it is provided, detailed description regarding each part is omitted.
  • FIG. 3 is an example of source code analysis and dependent part coefficient assignment processing in the transplantation work support apparatus 10.
  • examples of various databases shown in FIGS. 4 to 10 are referred to as appropriate.
  • the transmission / reception management unit 109 receives the source code from the worker device 12 and stores it in the structural analysis result management database 112 (S101).
  • the structural analysis result management database 112 stores elements of each line of the source code, and includes a sequence number column 1201, a worker ID column 1202, a date / time column 1203, a file path column 1204, a line number column 1205. , A corresponding code column 1206, a dependency condition N réelle column 1207, a dependent part determination result column 1208, and a platform column 1209.
  • step S101 the sequence number given to each source code, the worker ID of the worker who modified the source code, the date and time when the source code was modified, the file path of the source code, and the line number of the target source code are stored in the sequence number column 1201, the worker ID column 1202, the date / time column 1203, the file path column 1204, and the line number column 1205, respectively.
  • the dependency condition number column 1207 In the corresponding code column 1206, the dependency condition number column 1207, and the platform column 1209, information corresponding to each item is stored when the dependency part candidate is extracted by analyzing the syntax of the source code in step S102 described later.
  • the platform refers to a combination of a microcomputer and an OS (Operating System) used in a certain product.
  • the dependency part determination result field 1208 is input when the operator performs the rejection determination operation for each sequence number after adding the dependency part coefficient described below.
  • the structural analysis processing unit 110 parses the source code received in step S ⁇ b> 101 to extract dependent part candidates, and among the data stored in the structural analysis result management database 112 in S ⁇ b> 101, The corresponding code 1206, the dependency condition No 1207, and the platform 1209 are updated, and the directory structure of the source code is stored in the directory structure management database 115 (S102).
  • step S102 the structure analysis processing unit 110 extracts the source code corresponding to the dependency condition included in the line to be subjected to the structure analysis, the source code, the number of the dependency condition, and the directory structure of the source code. (Name of file storage area) is stored in the structure analysis result management database 112 in association with each other.
  • Dependent conditions are a plurality of conditions for determining whether or not a dependent part that depends on the operating environment is included, and the contents of dependence on the operating environment are distinguished by specific determining conditions.
  • the plurality of dependency conditions will be described in detail with reference to FIG.
  • FIG. 5 shows an example of the dependency condition management database 113.
  • the dependency condition management database 113 includes a dependency condition No column 1301, a dependency content column 1302, a determination condition column 1303, and a determination example column 1304.
  • the dependency condition number column 1301 stores a number for identifying a plurality of dependency conditions.
  • the dependency content column 1302 stores information indicating the content of the dependency condition. Examples of the dependency content include items defined by, for example, MISRA (Motor Industry Software Software Reliability Association) that is a software design standard. Yes, for example, “A bit field other than unsignedsignint is used”.
  • MISRA Magnetic Industry Software Software Reliability Association
  • Yes for example, “A bit field other than unsignedsignint is used”.
  • the determination condition column 1303 for example, there is a method of using a result of character string search, and “?: Is included in the character string” or the like is stored.
  • an example of a determination target is stored.
  • step S102 the directory structure of the source code (name of the file storage area) is stored in the structure analysis result management database 112.
  • the directory structure management database 115 is further updated based on the stored directory structure information. Details of the directory structure management database 115 will be described with reference to FIG.
  • FIG. 6 is an example of the directory structure management database 115.
  • the directory name of the source code often indicates the function of the source code. Therefore, the directory structure management database 115 stores the first directory name under the directory including the specific keyword. Specific keywords include, for example, “module”, “mod”, “feature”, “feat”, and the like.
  • the dependent part determination processing unit 111 then refers to the past result of storing the same dependency condition No in the structural analysis result management database 112, calculates the matching rate in each row, and manages the dependent part determination result management. Save in the database 114 (S103).
  • the match rate is an index that is determined by taking 100% as a perfect match from the space between characters in each line, variable name, number of characters, and the like.
  • the analysis of the sequence number 921 in the structure analysis result management database 112 in FIG. 4 will be described as an example. Since “:” is included in the corresponding code 1206, this corresponds to “1” of the dependency condition No 1301 in FIG. 5. Therefore, it is determined that the sequence number 921 in FIG. 4 may be “1” in the dependency condition No 1301.
  • the structural analysis result management database 112 of FIG. 4 is searched, it is the same as the dependency condition No of the sequence number “1”, and the corresponding code 1206 matches up to 12 characters in all 14 characters. % Match rate.
  • step S103 when there are a plurality of past cases, the dependent part determination processing unit 111 uses the coincidence rate of the past cases with the highest coincidence rate.
  • FIG. 7 shows that the records necessary for calculating the matching rate are extracted from the structural analysis result management database 112 from the sequence number 921 and the sequence numbers 1 and 2 having the same dependency condition No. This is the added structural analysis result management database 112A.
  • the sequence number “2” is also the dependency condition 1, but the sequence number 921 matches only 3 characters out of 14 characters, and the matching rate is 21%. Therefore, in this case, the past case used is an example in which the sequence number column 1201 having a matching rate of 85% is 1.
  • the dependent part determination processing unit 111 refers to the dependent part coefficient management database 116 to convert the source code to be analyzed and the source code including the same dependency condition as the past porting target.
  • the included directories are compared, and correction coefficients are set at the ratio of the number of completely matched (S104).
  • FIG. 6 shows three specific directories for “ProjectJ”, “ProjectG”, and “ProjectA”.
  • dependent part determination processing unit 111 sets 1 as the correction coefficient corresponding to the directory number ratio 0.66.
  • FIG. 8 is an example of a table showing the correspondence between the ratio of the number of completely matched directories and the correction coefficient. For example, if the ratio of the number of completely matched directories is 0.6 or more, the correction coefficient is set to 1. If the ratio of the number of completely matched directories is 0.3 or more and less than 0.6, the correction coefficient is set to 0.7. When the ratio of the number of completely matched directories is 0.3 or less, it is determined that the similarity is low, and the correction coefficient is set to 0.5.
  • the similarity of the directory that is the name of the storage area of the source code corresponds to the similarity of the source code.
  • the source code is a similar product.
  • the source code of a similar product corresponds to the source code of a product whose function and performance improve over a certain period, such as an air conditioner.
  • the correction coefficient is 0.7, that is, when the ratio of the number of completely matched directories is 0.3 or more and less than 0.6, it is a separate product but a part of the source code is similar.
  • Applicable source code This is the case, for example, when developing refrigerator software using the source code of an air conditioner.
  • the correction coefficient is 0.5, that is, when the ratio of the number of completely matched directories is 0.3 or less, the product source is different, and the source of the product that is not related to the source code at the time of development Corresponding code. This is the case, for example, when developing a control system for a large railway using the source code of an air conditioner.
  • the dependent part determination processing unit 111 calculates a dependent part coefficient with reference to the results of step S103 and step S104 (S105).
  • the dependent part determination result management database 11 includes a sequence number field 1401, a dependent part coefficient field 1402, a matching rate field 1403, a correction coefficient field 1404, a related file path field 1405, and a line number field 1406.
  • the for each line of the source code the sequence number field 1401, the dependent part coefficient field 1402, the matching rate field 1403, the correction coefficient field 1404, the related file path field 1405, and the line number field 1406 are respectively replaced with the sequence number and the dependency of each line of the source code.
  • a part coefficient, a matching rate, a correction coefficient, a related file path, and a line number are stored.
  • 922 in the sequence number column 1401 in FIG. 9 corresponds to the sequence number column 922 in FIG.
  • FIG. 10 shows an example of the dependent part coefficient management database 116.
  • the dependent part coefficient management database 116 stores the dependent part coefficient and the range of the product of the coincidence rate and the correction coefficient in association with each other.
  • the dependent part coefficient is a coefficient calculated from the range of the result of the product of the coincidence rate and the correction coefficient, and the greater the value, the higher the possibility of dependence.
  • the dependent part determination processing unit 111 stores the dependent part coefficient calculated in S105 (S106).
  • the dependent part determination processing unit 111 checks whether there is an unconfirmed line in all lines of the source code to be analyzed (S107). If there is an unconfirmed line, S104 to S106 are repeated for each dependency condition No.
  • the transmission / reception management unit 109 transmits the calculation result to the worker apparatus 11 (S108).
  • FIG. 11 is an example of a display screen on which the calculation result transmitted from the transplantation work support device 10 in step S108 is displayed on the worker device 11.
  • information such as dependent part coefficients, related file paths, and source code line numbers is displayed as the analysis result of the source code.
  • FIG. 12 is an example of a display screen that is displayed when the “display” button in FIG. 11 is selected by the operator, and information on the related source code that determines the matching rate of each line is output. . From the display screen 311 in FIG. 11, the operator can grasp which source code has high dependency. Furthermore, by visually recognizing FIG. 12, it is possible to grasp detailed information necessary for porting the source code.
  • the porting operation is performed by displaying the information on the dependent part coefficient and the related source code that are useful for determining whether or not the dependent part candidate is rejected. It is possible to reduce the man-hours for determining whether or not the process is required in the process. For example, in FIG. 11, an item with a high dependency part coefficient indicates that there is a high possibility that it depends on the operating environment. In FIG. The software porting operation can be facilitated by determining the sex.
  • the source code determination of the same product is determined by the first directory name in the file path in step S106 has been described. May be input, and the similarity of the source code may be determined based on the information.
  • the determination condition of FIG. 5 is determined in step S103 of FIG.
  • the matching rate may be calculated based on 133, and the correction coefficient may be uniformly set to 1 in step S104 in FIG.
  • the correction coefficient may be calculated in consideration of the degree of agreement of the creator of the source code. Further, the correction coefficient may be calculated in consideration of the degree of coincidence of the owner of the file from which the program creator is known, such as a company name. Further, the source code correction coefficient may be changed according to the source code creation time. For example, a higher correction coefficient value may be set by determining that the similarity is higher in the past source code whose creation time is closer to the source code to be transplanted.
  • Second embodiment (2-1) Outline of the present embodiment
  • the operator performs the determination of the dependence part candidate shown in the first embodiment, and then transfers the result.
  • FIG. 13 is a diagram showing an example of the configuration of the transplantation work support device 10 in the present embodiment.
  • a correction time recording processing unit 117 and a correction time estimation processing unit 118 are added to the memory 107, and the correction time management database 119 and the reliability coefficient management database 120 are stored in the storage 106. Is added.
  • the modification time recording processing unit 117 records the modification time acquired from the worker device 11 in the modification time management database 119.
  • the correction time estimation processing unit 118 calculates a reliability coefficient based on the contents of the correction time management database 119 and records the reliability coefficient in the reliability coefficient management database 120.
  • the correction time management database 119 is a database that records the correction time acquired from the worker device 11.
  • the reliability coefficient management database 120 is a database that manages the reliability coefficient calculated by the correction time estimation processing unit 118. Since the configuration other than the above is the same as that in FIG. 2 of the first embodiment, a detailed description thereof will be omitted.
  • FIG. 14 is a diagram illustrating an example of a configuration of the worker apparatus 11 according to the present embodiment. Description of the processing unit having the same name as that of FIG. 2 in the first embodiment is omitted.
  • the time recording control unit 209 is a processing unit that records the start and end times of the dependent part item correction work performed by the worker.
  • the work record communication processing unit 210 transmits the modification man-hours of the dependent part item to the transplantation work support apparatus 10 and acquires the transplantation work time estimation result from the transplantation work support apparatus 10.
  • the time estimation result output unit 211 outputs the correction time estimation result acquired from the transplantation work support apparatus 10 to the display unit 203.
  • the work time management database 212 is a database that records the time taken for correction work.
  • FIG. 15 is an example of a process for calculating the correction time estimate in the transplantation work support apparatus 10.
  • examples of various databases shown in FIGS. 16 to 19 are referred to as appropriate.
  • the correction time estimation processing unit 118 refers to the correction time management database 119 and calculates a variance value of the correction time under each dependency condition (S201).
  • FIG. 16 is an example of the correction time management database 119.
  • the modification time management database 119 includes a dependency part item number column 1901, a modification time estimation result column 1902, a variance value column 1903, a dependency condition-specific data number column 1904, and a reliability coefficient 1905.
  • the correction time estimation result column 1902 stores the expected value of the variance value.
  • the variance value column 1903 stores the variance value of the correction time for each dependency condition.
  • the number of work records belonging to the same dependency condition is stored in the data number column 1904 by dependency condition.
  • the reliability coefficient 1905 stores a coefficient that is set according to the number of data for each dependency condition, and the larger the coefficient, the smaller the variance of the variance value, and the more accurate the value of the correction time estimation result increases. means.
  • the correction time estimation processing unit 118 sets the reliability coefficient 1505 of each dependent part item No column 1901 (S202).
  • FIG. 17 is an example of the reliability coefficient management database 120. In FIG. 17, a reliability coefficient corresponding to the number of data for each dependency condition is set.
  • the transmission / reception management unit 109 transmits the result of the correction time estimation to the worker device 11 (S204).
  • FIG. 18 is an example of a correction time estimation result display screen 303 that is output from the correction time estimation result output unit 211 of the worker apparatus 11 based on the correction time estimation result transmitted from the transplantation work support device 10 in step S204. .
  • the worker can grasp the estimation of the correction time and the reliability of the correction time for the dependent part to be corrected based on the display content of the display screen example 303.
  • FIG. 19 is an example of a correction work recording process in the worker apparatus 11.
  • the time recording control unit 209 records the time when the correction work is started in accordance with the input of the transplanter (S301).
  • the work start time of the transplanter is, for example, the time when the item of the dependent part list generated in the worker device 11 is selected.
  • the time recording control unit 209 waits until there is a transmission instruction from the transplanter to the transplantation work support device 10 (S302), and ends the recording of the work time when there is a transmission instruction (S303). .
  • the time recording control unit 209 stores the work time recorded in step S303 in the work time management database 212 (S304).
  • FIG. 20 shows an example of the work time management database 212.
  • the work time management database 212 includes a worker ID column 2121, a dependency part item No column 2122, a dependency rule No column 2123, a start time column 2124, and an end time column 2125.
  • the worker ID column 2121 stores an ID for identifying the worker.
  • the dependent part item No column the number of the list of dependent parts that have been analyzed and determined among the source codes to be transplanted is stored.
  • the dependency rule number column 2123 stores a dependency rule number.
  • the start time column 2124 stores the time when the work is started, and the end time column 2124 stores the time when the work is finished.
  • the work record communication processing unit 210 transmits the work start and end times to the transplantation work support apparatus 10 (S305).
  • the correction time recording processing unit 117 records the correction time acquired from the worker device 11 in the correction time management database 119 (S306).
  • the process of FIG. 19 is repeated, so that the value of the correction time is accumulated, and the accuracy of the correction time estimation is improved.

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

ソフトウェア移植作業支援装置及びソフトウェア移植作業支援方法
 本発明は、ソフトウェアの移植作業を支援する移植作業支援装置及びソフトウェア移植作業支援方法に関する。
 従来から、あるOS(Operating System)上で動作させるために作成されたプログラムを、他のOS上で動作するように実装する、プログラムの移植作業が行われている。例えば、特許文献1では、仮想アドレスを使用していないOS上で動作するように作成されたプログラムを、仮想アドレスを使用するOS上で動作させるために、ソースコードに分散するアドレス値の各々を変更せずに、仮想アドレスを使用するOS上で動作可能とする技術が開示されている。
特開2013-257841号公報
 上記特許文献1では、プログラムの移植作業を容易化する対象が、アドレス変換のみとなっている。しかし、実際には、変数の配置や桁数などの変数の記憶方式や、プログラムの動作環境に固有の関数や、プログラムの動作環境への依存可能性など、アドレス変換以外に動作環境に依存する依存部が複数存在する。したがって、プログラムを移植するに際しては、アドレス変換だけでなく、複数の依存部を含むプログラムの移植作業を容易化する必要がある。
 本発明は以上の点を考慮してなされたもので、過去の移植作業の情報を用いて移植対象のソフトウェアの依存性を判定することが可能なソフトウェア移植作業支援装置及びソフトウェア移植作業支援方法を提案しようとするものである。
 かかる課題を解決するために本発明においては、異なる動作環境にソフトウェアを移植する移植作業を支援するソフトウェア移植作業支援装置であって、過去に移植したソフトウェアの動作環境への依存性を示す過去の依存事例を記憶する記憶部と、前記過去の依存事例に基づいて、移植対象のソフトウェアの依存性を判定する処理部と、を備え、前記処理部は、前記移植対象のソフトウェアを構成するソースコードの各行から、動作環境に依存する依存部が含まれるかを判定するための依存条件をもとに依存部候補を検出し、前記検出した依存部候補を含む前記ソースコードの各行について、該依存部候補と同一の依存条件に対応する過去の依存事例のソースコードの行に含まれる依存部との一致率を算出し、前記移植対象のソフトウェアの全ソースコードのファイル格納領域の名称と、前記過去の依存事例を含むソフトウェアの全ソースコードのファイル格納領域の名称との一致個数に応じて補正係数を算出し、前記依存部との一致率と前記補正係数とを掛け合わせた結果に応じて、動作環境への依存性を示す依存係数を算出することを特徴とする、ソフトウェア移植作業支援装置が提供される。
 また、かかる課題を解決するために本発明においては、異なる動作環境にソフトウェアを移植する移植作業を支援するソフトウェア移植作業支援装置におけるソフトウェア移植作業支援方法であって、前記ソフトウェア移植作業支援装置は、過去に移植したソフトウェアの動作環境への依存性を示す過去の依存事例を記憶する記憶部と、前記過去の依存事例に基づいて、移植対象のソフトウェアの依存性を判定する処理部と、を備え、前記処理部が、前記移植対象のソフトウェアを構成するソースコードの各行から、動作環境に依存する依存部が含まれるかを判定するための依存条件をもとに依存部候補を検出するステップと、前記処理部が、前記検出した依存部候補を含む前記ソースコードの各行について、該依存部候補と同一の依存条件に対応する過去の依存事例のソースコードの行に含まれる依存部との一致率を算出するステップと、前記処理部が、前記移植対象のソフトウェアの全ソースコードのファイル格納領域の名称と、前記過去の依存事例を含むソフトウェアの全ソースコードのファイル格納領域の名称との一致個数に応じて補正係数を算出するステップと、前記処理部が、前記依存部との一致率と前記補正係数とを掛け合わせた結果に応じて、動作環境への依存性を示す依存係数を算出するステップと、を含むことを特徴とする、ソフトウェア移植作業支援方法が提供される。
 本発明によれば、過去の移植作業の情報を用いて移植対象のソフトウェアの依存性を判定することによりソフトウェアの移植作業を容易化することができる。
本発明の第1の実施形態に係るソフトウェア移植作業支援システムの構成を示すブロック図である。 同実施形態にかかる移植作業支援装置の構成を示すブロック図である。 同実施形態にかかるソースコード解析および依存部係数の付与処理を示すフローチャートである。 同実施形態にかかる構造解析結果管理データベースの一例を示す図表である。 同実施形態にかかる依存条件管理データベースの一例を示す図表である。 同実施形態にかかるディレクトリ構造管理データベースの一例を示す図表である。 同実施形態にかかる構造解析結果管理データベースの一例を示す図表である。 同実施形態にかかるディレクトリ個数の割合と補正係数の対応を示す図表である。 同実施形態にかかる依存部判定結果管理データベースの一例を示す図表である。 同実施形態にかかる依存部係数管理データベースの一例を示す図表である。 同実施形態にかかるソースコードの解析結果の一例を示す概念図である。 同実施形態にかかるソースコードの詳細情報の一例を示す概念図である。 本発明の第2の実施形態に係る移植作業支援装置の構成を示すブロック図である。 同実施形態にかかる作業者用装置の構成を示すブロック図である。 同実施形態にかかる修正時間見積もり処理を示すフローチャートである。 同実施形態にかかる修正時間管理データベースの一例を示す図表である。 同実施形態にかかる信頼度係数管理データベースの一例を示す図表である。 同実施形態にかかる修正時間見積もり結果の一例を示す概念図である。 同実施形態にかかる修正作業記録処理を示すフローチャートである。 同実施形態にかかる作業時間管理データベースの一例を示す図表である。
 以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1-1)本実施の形態の概要
 まず、本実施の形態の概要について説明する。組込み機器にて、CPU(Central Processing Unit)やOSを変更させる必要が生じることがある。このようなとき、組込み機器の上で動くソフトウェアは、従来のCPUやOSに依存して作られることが多く、変更後のCPUやOS上では動作しない場合がある。
 そこで、新しいCPUやOS上で動作するように、ソフトウェアのソースコードを修正する必要がある。一般的に、プログラムの構造を解析する構造解析ツールを用いて、ソースコードの修正箇所を見つける方法がある。しかし、ソフトウェア毎に特有のソースコードの書き方やソフトウェア作成者の癖などがあるため、構造解析ツールを用いてプログラムの全ての依存部を見つけるのは困難である。
 そこで、ソフトウェアの移植作業において、構造解析ツールを用いて、依存部候補の抽出、依存部候補の該否判定、依存部の修正、といった作業が必要となる。依存部候補の抽出結果には、依存部とは無関係のコードも含まれており、最終的な判定は移植担当者が行う。しかし、依存部候補が多く、依存部か否か判断が難しく紛らわしいものが混在していると、依存部か否かの判定作業に多くの工数がかかってしまう。また、これらの移植作業は、ソフトウェアの規模に応じて複数人で実施するのが一般的である。
 本実施の形態では、複数人の作業履歴を活用して依存部候補の抽出精度を高め、移植作業にかかる依存部の該否判定工数を削減することが可能となる。
(1-2)ソフトウェア移植作業支援システムの構成
 図1は、本実施の形態に係るソフトウェア移植作業支援システムの構成を示すブロック図である。図1に示すように、ソフトウェア移植作業支援システム1は、移植作業支援装置10、作業者用装置11及びネットワーク12から構成される。
 移植作業支援装置10は、例えばサーバであり、ネットワーク13を通じて作業者用装置11と情報を共有可能な装置である。
 作業者用装置11は、例えばPC(Personal Computer)、スマートフォン、タブレット端末、携帯電話などであり、ネットワーク13を通じて移植作業支援装置10と情報を共有可能な装置である。
 ネットワーク12は、例えばインターネットやローカルエリアネットワーク、USB(Universal Serial Bus)、リモートUSB、無線LAN、Bluetooth(登録商標)、赤外線通信、ICタグ機能、TransferJET(登録商標)、LTE、HSPA(High Speed Packet Access)、EV-DO(Evolution Data Only)などである。移植作業支援装置11と作業者用装置12とはネットワーク13を介して相互に接続可能である。
(1-3)移植作業支援装置の構成
 図2は、移植作業支援装置10の構成の一例を示す図である。図2に示すように、移植作業支援装置10は、通信部101、入力部102、表示部103、制御部104、電源供給部105、ストレージ106、メモリ107及びバス108などを備える。移植作業支援装置11は、依存部判定処理部111をストレージ106に格納しており、制御部104がストレージ106から依存部判定処理部111に対応するプログラムモジュールをメモリ107に展開し、制御部104が上記プログラムモジュールを実行することで本実施の形態の処理を実現することができる。
 なお、プログラムは、装置が出荷されるまでに予めストレージ106に格納されてもよいし、CD(Compact Disk)・DVD(Digital Versatile Disk)・BlueRayDisc(登録商標)などの光学メディアや半導体メモリ等の媒体に格納されて図示しない媒体接続部を介してストレージ106にインストールされてもよい。また、通信部101を介してネットワーク13からダウンロードしたり、基地局からダウンロードしたりして、ストレージ106にインストールしてもよい。
 通信部101は、無線LAN、Bluetooth(登録商標)、赤外線通信、ICタグ機能、TransferJET(登録商標)、LTE(Long Term Evolution)、HSPA(High Speed Packet Access)、EV-DO(Evolution Data Only)、及びWiMAX等の無線通信機能、または、Ethernet(登録商標)等の有線通信機能を備え、各種の情報を送受信する。無線通信機能は、アンテナ、及び変復調回路等を含む。有線通信機能は、コネクタ、及び変復調回路等を含む。
 情報の送受信には、ネットワークを介して行うネットワーク通信と、ネットワークを介さずに各機器間で直接通信を行う直接通信(例えばBluetooth(登録商標)、ワイヤレスUSB、Felica(登録商標)、ZigBee(登録商標)、Z-WAVE(登録商標)、可視光通信、赤外線通信、NFC(Near Field Communication)(登録商標)、iBeacon(登録商標)を適宜切り替えて使用できる。通信部101は、複数の通信方式に対応するよう構成されてもよい。
 入力部102は、キーボード、マウス、カーソルキー、及びテンキー等の一または複数を備え、ユーザの操作を受け付け、当該操作に基づいた入力信号を制御部104に入力する。なお、音声認識、画像認識、またはジェスチャ認識等によって入力信号を生成し、制御部104に入力するようにしてもよい。なお、タッチパネルのように、表示部103と入力部102とが一体となった構成であってもよい。また、入力部は同様の機能を持つ処理部として、移植作業支援装置10と離れた場所に設置され、ネットワーク13や機器間の直接通信を介して当該操作に基づいた入力信号を制御部104に入力してもよい。
 表示部103は、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ、電子ペーパー等のパネル及びドライバ回路等から構成され、制御部104の制御下にて任意の情報(例えば、文字、静止画、及び動画等)を表示する。なお、表示部103は、それぞれ異なる情報を表示可能な複数のパネルを有していてもよい。
 制御部104は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)及びDSP(Digital Signal Processor)等から構成され、所定のプログラムを実行するなどして、移植作業支援装置10全体の動作を制御する。後述するフローチャート等を始めとする本実施の形態の処理動作も、特段の注釈がない限り、制御部104により実行されるものとする。
 電源供給部105は、バッテリ、ACアダプタ、及び充電回路等から構成され、移植作業支援装置10の各部への電源供給や、バッテリへの充電を行う。また、移植作業支援装置10がバッテリ駆動されているか、ACアダプタ駆動されているかといった状態確認や、バッテリの残量確認を行う。
 ストレージ106は、移植作業支援装置10に内蔵される記録媒体や、取り外し可能な外部記録媒体や光ディスクなどから構成され、各種の情報を記憶する。例えば、制御部104の指示により制御され、アプリケーションプログラムを保存することができる。また、アプリケーションプログラムで作成した各種情報を保存する。例えば、ソースコードの構造解析結果を管理する構造解析結果管理データベース112と、依存条件の一覧が管理されている依存条件管理データベース113と、当該ソースコードが依存部であるか否かの判定結果を管理する依存部判定結果管理データベース114と、ディレクトリ構造を管理するディレクトリ構造管理データベース115と、依存部係数の一覧が管理されている依存部係数管理データベース116を保存する。
 メモリ107は、DRAM(Dynamic Random Access Memory)などから構成され、制御部104の指示により制御される。メモリ107に、ストレージ106に格納しているアプリケーションプログラムの機能部が展開される。また、バス108は、各部が相互に信号を伝送するための伝送路である。
 なお、作業者用装置11は、図2の移植作業支援装置10と同様に通信部101、入力部102、表示部103、制御部104、電源供給部105、ストレージ106、メモリ107、バス108を備えているため、各部に関する詳細な説明は省略する。
(1-4)ソースコード解析及び依存部係数付与処理の詳細
 図3は、移植作業支援装置10における、ソースコード解析および依存部係数の付与処理の一例である。図3の処理を説明するに際し、適宜図4~図10に示す各種データベースの一例を参照する。
 図3に示すように、送受信管理部109は、作業者用装置12からソースコードを受け付け、構造解析結果管理データベース112に保存する(S101)。
 ここで、図4を参照して、ステップS101で保存される構造解析結果管理データベース112の一例について説明する。図4に示すように、構造解析結果管理データベース112には、ソースコードの各行の要素が格納され、シーケンス番号欄1201、作業者ID欄1202、日時欄1203、ファイルパス欄1204、行番号欄1205、該当コード欄1206、依存条件Nо欄1207、依存部判定結果欄1208及びプラットフォーム欄1209から構成される。
 ステップS101の実行時点では、各ソースコードに付与されるシーケンス番号、ソースコードを修正した作業者の作業者ID、ソースコードを修正した日時、ソースコードのファイルパス及び対象となるソースコードの行番号が、それぞれ、シーケンス番号欄1201、作業者ID欄1202、日時欄1203、ファイルパス欄1204及び行番号欄1205に格納される。
 また、該当コード欄1206、依存条件No欄1207及びプラットフォーム欄1209は、後述するステップS102において、ソースコードの構文解析をして依存部候補を抽出したときに各項目に対応する情報が格納される。ここで、プラットフォームとは、ある製品で使用するマイコンとOS(Operating System)の組み合わせを指す。依存部判定結果欄1208には、以下に説明する依存部係数を付与後、作業者が各シーケンス番号について該否判定作業を実施したときに入力される。
 図3に戻り、次に、構造解析処理部110は、ステップS101で受信したソースコードを構文解析して依存部候補を抽出し、S101にて構造解析結果管理データベース112に保存したデータのうち、該当コード1206、依存条件No1207及びプラットフォーム1209を更新し、ソースコードのディレクトリ構造をディレクトリ構造管理データベース115に保存する(S102)。
 ステップS102において、構造解析処理部110は、構造解析の対象となる行に含まれる、依存条件に対応するソースコードを抽出して、該ソースコードと依存条件の番号と、該ソースコードのディレクトリ構造(ファイル格納領域の名称)とを対応付けて構造解析結果管理データベース112に保存する。
 依存条件とは、動作環境に依存する依存部が含まれるかを判定するための複数の条件であって、特定の判定条件によって動作環境に対する依存の内容を区別している。以下、図5を参照して、複数の依存条件について詳細に説明する。
 図5に、依存条件管理データベース113の一例を示す。図5に示すように、依存条件管理データベース113は、依存条件No欄1301と依存の内容欄1302と判定条件欄1303と判定例欄1304とから構成される。
 依存条件No欄1301には、複数の依存条件を識別する番号が格納される。また、依存内容欄1302には、依存条件の内容を示す情報が格納され、依存の内容の例としては、例えばソフトウェア設計標準規格であるMISRA(Motor Industry Software Reliability Association)などで定められた項目があり、「unsigned int以外でビットフィールドを使用している」などが挙げられる。また、判定条件欄1303には、例えば文字列検索の結果を用いる方法があり、文字列に「”:”が含まれている」などが格納される。判定例欄1304には、判定対象の一例が格納される。
 また、ステップS102において、ソースコードのディレクトリ構造(ファイル格納領域の名称)を構造解析結果管理データベース112に保存している。ここで、保存したディレクトリ構造の情報をもとに、さらに、ディレクトリ構造管理データベース115が更新される。図6を参照して、ディレクトリ構造管理データベース115の詳細について説明する。
 図6は、ディレクトリ構造管理データベース115の一例である。一般的に、ソースコードのディレクトリ名は、ソースコードの機能を示すことが多い。そこで、ディレクトリ構造管理データベース115に、特定のキーワードが含まれるディレクトリ以下の先頭ディレクトリ名を格納する。特定のキーワードのとしては、例えば、”module”、”mod”、”feature”、”feat”などが挙げられる。
 図3に戻り、次に、依存部判定処理部111が、構造解析結果管理データベース112の過去の同一依存条件Noの保存結果を参照して、各行において一致率を算出し、依存部判定結果管理データベース114に保存する(S103)。
 ここで、一致率とは各行における文字間のスペース、変数名、文字数などから完全一致を100%として判定される指標である。図4の構造解析結果管理データベース112で、シーケンス番号の921の解析を例示して説明する。該当コード1206に”:”が含まれることから、図5の依存条件No1301の「1」に該当する。そのため、図4のシーケンス番号の921は、依存条件No1301の「1」の可能性があると判定される。ここで、図4の構造解析結果管理データベース112を検索すると、シーケンス番号の「1」の依存条件Noと同一であり、かつ、該当コード1206が全14文字中12文字まで一致しており、85%の一致率と判断される。
 ステップS103において、過去の事例が複数あった場合には、依存部判定処理部111は、一致率が最も高い過去の事例の一致率を使用する。
 また、図7は、構造解析結果管理データベース112より、シーケンス番号の921及び依存条件Noが同一のシーケンス番号の1及び2から、一致率の算出に必要なレコードを抽出し、算出した一致率を追加した構造解析結果管理データベース112Aである。
 図7に示すように、シーケンス番号の「2」も依存条件1であるが、シーケンス番号の921とは14文字中3文字しか一致しておらず、一致率は21%である。したがって、この場合、使用される過去の事例は一致率が85%であるシーケンス番号欄1201が1の例である。
 図3に戻り、続いて、依存部判定処理部111が、依存部係数管理データベース116を参照して、解析対象のソースコードと過去の移植対象であって、同一の依存条件を含むソースコードに含まれるディレクトリを比較し、完全一致した数の割合で補正係数を設定する(S104)。
 例えば図6では”ProjectJ”、”ProjectG”、”ProjectA”について、3つの特定ディレクトリが示されている。ここで、”ProjectA”は今回の解析対象であり、過去の移植対象で同一の依存条件を含むソースコードである”ProjectJ”のディレクトリと完全一致したディレクトリ個数の割合は2/3=0.66である。この場合、依存部判定処理部111は図8を参照して、ディレクトリ個数の割合0.66に対応する補正係数を1と設定する。
 図8は完全一致したディレクトリ個数の割合と、補正係数の対応を示した図表の一例である。例えば、完全一致したディレクトリ個数の割合が0.6以上であれば、補正係数を1とする。また、完全一致したディレクトリ個数の割合が0.3以上0.6未満であれば、補正係数を0.7とする。完全一致したディレクトリ個数の割合が0.3以下であるときは、類似度は低いと判断し、補正係数を0.5とする。
 例えば、家電製品などに搭載されるいわゆる組み込み系のソフトウェアの場合に、ソースコードの格納領域の名称であるディレクトリの類似度がソースコードの類似度に対応する。
 例えば、補正係数1の場合、すなわち、完全一致したディレクトリ個数の割合が0.6以上の場合には、類似製品のソースコードであるといえる。類似製品のソースコードとは、例えば、空調機器など、一定期間で機能や性能が向上していく製品のソースコードが該当する。
 また、補正係数0.7の場合、すなわち、完全一致したディレクトリ個数の割合が0.3以上0.6未満の場合には、別製品であるがソースコードの一部が類似している製品のソースコードが該当する。これは、例えば、空調機器のソースコードを利用して冷蔵庫のソフトウェアを開発する場合などである。
 また、補正係数0.5の場合、すなわち、完全一致したディレクトリ個数の割合が0.3以下の場合には、製品が別であり、かつ、開発時のソースコードの関連性もない製品のソースコードが該当する。これは、例えば、空調機器のソースコードを利用して大型鉄道の制御システムを開発する場合などである。
 次に、依存部判定処理部111が、ステップS103及びステップS104の結果を参照して、依存部係数を算出する(S105)。
 ここで、図9に依存部判定結果管理データベース114の一例を示す。図9に示すように、依存部判定結果管理データベース11は、シーケンス番号欄1401、依存部係数欄1402、一致率欄1403、補正係数欄1404、関連ファイルパス欄1405及び行番号欄1406から構成される。ソースコードの各行について、シーケンス番号欄1401、依存部係数欄1402、一致率欄1403、補正係数欄1404、関連ファイルパス欄1405及び行番号欄1406に、それぞれ、ソースコードの各行のシーケンス番号、依存部係数、一致率、補正係数、関連ファイルパス及び行番号が格納される。例えば、図9のシーケンス番号欄1401の922は、図4のシーケンス番号欄の922と対応している。
 また、図10に依存部係数管理データベース116の一例を示す。依存部係数管理データベース116には、依存部係数と、一致率と補正係数との積の結果の範囲とが対応付けて格納される。ここで、依存部係数は、一致率と補正係数の積の結果の範囲から算出される係数であり、値が大きいほど依存可能性が高いことを示している。
 次に、依存部判定処理部111は、S105において算出した依存部係数を保存する(S106)。
 次に、依存部判定処理部111は、解析対象となるソースコードの全行において未確認の行の有無を確認する(S107)。未確認の行があれば依存条件No別にS104~S106を繰り返す。
 次に、送受信管理部109は、算出結果を作業者用装置11に送信する(S108)。
 図11は、ステップS108において移植作業支援装置10から送信された算出結果が作業者用装置11に表示された表示画面の一例である。図11では、ソースコードの解析結果として、依存部係数、関連ファイルパス及びソースコードの行番号などの情報が表示される。
 また、図12は、作業者により図11の「表示」ボタンが選択された場合に表示される表示画面の一例であり、各行の一致率を決定付けている関連ソースコードの情報が出力される。図11の表示画面311により、作業者は、いずれのソースコードの依存度が高いかを把握することができる。さらに、図12を視認することにより、ソースコードを移植する際に必要となる詳細情報を把握することができる。
(1-5)本実施の形態の効果
 以上のように、本実施の形態によれば、依存部候補の該否判定に役立つ依存部係数と関連ソースコードの情報を表示させることで、移植作業工程における該否判定作業工数を削減することができる。例えば、図11において、依存部係数が高い項目は、動作環境に依存している可能性が高いことを示しており、図12において、依存理由や関連情報を見ることで、早期にソフトウェアの依存性を判定して、ソフトウェアの移植作業を容易化することができる。
(1-6)他の実施の形態の効果
 なお、本実施の形態では依存箇所が1行の場合で説明したが、複数行を一つの単位とし、複数行で依存判定に使える項目があってもよい。
 また、本実施の形態では、上記ステップS106において、同一製品のソースコードの判定を、ファイルパスの先頭ディレクトリ名で判定する場合を用いて説明したが、例えば解析前に移植作業担当者が関連製品の情報を入力し、その情報を元にソースコードの類似度を判定してもよい。
 また、本実施の形態では、過去の事例が存在する場合を用いて説明したが、初めて解析する場合、すなわち過去の事例が存在しない場合には、図3のステップS103において、図5の判定条件133を基準として一致率を算出し、図3のステップS104において、補正係数を一律で1と設定してもよい。
 また、ディレクトリの類似度に加えて、ソースコードの作成者の一致度を勘案して、補正係数を算出してもよい。また、プログラムの作成元がわかるファイルのオーナー、例えば企業名などの一致度を勘案して、補正係数を算出してもよい。また、ソースコードの作成時期に応じてソースコードの補正係数を変更してもよい。例えば、移植対象のソースコードと作成時期が近い過去のソースコードほど類似度が高いと判断して、高い補正係数の値を設定してもよい。
(2)第2の実施の形態
(2-1)本実施の形態の概要
 ソフトウェアの移植作業において、作業者が、第1の実施の形態で示す依存部候補の該否判定を実施後、移植工数の規模を見積もりたい場合がある。例えば、ソースコードの修正作業実施前に移植範囲を把握することができれば、作業者の担当割り当てなど、移植作業計画がスムーズに進み、移植作業全体の作業効率が向上することで工数を削減できる。
 上記した第1の実施の形態では、ソースコードを解析し、他の移植作業情報と比較することで、ソースコードの当該行の依存性を算出する方法を説明したが、本実施の形態では、記憶された移植作業の情報を利用して、作業時間の見積もりを行う方法について説明する。
(2-2)移植作業支援装置の構成
 本実施の形態に係るシステム構成は、第1の実施の形態の図1と同様であるため詳細な説明は省略する。図13は、本実施の形態における移植作業支援装置10の構成の一例を示した図である。図13では、図2の構成に加え、メモリ107には、修正時間記録処理部117及び修正時間見積もり処理部118が追加され、ストレージ106には、修正時間管理データベース119及び信頼度係数管理データベース120が追加される。
 修正時間記録処理部117は、作業者用装置11から取得した修正時間を修正時間管理データベース119に記録する。修正時間見積もり処理部118は、修正時間管理データベース119の内容に基づき信頼度係数を算出し、信頼度係数を信頼度係数管理データベース120に記録する。修正時間管理データベース119は、作業者用装置11から取得した修正時間を記録するデータベースである。信頼度係数管理データベース120は、修正時間見積もり処理部118が算出した信頼度係数を管理するデータベースである。上記以外の構成は、第1の実施の形態の図2と同様であるため詳細な説明は省略する。
 図14は、本実施の形態における作業者用装置11の構成の一例を示した図である。第1の実施の形態の図2と同一名称の処理部については説明を省略する。
 時間記録制御部209は、作業者が行う依存部項目の修正作業の開始と終了時刻を記録する処理部である。作業記録通信処理部210は、依存部項目の修正工数を移植作業支援装置10に送信し、また、移植作業時間見積もり結果を移植作業支援装置10から取得する。時間見積もり結果出力部211は、移植作業支援装置10から取得した修正時間見積もり結果を表示部203に出力する。作業時間管理データベース212は、修正作業にかかる時間を記録するデータベースである。
(2-3)修正時間見積もり処理の詳細
 図15は、移植作業支援装置10における、修正時間の見積もりを算出する処理の一例である。図15の処理を説明するに際し、適宜図16~図19に示す各種データベースの一例を参照する。
 図15に示すように、修正時間見積もり処理部118は、修正時間管理データベース119を参照して、各依存条件における修正時間の分散値を算出する(S201)。
 図16は、修正時間管理データベース119の一例である。図16に示すように、修正時間管理データベース119は、依存部項目No欄1901、修正時間見積もり結果欄1902、分散値欄1903、依存条件別データ数欄1904及び信頼度係数1905から構成される。
 依存部項目No欄1901には、第1の実施の形態で該否判定を実施後に、依存部と判定された項目が格納される。修正時間見積もり結果欄1902には、分散値の期待値が格納される。分散値欄1903には、各依存条件における修正時間の分散値が格納される。依存条件別データ数欄1904には、同一依存条件に属する作業記録の個数が格納される。信頼度係数1905には、依存条件別のデータ数に応じて設定される係数が格納され、この係数が大きいほど分散値のばらつきが小さく、修正時間の見積もり結果の値の正確性が増すことを意味する。
 図15に戻り、次に、修正時間見積もり処理部118は、各依存部項目No欄1901の信頼度係数1505を設定する(S202)。図17は、信頼度係数管理データベース120の一例である。図17では、依存条件別のデータ数に応じた信頼度係数が設定される。
 図15に戻り、次に、送受信管理部109が、修正時間見積もりの結果を作業者用装置11に送信する(S204)。
 図18は、ステップS204において移植作業支援装置10から送信された修正時間見積もり結果を、作業者用装置11の修正時間見積もり結果出力部211が出力する、修正時間見積もり結果の表示画面例303である。
 作業者は、表示画面例303の表示内容をもとに、修正対象となる依存部について、修正時間の見積もりと、該修正時間の信頼度を把握することができる。
 続いて、修正時間の見積もりを実施するために必要な、作業記録の取得処理について説明する。
 図19は、作業者用装置11における、修正作業記録処理の一例である。
 図19に示すように、時間記録制御部209は、移植担当者の入力に応じて、修正作業を開始した時刻を記録する(S301)。移植担当者の作業開始時刻は、例えば、作業者用装置11に生成された依存部一覧の項目を選択した時刻とする。
 次に、時間記録制御部209は、移植担当者からの移植作業支援装置10への送信指示があるまで待機し(S302)、送信指示があった場合に作業時間の記録を終了する(S303)。
 次に、時間記録制御部209は、ステップS303で記録した作業時間を作業時間管理データベース212に保存する(S304)。
 図20は作業時間管理データベース212の一例である。図20に示すように、作業時間管理データベース212は、作業者ID欄2121、依存部項目No欄2122、依存ルールNo欄2123、開始時刻欄2124及び終了時刻欄2125から構成される。
 作業者ID欄2121には、作業者を識別するIDが格納される。依存部項目No欄には、移植対象となるソースコードのうち、解析、判定まで完了した依存部の一覧を番号付けしたものが格納される。依存ルールNo欄2123には、依存ルールの番号が格納される。開始時刻欄2124には、作業を開始した時刻が格納され、終了時刻欄2124には、作業を終了した時刻が格納される。
 図19に戻り、次に、作業記録通信処理部210が、作業開始と終了時間を移植作業支援装置10に送信する(S305)。移植作業支援装置10において、修正時間記録処理部117は、作業者用装置11から取得した修正時間を修正時間管理データベース119に記録する(S306)。修正作業では、図19の処理が繰り返されることにより、修正時間の値が蓄積され、修正時間見積もりの精度が向上する。
(2-4)本実施の形態の効果
 以上により、本実施の形態によれば、修正作業に入る前に修正時間の見積もりを確認し、信頼度係数から見積もりの誤差を定性的に把握することができる。また、本実施の形態によれば、修正作業が繰り返される毎に修正時間を記録していくことにより、分散値のばらつきが減り、実際の修正作業の状況を反映した修正時間の見積もりが可能となる。
 10   移植作業支援装置
 11   作業者用装置
 12   ネットワーク
 101  通信部
 102  入力部
 103  表示部
 104  制御部
 105  電源供給部
 106  ストレージ
 107  メモリ
 108  バス
 109  送受信管理部
 110  構造解析処理部
 111  依存部判定処理部
 112  構造解析結果管理データベース
 113  依存条件管理データベース
 114  依存部判定結果管理データベース
 115  ディレクトリ構造管理データベース
 116  依存部係数管理データベース
 117  修正時間記録処理部
 118  修正時間見積もり処理部
 119  修正時間管理データベース
 120  信頼度係数管理データベース
 

Claims (9)

  1.  異なる動作環境にソフトウェアを移植する移植作業を支援するソフトウェア移植作業支援装置であって、
     過去に移植したソフトウェアの動作環境への依存性を示す過去の依存事例を記憶する記憶部と、
     前記過去の依存事例に基づいて、移植対象のソフトウェアの依存性を判定する処理部と、
     を備え、
     前記処理部は、
     前記移植対象のソフトウェアを構成するソースコードの各行から、動作環境に依存する依存部が含まれるかを判定するための依存条件をもとに依存部候補を検出し、
     前記検出した依存部候補を含む前記ソースコードの各行について、該依存部候補と同一の依存条件に対応する過去の依存事例のソースコードの行に含まれる依存部との一致率を算出し、
     前記移植対象のソフトウェアの全ソースコードのファイル格納領域の名称と、前記過去の依存事例を含むソフトウェアの全ソースコードのファイル格納領域の名称との一致個数に応じて補正係数を算出し、
     前記依存部との一致率と前記補正係数とを掛け合わせた結果に応じて、動作環境への依存性を示す依存係数を算出する
     ことを特徴とする、ソフトウェア移植作業支援装置。
  2.  前記依存条件は、移植対象のソースコードの各行に、固定値で指定されたアドレス値、配置や桁に関する変数の記憶方式、動作環境に固有の関数の使用、のいずれかを含む
     ことを特徴とする、請求項1に記載のソフトウェア移植作業支援装置。
  3.  前記処理部は、
     ソフトウェアを構成するソースコードに特定の文字列が含まれるかを判定する判定条件によって複数の依存条件を区別し、
     前記ソースコードを構文解析して、前記特定の文字列を含むコードを依存部候補とする
     ことを特徴とする、請求項1に記載のソフトウェア移植作業支援装置。
  4.  前記処理部は、
     前記移植対象のソフトウェアを構成するソースコードの前記依存部候補であり、前記特定の文字列を含むコードと、前記過去に移植したソフトウェアを構成するソースコードの前記依存部であり、該特定の文字列を含むコードとを比較して、該コードを構成する文字列の一致率を算出する
     ことを特徴とする、請求項3に記載のソフトウェア移植作業支援装置。
  5.  前記処理部は、
     前記移植対象のソフトウェアの全ソースコードのファイル格納領域の名称と、前記過去の依存事例を含むソフトウェアの全ソースコードのファイル格納領域の名称との一致個数が大きいほど、大きい補正係数を算出する
     ことを特徴とする、請求項1に記載のソフトウェア移植作業支援装置。
  6.  前記移植対象のソフトウェアの全ソースコードのファイル格納領域の名称と、前記過去の依存事例を含むソフトウェアの全ソースコードのファイル格納領域の名称との一致個数は、前記移植対象のソフトウェアと過去のソフトウェアとの類似度を示し、
     前記処理部は、
     前記ソフトウェアの類似度が高いほど、大きい補正係数を算出する
    ことを特徴とする、請求項5に記載のソフトウェア移植作業支援装置。
  7.  前記処理部は、
     前記検出した依存部候補を含む前記ソースコードの各行について、前記依存部候補と同一の依存条件に対応する過去の依存事例のソースコードの移植作業の修正情報をもとに、移植対象のソフトウェアの修正時間の見積もりを算出する
     ことを特徴とする、請求項1に記載のソフトウェア移植作業支援装置。
  8.  前記処理部は、
     過去の複数の依存事例のソースコードの移植作業の修正時間から、修正時間の期待値と該移植作業の修正時間の分散値を算出し、
     前記過去の複数の依存事例の個数に応じて、前記移植作業の修正時間の信頼度係数を算出する
     ことを特徴とする、請求項6に記載のソフトウェア移植作業支援装置。
  9.  異なる動作環境にソフトウェアを移植する移植作業を支援するソフトウェア移植作業支援装置におけるソフトウェア移植作業支援方法であって、
     前記ソフトウェア移植作業支援装置は、過去に移植したソフトウェアの動作環境への依存性を示す過去の依存事例を記憶する記憶部と、前記過去の依存事例に基づいて、移植対象のソフトウェアの依存性を判定する処理部と、を備え、
     前記処理部が、前記移植対象のソフトウェアを構成するソースコードの各行から、動作環境に依存する依存部が含まれるかを判定するための依存条件をもとに依存部候補を検出するステップと、
     前記処理部が、前記検出した依存部候補を含む前記ソースコードの各行について、該依存部候補と同一の依存条件に対応する過去の依存事例のソースコードの行に含まれる依存部との一致率を算出するステップと、
     前記処理部が、前記移植対象のソフトウェアの全ソースコードのファイル格納領域の名称と、前記過去の依存事例を含むソフトウェアの全ソースコードのファイル格納領域の名称との一致個数に応じて補正係数を算出するステップと、
     前記処理部が、前記依存部との一致率と前記補正係数とを掛け合わせた結果に応じて、動作環境への依存性を示す依存係数を算出するステップと、
     を含むことを特徴とする、ソフトウェア移植作業支援方法。
PCT/JP2014/076579 2014-10-03 2014-10-03 ソフトウェア移植作業支援装置及びソフトウェア移植作業支援方法 WO2016051596A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/076579 WO2016051596A1 (ja) 2014-10-03 2014-10-03 ソフトウェア移植作業支援装置及びソフトウェア移植作業支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/076579 WO2016051596A1 (ja) 2014-10-03 2014-10-03 ソフトウェア移植作業支援装置及びソフトウェア移植作業支援方法

Publications (1)

Publication Number Publication Date
WO2016051596A1 true WO2016051596A1 (ja) 2016-04-07

Family

ID=55629681

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/076579 WO2016051596A1 (ja) 2014-10-03 2014-10-03 ソフトウェア移植作業支援装置及びソフトウェア移植作業支援方法

Country Status (1)

Country Link
WO (1) WO2016051596A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128193A (ja) * 2005-11-02 2007-05-24 Hitachi Ltd 移植工数見積システム
JP2009098872A (ja) * 2007-10-16 2009-05-07 Toshiba Corp ソースプログラム解析装置、ソースプログラム解析方法及びコンピュータプログラム
JP2009146280A (ja) * 2007-12-17 2009-07-02 Mitsubishi Electric Corp レガシーマイグレーション支援システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128193A (ja) * 2005-11-02 2007-05-24 Hitachi Ltd 移植工数見積システム
JP2009098872A (ja) * 2007-10-16 2009-05-07 Toshiba Corp ソースプログラム解析装置、ソースプログラム解析方法及びコンピュータプログラム
JP2009146280A (ja) * 2007-12-17 2009-07-02 Mitsubishi Electric Corp レガシーマイグレーション支援システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KEN'ICHI YAMAUCHI ET AL.: "The actual result of diagnostic service for platform migration, and perspective", HITACHI TOHOKU SOFTWARE TECHNICAL REPORT, no. 10, 17 December 2004 (2004-12-17), pages 39 - 45 *

Similar Documents

Publication Publication Date Title
CN111898643B (zh) 一种语义匹配方法及装置
US20110176737A1 (en) Personalized tag ranking
US20170109435A1 (en) Apparatus and method for searching for information
JP2006527870A (ja) 設定可能な情報特定システム及び方法
TW201339863A (zh) 圖像識別搜索方法及裝置
CN105404625A (zh) 应用程序的查找方法与系统
CN109074378B (zh) 模块化电子数据分析计算系统
CN108885637B (zh) 人物相关性平台
CN112363695A (zh) Pmml文件及其运行时环境与工业软件的集成方法
KR102277240B1 (ko) 키워드 관계 구조를 이용한 동의어 추출 방법 및 시스템
CN117033309A (zh) 一种数据转换方法、装置、电子设备及可读存储介质
KR101607516B1 (ko) Bim 기반 외부 시설물 관리 데이터를 연계하기 위한 시스템 및 그 방법
WO2016051596A1 (ja) ソフトウェア移植作業支援装置及びソフトウェア移植作業支援方法
JP5790768B2 (ja) 検索方法及び情報管理装置
JP2010140355A (ja) 情報検索システム及び情報検索方法
EP4053713A1 (en) Question and answer method and apparatus based on knowledge graph
JP5162215B2 (ja) データ処理装置、データ処理方法、および、プログラム
KR101592670B1 (ko) 인덱스를 이용하는 데이터 검색 장치 및 이를 이용하는 방법
US11269961B2 (en) Systems and methods for App query driven results
JP4722819B2 (ja) 情報公開システムおよび情報公開方法
US11886459B2 (en) Data management system and data management method
US20230177517A1 (en) Knowledge management system for accessing playbooks and associated applications and method thereof
JP7212655B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2013206443A (ja) ソフトウェア資産再利用支援装置およびソフトウェア資産再利用支援プログラム
WO2021005936A1 (ja) 文書情報提示装置及びプログラム

Legal Events

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

Ref document number: 14902889

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: 14902889

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP