WO2019039394A1 - Conversion device and conversion method - Google Patents

Conversion device and conversion method Download PDF

Info

Publication number
WO2019039394A1
WO2019039394A1 PCT/JP2018/030483 JP2018030483W WO2019039394A1 WO 2019039394 A1 WO2019039394 A1 WO 2019039394A1 JP 2018030483 W JP2018030483 W JP 2018030483W WO 2019039394 A1 WO2019039394 A1 WO 2019039394A1
Authority
WO
WIPO (PCT)
Prior art keywords
conversion
source
correction
converted
merge
Prior art date
Application number
PCT/JP2018/030483
Other languages
French (fr)
Japanese (ja)
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 CN201880055029.6A priority Critical patent/CN111052077B/en
Publication of WO2019039394A1 publication Critical patent/WO2019039394A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Definitions

  • the present invention relates to a conversion device and a conversion method.
  • a confirmation test (actual device confirmation) is performed to confirm whether or not the obtained converted source has a defect. Specifically, the same input value is input to the conversion source and the converted source, and if the same output value is obtained between the two, there is no defect, and if different output values are obtained, it is determined as defective. In conversion development, if there is a defect in the converted source, the conversion tool or manual correction that created the cause of the failure is identified, and the identified conversion tool or manual correction is corrected to remove the defective cause.
  • Patent Document 1 "the conversion means for converting mainframe data to open data, the allocation means for allocating a color for each byte of input data, and the color allocated for each byte by the allocation means" And display means for displaying input data, and when the mainframe system data is input as input data, the allocation means assigns a color to each byte of the mainframe system data, and the display means The display means displays the mainframe system data to which a color is assigned for each byte by the assignment means, and when the open system data is inputted as input data, the assignment means is for each of the open system data. Assigning a color, the display means being assigned a color for each byte by the assigning means It discloses an information processing apparatus. "For displaying data of the serial open system.
  • Patent Document 1 it is possible to roughly check whether the conversion from the conversion source corresponding to the data of the mainframe system to the converted source corresponding to the data of the open system is appropriately performed or not, It would be possible to display the offending lines for the after source.
  • Patent Document 1 does not describe or suggest specifying the conversion of data in which the cause of failure is incorporated. Therefore, Patent Document 1 can not reduce the defect handling cost in conversion development.
  • the present invention has an object to reduce the cost for dealing with defects in system migration such as conversion development.
  • the present invention is A conversion device for converting a conversion source into a converted source, A meta-information management unit that manages meta-information related to conversion to each of the conversion intermediate sources, for a set of conversion intermediate sources generated by converting a part of the conversion source to a part of the converted source; And a test unit for identifying a conversion in which the cause of the defect is created by referring to the meta information when there is a defect in the post-conversion source confirmation test. It is characterized by Other inventions will be described later.
  • the conversion device of the present embodiment is a computer including hardware such as an input unit, an output unit, a control unit, and a storage unit.
  • the control unit is configured by a CPU (Central Processing Unit)
  • information processing by a computer including the control unit is realized by program execution processing by the CPU.
  • the storage unit included in the computer stores various programs for realizing the functions of the computer according to an instruction of the CPU. This enables collaboration between software and hardware.
  • the program can be provided by being recorded on a recording medium or via a network.
  • the conversion device 1 of this embodiment includes converters c1 to cn, conversion result repositories r11 to r1 n for each converter, a version control tool 10, a meta information DB (DataBase) 11, and a merge tool m1. And a machine conversion result repository r 2, a manual correction management tool 20, a manual correction execution work space 21, a manual correction result repository r 3, a merge tool m 2, a conversion result repository r 4, and a test tool 30. .
  • the conversion source COBOL source s1 in Fig. 1 is source code that records COBOL code ("COBOL 1", “COBOL 2", ..., “COBON”, “COBOLX”) described in COBOL, and the customer is current Executed to operate the system.
  • the converted Java source s2 in FIG. 1 is source code in which JAVA code (“Java 1”, “Java 2”,..., “Java N”, “Java X”) described in JAVA is recorded, and is a customer Is implemented to operate the new system.
  • the various conversion sources s31 to s3 n, s4, and s5 in FIG. 1 will be described later.
  • the converters c1 to cn mechanically convert a part of COBOL code of the conversion source COBOL source s1 into JAVA code.
  • the character strings as COBOL code to be converted by each of the converters c1 to cn are predetermined, and can be prepared, for example, in units of instruction words (eg, "MOVE" of COBOL code to "set” of JAVA code) Converter to convert).
  • the converters c1 to cn can be prepared in syntactic units, and can be designed at various granularities in language grammar.
  • Each of the converters c1 to cn is designed so as not to redundantly convert the same line of the conversion source COBOL source s1. As shown in FIG. 1, the converter c1 converts “COBOL1” of the conversion source COBOL source s1 into “Java1”, but the converter c2 or the like does not perform the same conversion. Similarly, each of the converters c2 to cn converts each of "COBOL2" to "COBON" of the conversion source COBOL source s1 into “Java2" to "JavaN".
  • "COBOLX" of the conversion source COBOL source s1 is a manually corrected COBOL code, but the details will be described later.
  • Each of the conversion result repositories r11 to r1n by converter executes each of the converters c1 to cn with respect to the conversion source COBOL source s1 so that part of the COBOL code is converted into JAVA code. Store each one.
  • the version management tool 10 acquires and manages information on conversion when each of the converters c1 to cn converts from the conversion source COBOL source s1 to each of the conversion in-progress sources s31 to s3n as meta information.
  • the meta information corresponds to the conversion source COBOL code and the converted JAVA code, the ID (Identifier) of the converter that has executed the conversion, the contents of conversion (for example, “MOVE” ⁇ “set”), conversion This includes, but is not limited to, the ID of the design, the date and time of execution of the conversion, and a comment as a supplementary explanation.
  • the version control tool 10 of this embodiment can be implemented as a distributed version control tool such as Git.
  • the meta information DB 11 stores the meta information acquired by the version control tool 10.
  • the conversion device 1 of the present embodiment may be provided with a GUI (Graphic User Interface) such as Tortoise Git to enable visual tracking of meta information and sources s31 to s3n during conversion.
  • GUI Graphic User Interface
  • the merge tool m1 merges the conversion-in-progress sources s31 to s3 n stored in the converter-by-converter conversion result repositories r11 to r1 n.
  • the merge process can use, for example, three-way merge (well-known and detailed description will be omitted) used in a distributed version control tool.
  • the merge tool m1 performs three-way merging with the conversion source COBOL source s1 as a parent and any two conversion sources s31 to s3n derived from the parent as children, and the conversion points of the two children are reflected to the parent To obtain the result (conversion in progress conversion source).
  • three-way merge fails (collision) if the conversion points of the two children are in the same row, the converters c1 to cn in this embodiment are designed to have only one conversion point. The conversion point of is never the same line.
  • the merge tool m1 first performs three-way merging with the conversion source COBOL source s1 as a parent and the conversion in-progress sources s31 and s32 as first children and second children, and obtains a first result.
  • the merge tool m1 performs three-way merge with the conversion source COBOL source s1 as a parent, the first result as a first child, and the conversion in-progress source s33 as a second child, and the second result as a second obtain.
  • the conversion-in-progress sources s4 (“Java 1”, “Java 2”,..., “Java N”) on which all mechanical conversions by the converters c1 to cn have been executed. , "COBOLX”) can be obtained. Further, the merge tool m1 can merge the sources s31 to s3n in the middle of conversion at once as a merge process to obtain the source s4 in the middle of conversion.
  • the machine conversion result repository r2 stores the conversion-in-progress source s4 in which all the results of the mechanical conversion are merged by the merge tool m1.
  • the manual correction management tool 20 manages manual correction for converting a part of the conversion source COBOL source s1 to a part of the converted Java source s2. Specifically, the manual correction management tool 20 manually converts the COBOL code "COBOLX" of the conversion source COBOL source s1 into the JAVA code "JavaX” of the Java source s2 after conversion. Further, the manual correction management tool 20 outputs, to the version management tool 10, information on conversion of the manual correction as meta information.
  • Hand correction required example 1 Presence of multiple same data item names
  • Hand correction required example 2 Presence of clear dead code (unreachable code)
  • Hand correction required example 3 Presence of multiple same branch conditions
  • [COBOL code] EVALUATE A WHEN 0 ... CONTINUE WHEN 0 ... END EVALUATE.
  • [JAVA code] switch (a) ⁇ case 0: ⁇ ⁇ ; break; case 0: ⁇ ⁇ ; : ⁇ Is created.
  • the above COBOL code does not have a problem with COBOL syntax, but the above JAVA code causes a compile error due to overlapping branch conditions in JAVA.
  • the manual correction implementation workspace 21 is a work area for performing manual correction by the manual correction management tool 20.
  • the manual correction result repository r3 stores the conversion in-progress source s5 in which part of the COBOL code is converted into JAVA code by executing manual correction with the manual correction management tool 20 on the conversion source COBOL source s1.
  • the merge tool m2 merges the conversion in-progress source s4 stored in the machine conversion result repository r2 with the conversion in-progress source s5 stored in the manual correction result repository r3. Specifically, the merge tool m2 performs three-way merging with the conversion source COBOL source s1 as a parent, the conversion in-process source s4 as a first child, and the conversion in-process source s5 as a second child, and the converted Java source s2 Get Also, the merge tool m1 and the merge tool m2 can merge the conversion in-process sources s31 to s3 n and the conversion in-process source s5 collectively as a merge process to obtain a converted Java source s2.
  • conversion result repository r4 The conversion result repository r4 is mechanically converted and manually converted by the merge tool m2, and stores only Java code and stores the converted Java source s2.
  • Test tool 30 performs a confirmation test (actual machine confirmation) of the Java source s2 after conversion.
  • a confirmation test for example, if the same input value is input to the conversion source COBOL source s1 and the converted Java source s2, and the same output value is obtained between both, no defect is determined, and a different output value is determined as defective.
  • the test tool 30 refers to the meta information DB 11 based on the defect location information, and specifies the conversion in which the defect is created.
  • the test tool 30 As a result of the test tool 30 executing the confirmation test, it is determined that there is a defect and it turns out that the JAVA code "Java 2" of the converted Java source s2 is the cause of the defect. Specifically, the conversion code corrects the operation of the line of “Java 2”, which the conversion developer knows in advance, and the JAVA described in the converted Java source s 2 output from the merge tool m 2 Suppose that the difference with the code "Java 2" is found. In this case, the test tool 30 refers to the meta information DB 11 to acquire meta information on conversion from the COBOL code “COBOL 2” to the JAVA code “Java 2”.
  • the test tool 30 analyzes the acquired meta information to find a problem with the converter c2 itself that has executed conversion to the JAVA code "Java 2". There is a problem with the conversion design related to the conversion to the JAVA code "Java 2". , Etc can be identified details of the cause of failure.
  • FIG. 1 is also referred to as appropriate.
  • the conversion device 1 performs format formatting on the conversion source COBOL source s1 (step S1). Specifically, the conversion device 1 performs shaping such as conversion to one line of separation, unification of upper and lower case, and the like by the converters c1 to cn with respect to the COBOL code of the conversion source COBOL source s1.
  • the conversion device 1 converts the conversion source COBOL source s1 into a definition part DB (step S2). Specifically, the conversion device 1 analyzes the COBOL code of the conversion source COBOL source s1, and stores the definition information of the data item in the DB (storage unit not shown in FIG. 1).
  • the conversion device 1 grammatically shapes the conversion source COBOL source s1 (step S3). Specifically, the conversion device 1 shapes the syntax of the conversion source COBOL source s1 into a syntax that assumes input to the converters c1 to cn, such as unifying the sugar coating syntax into the normal notation.
  • the conversion device 1 performs common conversion to the JAVA language on the conversion source COBOL source s1 (step S4). Specifically, the conversion device 1 applies a conversion design that is necessary in common among the converters c1 to cn regardless of the characteristics of the conversion design, such as the JAVA import statement and the description of the main method. According to step S4, the conversion design of each of the converters c1 to cn can not include a common conversion design among the converters c1 to cn, and the conversion design of each of the converters c1 to cn can be simplified. can do.
  • the conversion device 1 performs order-dependent conversion to the JAVA language on the conversion source COBOL source s1 (step S5). Specifically, conversion device 1 depends on the execution results of one conversion design for the execution of one conversion design for conversion designs of conversion source COBOL source s1 to conversion to Java source s2 after conversion. If so, apply the conversion design related to that dependency, and perform conversion with execution order dependency. According to step S5, by executing the conversion having the execution order dependency in advance, the conversion by each of the converters c1 to cn can be made to have no execution order dependency, and the converter c1 to c The conversion design of each cn can be simplified.
  • the conversion device 1 performs parallel conversion to the JAVA language on the conversion source COBOL source s1 (step S6). Specifically, the conversion device 1 applies the conversion design of each of the converters c1 to cn, and the conversion that can not be handled or can not be handled by the conversion by the converters c1 to cn is manually corrected by the manual correction management tool 20 Apply the transformation design of.
  • step S6 corresponds to, for example, individual instruction word conversion (1) to (N) (steps S6-1 to S6-N) corresponding to each of the converters c1 to cn, and manual correction.
  • step S6-X can be divided into manual correction transformations.
  • Individual instruction word conversion (1) to (N) is processing for performing mechanical conversion to JAVA for each type of COBOL instruction word (for example, “MOVE” ⁇ “set”).
  • the individual instruction word conversions (1) to (N) can be performed mechanically and in parallel since the conversion between the converters c1 to cn is designed so as not to affect other conversions. .
  • mechanical conversion may be performed individually in units of syntax.
  • the manual correction conversion (S6-X) is a conversion by the manual correction management tool 20.
  • step S6 the version control tool 10 acquires meta-information on individual command conversions (1) to (N) corresponding to each of the converters c1 to cn and meta-information on manual correction conversion corresponding to manual correction. , Stored in the meta information DB11.
  • the conversion device 1 merges the conversion results of the parallel conversion in step S6 (step S7). Specifically, the conversion device 1 is converted by the merge tools m1 and m2 by the conversion in-progress sources s31 to s3 n (or conversion in-progress source s4) converted by the converters c1 to cn and the manual correction management tool 20 During conversion, merge processing is performed on the source s5, and a converted Java source s2 is generated.
  • the conversion device 1 performs a confirmation test of the converted Java source s2 by the test tool 30 (step S8).
  • the test tool 30 specifies conversion based on the defect location information with reference to the corresponding meta information stored in the meta information DB 11 to create the defect cause of the defect.
  • step S6 the individual instruction word conversion corresponding to the corrected converter only needs to be performed. There is no need to perform instruction word conversion. Therefore, in the merge of step S7, the conversion result of the individual instruction word conversion corresponding to the converter which is not corrected can be diverted, which contributes to the reduction of the number of reconversion steps after handling the defect, which is required for the processing of FIG. The burden can be reduced or the time can be shortened.
  • the version management tool 10 can trace the conversion history by managing the meta information.
  • the identification of the cause of the defect when there is a defect in the converted Java source s2 can be sufficiently achieved by referring to the meta information, and it becomes easy without the need for the examination of a conventional expert. Therefore, it is possible to reduce the defect handling cost in conversion development.
  • catch-up work is essential, it increases the amount of conversion development work and causes delay in system migration, so there is a demand to reduce the number of work steps and terminate it early.
  • conventionally for example, in the case of hand-correcting necessary examples 1 to 3 described above for the conversion source source, when hand-correcting the corresponding line in the first conversion development, the same line It had to be corrected and it was inefficient.
  • conventionally even if the confirmation test is performed on the converted part of the converted source by manual correction before the freezing, almost the same confirmation test needs to be performed again in the catch-up operation, and the test man-hours for the catch-up operation could not be reduced.
  • the conversion device 1 of the present embodiment uses the three-way merge performed by the merge tools m1 and m2 to mechanically perform the hand correction result before freezing, which is irrelevant to the correction of the specification change on the customer side in the catch-up operation.
  • the three-way merge for the hand correction result is performed by the merge tool m2, and the following description is also described as the three-way merge by the merge tool m2, but can be performed similarly by the merge tool m1.
  • a conversion source source sp As shown in FIG. 3, a conversion source source sp, a correction version conversion source source sc1, and a manual correction source sc2 are prepared.
  • the conversion source source sp is source code in which COBOL code (1st line “COBOL1", 2nd line “COBOL2", 3rd line “COBOL3”) described in COBOL is recorded.
  • the conversion source source sp is a conversion development object originally provided by the customer from the conversion developer side.
  • the conversion source source sp corresponds to the conversion source COBOL source s1 in FIG.
  • the modified version conversion source sc1 is a source code in which COBOL code (1st line “COBOL 1", 2nd line “COBOL 2", 3rd line “COBOA”) written in COBOL is recorded.
  • the modified version conversion source sc1 is equal to the conversion source source sp that reflects the correction of the specification change on the customer side (“COBOL 3” (specific line) ⁇ “COBOLA”).
  • the modified version conversion source sc1 is provided by the customer during catch-up operation, that is, after freezing.
  • the manual correction source sc2 is source code obtained by converting a part of the COBOL code of the conversion source source sp into JAVA code (“COBOL 2” ⁇ “Java 2”) by the manual correction management tool 20.
  • the manual correction source sc2 is created in the first conversion development, that is, before freezing.
  • the version control tool 10 manages meta information on the conversion source source sp, the correction version conversion source source sc1, the manual correction source sc2, the conversion source source sp, the correction version conversion source source sc1, and the manual correction source sc2. Content can be managed.
  • the merge tool m2 is a three-way merge with the conversion source sp as the merge parent, the modified conversion source sc1 as the merge child (first child), and the hand correction source sc2 as the merge child (second child) I do.
  • the hand correction diversion source sd shown in FIG. 3 is obtained.
  • the version control tool 10 acquires and manages meta-information on the manual correction diversion source sd.
  • the code of the second line "COBOL2" is converted to "Java2" without being affected by the customer correction to the third line "COBOL3". It can be said that the hand correction result by the hand correction source sc2 can be diverted to the correction version conversion source sc1.
  • conversion of “COBOL 2” ⁇ “Java 2” is manually performed on the correction version conversion source sc 1, but according to the present invention, it is possible to save time for the conversion.
  • the target of manual correction in the catch-up operation is limited to the COBOL code in which the customer-side specification change has been corrected among the COBOL code which has been manually corrected before freezing.
  • the confirmation test before freezing with respect to the converted source including the manual correction result by the manual correction source sc 2 has already been completed, and the manual correction result is used. Therefore, in the catch-up operation, when performing the confirmation test of the converted source (customer correction reflected) after the merge processing using the hand correction diversion source sd, the confirmation item of the confirmation test for the conversion by the hand correction which is diverted is omitted be able to. As a result, it is possible to reduce the number of test steps for catch-up work.
  • the merge tool m2 performs one-side three-way merge that gives priority to the customer-side correction line.
  • FIG. 4 the case where the conversion source source sp, the correction version conversion source source sc1a, and the manual correction source sc2 are prepared will be described.
  • the conversion source sp and hand correction source sc2 in FIG. 4 are the same as the conversion source sp and hand correction source sc2 shown in FIG.
  • the modified version conversion source sc1a is a source code in which COBOL code (1st line “COBOL 1", 2nd line “COBOA”, 3rd line “COBOL 3") described in COBOL is recorded.
  • the modified version conversion source sc1a is equal to the conversion source source sp that reflects the correction of the specification change on the customer side (“COBOL 2” ⁇ “COBOLA”).
  • the modified version conversion source sc1a is provided from the customer during the catch-up operation, that is, after freezing.
  • the version management tool 10 can manage meta information on the modified version conversion source source sc1a and can manage the content of the modified version conversion source source sc1a.
  • the merge tool m2 merges the conversion source source sp into a merge parent, the modified version conversion source source sc1a into a merge child (first child), and the hand correction source sc2 merges into a child (first Performs one-way three-way merge with 2).
  • the customer modification priority source sda (1st line "COBOL1", 2nd line “COBOLA”, 3rd line “COBOL3" not including the manual correction result ("Java 2") but including the customer correction ("COBOLA”) Get ").
  • the version control tool 10 acquires and manages meta information on the customer modification priority source sda.
  • the customer correction can be reliably reflected on the product of the three-way merge.
  • the customer's inherent requirements can be met with certainty.
  • the conversion device 1 of this embodiment converts the conversion source source sp (for example, COBOL) after conversion source sq (for example, JAVA)
  • conversion design setting for example, COBOL
  • converter generation for example, converter generation
  • machine conversion + hand correction step S13
  • three-way merge step S14
  • the conversion design setting (step S11) is a step in which the conversion development side analyzes the conversion source source sp, and sets one or more types of conversion design necessary for creating the converted source sq to the conversion source source sp. is there.
  • Conversion design is a framework that defines how to rewrite the code string to be converted. The type of conversion design that is required may be determined as appropriate, for example, by the conversion developer, but the method of determination is not limited thereto.
  • the conversion designs A1 to E1 are conversion designs related to mechanical conversion by the converter (corresponding to the converters c1 to cn in FIG. 1).
  • the conversion designs D1 and E1 are conversion designs related to conversion by hand correction (corresponding to hand correction performed by the hand correction management tool 20 in FIG. 1).
  • the converter generation (step S12) is a step of generating a converter associated with the conversion design related to the machine conversion among the set conversion designs.
  • a converter A2 for conversion design A1, a converter B2 for conversion design B1, and a converter C2 for conversion design C1 are generated for each of conversion designs A1 to C1 related to mechanical conversion.
  • the converter A2 for conversion design A1, the converter B2 for conversion design B1, and the converter C2 for conversion design C1 have the same functions as the converters c1 to cn in FIG.
  • Machine transformation + hand correction (step S13) is a step of performing machine transformation and hand correction in accordance with the transformation design.
  • each of the converters A2 to C2 executes machine conversion according to the conversion designs A1 to C1 on each of conversion targets in the conversion source source sp, and outputs conversion results A3 to C3.
  • the manual correction management tool 20 (FIG. 1) performs manual correction in accordance with the conversion designs D1 and E1 on each of conversion targets in the conversion source source sp, and outputs conversion results D3 and E3.
  • the conversion results A3 to E3 correspond to the sources s31 to s3 n, s4, and s5 during conversion shown in FIG.
  • the conversion device 1 of the present embodiment manages the conversion results by the converters c1 to cn in the repository for each converter (converter-specific conversion result repositories r11 to r1n in FIG. 1).
  • the conversion results due to the corrections were collectively managed in one repository (FIG. 1 manual correction result repository r3).
  • the management unit by repository can be set arbitrarily. Therefore, for the description with reference to FIGS. 5 and 6, the conversion device 1 of this embodiment manages the conversion result in the repository for each conversion design. That is, the conversion results A3 to E3 shown in FIG. 5 are managed in a repository (not shown in FIG. 5) prepared for each of the conversion designs A1 to E1.
  • a repository instead of a repository prepared for each conversion design, a repository for a collection of multiple conversion designs may be prepared.
  • the conversion developer side checks the conversion results A3 to E3 on the desk.
  • Desktop confirmation is a known method and the description is omitted. In the present embodiment, it is assumed that the result of desktop confirmation for the conversion results A3 to E3 is good.
  • the three-way merge (step S14) is a step of performing the three-way merge on the conversion result obtained by machine conversion + hand correction (step S13).
  • the three-way merge (step S14) is executed by the merge tools m1 and m2 shown in FIG. In FIG. 5, the converted source sq is obtained by executing three-way merge on the conversion results A3 to E3.
  • the conversion developer side checks the actual source for the converted source sq.
  • the actual machine confirmation corresponds to the confirmation test of the test tool 30 shown in FIG. This completes the first conversion development.
  • the conversion device 1 of the present embodiment converts the conversion source source spa (corresponding to the correction version conversion source source) including the correction portion spa1 of the customer Convert to the transformed source sqa including sqa1.
  • conversion design setting step S21
  • converter generation step S22
  • machine conversion + hand correction step S23
  • three-way merge step S24
  • the conversion design setting (step S21) is the same step as the conversion design setting (step S11) of FIG. As shown in FIG. 6, in the conversion design setting (step S21), conversion designs B1 and D1 (FIG. 5) are converted into conversion designs B11 and D11, respectively, in response to the correction source spa including the correction part spa1. Instead of the above, it is assumed that five types of conversion designs A1, B11, C1, D11, and E1 are set for each conversion target with respect to the conversion source source spa.
  • the conversion design B11 is a conversion design related to machine conversion.
  • the conversion design D11 is a conversion design related to conversion by manual correction.
  • the converter generation (step S22) is the same step as the converter generation (step S12) of FIG. As shown in FIG. 6, in addition to the converter A2 for conversion design A1 (FIG. 5) already generated and the converter C2 for conversion design C1 (FIG. 5), conversion design B11 is performed with respect to the newly set conversion design B11. Forward converter B21 is newly generated.
  • the converter B21 for conversion design B11 has the same function as the converters c1 to cn in FIG.
  • the machine conversion + hand correction (step S23) is the same step as the machine conversion + hand correction (step S13) of FIG.
  • the converter B21 for conversion design B11 performs machine conversion according to conversion design B11 for the conversion target in conversion source source sp.
  • the hand correction management tool 20 (FIG. 1) converts the conversion design D11 for the conversion target in the conversion source source sp.
  • the conversion results B31 and D31 correspond to the sources s31 to s3 n, s4 and s5 during conversion shown in FIG.
  • the conversion developer side checks the new conversion results B31 and D31 on the desk.
  • the conversion results A3, C3, and E3 that have already been generated, since desktop confirmation has been completed (FIG. 5), they are omitted in the catch-up operation. Therefore, by managing the conversion result for each conversion design, it is possible to reduce the number of test steps for desktop confirmation in the catch-up operation. Further, in the present embodiment, it is assumed that the result of the desktop confirmation with respect to the conversion results B31 and D31 is good.
  • the three-way merge (step S24) is the same step as the three-way merge (step S14) of FIG. In FIG. 6, by executing three-way merge on conversion results A3, B31, C3, D31, and E3, a converted source sqa including the correction part sqa1 corresponding to the correction part spa1 is obtained.
  • the conversion developer side checks the actual source for the converted source sqa.
  • the confirmation items that the correction part sqa1 does not affect the conversion items related to the conversion designs A1, C1 and E1 other than the conversion design B11 and D11 changed according to the correction part spa1 Since it has already been confirmed before the catch-up operation (FIG. 5), it may be omitted in the catch-up operation. Therefore, as shown in the example of FIGS. 5 and 6, by managing the conversion result for each conversion design, it is only necessary to confirm the confirmation item affected by the correction part sqa1 among all the confirmation items of the actual device confirmation. . As a result, it is possible to reduce the number of test steps for checking the actual machine in the catch-up operation.
  • the programming language of conversion source in conversion development is not limited to COBOL, and may be another programming language.
  • the program language of the converted source in conversion development is not limited to JAVA, and may be another programming language.
  • language conversion in conversion development is not limited to conversion to a different kind of programming language such as conversion from COBOL to JAVA, which was taken up in this embodiment, and the same kind of programming language such as conversion from host-based COBOL to open-based COBOL. May be converted to
  • the present invention is applicable not only to conversion development for conversion of program language, but also to various migration development involved in system migration, such as data migration development for migrating data processed by the current application to a new application.
  • the present invention can also be applied to a method of sequentially executing a plurality of conversion tools prepared for the conversion source as in the prior art.
  • a tool for mechanically converting a programming language there is a tool for parsing (parsing tree interpretation) and replacing code.
  • This tool is configured as one (or a few) tools that can handle almost all language conversions, and is generally large and complex.
  • the present invention can also be applied to such tools, and contributes to identification of the cause of defects, reduction in the number of test steps in catch-up work, and the like.

Abstract

A conversion device (1) is characterized by being provided with: a version management tool (10) that, for a set of conversion-in-progress sources (s31)-(s3n) which are generated by converting a part of a conversion-origin COBOL source (s1) to a part of a post-conversion Java source (s2), (s4), (s5), manages meta information related to the conversion to the conversion-in-progress sources (s31)-(s3n), (s4), (s5); and a test tool (30) that, when a failure is found in a checking test of the post-conversion Java source (s2), specifies the conversion in which the failure cause of the failure was created, by referring to the meta information.

Description

変換装置および変換方法Converter and conversion method
 本発明は、変換装置および変換方法に関する。 The present invention relates to a conversion device and a conversion method.
 現行システムから新システムへのシステム移行において、例えば、プログラムのコンバージョン開発という作業がある。コンバージョン開発では、現行システムに用いられる現行プログラムソース(変換元ソース)のプログラム言語(例:COBOL(COmmon Business Oriented Language))を別のプログラム言語(例:JAVA(登録商標))に置き換えて、新システムに用いられる新プログラムソース(変換後ソース)を作成する。 In system transition from the current system to the new system, for example, there is a task of conversion conversion development of a program. In conversion development, the program language (eg, COBOL (COmmon Business Oriented Language)) of the current program source (conversion source source) used in the current system is replaced with another program language (eg, JAVA (registered trademark)), Create a new program source (converted source) to be used for the system.
 従来のコンバージョン開発では、例えば、言語文法上の命令単位や構文単位で言語変換を行う変換ツールを複数種類用意し、変換元ソースに対して各変換ツールを順次実行することで、言語変換がなされた変換後ソースを作成していた。このとき、費用対コストの理由等で、変換元ソースの一部に対しては変換ツールを実行できない場合がある。この場合、手修正で当該一部に対して言語変換を行い、言語変換が完全になされた変換後ソースを得る。 In the conventional conversion development, for example, a plurality of types of conversion tools for performing language conversion in units of instructions in the language grammar or syntax units are prepared, and language conversion is performed by sequentially executing each conversion tool on the conversion source source. Source was created after conversion. At this time, there are cases where the conversion tool can not be executed on part of the conversion source due to reasons such as cost-to-cost. In this case, the language conversion is performed on the part by manual correction to obtain a converted source in which the language conversion is completely performed.
 また、コンバージョン開発では、得られた変換後ソースに不良があるか否かを確認するための確認テスト(実機確認)が行われる。具体的には、変換元ソースおよび変換後ソースに同じ入力値を入力し、両者間で同じ出力値が得られれば不良なし、異なる出力値が得られれば不良ありと判定する。コンバージョン開発では、変換後ソースに不良がある場合、不良原因を作り込んだ変換ツールまたは手修正を特定し、特定した変換ツールまたは手修正を修正して不良原因を取り除くことになる。 In addition, in the conversion development, a confirmation test (actual device confirmation) is performed to confirm whether or not the obtained converted source has a defect. Specifically, the same input value is input to the conversion source and the converted source, and if the same output value is obtained between the two, there is no defect, and if different output values are obtained, it is determined as defective. In conversion development, if there is a defect in the converted source, the conversion tool or manual correction that created the cause of the failure is identified, and the identified conversion tool or manual correction is corrected to remove the defective cause.
 一般的に、変換後ソースについて、不良原因となる行を特定することはできる。しかし、変換ツールの順次実行と手修正との組合せによる従来の言語変換では、不良原因を作り込んだ変換ツールまたは手修正を特定することは、有識者による検討が必要となるほど困難であり、大きな不良対応コストを必要とする。結果的に、従来のコンバージョン開発における不良対応コストは大きい。 Generally, for the converted source, it is possible to identify the line causing the defect. However, in conventional language conversion based on a combination of sequential execution of conversion tools and manual correction, it is difficult to identify conversion tools or manual corrections that cause defects, so that it is difficult for experts to consider, and large defects Needs a response cost. As a result, the defect handling cost in the conventional conversion development is large.
 特許文献1には、「メインフレーム系のデータをオープン系のデータに変換する変換手段と、入力データのバイトごとに色を割り当てる割り当て手段と、前記割り当て手段によりバイトごとに色を割り当てられた前記入力データを表示する表示手段と、を有し、前記メインフレーム系のデータが入力データとして入力された場合、前記割り当て手段は、前記メインフレーム系のデータのバイトごとに色を割り当て、前記表示手段は、前記割り当て手段によりバイトごとに色を割り当てられた前記メインフレーム系のデータを表示し、前記オープン系のデータが入力データとして入力された場合、前記割り当て手段は、前記オープン系のデータごとに色を割り当て、前記表示手段は、前記割り当て手段によりバイトごとに色を割り当てられた前記オープン系のデータを表示する情報処理装置。」について開示されている。 In Patent Document 1, "the conversion means for converting mainframe data to open data, the allocation means for allocating a color for each byte of input data, and the color allocated for each byte by the allocation means" And display means for displaying input data, and when the mainframe system data is input as input data, the allocation means assigns a color to each byte of the mainframe system data, and the display means The display means displays the mainframe system data to which a color is assigned for each byte by the assignment means, and when the open system data is inputted as input data, the assignment means is for each of the open system data. Assigning a color, the display means being assigned a color for each byte by the assigning means It discloses an information processing apparatus. "For displaying data of the serial open system.
特開2016-191977号公報(請求項1)Unexamined-Japanese-Patent No. 2016-191977 (Claim 1)
 特許文献1によれば、メインフレーム系のデータに相当する変換元ソースから、オープン系のデータに相当する変換後ソースへの変換が適切に行われたか否かを概略的に確認可能とし、変換後ソースについて、不良原因となる行を表示することは可能と思われる。しかし、特許文献1には、不良原因を作り込んだデータの変換を特定することについては記載も示唆もされていない。そのため、特許文献1では、コンバージョン開発における不良対応コストを削減することはできない。 According to Patent Document 1, it is possible to roughly check whether the conversion from the conversion source corresponding to the data of the mainframe system to the converted source corresponding to the data of the open system is appropriately performed or not, It would be possible to display the offending lines for the after source. However, Patent Document 1 does not describe or suggest specifying the conversion of data in which the cause of failure is incorporated. Therefore, Patent Document 1 can not reduce the defect handling cost in conversion development.
 本発明は、このような事情に鑑みて、コンバージョン開発等のシステム移行における不良対応コストを削減することを課題とする。 In view of such circumstances, the present invention has an object to reduce the cost for dealing with defects in system migration such as conversion development.
 前記課題を解決するために、本発明は、
 変換元ソースを変換後ソースに変換する変換装置であって、
 前記変換元ソースの一部を前記変換後ソースの一部に変換して生成される変換途中ソースの集合について、前記変換途中ソースの各々への変換に関するメタ情報を管理するメタ情報管理部と、
 前記変換後ソースの確認テストで不良があった場合、前記メタ情報を参照して、前記不良の不良原因を作り込んだ変換を特定するテスト部と、を備える、
 ことを特徴とする。
 その他の発明については、後記する。
In order to solve the above-mentioned subject, the present invention is
A conversion device for converting a conversion source into a converted source,
A meta-information management unit that manages meta-information related to conversion to each of the conversion intermediate sources, for a set of conversion intermediate sources generated by converting a part of the conversion source to a part of the converted source;
And a test unit for identifying a conversion in which the cause of the defect is created by referring to the meta information when there is a defect in the post-conversion source confirmation test.
It is characterized by
Other inventions will be described later.
 本発明によれば、コンバージョン開発等のシステム移行における不良対応コストを削減することができる。 According to the present invention, it is possible to reduce the defect handling cost in system migration such as conversion development.
本実施形態の変換装置の機能構成図である。It is a functional block diagram of the converter of this embodiment. 異言語変換処理を示すフローチャートである。It is a flowchart which shows a foreign language conversion process. 手修正結果流用の説明図である。It is explanatory drawing of hand correction result diversion. 片方優先3方向マージの説明図である。It is an explanatory view of one-sided priority three-way merge. 追いつき作業前に行われた異言語変換の手順を示す説明図である。It is explanatory drawing which shows the procedure of the foreign language conversion performed before the catch-up operation. 追いつき作業の手順を示す説明図である。It is explanatory drawing which shows the procedure of a catch-up operation.
 続いて、本発明の実施形態について、図面を参照して説明する。本実施形態の変換装置は、入力部、出力部、制御部、および記憶部といったハードウェアを含むコンピュータである。例えば、制御部がCPU(Central Processing Unit)から構成される場合、その制御部を含むコンピュータによる情報処理は、CPUによるプログラム実行処理で実現される。また、そのコンピュータが含む記憶部は、CPUの指令により、そのコンピュータの機能を実現するためのさまざまなプログラムを記憶する。これによりソフトウェアとハードウェアの協働が実現される。前記プログラムは、記録媒体に記録したり、ネットワークを経由したりすることで提供することができる。 Subsequently, an embodiment of the present invention will be described with reference to the drawings. The conversion device of the present embodiment is a computer including hardware such as an input unit, an output unit, a control unit, and a storage unit. For example, when the control unit is configured by a CPU (Central Processing Unit), information processing by a computer including the control unit is realized by program execution processing by the CPU. Further, the storage unit included in the computer stores various programs for realizing the functions of the computer according to an instruction of the CPU. This enables collaboration between software and hardware. The program can be provided by being recorded on a recording medium or via a network.
≪構成≫
 図1に示すように、本実施形態の変換装置1は、コンバータc1~cnと、コンバータ別変換結果リポジトリr11~r1nと、バージョン管理ツール10と、メタ情報DB(DataBase)11と、マージツールm1と、機械変換結果リポジトリr2と、手修正管理ツール20と、手修正実施用ワークスペース21と、手修正結果リポジトリr3と、マージツールm2と、変換結果リポジトリr4と、テストツール30と、を備える。
«Configuration»
As shown in FIG. 1, the conversion device 1 of this embodiment includes converters c1 to cn, conversion result repositories r11 to r1 n for each converter, a version control tool 10, a meta information DB (DataBase) 11, and a merge tool m1. And a machine conversion result repository r 2, a manual correction management tool 20, a manual correction execution work space 21, a manual correction result repository r 3, a merge tool m 2, a conversion result repository r 4, and a test tool 30. .
 図1中の変換元COBOLソースs1は、COBOLで記述されたCOBOLコード(「COBOL1」、「COBOL2」、・・・、「COBOLN」、「COBOLX」)を記録したソースコードであり、顧客が現行システムを運用するために実行される。
 また、図1中の変換後Javaソースs2は、JAVAで記述されたJAVAコード(「Java1」、「Java2」、・・・、「JavaN」、「JavaX」)を記録したソースコードであり、顧客が新システムを運用するために実行される。
 図1中の各種の変換途中ソースs31~s3n,s4,s5については後記する。
The conversion source COBOL source s1 in Fig. 1 is source code that records COBOL code ("COBOL 1", "COBOL 2", ..., "COBON", "COBOLX") described in COBOL, and the customer is current Executed to operate the system.
Also, the converted Java source s2 in FIG. 1 is source code in which JAVA code (“Java 1”, “Java 2”,..., “Java N”, “Java X”) described in JAVA is recorded, and is a customer Is implemented to operate the new system.
The various conversion sources s31 to s3 n, s4, and s5 in FIG. 1 will be described later.
[コンバータc1~cn]
 コンバータc1~cnは、変換元COBOLソースs1のCOBOLコードの一部をJAVAコードに機械的に変換する。コンバータc1~cnの各々が変換するCOBOLコードとしての文字列は予め決められており、例えば、命令語単位で用意することができる(例:COBOLコードの「MOVE」をJAVAコードの「set」に変換するコンバータ)。また、コンバータc1~cnは、構文単位で用意することもでき、言語文法上のさまざまな粒度で設計することができる。
[Converters c1 to cn]
The converters c1 to cn mechanically convert a part of COBOL code of the conversion source COBOL source s1 into JAVA code. The character strings as COBOL code to be converted by each of the converters c1 to cn are predetermined, and can be prepared, for example, in units of instruction words (eg, "MOVE" of COBOL code to "set" of JAVA code) Converter to convert). Also, the converters c1 to cn can be prepared in syntactic units, and can be designed at various granularities in language grammar.
 なお、コンバータc1~cnの各々は、変換元COBOLソースs1の同じ行を重複して変換することが無いように設計されている。図1に示すように、コンバータc1が変換元COBOLソースs1の「COBOL1」を「Java1」に変換するが、コンバータc2などが同じ変換をすることは無い。同様にして、コンバータc2~cnの各々は、変換元COBOLソースs1の「COBOL2」~「COBOLN」の各々を、「Java2」~「JavaN」に変換する。変換元COBOLソースs1の「COBOLX」は、手修正されるCOBOLコードであるが、詳細は、後記する。 Each of the converters c1 to cn is designed so as not to redundantly convert the same line of the conversion source COBOL source s1. As shown in FIG. 1, the converter c1 converts “COBOL1” of the conversion source COBOL source s1 into “Java1”, but the converter c2 or the like does not perform the same conversion. Similarly, each of the converters c2 to cn converts each of "COBOL2" to "COBON" of the conversion source COBOL source s1 into "Java2" to "JavaN". "COBOLX" of the conversion source COBOL source s1 is a manually corrected COBOL code, but the details will be described later.
[コンバータ別変換結果リポジトリr11~r1n]
 コンバータ別変換結果リポジトリr11~r1nの各々は、変換元COBOLソースs1に対してコンバータc1~cnの各々を実行することでCOBOLコードの一部がJAVAコードに変換された変換途中ソースs31~s3nの各々を格納する。
[Converter-by-converter conversion result repository r11 to r1n]
Each of the conversion result repositories r11 to r1n by converter executes each of the converters c1 to cn with respect to the conversion source COBOL source s1 so that part of the COBOL code is converted into JAVA code. Store each one.
[バージョン管理ツール10]
 バージョン管理ツール10は、コンバータc1~cnの各々が変換元COBOLソースs1から変換途中ソースs31~s3nの各々に変換したときの変換に関する情報をメタ情報として取得して管理する。メタ情報は、例えば、変換ごとに、変換元COBOLコードと変換後JAVAコードとの対応、変換を実行したコンバータのID(Identifier)、変換の内容(例:「MOVE」→「set」)、変換設計のID、変換の実行の日時、補足説明としてのコメントを含むが、これらに限定されない。本実施形態のバージョン管理ツール10は、Gitなどの分散型バージョン管理ツールとして実装することができる。
[Version control tool 10]
The version management tool 10 acquires and manages information on conversion when each of the converters c1 to cn converts from the conversion source COBOL source s1 to each of the conversion in-progress sources s31 to s3n as meta information. For example, for each conversion, the meta information corresponds to the conversion source COBOL code and the converted JAVA code, the ID (Identifier) of the converter that has executed the conversion, the contents of conversion (for example, “MOVE” → “set”), conversion This includes, but is not limited to, the ID of the design, the date and time of execution of the conversion, and a comment as a supplementary explanation. The version control tool 10 of this embodiment can be implemented as a distributed version control tool such as Git.
[メタ情報DB11]
 メタ情報DB11は、バージョン管理ツール10が取得したメタ情報を格納する。なお、本実施形態の変換装置1に、TortoiseGitなどのGUI(Graphic User Interface)を備え、メタ情報や変換途中ソースs31~s3nを視覚的に追跡可能としてもよい。
[Meta information DB11]
The meta information DB 11 stores the meta information acquired by the version control tool 10. Note that the conversion device 1 of the present embodiment may be provided with a GUI (Graphic User Interface) such as Tortoise Git to enable visual tracking of meta information and sources s31 to s3n during conversion.
[マージツールm1]
 マージツールm1は、コンバータ別変換結果リポジトリr11~r1nが格納する変換途中ソースs31~s3nに対してマージ処理をする。マージ処理は、例えば、分散型バージョン管理ツールで用いられる3方向マージ(周知であり、詳細な説明は省略)を用いることができる。
[Merge tool m1]
The merge tool m1 merges the conversion-in-progress sources s31 to s3 n stored in the converter-by-converter conversion result repositories r11 to r1 n. The merge process can use, for example, three-way merge (well-known and detailed description will be omitted) used in a distributed version control tool.
 例えば、マージツールm1は、変換元COBOLソースs1を親とし、親から派生した変換途中ソースs31~s3nのいずれか2つを子として3方向マージをし、2つの子の変換箇所を親に反映した結果物(変換がより進んだ変換途中ソース)を得る。2つの子の変換箇所が同じ行であれば3方向マージは失敗するが(コリジョン)、本実施形態のコンバータc1~cnは、変換箇所が唯一となるように設計されているため、2つの子の変換箇所が同じ行になることはない。 For example, the merge tool m1 performs three-way merging with the conversion source COBOL source s1 as a parent and any two conversion sources s31 to s3n derived from the parent as children, and the conversion points of the two children are reflected to the parent To obtain the result (conversion in progress conversion source). Although three-way merge fails (collision) if the conversion points of the two children are in the same row, the converters c1 to cn in this embodiment are designed to have only one conversion point. The conversion point of is never the same line.
 例えば、マージツールm1は、まず、変換元COBOLソースs1を親とし、変換途中ソースs31,s32を第1の子、第2の子として3方向マージをし、第1の結果物を得る。次に、マージツールm1は、変換元COBOLソースs1を親とし、第1の結果物を第1の子、変換途中ソースs33を第2の子として3方向マージをし、第2の結果物を得る。上記のように3方向マージを多段的に実行することで、コンバータc1~cnによる機械的な変換がすべて実行された変換途中ソースs4(「Java1」、「Java2」、・・・、「JavaN」、「COBOLX」)を得ることができる。
 また、マージツールm1は、マージ処理として、変換途中ソースs31~s3nを一括してマージし、変換途中ソースs4を得ることもできる。
For example, the merge tool m1 first performs three-way merging with the conversion source COBOL source s1 as a parent and the conversion in-progress sources s31 and s32 as first children and second children, and obtains a first result. Next, the merge tool m1 performs three-way merge with the conversion source COBOL source s1 as a parent, the first result as a first child, and the conversion in-progress source s33 as a second child, and the second result as a second obtain. As described above, by executing the three-way merge in multiple stages, the conversion-in-progress sources s4 (“Java 1”, “Java 2”,..., “Java N”) on which all mechanical conversions by the converters c1 to cn have been executed. , "COBOLX") can be obtained.
Further, the merge tool m1 can merge the sources s31 to s3n in the middle of conversion at once as a merge process to obtain the source s4 in the middle of conversion.
[機械変換結果リポジトリr2]
 機械変換結果リポジトリr2は、マージツールm1によって、機械的な変換の結果がすべてマージされた変換途中ソースs4を格納する。
[Machine conversion result repository r2]
The machine conversion result repository r2 stores the conversion-in-progress source s4 in which all the results of the mechanical conversion are merged by the merge tool m1.
[手修正管理ツール20]
 手修正管理ツール20は、変換元COBOLソースs1の一部から変換後Javaソースs2の一部への変換を行うための手修正を管理する。具体的には、手修正管理ツール20は、変換元COBOLソースs1のCOBOLコード「COBOLX」を、変換後Javaソースs2のJAVAコード「JavaX」に手修正で変換する。
 また、手修正管理ツール20は、バージョン管理ツール10に対して、手修正の変換に関する情報をメタ情報として出力する。
[Manual correction management tool 20]
The manual correction management tool 20 manages manual correction for converting a part of the conversion source COBOL source s1 to a part of the converted Java source s2. Specifically, the manual correction management tool 20 manually converts the COBOL code "COBOLX" of the conversion source COBOL source s1 into the JAVA code "JavaX" of the Java source s2 after conversion.
Further, the manual correction management tool 20 outputs, to the version management tool 10, information on conversion of the manual correction as meta information.
 なお、COBOLコードからJAVAコードへの変換を手修正で行う場合とは、言語仕様の相違に起因して、同じCOBOLコードであれば同じ機械変換を行うというルールがあてはまらない場合である。具体的には、以下の手修正必要例1~3に該当する場合である。
 手修正必要例1:複数の同じデータ項目名の存在
 手修正必要例2:明確なデッドコード(到達不能コード)の存在
 手修正必要例3:複数の同じ分岐条件の存在
The case where conversion from COBOL code to JAVA code is performed manually is a case where the rule that the same machine code is to be converted does not apply because of differences in language specifications. Specifically, the cases corresponding to the following hand correction necessary examples 1 to 3 are as follows.
Hand correction required example 1: Presence of multiple same data item names Hand correction required example 2: Presence of clear dead code (unreachable code) Hand correction required example 3: Presence of multiple same branch conditions
 手修正必要例1に関しては、例えば、
〔COBOLコード〕
    01 D1 PICTURE X(2) VALUES ‘AZ’.
    01 D1 PICTURE 9(2) VALUES 10.
を機械変換した場合には、
〔JAVAコード〕
    String d1 = “AZ”
    intd1 10;
が作成される。上記のCOBOLコードは、COBOLの文法上問題はないが、上記のJAVAコードは、JAVAでは変数名重複によるコンパイルエラーとなってしまう。
For example, with regard to the manual correction required example 1,
[COBOL code]
01 D1 PICTURE X (2) VALUES 'AZ'.
01 D1 PICTURE 9 (2) VALUES 10.
In the case of machine conversion,
[JAVA code]
String d1 = “AZ”
intd1 10;
Is created. The above COBOL code does not have a problem with COBOL syntax, but the above JAVA code results in a compilation error due to variable name duplication in JAVA.
 手修正必要例2に関しては、例えば、
〔COBOLコード〕
    EXIT.
    MOVE A TO B.
を機械変換した場合には、
〔JAVAコード〕
    return;
    b.set(a);
が作成される。上記のCOBOLコードは、COBOLの文法上問題はないが、上記のJAVAコードは、JAVAでは明確なデッドコードによるコンパイルエラーとなってしまう。
For the hand correction required example 2, for example,
[COBOL code]
EXIT.
MOVE A TO B.
In the case of machine conversion,
[JAVA code]
return;
b. set (a);
Is created. The above COBOL code does not have a problem with COBOL syntax, but the above JAVA code causes a compile error due to a clear dead code in JAVA.
 手修正必要例3に関しては、例えば、
〔COBOLコード〕
    EVALUATE A
    WHEN 0
   ~~
      CONTINUE
    WHEN 0
   ~~
    END EVALUATE.
を機械変換した場合には、
〔JAVAコード〕
    switch(a){
      case 0:
   ~~~;
        break;
      case 0:
   ~~~;
      :
    }
が作成される。上記のCOBOLコードは、COBOLの文法上問題はないが、上記のJAVAコードは、JAVAでは分岐条件の重複によるコンパイルエラーとなってしまう。
For the hand correction required example 3, for example,
[COBOL code]
EVALUATE A
WHEN 0
...
CONTINUE
WHEN 0
...
END EVALUATE.
In the case of machine conversion,
[JAVA code]
switch (a) {
case 0:
~ ~;
break;
case 0:
~ ~;
:
}
Is created. The above COBOL code does not have a problem with COBOL syntax, but the above JAVA code causes a compile error due to overlapping branch conditions in JAVA.
 手修正必要例1~3に該当する場合には、同じCOBOLコードであっても、JAVAコードにおいて同じ動作をするように、異なる手修正結果を作成する。 In the case of hand correction required examples 1 to 3, different hand correction results are created so as to perform the same operation in JAVA code even with the same COBOL code.
[手修正実施用ワークスペース21]
 手修正実施用ワークスペース21は、手修正管理ツール20による手修正を実行するための作業領域である。
[Workspace 21 for manual correction implementation]
The manual correction implementation workspace 21 is a work area for performing manual correction by the manual correction management tool 20.
[手修正結果リポジトリr3]
 手修正結果リポジトリr3は、変換元COBOLソースs1に対して手修正管理ツール20による手修正を実行することでCOBOLコードの一部がJAVAコードに変換した変換途中ソースs5を格納する。
[Manual correction result repository r3]
The manual correction result repository r3 stores the conversion in-progress source s5 in which part of the COBOL code is converted into JAVA code by executing manual correction with the manual correction management tool 20 on the conversion source COBOL source s1.
[マージツールm2]
 マージツールm2は、機械変換結果リポジトリr2に格納された変換途中ソースs4と、手修正結果リポジトリr3に格納された変換途中ソースs5とをマージする。具体的には、マージツールm2は、変換元COBOLソースs1を親とし、変換途中ソースs4を第1の子、変換途中ソースs5を第2の子として3方向マージをし、変換後Javaソースs2を得る。
 また、マージツールm1およびマージツールm2が、マージ処理として、変換途中ソースs31~s3n、および、変換途中ソースs5を一括してマージし、変換後Javaソースs2を得ることもできる。
[Merge tool m2]
The merge tool m2 merges the conversion in-progress source s4 stored in the machine conversion result repository r2 with the conversion in-progress source s5 stored in the manual correction result repository r3. Specifically, the merge tool m2 performs three-way merging with the conversion source COBOL source s1 as a parent, the conversion in-process source s4 as a first child, and the conversion in-process source s5 as a second child, and the converted Java source s2 Get
Also, the merge tool m1 and the merge tool m2 can merge the conversion in-process sources s31 to s3 n and the conversion in-process source s5 collectively as a merge process to obtain a converted Java source s2.
[変換結果リポジトリr4]
 変換結果リポジトリr4は、マージツールm2によって、機械的な変換、および、手修正の変換がなされ、JAVAコードのみを記録した変換後Javaソースs2を格納する。
[Conversion result repository r4]
The conversion result repository r4 is mechanically converted and manually converted by the merge tool m2, and stores only Java code and stores the converted Java source s2.
[テストツール30]
 テストツール30は、変換後Javaソースs2の確認テスト(実機確認)を行う。確認テストでは、例えば、変換元COBOLソースs1および変換後Javaソースs2に同じ入力値を入力し、両者間で同じ出力値が得られれば不良なし、異なる出力値が得られれば不良ありと判定する。テストツール30は、不良があった場合、不良箇所情報を元に、メタ情報DB11を参照して、不良を作り込んだ変換を特定する。
[Test tool 30]
The test tool 30 performs a confirmation test (actual machine confirmation) of the Java source s2 after conversion. In the confirmation test, for example, if the same input value is input to the conversion source COBOL source s1 and the converted Java source s2, and the same output value is obtained between both, no defect is determined, and a different output value is determined as defective. . When there is a defect, the test tool 30 refers to the meta information DB 11 based on the defect location information, and specifies the conversion in which the defect is created.
 例えば、図1に示すように、テストツール30が確認テストを実行した結果、不良ありと判定し、変換後Javaソースs2のJAVAコード「Java2」が不良原因であったと判明したとする。具体的には、コンバージョン開発者にとっては予め智得している、「Java2」の行の動作を正常にする正しいコードと、マージツールm2が出力した変換後Javaソースs2内に記述されているJAVAコード「Java2」との相違点が判明したとする。この場合、テストツール30は、メタ情報DB11を参照して、COBOLコード「COBOL2」からJAVAコード「Java2」への変換に関するメタ情報を取得する。テストツール30は、取得したメタ情報を解析することで、JAVAコード「Java2」への変換を実行したコンバータc2自体に問題がある、JAVAコード「Java2」への変換に係る変換設計に問題がある、などの不良原因の詳細を特定することができる。 For example, as shown in FIG. 1, as a result of the test tool 30 executing the confirmation test, it is determined that there is a defect and it turns out that the JAVA code "Java 2" of the converted Java source s2 is the cause of the defect. Specifically, the conversion code corrects the operation of the line of “Java 2”, which the conversion developer knows in advance, and the JAVA described in the converted Java source s 2 output from the merge tool m 2 Suppose that the difference with the code "Java 2" is found. In this case, the test tool 30 refers to the meta information DB 11 to acquire meta information on conversion from the COBOL code “COBOL 2” to the JAVA code “Java 2”. The test tool 30 analyzes the acquired meta information to find a problem with the converter c2 itself that has executed conversion to the JAVA code "Java 2". There is a problem with the conversion design related to the conversion to the JAVA code "Java 2". , Etc can be identified details of the cause of failure.
≪処理≫
 次に、本実施形態の変換装置1が実行する処理として、COBOLからJAVAへの異言語変換処理について、図2を参照して説明する。説明の際、図1も適宜参照する。
«Processing»
Next, as processing executed by the conversion device 1 of the present embodiment, foreign language conversion processing from COBOL to JAVA will be described with reference to FIG. In the description, FIG. 1 is also referred to as appropriate.
 まず、変換装置1は、変換元COBOLソースs1に対して、フォーマット整形を行う(ステップS1)。具体的には、変換装置1は、変換元COBOLソースs1のCOBOLコードについて、分かち書きの1行化、大文字小文字の統一など、コンバータc1~cnでの変換を容易にする整形を行う。 First, the conversion device 1 performs format formatting on the conversion source COBOL source s1 (step S1). Specifically, the conversion device 1 performs shaping such as conversion to one line of separation, unification of upper and lower case, and the like by the converters c1 to cn with respect to the COBOL code of the conversion source COBOL source s1.
 次に、変換装置1は、変換元COBOLソースs1に対して、定義部DB化をする(ステップS2)。具体的には、変換装置1は、変換元COBOLソースs1のCOBOLコードを解析し、データ項目の定義情報をDB(図1には図示しない記憶部)へ格納する。 Next, the conversion device 1 converts the conversion source COBOL source s1 into a definition part DB (step S2). Specifically, the conversion device 1 analyzes the COBOL code of the conversion source COBOL source s1, and stores the definition information of the data item in the DB (storage unit not shown in FIG. 1).
 次に、変換装置1は、変換元COBOLソースs1に対して、文法上整形を行う(ステップS3)。具体的には、変換装置1は、糖衣構文を正規記法に統一するなど、変換元COBOLソースs1の構文を、コンバータc1~cnへの入力を前提とする構文へ整形する。 Next, the conversion device 1 grammatically shapes the conversion source COBOL source s1 (step S3). Specifically, the conversion device 1 shapes the syntax of the conversion source COBOL source s1 into a syntax that assumes input to the converters c1 to cn, such as unifying the sugar coating syntax into the normal notation.
 次に、変換装置1は、変換元COBOLソースs1に対して、JAVA言語への共通的変換を行う(ステップS4)。具体的には、変換装置1は、JAVAのimport文やmainメソッドの記述など、変換設計の特性に関係なく、コンバータc1~cn間で共通で必要となる変換設計を適用する。ステップS4によれば、コンバータc1~cnの各々の変換設計には、コンバータc1~cn間で共通の変換設計を含ませないようにすることができ、コンバータc1~cn各々の変換設計を簡易にすることができる。 Next, the conversion device 1 performs common conversion to the JAVA language on the conversion source COBOL source s1 (step S4). Specifically, the conversion device 1 applies a conversion design that is necessary in common among the converters c1 to cn regardless of the characteristics of the conversion design, such as the JAVA import statement and the description of the main method. According to step S4, the conversion design of each of the converters c1 to cn can not include a common conversion design among the converters c1 to cn, and the conversion design of each of the converters c1 to cn can be simplified. can do.
 次に、変換装置1は、変換元COBOLソースs1に対して、JAVA言語への順序依存変換を行う(ステップS5)。具体的には、変換装置1は、変換元COBOLソースs1から変換後Javaソースs2への変換に関する複数種類の変換設計について、1つの変換設計の実行結果が、他の変換設計の実行結果に依存する場合には、その依存に関係する変換設計を適用し、実行順序依存性を持つ変換を行う。ステップS5によれば、実行順序依存性を持つ変換を予め実行することで、コンバータc1~cnの各々による変換の間で、実行順序依存性を持たせないようにすることができ、コンバータc1~cn各々の変換設計を簡易にすることができる。 Next, the conversion device 1 performs order-dependent conversion to the JAVA language on the conversion source COBOL source s1 (step S5). Specifically, conversion device 1 depends on the execution results of one conversion design for the execution of one conversion design for conversion designs of conversion source COBOL source s1 to conversion to Java source s2 after conversion. If so, apply the conversion design related to that dependency, and perform conversion with execution order dependency. According to step S5, by executing the conversion having the execution order dependency in advance, the conversion by each of the converters c1 to cn can be made to have no execution order dependency, and the converter c1 to c The conversion design of each cn can be simplified.
 次に、変換装置1は、変換元COBOLソースs1に対して、JAVA言語へのパラレル変換を行う(ステップS6)。具体的には、変換装置1は、コンバータc1~cnの各々の変換設計を適用するとともに、コンバータc1~cnによる変換で対処しない、または、対処できない変換については、手修正管理ツール20による手修正の変換設計を適用する。 Next, the conversion device 1 performs parallel conversion to the JAVA language on the conversion source COBOL source s1 (step S6). Specifically, the conversion device 1 applies the conversion design of each of the converters c1 to cn, and the conversion that can not be handled or can not be handled by the conversion by the converters c1 to cn is manually corrected by the manual correction management tool 20 Apply the transformation design of.
 図2に示すように、ステップS6は、例えば、コンバータc1~cnの各々に対応する個別命令語変換(1)~(N)(ステップS6-1~S6-N)、および、手修正に対応する手修正変換(ステップS6-X)に分けることができる。個別命令語変換(1)~(N)は、COBOLの命令語の種類ごとに、JAVAへの機械的な変換を行う処理である(例:「MOVE」→「set」)。コンバータc1~cn間の変換が他の変換に影響を及ぼすことの無いように設計されているため、個別命令語変換(1)~(N)は、機械的、かつ、並行に行うことができる。なお、個別命令語変換(1)~(N)のように命令語単位で変換を行うのではなく、例えば、構文単位で個別に機械的な変換を行ってもよい。手修正変換(S6-X)は、手修正管理ツール20による変換である。 As shown in FIG. 2, step S6 corresponds to, for example, individual instruction word conversion (1) to (N) (steps S6-1 to S6-N) corresponding to each of the converters c1 to cn, and manual correction. Can be divided into manual correction transformations (step S6-X). Individual instruction word conversion (1) to (N) is processing for performing mechanical conversion to JAVA for each type of COBOL instruction word (for example, “MOVE” → “set”). The individual instruction word conversions (1) to (N) can be performed mechanically and in parallel since the conversion between the converters c1 to cn is designed so as not to affect other conversions. . Note that, instead of performing conversion in units of instruction words as in individual instruction word conversion (1) to (N), for example, mechanical conversion may be performed individually in units of syntax. The manual correction conversion (S6-X) is a conversion by the manual correction management tool 20.
 ステップS6において、バージョン管理ツール10は、コンバータc1~cnの各々に対応する個別命令語変換(1)~(N)に関するメタ情報、および、手修正に対応する手修正変換に関するメタ情報を取得し、メタ情報DB11に格納する。 In step S6, the version control tool 10 acquires meta-information on individual command conversions (1) to (N) corresponding to each of the converters c1 to cn and meta-information on manual correction conversion corresponding to manual correction. , Stored in the meta information DB11.
 次に、変換装置1は、ステップS6のパラレル変換の変換結果をマージする(ステップS7)。具体的には、変換装置1は、マージツールm1,m2によって、コンバータc1~cnによって変換された変換途中ソースs31~s3n(または変換途中ソースs4)、および、手修正管理ツール20によって変換された変換途中ソースs5に対してマージ処理をし、変換後Javaソースs2を生成する。 Next, the conversion device 1 merges the conversion results of the parallel conversion in step S6 (step S7). Specifically, the conversion device 1 is converted by the merge tools m1 and m2 by the conversion in-progress sources s31 to s3 n (or conversion in-progress source s4) converted by the converters c1 to cn and the manual correction management tool 20 During conversion, merge processing is performed on the source s5, and a converted Java source s2 is generated.
 次に、変換装置1は、テストツール30によって、変換後Javaソースs2の確認テストを行う(ステップS8)。テストツール30は、確認テストで不良があった場合、不良箇所情報を元に、メタ情報DB11に格納された該当のメタ情報を参照して、不良の不良原因を作り込んだ変換を特定する。 Next, the conversion device 1 performs a confirmation test of the converted Java source s2 by the test tool 30 (step S8). When there is a defect in the confirmation test, the test tool 30 specifies conversion based on the defect location information with reference to the corresponding meta information stored in the meta information DB 11 to create the defect cause of the defect.
 コンバージョン開発では、不良原因を作り込んだ変換を行うコンバータを修正した後、図2の異言語変換処理を再度行う。このとき、各コンバータ間の変換が他のコンバータの変換に影響を及ぼすことはないので、ステップS6のパラレル変換では、修正したコンバータに対応する個別命令語変換を行いさえすれば良く、他の個別命令語変換を行う必要はない。よって、ステップS7のマージでは、修正していないコンバータに対応する個別命令語変換済みの変換結果を流用することができ、不良対応後の再変換工数の削減に寄与し、図2の処理に要する負担を低減させたり、時間を短縮させたりすることができる。 In conversion development, after correcting the converter that performs conversion that incorporates the cause of defects, the different language conversion process of FIG. 2 is performed again. At this time, since the conversion between each converter does not affect the conversion of the other converter, in the parallel conversion in step S6, the individual instruction word conversion corresponding to the corrected converter only needs to be performed. There is no need to perform instruction word conversion. Therefore, in the merge of step S7, the conversion result of the individual instruction word conversion corresponding to the converter which is not corrected can be diverted, which contributes to the reduction of the number of reconversion steps after handling the defect, which is required for the processing of FIG. The burden can be reduced or the time can be shortened.
 図2の処理によれば、変換元COBOLソースs1を変換後Javaソースs2に変換する際、バージョン管理ツール10がメタ情報を管理することによって、変換の履歴を辿ることができる。その結果、変換後Javaソースs2に不良があったときの不良原因の特定は、メタ情報の参照で十分に達成することができ、従来のような有識者の検討を必要とせず、容易となる。
 したがって、コンバージョン開発における不良対応コストを削減することができる。
According to the process of FIG. 2, when the conversion source COBOL source s1 is converted to the Java source s2 after conversion, the version management tool 10 can trace the conversion history by managing the meta information. As a result, the identification of the cause of the defect when there is a defect in the converted Java source s2 can be sufficiently achieved by referring to the meta information, and it becomes easy without the need for the examination of a conventional expert.
Therefore, it is possible to reduce the defect handling cost in conversion development.
≪追いつき作業での手修正結果流用≫
 顧客が提供する変換元ソースを変換後ソースに変換するコンバージョン開発では、不良対応や法改正対応などの保守開発上の理由から、コンバージョン開発の進捗とは無関係に、顧客が変換元ソースを修正し仕様変更を行う場合がある。その場合、初回のコンバージョン開発の完了後に、再度のコンバージョン開発を実施し、変換後ソースに仕様変更を取り込む必要がある。初回のコンバージョン開発の完了とは、変換後ソースの確認テストにおける不良なしでの完了を意味し、「凍結」と呼ぶ場合がある。また、再度のコンバージョン開発における凍結後の仕様変更対応作業を「追いつき作業」と呼ぶ場合がある。
«Use of hand correction result in catch-up work»
In conversion development, in which the conversion source provided by the customer is converted to the conversion source, the customer corrects the conversion source regardless of the progress of conversion development, for maintenance development reasons such as defect handling and legal revision correspondence. Specifications may be changed. In that case, after completing the first conversion development, it is necessary to carry out conversion development again and incorporate specification changes into the converted source. Completion of the initial conversion development means completion without defects in the post-conversion source verification test and may be referred to as "freezing". In addition, there is a case where specification change handling operation after freezing in conversion development again is referred to as "catch-up operation".
 追いつき作業は、必須であるとはいえ、コンバージョン開発の作業量を増大させ、システム移行の遅延化を招くので、作業工数を低減化し早期に終了させたいという要望がある。しかし、従来では、変換元ソースに対して、例えば、先述した手修正必要例1~3に該当し、初回のコンバージョン開発で該当行の手修正をした場合には、追いつき作業でも同じ行を手修正しなければならず、非効率であった。
 また、従来では、変換後ソースのうち手修正による変換箇所については、凍結前に確認テストを行っていたとしても、追いつき作業ではほぼ同様の確認テストを再度行う必要があり、追いつき作業のテスト工数を低減させることができなかった。
Although catch-up work is essential, it increases the amount of conversion development work and causes delay in system migration, so there is a demand to reduce the number of work steps and terminate it early. However, conventionally, for example, in the case of hand-correcting necessary examples 1 to 3 described above for the conversion source source, when hand-correcting the corresponding line in the first conversion development, the same line It had to be corrected and it was inefficient.
In addition, conventionally, even if the confirmation test is performed on the converted part of the converted source by manual correction before the freezing, almost the same confirmation test needs to be performed again in the catch-up operation, and the test man-hours for the catch-up operation Could not be reduced.
 つまり、一般的には、顧客側の保守開発では、仕様変更のコード修正が機能単位で済む場合が多いため、コード修正による新システムへの影響は大抵は局所的で済む。一方、コンバージョン開発では、(機械的であっても手修正であっても)変換が変換観点単位(構文単位)であるため、変換による新システムへの影響は全体的に及ぶ。このため、手修正による変換に対する確認テストの確認項目が新システム全体に分散する傾向がある。その結果、手修正が少量であったとしても、手修正による変換に対する確認テストの確認項目の数が少量となるわけではなく、凍結前のテスト工数とほぼ同程度のテスト工数が要求される。このような事情は、手修正による変換箇所が、顧客側の修正の影響が及ぶ箇所であるか否かにかかわらず存在する。 That is, in general, in the case of maintenance development on the customer side, the code modification of the specification change often needs to be done in functional units, so the impact of the code modification on the new system is usually local. On the other hand, in conversion development, the conversion is a conversion viewpoint unit (syntax unit) (whether mechanical or manual correction), so the conversion has an overall impact on the new system. For this reason, there is a tendency that the confirmation items of the confirmation test against the conversion by manual correction are dispersed throughout the new system. As a result, even if the amount of manual correction is small, the number of confirmation items of the confirmation test for conversion by manual correction is not small, and a test man-hour substantially equal to the test man-hour before freezing is required. Such a situation exists regardless of whether or not the conversion by manual correction is affected by the correction on the customer side.
 本実施形態の変換装置1は、マージツールm1,m2が行った3方向マージを用いて、追いつき作業において、顧客側の仕様変更の修正とは無関係となる、凍結前の手修正結果を機械的に流用する。本実施形態では、手修正結果を対象にした3方向マージは、マージツールm2が行い、以下の説明でもマージツールm2による3方向マージとして説明するが、マージツールm1でも同様に行うことができる。 The conversion device 1 of the present embodiment uses the three-way merge performed by the merge tools m1 and m2 to mechanically perform the hand correction result before freezing, which is irrelevant to the correction of the specification change on the customer side in the catch-up operation. Diverted to In the present embodiment, the three-way merge for the hand correction result is performed by the merge tool m2, and the following description is also described as the three-way merge by the merge tool m2, but can be performed similarly by the merge tool m1.
 図3に示すように、変換元ソースspと、修正版変換元ソースsc1と、手修正ソースsc2とを用意する。
 変換元ソースspは、COBOLで記述されたCOBOLコード(1行目「COBOL1」、2行目「COBOL2」、3行目「COBOL3」)を記録したソースコードである。変換元ソースspは、コンバージョン開発側が顧客から元々提供されたコンバージョン開発対象である。変換元ソースspは、図1の変換元COBOLソースs1に相当する。
As shown in FIG. 3, a conversion source source sp, a correction version conversion source source sc1, and a manual correction source sc2 are prepared.
The conversion source source sp is source code in which COBOL code (1st line "COBOL1", 2nd line "COBOL2", 3rd line "COBOL3") described in COBOL is recorded. The conversion source source sp is a conversion development object originally provided by the customer from the conversion developer side. The conversion source source sp corresponds to the conversion source COBOL source s1 in FIG.
 修正版変換元ソースsc1は、COBOLで記述されたCOBOLコード(1行目「COBOL1」、2行目「COBOL2」、3行目「COBOLA」)を記録したソースコードである。修正版変換元ソースsc1は、変換元ソースspに対し、顧客側の仕様変更の修正分(「COBOL3」(特定行)→「COBOLA」)が反映されたものに等しい。修正版変換元ソースsc1は、追いつき作業の際、つまり凍結後に顧客から提供される。 The modified version conversion source sc1 is a source code in which COBOL code (1st line "COBOL 1", 2nd line "COBOL 2", 3rd line "COBOA") written in COBOL is recorded. The modified version conversion source sc1 is equal to the conversion source source sp that reflects the correction of the specification change on the customer side (“COBOL 3” (specific line) → “COBOLA”). The modified version conversion source sc1 is provided by the customer during catch-up operation, that is, after freezing.
 手修正ソースsc2は、手修正管理ツール20によって変換元ソースspのCOBOLコードの一部をJAVAコード(「COBOL2」→「Java2」)に変換したソースコードである。手修正ソースsc2は、初回のコンバージョン開発において、つまり凍結前に作成されたものである。 The manual correction source sc2 is source code obtained by converting a part of the COBOL code of the conversion source source sp into JAVA code (“COBOL 2” → “Java 2”) by the manual correction management tool 20. The manual correction source sc2 is created in the first conversion development, that is, before freezing.
 バージョン管理ツール10は、変換元ソースspと、修正版変換元ソースsc1と、手修正ソースsc2に関するメタ情報を管理し、変換元ソースspと、修正版変換元ソースsc1と、手修正ソースsc2の内容を管理することができる。 The version control tool 10 manages meta information on the conversion source source sp, the correction version conversion source source sc1, the manual correction source sc2, the conversion source source sp, the correction version conversion source source sc1, and the manual correction source sc2. Content can be managed.
 マージツールm2は、変換元ソースspをマージの親、修正版変換元ソースsc1をマージの子(第1の子)、手修正ソースsc2をマージの子(第2の子)とした3方向マージを行う。結果的に、図3に示す手修正流用ソースsdを得る。バージョン管理ツール10は、手修正流用ソースsdに関するメタ情報を取得して管理する。 The merge tool m2 is a three-way merge with the conversion source sp as the merge parent, the modified conversion source sc1 as the merge child (first child), and the hand correction source sc2 as the merge child (second child) I do. As a result, the hand correction diversion source sd shown in FIG. 3 is obtained. The version control tool 10 acquires and manages meta-information on the manual correction diversion source sd.
 修正版変換元ソースsc1と手修正流用ソースsdとを比較すると、2行目「COBOL2」のコードは、3行目「COBOL3」に対する顧客の修正の影響を受けることなく、「Java2」に変換されており、修正版変換元ソースsc1に対して、手修正ソースsc2による手修正結果を流用できているといえる。従来では、追いつき作業にて、修正版変換元ソースsc1に対して、手修正で「COBOL2」→「Java2」という変換をしていたが、本発明では、その変換の手間を省くことができる。結果的に、追いつき作業での手修正の対象は、凍結前に手修正がなされたCOBOLコードのうち、顧客側の仕様変更の修正がなされたCOBOLコードに絞られる。 Comparing the modified conversion source sc1 with the manual correction diversion source sd, the code of the second line "COBOL2" is converted to "Java2" without being affected by the customer correction to the third line "COBOL3". It can be said that the hand correction result by the hand correction source sc2 can be diverted to the correction version conversion source sc1. Conventionally, in the catch-up operation, conversion of “COBOL 2” → “Java 2” is manually performed on the correction version conversion source sc 1, but according to the present invention, it is possible to save time for the conversion. As a result, the target of manual correction in the catch-up operation is limited to the COBOL code in which the customer-side specification change has been corrected among the COBOL code which has been manually corrected before freezing.
 また、手修正ソースsc2による手修正結果を含む変換後ソースに対する凍結前の確認テストはすでに済んでおり、その手修正結果を流用している。このため、追いつき作業において、手修正流用ソースsdを用いてマージ処理をした変換後ソース(顧客修正反映済み)の確認テストを行う際、流用した手修正による変換に対する確認テストの確認項目は省略することができる。その結果、追いつき作業のテスト工数を低減させることができる。 Moreover, the confirmation test before freezing with respect to the converted source including the manual correction result by the manual correction source sc 2 has already been completed, and the manual correction result is used. Therefore, in the catch-up operation, when performing the confirmation test of the converted source (customer correction reflected) after the merge processing using the hand correction diversion source sd, the confirmation item of the confirmation test for the conversion by the hand correction which is diverted is omitted be able to. As a result, it is possible to reduce the number of test steps for catch-up work.
 なお、3方向マージで得られた手修正流用ソースsdの3行目「COBOLA」のJAVAコードへの変換については、「COBOLA」が機械変換可能なCOBOLコードである場合は、コンバータc1~cnのいずれかによって変換され、結果物が機械変換結果リポジトリr2に格納される。一方、「COBOLA」が、手修正が必要なCOBOLコードである場合は、手修正流用ソースsdを対象にして手修正管理ツール20によって手修正を行い、結果物が手修正結果リポジトリr3に格納される。その後は、すでに説明した手順(図2のステップS7など)に従う。 In addition, about conversion to the JAVA code of the 3rd line "COBOA" of hand correction diversion source sd obtained by 3-way merge, when "COBOA" is machine code which can be machine-converted, converter c1 to cn Any one of them is converted, and the result is stored in the machine conversion result repository r2. On the other hand, if "COBOLA" is COBOL code that requires manual correction, manual correction is performed by the manual correction management tool 20 for the manual correction diversion source sd, and the result is stored in the manual correction result repository r3. Ru. After that, the procedure described above (such as step S7 in FIG. 2) is followed.
≪片方優先3方向マージ≫
 追いつき作業において、変換元ソースに対する顧客側の修正箇所(特定行)と、変換元ソースに対する凍結前の手修正が行われた箇所(手修正行)とが重複している場合がある。この場合、手修正結果流用の3方向マージを行うと、コンフリクトが発生してしまい、マージすることができない。
«One-sided three-way merge»
In the catch-up operation, there may be a case where the customer-side correction portion (specific line) for the conversion source source and the portion (hand correction line) where manual correction before freezing is performed for the conversion source source overlap. In this case, when performing three-way merge using the hand correction result, a conflict occurs and the merge can not be performed.
 そこで、顧客側の修正行と手修正行とが重複している場合、マージツールm2は、顧客側の修正行を優先する片方優先3方向マージを行う。
 図4に示すように、変換元ソースspと、修正版変換元ソースsc1aと、手修正ソースsc2とを用意した場合について説明する。図4の変換元ソースspおよび手修正ソースsc2は、図3に示す変換元ソースspおよび手修正ソースsc2と同じである。
Therefore, when the customer-side correction line and the manual correction line overlap, the merge tool m2 performs one-side three-way merge that gives priority to the customer-side correction line.
As shown in FIG. 4, the case where the conversion source source sp, the correction version conversion source source sc1a, and the manual correction source sc2 are prepared will be described. The conversion source sp and hand correction source sc2 in FIG. 4 are the same as the conversion source sp and hand correction source sc2 shown in FIG.
 修正版変換元ソースsc1aは、COBOLで記述されたCOBOLコード(1行目「COBOL1」、2行目「COBOLA」、3行目「COBOL3」)を記録したソースコードである。修正版変換元ソースsc1aは、変換元ソースspに対し、顧客側の仕様変更の修正分(「COBOL2」→「COBOLA」)が反映されたものに等しい。修正版変換元ソースsc1aは、追いつき作業の際、つまり凍結後に顧客から提供される。
 バージョン管理ツール10は、修正版変換元ソースsc1aに関するメタ情報を管理し、修正版変換元ソースsc1aの内容を管理することができる。
The modified version conversion source sc1a is a source code in which COBOL code (1st line "COBOL 1", 2nd line "COBOA", 3rd line "COBOL 3") described in COBOL is recorded. The modified version conversion source sc1a is equal to the conversion source source sp that reflects the correction of the specification change on the customer side (“COBOL 2” → “COBOLA”). The modified version conversion source sc1a is provided from the customer during the catch-up operation, that is, after freezing.
The version management tool 10 can manage meta information on the modified version conversion source source sc1a and can manage the content of the modified version conversion source source sc1a.
 変換元ソースspと、修正版変換元ソースsc1aと、手修正ソースsc2に対して、図3の3方向マージを仮に行った場合、変換元ソースspの2行目「COBOL2」に対する顧客修正(「COBOLA」(特定行))と、手修正(「Java2」(手修正行))とがコンフリクト(重複)しマージ不可となる。 If the three-way merge in FIG. 3 is temporarily performed on the conversion source source sp, the correction version conversion source source sc1a, and the manual correction source sc2, the customer correction for the second line “COBOL2” of the conversion source source sp (“ "COBOLA" (specific line)) and manual correction ("Java 2" (manual correction line)) conflict (duplicate) and merge is impossible.
 そこで、図4に示すように、マージツールm2は、変換元ソースspをマージの親、修正版変換元ソースsc1aをマージの子(第1の子)、手修正ソースsc2をマージの子(第2の子)とした片方優先3方向マージを行う。結果的に、手修正結果(「Java2」)を含まず、顧客修正(「COBOLA」)を含む顧客修正優先ソースsda(1行目「COBOL1」、2行目「COBOLA」、3行目「COBOL3」)を得る。バージョン管理ツール10は、顧客修正優先ソースsdaに関するメタ情報を取得して管理する。 Therefore, as shown in FIG. 4, the merge tool m2 merges the conversion source source sp into a merge parent, the modified version conversion source source sc1a into a merge child (first child), and the hand correction source sc2 merges into a child (first Performs one-way three-way merge with 2). As a result, the customer modification priority source sda (1st line "COBOL1", 2nd line "COBOLA", 3rd line "COBOL3" not including the manual correction result ("Java 2") but including the customer correction ("COBOLA") Get "). The version control tool 10 acquires and manages meta information on the customer modification priority source sda.
 本実施形態の片方優先3方向マージによれば、手修正と顧客修正とがコンフリクトするとしても、3方向マージの結果物に顧客修正を確実に反映させることができ。顧客の本来的な要求を確実に満たすことができる。 According to the one-side three-way merge of this embodiment, even if the manual correction and the customer correction conflict, the customer correction can be reliably reflected on the product of the three-way merge. The customer's inherent requirements can be met with certainty.
 なお、片方優先3方向マージで得られた顧客修正優先ソースsdaの2行目「COBOLA」のJAVAコードへの変換については、「COBOLA」が機械変換可能なCOBOLコードである場合は、コンバータc1~cnのいずれかによって変換され、結果物が機械変換結果リポジトリr2に格納される。一方、「COBOLA」が、手修正が必要なCOBOLコードである場合は、顧客修正優先ソースsdaを対象にして手修正管理ツール20によって手修正を行い、結果物が手修正結果リポジトリr3に格納される。その後は、すでに説明した手順(図2のステップS7など)に従う。 In addition, about conversion to the JAVA code of the 2nd line "COBOA" of the customer modification priority source sda obtained by one-side three-way merge, if "COBOA" is a machine-convertible COBOL code, converter c1 ~ It is converted by any of cn, and the result is stored in the machine conversion result repository r2. On the other hand, if "COBOLA" is COBOL code requiring manual correction, manual correction is performed by the manual correction management tool 20 for the customer correction priority source sda, and the result is stored in the manual correction result repository r3. Ru. After that, the procedure described above (such as step S7 in FIG. 2) is followed.
≪追いつき作業におけるテスト作業工数削減≫
 追いつき作業は、本質的には、変換元ソースに対して顧客が行った(概ね小規模の)修正分に対して再度のコンバージョン開発を行えば十分である。追いつき作業で行う必要があるテストの確認項目の大部分は、追いつき作業前の初回コンバージョン開発ですでに行ったテストの確認項目と重複する。よって、初回コンバージョン開発でのテストの確認結果を流用して、追いつき作業でのテスト作業工数を削減する、というアイデアが成立し、以下、その方法について具体的に説明する。
«Reducing man-hours for test in catch-up work»
The catch-up process is essentially sufficient if another conversion development is made to the (generally small scale) correction made by the customer to the conversion source. Most of the test validations that need to be done in the catch-up task overlap with those already done in the first conversion development before catch-up. Therefore, the idea of reducing the number of test operations in catch-up work by using the check results of the first conversion development test is realized, and the method will be specifically described below.
 図5に示すように、追いつき作業前の異言語変換では、つまり、初回コンバージョン開発では、本実施形態の変換装置1が、変換元ソースsp(例えば、COBOL)を変換後ソースsq(例えば、JAVA)に変換する際に、変換設計設定(ステップS11)と、コンバータ生成(ステップS12)と、機械変換+手修正(ステップS13)と、3方向マージ(ステップS14)とが実行される。 As shown in FIG. 5, in the foreign language conversion before catch-up operation, that is, in the first conversion development, the conversion device 1 of this embodiment converts the conversion source source sp (for example, COBOL) after conversion source sq (for example, JAVA) When converting into (), conversion design setting (step S11), converter generation (step S12), machine conversion + hand correction (step S13), and three-way merge (step S14) are executed.
 変換設計設定(ステップS11)は、コンバージョン開発側で変換元ソースspを解析し、変換元ソースspに対して、変換後ソースsqの作成に必要となる変換設計を1または複数種類設定するステップである。変換設計とは、変換対象のコード文字列をどのように書き換えるかを規定する枠組みである。必要となる変換設計の種類については、例えば、コンバージョン開発側で適宜決定してもよいが、決定の方法はこれに限らない。 The conversion design setting (step S11) is a step in which the conversion development side analyzes the conversion source source sp, and sets one or more types of conversion design necessary for creating the converted source sq to the conversion source source sp. is there. Conversion design is a framework that defines how to rewrite the code string to be converted. The type of conversion design that is required may be determined as appropriate, for example, by the conversion developer, but the method of determination is not limited thereto.
 図5の例では、変換元ソースspに対して、変換対象ごとに変換設計A1~E1の5種類が設定されたとする。変換設計A1~C1は、コンバータ(図1のコンバータc1~cnに相当)による機械変換に係る変換設計である。変換設計D1、E1は、手修正(図1の手修正管理ツール20が行う手修正に相当)による変換に係る変換設計である。 In the example of FIG. 5, it is assumed that five types of conversion designs A1 to E1 are set for each conversion target with respect to the conversion source source sp. The conversion designs A1 to C1 are conversion designs related to mechanical conversion by the converter (corresponding to the converters c1 to cn in FIG. 1). The conversion designs D1 and E1 are conversion designs related to conversion by hand correction (corresponding to hand correction performed by the hand correction management tool 20 in FIG. 1).
 コンバータ生成(ステップS12)は、設定された変換設計のうち、機械変換に係る変換設計に関連付けられるコンバータを生成するステップである。図5では、機械変換に係る変換設計A1~C1の各々に対し、変換設計A1向けコンバータA2と、変換設計B1向けコンバータB2と、変換設計C1向けコンバータC2とが生成される。変換設計A1向けコンバータA2、変換設計B1向けコンバータB2、変換設計C1向けコンバータC2は、図1のコンバータc1~cnと同じ機能を有する。 The converter generation (step S12) is a step of generating a converter associated with the conversion design related to the machine conversion among the set conversion designs. In FIG. 5, a converter A2 for conversion design A1, a converter B2 for conversion design B1, and a converter C2 for conversion design C1 are generated for each of conversion designs A1 to C1 related to mechanical conversion. The converter A2 for conversion design A1, the converter B2 for conversion design B1, and the converter C2 for conversion design C1 have the same functions as the converters c1 to cn in FIG.
 機械変換+手修正(ステップS13)は、変換設計に従う機械変換および手修正を実行するステップである。図5では、コンバータA2~C2の各々が、変換元ソースsp中の変換対象の各々に対して、変換設計A1~C1に従う機械変換を実行し、変換結果A3~C3を出力する。また、手修正管理ツール20(図1)が、変換元ソースsp中の変換対象の各々に対して、変換設計D1,E1に従う手修正を実行し、変換結果D3,E3を出力する。変換結果A3~E3は、図1に示す変換途中ソースs31~s3n,s4,s5に相当する。 Machine transformation + hand correction (step S13) is a step of performing machine transformation and hand correction in accordance with the transformation design. In FIG. 5, each of the converters A2 to C2 executes machine conversion according to the conversion designs A1 to C1 on each of conversion targets in the conversion source source sp, and outputs conversion results A3 to C3. Further, the manual correction management tool 20 (FIG. 1) performs manual correction in accordance with the conversion designs D1 and E1 on each of conversion targets in the conversion source source sp, and outputs conversion results D3 and E3. The conversion results A3 to E3 correspond to the sources s31 to s3 n, s4, and s5 during conversion shown in FIG.
 なお、図1に示すように、本実施形態の変換装置1は、コンバータc1~cnによる変換結果を、コンバータごとにリポジトリ内で管理し(図1のコンバータ別変換結果リポジトリr11~r1n)、手修正による変換結果を、1つのリポジトリ内にまとめて管理した(図1の手修正結果リポジトリr3)。しかし、リポジトリによる管理単位は任意に設定することができる。そこで、図5、図6を参照する説明については、本実施形態の変換装置1は、変換設計ごとに、変換結果をリポジトリ内で管理することにする。つまり、図5に示す変換結果A3~E3は、変換設計A1~E1の各々に対して用意したリポジトリ(図5中図示せず)内に管理される。なお、リポジトリとして、変換設計ごとに用意したリポジトリではなく、複数の変換設計をまとめたものに対するリポジトリを用意してもよい。 Note that, as shown in FIG. 1, the conversion device 1 of the present embodiment manages the conversion results by the converters c1 to cn in the repository for each converter (converter-specific conversion result repositories r11 to r1n in FIG. 1). The conversion results due to the corrections were collectively managed in one repository (FIG. 1 manual correction result repository r3). However, the management unit by repository can be set arbitrarily. Therefore, for the description with reference to FIGS. 5 and 6, the conversion device 1 of this embodiment manages the conversion result in the repository for each conversion design. That is, the conversion results A3 to E3 shown in FIG. 5 are managed in a repository (not shown in FIG. 5) prepared for each of the conversion designs A1 to E1. Note that as a repository, instead of a repository prepared for each conversion design, a repository for a collection of multiple conversion designs may be prepared.
 コンバージョン開発側は、変換結果A3~E3に対して机上確認を行う。机上確認は、周知の手法であり説明は省略する。本実施形態では、変換結果A3~E3に対する机上確認の結果は良好であったとする。 The conversion developer side checks the conversion results A3 to E3 on the desk. Desktop confirmation is a known method and the description is omitted. In the present embodiment, it is assumed that the result of desktop confirmation for the conversion results A3 to E3 is good.
 3方向マージ(ステップS14)は、機械変換+手修正(ステップS13)で得られた変換結果に対して3方向マージを行うステップである。3方向マージ(ステップS14)は、図1に示すマージツールm1、m2が実行する。図5では、変換結果A3~E3に対して3方向マージを実行することで変換後ソースsqが得られる。 The three-way merge (step S14) is a step of performing the three-way merge on the conversion result obtained by machine conversion + hand correction (step S13). The three-way merge (step S14) is executed by the merge tools m1 and m2 shown in FIG. In FIG. 5, the converted source sq is obtained by executing three-way merge on the conversion results A3 to E3.
 コンバージョン開発側は、変換後ソースsqに対して実機確認を行う。実機確認は、図1に示すテストツール30の確認テストに相当する。以上で、初回コンバージョン開発が完了する。 The conversion developer side checks the actual source for the converted source sq. The actual machine confirmation corresponds to the confirmation test of the test tool 30 shown in FIG. This completes the first conversion development.
 初回コンバージョン開発の完了後、顧客が変換元ソースを修正したため、追いつき作業を実行する。図6に示すように、追いつき作業では、本実施形態の変換装置1が、顧客の修正分spa1を含む変換元ソースspa(修正版変換元ソースに相当)を、修正分spa1に対応する修正分sqa1を含む変換後ソースsqaに変換する。この変換の際、図6に示す変換設計設定(ステップS21)と、コンバータ生成(ステップS22)と、機械変換+手修正(ステップS23)と、3方向マージ(ステップS24)とが実行される。 After the initial conversion development is complete, the customer corrects the conversion source, and performs catch-up work. As shown in FIG. 6, in the catch-up operation, the conversion device 1 of the present embodiment converts the conversion source source spa (corresponding to the correction version conversion source source) including the correction portion spa1 of the customer Convert to the transformed source sqa including sqa1. At the time of this conversion, conversion design setting (step S21) shown in FIG. 6, converter generation (step S22), machine conversion + hand correction (step S23), and three-way merge (step S24) are executed.
 変換設計設定(ステップS21)は、図5の変換設計設定(ステップS11)と同じステップである。図6に示すように、変換設計設定(ステップS21)では、変換元ソースspaに修正分spa1が含まれたことに応じて、変換設計B1,D1(図5)をそれぞれ、変換設計B11,D11に代え、変換元ソースspaに対して、変換対象ごとに変換設計A1,B11,C1,D11,E1の5種類が設定されたとする。変換設計B11は、機械変換に係る変換設計である。変換設計D11は、手修正による変換に係る変換設計である。 The conversion design setting (step S21) is the same step as the conversion design setting (step S11) of FIG. As shown in FIG. 6, in the conversion design setting (step S21), conversion designs B1 and D1 (FIG. 5) are converted into conversion designs B11 and D11, respectively, in response to the correction source spa including the correction part spa1. Instead of the above, it is assumed that five types of conversion designs A1, B11, C1, D11, and E1 are set for each conversion target with respect to the conversion source source spa. The conversion design B11 is a conversion design related to machine conversion. The conversion design D11 is a conversion design related to conversion by manual correction.
 コンバータ生成(ステップS22)は、図5のコンバータ生成(ステップS12)と同じステップである。図6に示すように、すでに生成された変換設計A1向けコンバータA2(図5)と、変換設計C1向けコンバータC2(図5)に加え、新たに設定された変換設計B11に対し、変換設計B11向けコンバータB21が新たに生成される。変換設計B11向けコンバータB21は、図1のコンバータc1~cnと同じ機能を有する。 The converter generation (step S22) is the same step as the converter generation (step S12) of FIG. As shown in FIG. 6, in addition to the converter A2 for conversion design A1 (FIG. 5) already generated and the converter C2 for conversion design C1 (FIG. 5), conversion design B11 is performed with respect to the newly set conversion design B11. Forward converter B21 is newly generated. The converter B21 for conversion design B11 has the same function as the converters c1 to cn in FIG.
 機械変換+手修正(ステップS23)は、図5の機械変換+手修正(ステップS13)と同じステップである。図6では、機械変換ですでに生成された変換結果A3,C3(図5)に加え、変換設計B11向けコンバータB21が、変換元ソースsp中の変換対象に対して、変換設計B11に従う機械変換を実行し、変換結果B31を新たに出力する。また、図6では、手修正ですでに生成された変換結果E3(図5)に加え、手修正管理ツール20(図1)が、変換元ソースsp中の変換対象に対して、変換設計D11に従う手修正を実行し、変換結果D31を新たに出力する。変換結果B31,D31は、図1に示す変換途中ソースs31~s3n,s4,s5に相当する。 The machine conversion + hand correction (step S23) is the same step as the machine conversion + hand correction (step S13) of FIG. In FIG. 6, in addition to the conversion results A3 and C3 (FIG. 5) already generated by machine conversion, the converter B21 for conversion design B11 performs machine conversion according to conversion design B11 for the conversion target in conversion source source sp. To output a conversion result B31 anew. Further, in FIG. 6, in addition to the conversion result E3 (FIG. 5) already generated by hand correction, the hand correction management tool 20 (FIG. 1) converts the conversion design D11 for the conversion target in the conversion source source sp. Perform manual correction according to and newly output a conversion result D31. The conversion results B31 and D31 correspond to the sources s31 to s3 n, s4 and s5 during conversion shown in FIG.
 コンバージョン開発側は、新たな変換結果B31,D31に対して机上確認を行う。すでに生成した変換結果A3,C3,E3については、机上確認が済んでいるため(図5)、追いつき作業では省略する。よって、変換設計ごとに変換結果を管理することで、追いつき作業における机上確認のテスト工数を削減することができる。また、本実施形態では、変換結果B31,D31に対する机上確認の結果は良好であったとする。 The conversion developer side checks the new conversion results B31 and D31 on the desk. As for the conversion results A3, C3, and E3 that have already been generated, since desktop confirmation has been completed (FIG. 5), they are omitted in the catch-up operation. Therefore, by managing the conversion result for each conversion design, it is possible to reduce the number of test steps for desktop confirmation in the catch-up operation. Further, in the present embodiment, it is assumed that the result of the desktop confirmation with respect to the conversion results B31 and D31 is good.
 3方向マージ(ステップS24)は、図5の3方向マージ(ステップS14)と同じステップである。図6では、変換結果A3,B31,C3,D31,E3に対して3方向マージを実行することで、修正分spa1に対応する修正分sqa1を含む変換後ソースsqaが得られる。 The three-way merge (step S24) is the same step as the three-way merge (step S14) of FIG. In FIG. 6, by executing three-way merge on conversion results A3, B31, C3, D31, and E3, a converted source sqa including the correction part sqa1 corresponding to the correction part spa1 is obtained.
 コンバージョン開発側は、変換後ソースsqaに対して実機確認を行う。この実機確認においては、すべての確認項目のうち、修正分sqa1が影響しない確認項目(修正分spa1に応じて変更した変換設計B11、D11以外の変換設計A1,C1,E1に関係する確認項目)は、追いつき作業前にすでに確認済みであるため(図5)、追いつき作業では省略しても差し支えない。よって、図5、図6の例に示すように、変換設計ごとに変換結果を管理することで、実機確認のすべての確認項目のうち、修正分sqa1が影響する確認項目についてのみ確認すればよい。その結果、追いつき作業における実機確認のテスト工数を削減することができる。 The conversion developer side checks the actual source for the converted source sqa. In this actual machine confirmation, among all the confirmation items, the confirmation items that the correction part sqa1 does not affect (the conversion items related to the conversion designs A1, C1 and E1 other than the conversion design B11 and D11 changed according to the correction part spa1) Since it has already been confirmed before the catch-up operation (FIG. 5), it may be omitted in the catch-up operation. Therefore, as shown in the example of FIGS. 5 and 6, by managing the conversion result for each conversion design, it is only necessary to confirm the confirmation item affected by the correction part sqa1 among all the confirmation items of the actual device confirmation. . As a result, it is possible to reduce the number of test steps for checking the actual machine in the catch-up operation.
≪変形例≫
 以上、本発明の実施形態について説明したが、本発明は前記実施形態に限定されず、本発明の要旨を逸脱しない範囲で適宜変更可能である。例えば、コンバージョン開発における変換元ソースのプログラム言語は、COBOLに限らず、他のプログラム言語でもよい。また、コンバージョン開発における変換後ソースのプログラム言語は、JAVAに限らず、他のプログラム言語でもよい。
«Modification»
As mentioned above, although embodiment of this invention was described, this invention is not limited to the said embodiment, It can change suitably in the range which does not deviate from the summary of this invention. For example, the programming language of conversion source in conversion development is not limited to COBOL, and may be another programming language. Also, the program language of the converted source in conversion development is not limited to JAVA, and may be another programming language.
 また、コンバージョン開発における言語変換は、本実施形態で採り上げたCOBOLからJAVAへの変換といった異なる種類のプログラム言語への変換に限らず、ホスト系COBOLからオープン系COBOLへの変換といった同じ種類のプログラム言語への変換でもよい。 Furthermore, language conversion in conversion development is not limited to conversion to a different kind of programming language such as conversion from COBOL to JAVA, which was taken up in this embodiment, and the same kind of programming language such as conversion from host-based COBOL to open-based COBOL. May be converted to
 また、本発明は、プログラム言語の変換に関するコンバージョン開発に限らず、現行アプリケーションが処理するデータを新アプリケーションに移行するデータマイグレーション開発など、システム移行に伴う種々のマイグレーション開発に適用することができる。 Further, the present invention is applicable not only to conversion development for conversion of program language, but also to various migration development involved in system migration, such as data migration development for migrating data processed by the current application to a new application.
 また、本発明は、従来のように、変換元ソースに対して複数種類用意した変換ツールを順次実行する方法に対しても適用することができる。また、従来では、プログラム言語を機械的に変換するツールとして、コードをパース(構文木解釈)して置き換えるツールがある。このツールは、ほぼすべての言語の変換に対応可能となる1つの(または少数の)ツールとして構成され、概して大規模かつ複雑である。本発明は、このようなツールに対しても適用することができ、不良原因の特定や、追いつき作業でのテスト工数削減などに資する。 The present invention can also be applied to a method of sequentially executing a plurality of conversion tools prepared for the conversion source as in the prior art. Also, conventionally, as a tool for mechanically converting a programming language, there is a tool for parsing (parsing tree interpretation) and replacing code. This tool is configured as one (or a few) tools that can handle almost all language conversions, and is generally large and complex. The present invention can also be applied to such tools, and contributes to identification of the cause of defects, reduction in the number of test steps in catch-up work, and the like.
 本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
 本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
 その他、ハードウェア、ソフトウェア、フローチャートなどについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
It is also possible to realize a technology that appropriately combines the various technologies described in the present embodiment.
The software described in the present embodiment can be realized as hardware, or hardware can be realized as software.
In addition, hardware, software, flowcharts, and the like can be appropriately modified without departing from the spirit of the present invention.
 1   変換装置
 c1~cn コンバータ
 10  バージョン管理ツール(メタ情報管理部)
 11  メタ情報DB
 20  手修正管理ツール(手修正管理部)
 21  手修正実施用ワークスペース
 30  テストツール(テスト部)
 m1,m2 マージツール(マージ部)
 r11~r1n コンバータ別変換結果リポジトリ
 r2  機械変換結果リポジトリ
 r3  手修正結果リポジトリ
 r4  変換結果リポジトリ
 s1  変換元COBOLソース(変換元ソース)
 s2  変換後Javaソース(変換後ソース)
 s31~s3n,s4,s5 変換途中ソース
 sc1,sc1a 修正版変換元ソース
 sp,spa 変換元ソース
 sq,sqa 変換後ソース
 A1~E1,B11,D11 変換設計
 A2  変換設計A1向けコンバータ
 B2  変換設計B1向けコンバータ
 B21 変換設計B11向けコンバータ
 C2  変換設計C1向けコンバータ
 A3~E3,B31,D31 変換結果
1 Converter c1 to cn Converter 10 Version Management Tool (Meta Information Management Department)
11 Meta Information DB
20 Manual revision management tool (hand revision management department)
21 Manual correction work workspace 30 Test tool (test section)
m1, m2 merge tool (merge section)
r11 to r1n Conversion result repository for each converter r2 machine conversion result repository r3 manual correction result repository r4 conversion result repository s1 conversion source COBOL source (conversion source source)
s2 Converted Java source (converted source)
s31 to s3n, s4, s5 conversion in process source sc1, sc1a modified version conversion source sp, spa conversion source source sq, sqa converted source A1 to E1, B11, D11 conversion design A2 conversion design A1 converter B2 conversion design B1 Converter B21 Converter design for B11 Converter C2 Converter design for C1 Converters A3 to E3, B31, D31 Conversion results

Claims (8)

  1.  変換元ソースを変換後ソースに変換する変換装置であって、
     前記変換元ソースの一部を前記変換後ソースの一部に変換して生成される変換途中ソースの集合について、前記変換途中ソースの各々への変換に関するメタ情報を管理するメタ情報管理部と、
     前記変換後ソースの確認テストで不良があった場合、前記メタ情報を参照して、前記不良の不良原因を作り込んだ変換を特定するテスト部と、を備える、
     ことを特徴とする変換装置。
    A conversion device for converting a conversion source into a converted source,
    A meta-information management unit that manages meta-information related to conversion to each of the conversion intermediate sources, for a set of conversion intermediate sources generated by converting a part of the conversion source to a part of the converted source;
    And a test unit for identifying a conversion in which the cause of the defect is created by referring to the meta information when there is a defect in the post-conversion source confirmation test.
    A conversion device characterized by
  2.  前記変換元ソース内の文字列ごとに用意され、前記変換元ソースの一部から前記変換後ソースの一部への変換を、機械的、かつ、並行に行う複数種類のコンバータと、
     前記変換元ソースの一部から前記変換後ソースの一部への変換を行うための手修正を管理する手修正管理部と、
     前記変換途中ソースの集合に対してマージ処理をするマージ部と、をさらに備える、
     ことを特徴とする請求項1に記載の変換装置。
    A plurality of types of converters, provided for each character string in the conversion source, and performing mechanical and parallel conversion from part of the conversion source to part of the converted source;
    A manual correction management unit that manages manual correction for converting a part of the conversion source to a part of the converted source;
    And a merge unit performing merge processing on the set of conversion-in-progress sources.
    The converter according to claim 1, characterized in that:
  3.  前記変換元ソースの特定行が修正されていた修正版変換元ソースがあった場合、
     前記マージ部は、
     前記変換元ソースを親とし、前記修正版変換元ソースを第1の子とし、前記変換途中ソースのうち前記手修正による変換が行われたものを第2の子とする3方向マージをする、
     ことを特徴とする請求項2に記載の変換装置。
    If there is a modified version of the conversion source, the specific line of the conversion source has been corrected:
    The merge unit is
    A three-way merge is performed with the conversion source as a parent, the modified version conversion source as a first child, and the conversion in-progress source subjected to conversion by the manual correction as a second child.
    The converter according to claim 2, characterized in that:
  4.  前記マージ部は、
     前記修正版変換元ソースにおいて修正されていた前記特定行と、前記手修正による変換が行われた前記変換途中ソースにおいて前記手修正がなされた手修正行とが重複する場合、前記3方向マージにおいて、前記特定行を優先する、
     ことを特徴とする請求項3に記載の変換装置。
    The merge unit is
    In the three-way merge, when the specific line corrected in the correction version conversion source and the manually corrected line subjected to the manual correction overlap in the conversion midway source subjected to the conversion by the manual correction , Prioritize the particular line,
    The converter according to claim 3, characterized in that:
  5.  前記変換元ソースに対して設定した変換設計ごとに、前記変換途中ソースを生成した場合、前記変換設計のうち、前記修正版変換元ソースの修正分に応じて変更した変換設計について、新たな変換途中ソースを生成する、
     ことを特徴とする請求項3または請求項4に記載の変換装置。
    When the conversion in-progress source is generated for each conversion design set for the conversion source, a new conversion is generated for the conversion design changed according to the correction of the correction version conversion source in the conversion design. Generate a source on the way,
    The conversion device according to claim 3 or 4 characterized by things.
  6.  前記変換元ソースから前記変換後ソースへの変換は、プログラム言語変換である、
     ことを特徴とする請求項1から請求項5のいずれか1項に記載の変換装置。
    The conversion from the conversion source to the converted source is a program language conversion,
    The converter according to any one of claims 1 to 5, characterized in that:
  7.  前記プログラム言語変換は、
     異なる種類のプログラム言語への変換、または、同じ種類のプログラム言語への変換である、
     ことを特徴とする請求項6に記載の変換装置。
    The program language conversion is
    Conversion to a different kind of programming language, or conversion to the same kind of programming language,
    The converter according to claim 6, characterized in that:
  8.  変換元ソースを変換後ソースに変換する変換装置における変換方法であって、
     前記変換元ソースの一部を前記変換後ソースの一部に変換して生成される変換途中ソースの集合について、前記変換途中ソースの各々への変換に関するメタ情報を登録するステップと、
     前記変換後ソースの確認テストを行い、不良があった場合、前記メタ情報を参照して前記不良の不良原因を作り込んだ変換を特定するステップと、を備える、
     ことを特徴とする変換方法。
    A conversion method in a conversion apparatus for converting a conversion source into a converted source,
    Registering meta information related to conversion to each of the conversion intermediate sources for a set of conversion intermediate sources generated by converting a part of the conversion source to a part of the converted source;
    Conducting a confirmation test of the converted source and, if there is a defect, referring to the meta-information to specify a conversion in which the cause of the defect is created.
    A conversion method characterized by
PCT/JP2018/030483 2017-08-25 2018-08-17 Conversion device and conversion method WO2019039394A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201880055029.6A CN111052077B (en) 2017-08-25 2018-08-17 Conversion device and conversion method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017161973A JP6944838B6 (en) 2017-08-25 2017-08-25 Conversion device and conversion method
JP2017-161973 2017-08-25

Publications (1)

Publication Number Publication Date
WO2019039394A1 true WO2019039394A1 (en) 2019-02-28

Family

ID=65439075

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/030483 WO2019039394A1 (en) 2017-08-25 2018-08-17 Conversion device and conversion method

Country Status (3)

Country Link
JP (1) JP6944838B6 (en)
CN (1) CN111052077B (en)
WO (1) WO2019039394A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004334325A (en) * 2003-04-30 2004-11-25 Nri & Ncc Co Ltd File conversion system and method
JP2014215938A (en) * 2013-04-30 2014-11-17 株式会社システムズ Information processing apparatus, information processing method and program
US20160350204A1 (en) * 2015-05-27 2016-12-01 Oracle International Corporation System and method for providing automated computer language translation and verification

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100337203C (en) * 2004-04-05 2007-09-12 中国科学院计算技术研究所 Control flow conversion in course of heritage code into modern language
JP4724387B2 (en) * 2004-06-24 2011-07-13 富士通株式会社 Program conversion program, program conversion apparatus, and program conversion method
AU2006264207B2 (en) * 2005-06-27 2012-02-02 Csc Technology Singapore Pte Ltd Code transformation
CN101105814A (en) * 2007-09-11 2008-01-16 金蝶软件(中国)有限公司 Method and device for converting Script language to SQL language
CN104391730B (en) * 2014-08-03 2017-07-11 浙江网新恒天软件有限公司 A kind of software source codes language translation system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004334325A (en) * 2003-04-30 2004-11-25 Nri & Ncc Co Ltd File conversion system and method
JP2014215938A (en) * 2013-04-30 2014-11-17 株式会社システムズ Information processing apparatus, information processing method and program
US20160350204A1 (en) * 2015-05-27 2016-12-01 Oracle International Corporation System and method for providing automated computer language translation and verification

Also Published As

Publication number Publication date
CN111052077B (en) 2023-09-29
JP6944838B6 (en) 2021-11-02
CN111052077A (en) 2020-04-21
JP2019040399A (en) 2019-03-14
JP6944838B2 (en) 2021-10-06

Similar Documents

Publication Publication Date Title
US8005788B2 (en) System and method for legacy system component incremental migration
US20160170719A1 (en) Software database system and process of building and operating the same
US11194550B2 (en) System and method for migrating legacy software to a system common architecture
US20080115195A1 (en) Remote workflow schedule authoring
US20070169023A1 (en) Restructuring computer programs
JP6268029B2 (en) Test case generation apparatus and test case generation method
US20140130006A1 (en) Apparatus and method of generating multi-level test case from unified modeling language sequence diagram based on multiple condition control flow graph
US20130290075A1 (en) Localization quality assurance of localized software
WO2004025463A1 (en) Requirement defining method, method for developing software, method for changing requirement word, and newly defining method
EP2799981A1 (en) Method for providing code, code generator and software development environment
US20100031263A1 (en) Process model lean notation
EP2913757A1 (en) Method, system, and computer software product for test automation
JPWO2006095434A1 (en) Software construction program, recording medium recording the program, software construction method, and software construction system
US20050262485A1 (en) Duplicate merge avoidance in parallel development of interdependent semi-derived artifacts
WO2019039394A1 (en) Conversion device and conversion method
JP2009245066A (en) Software migration system and method
JPH08241196A (en) Branch instruction processing system
CN109766125A (en) Recognition methods and the device of conflict are produced the equalizer between batch
JP5374405B2 (en) Model debugging apparatus and model debugging method
Teppe The ARNO project: Challenges and experiences in a large-scale industrial software migration project
US20080022258A1 (en) Custom database system and method of building and operating the same
US20100070954A1 (en) Custom database system and method of building and operating the same
JPH01230132A (en) Generator
Hayashi et al. Agile stock assessment
CN116909545A (en) Low-code MOM platform based on micro-service architecture

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

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

Country of ref document: EP

Kind code of ref document: A1