JP5795270B2 - 編集装置、編集方法および編集プログラム - Google Patents

編集装置、編集方法および編集プログラム Download PDF

Info

Publication number
JP5795270B2
JP5795270B2 JP2012007145A JP2012007145A JP5795270B2 JP 5795270 B2 JP5795270 B2 JP 5795270B2 JP 2012007145 A JP2012007145 A JP 2012007145A JP 2012007145 A JP2012007145 A JP 2012007145A JP 5795270 B2 JP5795270 B2 JP 5795270B2
Authority
JP
Japan
Prior art keywords
condition
column
information
area
designation area
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2012007145A
Other languages
English (en)
Other versions
JP2013148965A (ja
Inventor
後藤 久明
久明 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu FSAS Inc
Original Assignee
Fujitsu FSAS Inc
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 Fujitsu FSAS Inc filed Critical Fujitsu FSAS Inc
Priority to JP2012007145A priority Critical patent/JP5795270B2/ja
Publication of JP2013148965A publication Critical patent/JP2013148965A/ja
Application granted granted Critical
Publication of JP5795270B2 publication Critical patent/JP5795270B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、編集装置等に関する。
近年、プログラムの処理条件やポリシーなどを分かりやすく表現するためにデシジョンテーブルが利用されている。図16は、デシジョンテーブルの一例を示す図である。図16に示すように、デシジョンテーブル10は、条件記述領域10a、条件指定領域10b、動作記述領域10c、動作指定領域10dを有する。
条件記述領域10aは、条件を記述する部分である。条件指定領域10bは、条件記述領域10aの条件が満たされているか否かを指定する部分である。条件が満たされていれば、条件記述領域10aに「y」が指定され、条件が満たされていなければ「n」が指定される。
動作記述領域10cは、動作を記述する部分である。動作指定領域10dは、動作を実行するか否かを指定する部分である。動作を実行する場合には、動作指摘領域10dに「x」が指定され、動作を実行しない場合には「−」が指定される。「−」の代わりに空欄としても良い。
例えば、図16のデシジョンテーブル10において、「商品コード<000」の条件を満たし、「商品コード>999」の条件を満たさない場合には「下限エラー処理」が実行される。「商品コード<000」の条件を満たさず、「商品コード>999」の条件を満たす場合には「上限エラー処理」が実行される。「商品コード<000」および「商品コード>999」の条件を満たさない場合には「マスタファイル登録」が実行される。
利用者は、デシジョンテーブル10を作成して、処理条件やポリシーなどを整理したのちに、デシジョンテーブル10に定義した条件による動作をコンピュータに実行させるソースコードを、エディタを利用して作成する。
ここで、ソースコードを作成する利用者の負担を軽減するべく、デシジョンテーブルで定義した情報を、任意の処理言語に変換する従来技術が開示されている。この従来技術は、条件記述領域、条件指定領域、動作記述領域、動作指定領域に設定された情報の関係から、IF文を生成する。図17は、従来技術により生成されたソースコードの一例を示す図である。図17に示すように、図16に示したデシジョンテーブル10は、IF文を含むソースコードに変換される。
特開平7−152543号公報
しかしながら、上述した従来技術では、ソースコードの量が多くなってしまうという問題があった。
デシジョンテーブルには、条件指摘領域のセルに指定された情報によらず、同一の動作が定義されている領域が複数存在する場合がある。図18は、従来技術の問題点を説明するための図である。例えば、図18のデシジョンテーブルの4列目〜6列目を参照すると、30000円以上が「n」となり、シネマ利用が「y」であれば、その他の条件に関係無く、動作「2時間30分無料」が実行されることになる。このため、4列目〜6列目は、単一の列でよいことになり、その他の列は不要である。
従来技術では、上記のような不要な列を考慮していないため、従来技術を利用して、上記のようなデシジョンテーブルをそのままソースコードに変換すると、5列目〜7列目に対応するソースコードが生成されてしまい、ソースコードの量が多くなる。
開示の技術は、上記に鑑みてなされたものであって、ソースコードの量を削減可能な編集装置、編集方法および編集プログラムを提供することを目的とする。
開示の編集装置は、記憶部と編集部とを有する。記憶部は、複数の条件を各行に分けて記述する条件記述領域と、条件記述領域の条件が満たされているか否かの情報を行および列により決まるセルに指定する条件指定領域と、複数の動作を各行に分けて記述する動作記述領域と、条件記述領域の条件を満たしているか否かに応じて動作を実行するか否かの情報を各行および各列により決まるセルに指定する動作指定領域とを有するデシジョンテーブルを記憶する。編集部は、前記デシジョンテーブルの第1の列の動作指定領域の情報と、第2の列の動作指定領域の情報とが等しい場合には、第1の列の情報と、第2の列の情報とを統合する。
開示の編集装置によれば、ソースコードの量を削減することができるという効果を奏する。
図1は、本実施例に係る編集装置の構成を示す機能ブロック図である。 図2は、デシジョンテーブルのデータ構造の一例を示す図である。 図3は、本実施例に係る編集部の処理手順を示すフローチャートである。 図4は、最大化したデシジョンテーブルのデータ構造の一例を示す図である。 図5Aは、最小化処理を説明するための図(1)である。 図5Bは、最小化処理を説明するための図(2)である。 図6は、最小化処理の処理手順を示すフローチャートである。 図7は、従属判定部の処理を説明するための図である。 図8は、ソースコード生成部の処理を説明するための図(1)である。 図9は、ソースコード生成部の処理を説明するための図(2)である。 図10は、ソースコード生成部の処理を説明するための図(3)である。 図11は、ソースコード生成部の処理を説明するための図(4)である。 図12は、ソースコード生成部の処理手順を示すフローチャート(1)である。 図13は、ソースコード生成部の処理手順を示すフローチャート(2)である。 図14は、閉じ括弧出力処理の処理手順を示すフローチャートである。 図15は、末尾再帰判定処理の処理手順を示すフローチャートである。 図16は、デシジョンテーブルの一例を示す図である。 図17は、従来技術により生成されたソースコードの一例を示す図である。 図18は、従来技術の問題点を説明するための図である。
以下に、本願の開示する編集装置、編集方法および編集プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例に係る編集装置の構成について説明する。図1は、本実施例に係る編集装置の構成を示す機能ブロック図である。図1に示すように、この編集装置100は、入力部110、表示部120、記憶部130、制御部140を有する。
入力部110は、各種の情報を編集装置100に入力するための入力装置である。例えば、入力部110は、キーボードやマウス、タッチパネル等に対応する。例えば、利用者は、入力部110を操作して、デシジョンテーブル130aの生成や、ソースコード130bの修正などを行う。
表示部120は、各種の情報を表示する表示装置である。例えば、表示部120は、後述するデシジョンテーブル130a、ソースコード130b等を表示する。表示部120は、液晶モニタやタッチパネル等に対応する。
記憶部130は、デシジョンテーブル130aおよびソースコード130bを記憶する。記憶部130は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
デシジョンテーブル130aは、どのような条件の場合に、どのような動作を行うのかを定義するテーブルである。図2は、デシジョンテーブルのデータ構造の一例を示す図である。図2に示すように、このデシジョンテーブル130aは、条件記述領域131、条件指定領域132、動作記述領域133、動作指定領域134を有する。以下において、条件記述領域131、条件指定領域132、動作記述領域133、動作指定領域134について順に説明する。
条件記述領域131について説明する。複数の条件を各行に分けて記述する領域である。図2に示す例では、デシジョンテーブル130aの0行目まで、条件が記述されている。0行目から6行目までに記述された条件の意味について説明する。
0行目の条件「料金3千〜1万」は、買い物の料金が3千円以上、1万円未満であるという条件である。1行目の条件「料金1万〜3万」は、買い物の料金が1万以上、3万未満であるという条件である。2行目の条件「駐車料金3万以上」は、買い物の料金が3万以上であるという条件である。3行目の条件「シネマを視聴」は、利用者がシネマを視聴したという条件である。
条件指定領域132について説明する。条件指定領域132は、条件記述領域131の各条件が満たされているか否かの情報を記述する領域である。該当する行の条件を満たしていれば、セルに「y」が記述される。該当する行の条件を満たさない場合にはセルに「n」が記述される。
動作記述領域133について説明する。動作記述領域133は、動作を各行に分けて記述する領域である。図2に示す例では、デシジョンテーブル130aの4行目から7行目まで、動作が記述されている。4行目から7行目までに記載された動作の一例について説明する。
4行目の動作「30分無料」は、駐車料金を30分間無料にするという動作である。5行目の動作「1時間無料」は、駐車料金を1時間無料にするという動作である。6行目の動作「3時間無料」は、駐車料金を3時間無料にするという動作である。7行目の動作「6時間無料」は、駐車料金を6時間無料にするという動作である。
動作指定領域134について説明する。動作指定領域134は、該当する行の動作を実行するか否かの情報を記述する領域である。該当する行の動作を実行する場合には、「x」が記述される。以下において、デシジョンテーブル130aに定義された、条件と動作について列毎に説明する。
デシジョンテーブル130aの0列目について説明する。「料金3千〜1万」および「シネマを視聴」の条件を満たす場合には、動作は「3時間無料」となる。
デシジョンテーブル130aの1列目について説明する。「料金3千〜1万」の条件を満たす場合には、動作は「1時間無料」となる。
デシジョンテーブル130aの2列目について説明する。「料金1万〜3万」および「シネマを視聴」の条件を満たす場合には、動作は「3時間無料」となる。
デシジョンテーブル130aの3列目について説明する。「料金1万〜3万」の条件を満たす場合には、動作は「3時間無料」となる。
デシジョンテーブル130aの4列目について説明する。「料金3万以上」および「シネマ視聴」の条件を満たす場合には、動作は「6時間無料」となる。
デシジョンテーブル130aの5列目について説明する。「料金3万以上」の条件を満たす場合には、動作は「6時間無料」となる。
デシジョンテーブル130aの6列目について説明する。「シネマ視聴」の条件を満たす場合には、動作は「3時間無料」となる。
デシジョンテーブル130aの7列目について説明する。全ての条件を満たす場合には、動作は「30分無料」となる。
ところで、以下の説明では、便宜的に、デシジョンテーブルの符号として、130a、130A、130Bを利用する。デシジョンテーブル130aは、初期のデシジョンテーブルに対応する。デシジョンテーブル130Aは、最大化されたデシジョンテーブルに対応する。デシジョンテーブル130Bは、最小化されたデシジョンテーブルに対応する。デシジョンテーブル130A、130Bに関する詳しい説明は後述する。
ソースコード130bは、デシジョンテーブル130aに定義された各条件による動作をコンピュータに実行させるためのソースコードである。ソースコード130bに関する説明は後述する。
制御部140は、管理部141、編集部142、従属判定部143、ソースコード生成部144を有する。制御部140は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、制御部140は、例えば、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。
管理部141は、記憶部130に記憶された情報を管理する処理部である。例えば、管理部141は、利用者が入力部110を操作して入力したデシジョンテーブル130aを、記憶部130に記憶させる。また、管理部141は、各種の要求に応じて、デシジョンテーブル130a及びソースコード130bを、表示部120に表示させる。
編集部142は、デシジョンテーブル130aの各列の情報を基にして、デシジョンテーブル130aを最小化する処理部である。
編集部142が、デシジョンテーブル130aを最小化する場合の概念について説明する。編集部142は、デシジョンテーブル130aのある列とその他の列とを比較する。ここでは説明の便宜上、ある列を第1の列とし、その他の列を第2の列とする。編集部142は、第1の列の動作指定領域の情報と、第2の列の動作指定領域の情報とが等しい場合には、第1の列の情報と、第2の列の情報とを統合する。
なお、編集部142は、第1の列と第2の列とを統合する場合に、統合する第1の列の条件指定領域の情報と、第2の条件指定領域の情報とを比較する。編集部142は、統合する第1の列の条件指定領域の情報と、第2の条件指定領域の情報とが異なる場合には、統合後の列の条件指定領域の情報に、条件記述領域の条件が満たされていても満たされていなくてもよい旨の情報「−」を設定する。
以下において、編集部142の処理を具体的に説明する。図3は、本実施例に係る編集部の処理手順を示すフローチャートである。図3に示すように、編集部142は、デシジョンテーブル130aを取得し(ステップS101)、デシジョンテーブル130を最大化する(ステップS102)。そして、編集部142は、最小化処理を実行する(ステップS103)。
ここで、図3のステップS102に示したデシジョンテーブル130aを最大化する処理について説明する。編集部142は、条件記述領域を満たす場合「y」と満たさない場合「n」との全ての組み合わせを、条件指定領域に展開する。例えば、条件記述領域に条件が4種類存在する場合には、18種類の「y」、「n」の組み合わせが存在する。
図4は、最大化したデシジョンテーブルのデータ構造の一例を示す図である。最大化したデシジョンテーブル130Aの6列目、7列目、10列目から15列目の条件指定領域の情報は、図2に示したデシジョンテーブル130aの1列目から7列目の条件指定領域の情報に対応する。編集部142は、デシジョンテーブル130aの1列目から7列目の動作指定領域の情報を、デシジョンテーブル130Aの6列目、7列目、10列目から15列目の動作指定領域の情報に設定する。
最大化したデシジョンテーブル130Aの0列目から5列目、8列目、9列目に対する条件指定領域の情報は、デシジョンテーブル130aに存在しない。このため、編集部142は、デシジョンテーブル130Aの0列目から5列目、8列目、9列目に対する動作指定領域の情報を不明「?」に設定する。
次に、図3のステップS103に示した最小化処理について説明する。図5A、図5Bは、最小化処理を説明するための図である。図5A、図5Bに示すように、編集部142は、デシジョンテーブル130Aを分割し、表10aおよび表10bを生成する。表10aは、デシジョンテーブル130Aの0列目から7列目までの情報に対応する。表10bは、デシジョンテーブル130Aの8列目から17列目に対応する。
表10aに対する処理について説明する。編集部142は、表10aを分割し、表30aおよび表30bを生成する。表30aは、表10aの1行目以降の、0列目から3列目の情報に対応する。表30bは、表10aの1行目以降の、4列目から7列目の情報に対応する。
表30aに対する処理について説明する。編集部142は、表30aの動作指定領域の情報が全て不明「?」となっている。編集部142は、動作指定領域の情報が全て不明となっている場合には、条件指定領域および動作指定領域の情報を削除する。編集部142は、表30aの0列目から3列目までの情報を削除することで、表30cを生成する。
表30bに対する処理について説明する。編集部142は、表30bを分割し、表40aおよび表40bを生成する。表40aは、表30bの1行目以降の、0列目および1列目の情報に対応する。表40bは、表30bの1行目以降の、2列目から3列目の情報に対応する。
表40aに対する処理について説明する。編集部142は、表40aの動作指定領域の情報が全て不明「?」となっている。編集部142は、表40aの0列目および1列目の情報を削除することで、表40cを生成する。
表40bに対する処理について説明する。編集部142は、表40bのように、列の数が2つになった場合に、0列目と1列目の動作指定領域の情報が等しいか否かを判定する。編集部142は、0列目と1列目の動作指定領域の情報が異なる場合には、0列目と1列目との統合を行わず、表40bをそのままとする。
表30dを生成する処理について説明する。編集部142は、表40cと表40bとを結合することで、表30dを生成する。ここで、表40cには、条件指定領域および動作指定領域の情報が含まれていないため、表30dの1列目と2列目の情報は、表40bの情報となる。
また、表30dを生成する場合には、表30bに合わせて、条件記述領域「駐車料金3万以上」と、該当する条件指定領域に情報を設定する。ここで、表30dの「駐車料金3万以上」の情報は、表30bの「駐車料金3万以上」の行の0列目から3列目を統合したものに対応する。表30bの「駐車料金3万以上」の行の0列目から3列目には「y」と「n」とが混在しているため、表30dの「駐車料金3万以上」の情報を「−」に設定する。「−」は、「y」でも「n」でもよいことを示す。
表10cを生成する処理について説明する。編集部142は、表30cと表30dとを結合することで、表10cを生成する。ここで、表30cには、条件指定領域および動作指定領域の情報が含まれていないため、表10cの1列目と2列目の情報は、表30dの情報となる。
また、表10cを生成する場合には、表10aに合わせて、条件記述領域「駐車料金1万〜3万」と、該当する条件指定領域に情報を設定する。ここで、表10dの「駐車料金1万〜3万」の情報は、表10aの「駐車料金1万〜3万」の行の0列目から7列目を統合したものに対応する。表10aの「駐車料金1万〜3万」の行の0列目から7列目には「y」と「n」とが混在しているため、表10cの「駐車料金1万〜3万」の情報を「−」に設定する。
続いて、表10bに対する処理について説明する。編集部142は、表10bを分割し、表20aおよび表20bを生成する。表20aは、表10bの1行目以降の、0列目から3列目の情報に対応する。表20bは、表10bの1行目以降の、4列目から7列目に対応する。
表20aに対する処理について説明する。編集部142は、表20aを分割し、表50aおよび表50bを生成する。表50aは、表20aの1行目以降の、0列目および1列目の情報に対応する。表50bは、表20aの1行目以降の、2列目および3列目に対応する。
表50aに対する処理について説明する。編集部142は、表50aの動作指定領域の情報が全て不明「?」となっている。編集部142は、表50aの0列目および1列目の情報を削除することで、表50cを生成する。
表50bに対する処理について説明する。編集部142は、表50bのように、列の数が2つになった場合に、0列目と1列目の動作指定領域の情報が等しいか否かを判定する。編集部142は、0列目と1列目の動作指定領域の情報が等しい場合には、0列目と1列目との統合を行うことで、表50dを生成する。なお、表50bに対する「シネマを視聴」の条件指定領域の情報には「y」と「n」が含まれている。このように、編集部142は、条件指定領域の情報が異なっている情報を1つの列に統合する場合には、統合後の表の条件指定領域を「−」に設定する。
表20cを生成する処理について説明する。編集部142は、表50cと表50dとを結合することで、表20cを生成する。表50cには、条件指定領域および動作指定領域の情報が含まれていないため、表20cの1行目以降の、1列目の情報は、表50dの情報となる。ここで、表20cの「駐車料金3万以上」の情報は、表20aの「駐車料金3万以上」の行の0列目から3列目を統合したものに対応する。表20aの「駐車料金3万以上」の行の0列目から3列目には「y」と「n」とが混在しているため、編集部142は、表20cの「駐車料金3万以上」の情報を「−」に設定する。
表20bに対する処理について説明する。編集部142は、表20bを分割し、表60aおよび表60bを生成する。表60aは、表20bの1行目以降の、0列目および1列目の情報に対応する。表60bは、表20bの1行目以降の、2列目および3列目の情報に対応する。
表60aに対する処理について説明する。編集部142は、表60aのように、列の数が2つになった場合に、0列目と1列目の動作指定領域の情報が等しいか否かを判定する。編集部142は、0列目と1列目の動作指定領域の情報が等しい場合には、0列目と1列目との統合を行うことで、表60cを生成する。表60aの「シネマを視聴」の条件指定領域の情報には「y」と「n」が含まれている。このように、編集部142は、条件指定領域の情報が異なっている情報を1つの列に統合する場合には、統合後の表60cの条件指定領域を「−」に設定する。
表60bに対する処理について説明する。編集部142は、表60bのように、列の数が2つになった場合に、0列目と1列目の動作指定領域の情報が等しいか否かを判定する。編集部142は、0列目と1列目の動作指定領域の情報が異なる場合には、0列目と1列目との統合を行わず、表60bをそのままとする。
表20dを生成する処理について説明する。編集部142は、表60bと表60cとを結合することで、表20dを生成する。表20dの1行目以降の、0列目は、表60cの0列目の情報に対応する。表20dの1行目以降の、1列目、2列目は、表60bの0列目、1列目に対応する。
ここで、表20dの「駐車料金3万以上」の行の0列目は、表20bの「駐車料金3万以上」の行の0列目1列目を統合したものに対応する。表20bの「駐車料金3万以上」の行の0列目1列目の情報は全て「y」であるため、編集部142は、表20dの「駐車料金3万以上」の行の0列目を「y」に設定する。
また、表20dの「駐車料金3万以上」の行の1列目、2列目は、表20bの「駐車料金3万以上」の行の2列目、3列目を統合したものに対応する。表20bの「駐車料金3万以上」の行の2列目、3列目の情報は全て「n」であるため、編集部142は、表20dの「駐車料金3万以上」の行の1列目、2列目を「n」に設定する。
表10dを生成する処理について説明する。編集部142は、表20cと表20dとを結合することで、表10dを生成する。表10dの1行目以降において、1列目の情報は、表20cの1列目の情報に対応する。表10dの1行目以降において、1列目から3列目の情報は、表20dの1列目から3列目の情報に対応する。
また、表10dを生成する場合には、表10bに合わせて、記述領域「駐車料金1万〜3万」と、該当する条件指定領域の情報を設定する。ここで、表10dの「駐車料金1万〜3万」の行の0列目は、表10bの「駐車料金1万〜3万以上」の行の0列目から3列目を統合したものに対応する。表10bの「駐車料金1万〜3万以上」の行の0列目から3列目の情報は全て「y」であるため、編集部142は、表10dの「駐車料金1万〜3万」の行の0列目を「y」に設定する。
また、表10dの「駐車料金1万〜3万」の行の1列目から3列目は、表10bの「駐車料金1万〜3万以上」の行の4列目から7列目を統合したものに対応する。表10bの「駐車料金1万〜3万以上」の行の4列目から7列目の情報は全て「n」であるため、編集部142は、表10dの「駐車料金1万〜3万」の行の0列目を「n」に設定する。
デシジョンテーブル130Bを生成する処理について説明する。編集部142は、表10cと表10dとを結合することで、デシジョンテーブル130Bを生成する。ここで、デシジョンテーブル130Bの「駐車料金3千〜1万」の行の0列目、1列目は、デシジョンテーブル130Aの「駐車料金3千〜1万」の0列目から7列目を統合したものに対応する。このため、編集部142は、デシジョンテーブル130Bの「駐車料金3千〜1万」の0列目、1列目の情報を、デシジョンテーブル130Aの0列目から7列目に合わせて「y」に設定する。
デシジョンテーブル130Bの「駐車料金3千〜1万」の2列目から5列目は、デシジョンテーブル130Aの8列目から17列目を統合したものに対応する。このため、編集部142は、デシジョンテーブル130Bの「駐車料金3千〜1万」の行の2列目から5列目の情報を、デシジョンテーブル130Aの8列目から17列目に合わせて「n」に設定する。
図5Aおよび図5Bに示す処理を編集部142が実行することにより、最大化されたデシジョンテーブル130Aは、デシジョンテーブル130Bに最小化される。
次に、図3のステップS103に示した最小化処理の処理手順について説明する。図6は、最小化処理の処理手順を示すフローチャートである。編集部142は、図6に示す処理を繰り返し実行することで、デシジョンテーブル130Aからデシジョンテーブル130Bを生成する。
図6に示すように、編集部142は、列数が2未満であるか否かを判定する(ステップS110)。編集部142は、列数が2未満の場合には(ステップS110,Yes)、入力された表を戻り値に設定する(ステップS111)。
編集部142は、列数が2以上である場合には(ステップS110,No)、表を左右に分割する(ステップS112)。編集部142は、左側の表の動作指定領域が全て「?」であるか否かを判定する(ステップS113)。
編集部142は、左側の表の動作指定領域が全て「?」である場合には(ステップS113,Yes)、左側の表を削除し、右側の表を残す(ステップS114)。編集部142は、統合可能な場合に、表を統合し、戻り値に設定する(ステップS115)。ここで、統合可能であるとは、表の各列の動作指定領域の情報が等しいことを意味する。
編集部142は、左側の表の動作指定領域が全て「?」ではない場合には(ステップS113,No)、右側の表の動作指定領域が全て「?」であるか否かを判定する(ステップS116)。
編集部142は、右側の表の動作指定領域が全て「?」である場合には(ステップS116,Yes)、右側の表を削除し、左側の表を残す(ステップS117)。編集部142は、統合可能な場合に、表を統合し、戻り値に設定する(ステップS118)。
編集部142は、右側の表の動作指定領域が全て「?」ではない場合には(ステップS116,No)、左右の表は等しいか否かを判定する(ステップS119)。
編集部142は、左右の表が等しい場合には(ステップS119,Yes)、左側の表を削除し、右側の表を残す(ステップS120)。編集部142は、統合可能な場合に、表を統合し、戻り値に設定する(ステップS121)。
編集部142は、左右の表が異なる場合には(ステップS119,No)、左右の表を合成したものを戻り値に設定する(ステップS122)。
例えば、デシジョンテーブル130Aに対して、図6の処理を実行すると、図5A、図5Bに示したp0からp5の処理が実行された後に、デシジョンテーブル130Bが戻り値として生成される。
図5Aおよび図5Bの処理p0について説明する。表10aに対して、図6の処理を実行すると、戻り値として、表10cが生成される。また、表10bに対して、図6の処理を実行すると、戻り値として、表10dが生成される。そして、表10cと表10dとが結合されて、デシジョンテーブル130Bが生成される。
図5Aの処理p1について説明する。表30bに対して、図6の処理を実行すると、戻り値として、表30dが生成される。そして、表30cと表30dとが結合されて、表10cが生成される。
図5Bの処理p2について説明する。表20aに対して、図6の処理を実行すると、戻り値として表20cが生成される。また、表20bに対して、図6の処理を実行すると、戻り値として表20dが生成される。そして、表20cと表20dとが結合されて、表10dが生成される。
図1の説明に戻る。従属判定部143は、デシジョンテーブル130aの条件記述領域に記載された各条件を走査し、所定の条件に従属する条件が存在する場合には、従属関係をデシジョンテーブル130aに設定する。例えば、従属判定部143は、従属関係を設定したデシジョンテーブル130aを、表示部120に表示させる。
図7は、従属判定部の処理を説明するための図である。ここでは、説明の便宜上、デシジョンテーブル130aのデータ構造を、図7に示すものとする。デシジョンテーブル130aは、AファイルとBファイルとマージして昇順に出力する処理を定義したデシジョンテーブルである。
デシジョンテーブルでは、上の条件から順に、条件に対応する情報が「y」であるか「n」であるかを判定する。ここで、所定の条件に従属する条件が存在している場合には、従属先の条件が、従属する条件よりも上の行に存在しないと、エラーとなる。図7に示す例では、条件「A>B」が、条件「A終了」、条件「B終了」に従属する条件となっている。このため、条件「A終了」、条件「B終了」が、条件「A>B」よりも上に設定されないと、エラーとなる。このため、従属判定部143は、条件「A>B」の従属先となる条件「A終了」、「B終了」を、条件「A>B」に対応付けて設定し、表示部120に表示させる。また、従属判定部143は、従属先の条件が、従属する条件よりも下の行に設定されないように制御する。例えば、従属判定部143は、従属先の条件が、従属する条件よりも下の行に設定された場合には、従属先の条件の行を、従属する条件の行よりも上に移動させる。このように、従属関係に基づいて、従属先の条件と、従属する条件の位置を制御することで、デシジョンテーブル130aの条件記述領域に発生し得るエラーを未然に防止することができる。
従属判定部143は、従属関係をどのように判定しても良い。例えば、所定の値を利用する条件式や、数式を含む条件を、構文解析などを用いて検出する。従属判定部143は、検出した条件に含まれる値に関連する条件を、他の行の条件から検出することで、従属関係を判定する。従属判定部143は、かかる処理を実行して、従属する条件に対応付けて、従属先の条件を設定する。
図1の説明に戻る。ソースコード生成部144は、デシジョンテーブル130aを基にして、ソースコード130bを生成する処理部である。
ソースコード生成部144は、デシジョンテーブル130aのセルを0行目0列目から順次走査して、デシジョンテーブル130aの末尾の行で再帰の動作を行う情報が指定されたセルを検出する。また、ソースコード生成部144は、末尾再帰動作の検出結果を基にして、繰り返しを実行するコードを生成する。図8〜図11を用いて、ソースコード生成部144の処理の一例について説明する。
図8〜図11は、ソースコード生成部の処理を説明するための図である。ここでは、説明の便宜上、デシジョンテーブル130aのデータ構造を、図8に示すものとする。デシジョンテーブル130aは、条件記述領域131、条件指定領域132、動作記述領域133、動作指定領域134を有する。各領域131〜134に関する説明は、図2の説明で行った説明と同様である。
図8に示したデシジョンテーブル130aの条件記述領域131に含まれる各条件について説明する。
0行目の条件「t[-1][j]==""」について説明する。条件「t[-1][j]==""」は、デシジョンテーブル130aの−1行目、j列目のセルに情報が含まれていないという条件である。jは変数であり、所定の初期値が設定される。以下に示すjも同様である。なお、−1行目は、0行目の1つ上の行に対応する。
1行目の条件「t[i][-1]==""」について説明する。条件「t[i][-1]==""」は、デシジョンテーブル130aのi行目、−1列目のセルに情報が含まれていないという条件である。iは変数であり、所定の初期値が設定される。以下に示すiも同様である。なお、−1列目は、0列目の一つ左の列に対応する。
2行目の条件「j=0」について説明する。条件「j=0」は、変数jの値が0であるという条件である。
3行目の条件「t[i][j-1]==t[i][j]」について説明する。条件「t[i][j-1]==t[i][j]」は、デシジョンテーブル130aのi行目、j−1列目のセルの情報と、i行目、j列目のセルの情報とが等しいという条件である。
4行目の条件「t[i][j]=="y"」について説明する。条件「t[i][j]=="y"」は、デシジョンテーブル130aのi行目、j列目のセルの情報が「y」であるという条件である。
5行目の条件「t[i][j]=="n"」について説明する。条件「t[i][j]=="n"」は、デシジョンテーブル130aのi行目、j列目のセルの情報が「n」であるという条件である。
6行目の条件「t[i][j]=="x"」について説明する。条件「t[i][j]=="x"」は、デシジョンテーブル130aのi行目、j列目のセルの情報が「x」であるという条件である。
図8に示したデシジョンテーブル130aの動作記述領域133に含まれる各条件について説明する。
7行目の動作「put("if")」について説明する。動作「put("if")」は、「if」を出力する動作である。
8行目の動作「put("else")」について説明する。動作「put("else")」は、「else」を出力する動作である。
9行目の動作「put(x)」について説明する。動作「put(x)」は、「x」を出力する動作である。
10行目の動作「l++」について説明する。動作「l++」は、変数lの値に1を加算した値によって、lの値を更新する動作である。
11行目の動作「i++」について説明する。動作「i++」は、変数iの値に1を加算した値によって、iの値を更新する動作である。
12行目の動作「i--」について説明する。動作「i--」は、変数iの値から1を減算した値によって、iの値を更新する動作である。
13行目の動作「put("}")」について説明する。動作「put("}")」は、図9に示すデシジョンテーブルに対応する処理を行う。
図9の0列目に示すように、iの値が0未満の場合には、動作「put("}")」は何も動作しない。また、図9の1列目に示すように、iの値が0以上であり、デシジョンテーブル130aのi行目、j列目が「y」である場合には、動作「put("}")」は何も動作しない。
図9の2列目に示すように、iの値が0以上であり、デシジョンテーブル130aのi行目、j列目が「n」の場合には、動作「put("}")」は、lの値から1を減算した値によって、lの値を更新する。また、動作「put("}")」は、「}」を出力する。また、動作「put("}")」は、iの値から1を減算した値によって、iの値を更新する。
図9の3列目に示すように、iの値が0以上であり、デシジョンテーブル130aのi行目、j列目が「y」でも「n」でもない場合には、動作「put("}")」は、iの値から1を減算した値によって、iの値を更新する。
図8に戻り、14行目の動作「j++」について説明する。動作「j++」は、変数jの値に1を加算した値によって、jの値を更新する動作である。
15行目の動作「i=0」について説明する。動作「i=0」は、変数iの値に0を設定する動作である。
16行目の動作「l=0」について説明する。動作「l=0」は、変数lの値に0を設定する動作である。
17行目の動作「dt()」について説明する。動作「dt()」は、再帰の動作である。動作「dt()」は、デシジョンテーブル130aを再度呼び出し、デシジョンテーブル130aと同じ処理を再度行う。図8では一例として、動作「dt()」としたが、動作「call dt()」としても良い。
ソースコード生成部144が、図8に示したデジションテーブル130aからソースコードを生成すると、図10の1行目から図11の83行目に示すソースコード130bが生成される。
ここで、ソースコード生成部144の処理手順について説明する。図12および図13は、ソースコード生成部の処理手順を示すフローチャートである。ソースコード生成部144は、デシジョンテーブル130aの0行目0列目のセルから、走査を開始する。
図12に示すように、ソースコード生成部144は、末尾再帰の移動先となるコードを出力する(ステップS201)。ステップS201において、例えば、ソースコード生成部144は、図10に示すソースコード130bの1行目に示すコード「dt:」を出力する。かかるコードは、図8に示すデシジョンテーブル130aの−1行目、−1列目のコードに対応する。
ソースコード生成部144は、列の終わりであるか否かを判定する(ステップS202)。図8に示すデシジョンテーブル130aを例にすると、列の終わりは、14行目に対応する。
ソースコード生成部144は、列の終わりである場合には(ステップS202,Yes)、処理を終了する。一方、列の終わりではない場合には(ステップS202,No)、行の終わりか否かを判定する(ステップS203)。図8に示すデシジョンテーブル130aを例にすると、行の終わりは、18行目に対応する。
ソースコード生成部144は、行の終わりである場合には(ステップS203,Yes)、行を1つ戻す(ステップS204)。ソースコード生成部144は、閉じ括弧出力処理を実行する(ステップS205)。
ソースコード生成部144は、列を1つ進め(ステップS206)、行を0行目に戻す(ステップS207)。ソースコード生成部144は、インデントを0に戻し(ステップS208)、ステップS202に移行する。ここで、インデントは、ソースコード130b上の位置を示すものである。インデントを0に戻すとは、ソースコード130bのインデントの位置を、左端によせることを意味する。
ソースコード生成部144は、行の終わりでない場合に(ステップS203,No)、左端の列であるか否かを判定する(ステップS209)。デシジョンテーブル130aの左端の列は、0列目に対応する。
ソースコード生成部144は、左端の列ではない場合には(ステップS209)、図13のステップS218に移行する。一方、ソースコード生成部144は、左端の列である場合には(ステップS209,Yes)、セルがyであるか否かを判定する(ステップS210)。
ソースコード生成部144は、セルがyである場合には(ステップS210,Yes)、”if”と、現在のセルの行に対応する条件記述領域の文字とを出力する(ステップS211)。例えば、図8のデシジョンテーブル130aの0行目、0列目のセルはyである。現在のセルが0行目、0列目のセルである場合には、ソースコード生成部144は、図10の2行目に示すように「if(t[-1][i]==""){」を出力する。
ソースコード生成部144は、インデントを1つ進める(ステップS212)。インデントを1つ進めることは、ソースコード上のインデントを右側に1つ進めることを意味する。ソースコード生成部144は、行を1つ進め(ステップS213)、ステップS202に移行する。
ソースコード生成部144は、セルがyではない場合には(ステップS210,No)、セルがnであるか否かを判定する(ステップS214)。ソースコード生成部144は、セルがnである場合には(ステップS214,Yes)、”else”を出力し(ステップS215)、ステップS212に移行する。例えば、図8のデジションテーブル130aの0行目、1列目のセルはnである。現在のセルが0行目、1列目のセルである場合には、ソースコード生成部144は、図10の2行目に示す「}else{」を出力する。
ソースコード生成部144は、セルがnではない場合には(ステップS214,No)、セルがxであるか否かを判定する(ステップS216)。ソースコード生成部144は、セルがxである場合には(ステップS216,Yes)、末尾再帰判定処理を実行し(ステップS217)、ステップS213に移行する。一方、ソースコード生成部144は、セルがxではない場合には(ステップS216,No)、ステップS213に移行する。
図13の説明に移行する。ソースコード生成部144は、現在のセルの情報が、左隣のセルの情報と同じか否かを判定する(ステップS218)。例えば、図8のデシジョンテーブル130aの0行目、2列目のセルの情報は、左隣のセルの情報と同じである。
ソースコード生成部144は、左隣のセルの情報と同じの場合には(ステップS218,Yes)、セルがyであるか否かを判定する(ステップS219)。ソースコード生成部144は、セルがyである場合には(ステップS219,Yes)、インデントを1つ進める(ステップS220)。ソースコード生成部144は、行を1つ進め(ステップS221)、図12のステップS202に移行する。
一方、ソースコード生成部144は、セルがyではない場合には(ステップS219,No)、セルがnであるか否かを判定する(ステップS222)。ソースコード生成部144は、セルがnである場合には(ステップS222,Yes)、ステップS220に移行する。
一方、ソースコード生成部144は、セルがnではない場合には(ステップS222,No)、セルがxであるか否かを判定する(ステップS223)。ソースコード生成部144は、セルがxではない場合には(ステップS223,No)、ステップS221に移行する。
一方、ソースコード生成部144は、セルがxである場合には(ステップS223,Yes)、末尾再帰判定処理を実行し(ステップS224)、ステップS221に移行する。
図13のステップS218の説明に戻る。ソースコード生成部144は、左隣のセルの情報と異なる場合には(ステップS218,No)、セルがyであるか否かを判定する(ステップS225)。
ソースコード生成部144は、セルがyである場合には(ステップS225,Yes)、”if”と、現在のセルの行に対応する条件記述領域の文字とを出力する(ステップS226)。ソースコード生成部144は、インデントを1つ進め(ステップS227)、ステップS221に移行する。
一方、ソースコード生成部144は、セルがyではない場合には(ステップS225,No)、セルがnであるか否かを判定する(ステップS228)。ソースコード生成部144は、セルがnである場合には(ステップS228,Yes)、”else”を出力し(ステップS229)、ステップS227に移行する。
一方、ソースコード生成部144は、セルがnではない場合には(ステップS228,No)、セルがxであるか否かを判定する(ステップS230)。ソースコード生成部144は、セルがxではない場合には(ステップS230,No)、ステップS221に移行する。
一方、ソースコード生成部144は、セルがxである場合は(ステップS230,Yes)、現在のセルの行に対応する動作記述領域の文字を出力し(ステップS231)、ステップS221に移行する。例えば、図8のデシジョンテーブル130aの12行目、1列目のセルはnである。現在のセルが12行目、1列目のセルである場合には、図10の5行目に示すように、「i--;」を出力する。
次に、図12のステップS205に示した閉じ括弧出力処理について説明する。閉じ括弧出力処理は、「}」を条件に応じて出力する処理である。図14は、閉じ括弧出力処理の処理手順を示すフローチャートである。
図14に示すように、ソースコード生成部144は、行が先頭であるか否かを判定する(ステップS251)。図8のデシジョンテーブル130aを例にすると、行の先頭は、0行目に対応する。
ソースコード生成部144は、行が先頭ではない場合には(ステップS251,No)、閉じ括弧出力処理を終了する。
ソースコード生成部144は、行が先頭では場合には(ステップS251,Yes)、セルがyであるか否かを判定する(ステップS252)。ソースコード生成部144は、セルがyである場合には(ステップS252,Yes)、閉じ括弧出力処理を終了する。
ソースコード生成部144は、セルがyでない場合には(ステップS252,No)、セルがnであるか否かを判定する(ステップS253)。ソースコード生成部144は、セルがnである場合には(ステップS253,Yes)、インデントを1つ戻す(ステップS254)。インデントを1つ戻すことは、ソースコード上のインデントを左側に1つ戻すことを意味する。
ソースコード生成部144は、”}”を出力し(ステップS255)、行を1つ進め(ステップS256)、ステップS251に移行する。
一方、ソースコード生成部144は、セルがnでない場合には(ステップS253,No)行を1つ戻し(ステップS257)、ステップS251に移行する。
次に、図12および図13のステップS217、S224に示した末尾再帰判定処理について説明する。実施例の末尾再帰判定処理は、デシジョンテーブル130aの末尾の行で再帰の動作を行う情報が指定されたセルを検出した場合に、繰り返しを実行するコード「goto文」を出力する処理である。図15は、本実施例に係る末尾再帰判定処理の処理手順を示すフローチャートである。
図15に示すように、ソースコード生成部144は、現在のセルの行が末尾であるか否かを判定する(ステップS281)。図8に示すデシジョンテーブル130aを例にすると、末尾となる行は、17行目となる。
ソースコード生成部144は、現在のセルの行が末尾である場合には(ステップS281,Yes)、現在のセルの行に対応する動作記述領域の動作が再帰であるか否かを判定する(ステップS282)。
ステップS282において、ソースコード生成部144が再帰であるか否かを判定する処理の一例について説明する。ソースコード生成部144は、現在のセルの行に対応する動作記述領域の動作を示す文字列に対して構文解析を実行する。ソースコード生成部144は、構文解析した文字列と、デシジョンテーブル130aの−1行目−1列目の文字列とが等しい場合に、再帰の動作であると判定する。
例えば、デシジョンテーブル130aの17行目の文字列「dt()」と、デシジョンテーブル130aの−1行目−列の文字列「dt()」とは等しい文字である。このため、デシジョンテーブル130aの17行目の文字列「dt()」の動作は、再帰を示す。
なお、ソースコード生成部144は、その他の如何なる従来技術を利用して、動作が再帰であるか否かを判定しても良い。例えば、該当する動作にcall文などが付与され、デシジョンテーブルを呼び出している場合にも、再帰の動作であると判定しても良い。
図15のステップS282の説明に戻る。ソースコード生成部144は、再帰である場合には(ステップS282,Yes)、goto文を出力し(ステップS283)、末尾再帰判定処理を終了する。
例えば、図8のデシジョンテーブル130aにおいて、17行目1列目のセルは、該当する行が末尾であり、行に対応する動作が再帰「dt()」である。このため、ソースコード生成部144は、現在のセルがデシジョンテーブル130aの17行目1列目の場合には、図10の10行目に示すように「goto dt;」を出力する。
ところで、ソースコード生成部144は、ステップS281において、現在のセルの行が末尾ではない場合には(ステップS281,No)、動作記述領域の文字を出力し(ステップS284)、末尾再帰判定処理を終了する。
また、ソースコード生成部144は、ステップS182において、再帰でない場合には(ステップS282,No)、ステップS284に移行する。
次に、本実施例にかかる編集装置100の効果について説明する。編集装置100は、デシジョンテーブル130aの動作指定領域の各列の情報を比較し、統合可能である場合には、各列を統合することで、最小化したデシジョンテーブル130Bを生成する。このため、最小化したデシジョンテーブル130Bからソースコード130bを生成することで、ソースコードの量を削減することができる。
また、編集装置100は、デシジョンテーブル130aの各列を統合する場合に、統合対象の条件指定領域の情報に、「y」と「n」とが混在する場合には、条件指定領域の情報を、yでもnでもよい「−」に設定する。このため、デシジョンテーブル130aを適切に最小化することができる。
また、編集装置100は、デシジョンテーブル130aの条件記述領域に記載された各条件を走査し、所定の条件に従属する条件が存在する場合には、従属先の条件の行が従属する条件の行よりも上となるようにデシジョンテーブル130bを設定する。このように、編集装置100が、デシジョンテーブル130aに設定することで、デシジョンテーブルの条件記述領域に発生し得るエラーを未然に防止することができる。
ところで、本実施例において説明した編集装置100の処理は一例である。例えば、編集装置100は、サーバの機能を有していても良い。編集装置100は、ネットワークを介して、端末装置からデシジョンテーブルのデータを受信し、受信したデシジョンテーブルを基にして上記処理を実行し、デジションテーブルの最小化し、ソースコードを生成しても良い。ソースコード生成装置200は、最小化したデシジョンテーブルを端末装置に送信しても良いし、ソースコードを送信しても良い。
本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図1に示した編集装置100の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。なお、本実施例で説明した各種の処理手順は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。また、上記の実施例1、2で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することによって実現することができる。
100 編集装置
110 入力部
120 表示部
130 記憶部
140 制御部

Claims (6)

  1. 複数の条件を各行に分けて記述する条件記述領域と、前記条件記述領域の条件が満たされているか否かの情報を行および列により決まるセルに指定する条件指定領域と、複数の動作を各行に分けて記述する動作記述領域と、前記条件記述領域の条件を満たしているか否かに応じて前記動作を実行するか否かの情報を各行および各列により決まるセルに指定する動作指定領域とを有するデシジョンテーブルを記憶する記憶部と、
    前記デシジョンテーブルの第1の列の動作指定領域の情報と、第2の列の動作指定領域の情報とが等しい場合には、前記第1の列の情報と、前記第2の列の情報とを統合する編集部と
    前記条件記述領域に記載された条件を走査し、所定の条件に従属する条件が存在する場合には、従属先の条件の行が従属する条件の行よりも上になるように、前記デシジョンテーブルを設定する従属判定部と
    を有することを特徴とする編集装置。
  2. 前記編集部は、統合する前記第1の列の条件指定領域の情報と、前記第2の列の条件指定領域の情報とを比較し、統合する前記第1の列の条件指定領域の情報と、前記第2の列の条件指定領域の情報とが異なる場合には、統合後の列の条件指定領域の情報に、条件記述領域の条件が満たされていても満たされていなくてもよい旨の情報を設定することを特徴とする請求項1に記載の編集装置。
  3. コンピュータが実行する編集方法であって、
    複数の条件を各行に分けて記述する条件記述領域と、前記条件記述領域の条件が満たされているか否かの情報を行および列により決まるセルに指定する条件指定領域と、複数の動作を各行に分けて記述する動作記述領域と、前記条件記述領域の条件を満たしているか否かに応じて前記動作を実行するか否かの情報を各行および各列により決まるセルに指定する動作指定領域とを有するデシジョンテーブルを記憶装置から読み出し、
    前記デシジョンテーブルの第1の列の動作指定領域の情報と、第2の列の動作指定領域の情報とが等しい場合には、前記第1の列の情報と、前記第2の列の情報とを統合し、
    前記条件記述領域に記載された条件を走査し、所定の条件に従属する条件が存在する場合には、従属先の条件の行が従属する条件の行よりも上になるように、前記デシジョンテーブルを設定する
    各処理を実行することを特徴とする編集方法。
  4. 前記統合する処理は、統合する前記第1の列の条件指定領域の情報と、前記第2の列の条件指定領域の情報とを比較し、統合する前記第1の列の条件指定領域の情報と、前記第2の列の条件指定領域の情報とが異なる場合には、統合後の列の条件指定領域の情報に、条件記述領域の条件が満たされていても満たされていなくてもよい旨の情報を設定することを特徴とする請求項に記載の編集方法。
  5. コンピュータに、
    複数の条件を各行に分けて記述する条件記述領域と、前記条件記述領域の条件が満たされているか否かの情報を行および列により決まるセルに指定する条件指定領域と、複数の動作を各行に分けて記述する動作記述領域と、前記条件記述領域の条件を満たしているか否かに応じて前記動作を実行するか否かの情報を各行および各列により決まるセルに指定する動作指定領域とを有するデシジョンテーブルを記憶装置から読み出し、
    前記デシジョンテーブルの第1の列の動作指定領域の情報と、第2の列の動作指定領域の情報とが等しい場合には、前記第1の列の情報と、前記第2の列の情報とを統合し、
    前記条件記述領域に記載された条件を走査し、所定の条件に従属する条件が存在する場合には、従属先の条件の行が従属する条件の行よりも上になるように、前記デシジョンテーブルを設定する
    各処理を実行させることを特徴とする編集プログラム。
  6. 前記統合する処理は、統合する前記第1の列の条件指定領域の情報と、前記第2の列の条件指定領域の情報とを比較し、統合する前記第1の列の条件指定領域の情報と、前記第2の列の条件指定領域の情報とが異なる場合には、統合後の列の条件指定領域の情報に、条件記述領域の条件が満たされていても満たされていなくてもよい旨の情報を設定することを特徴とする請求項に記載の編集プログラム。
JP2012007145A 2012-01-17 2012-01-17 編集装置、編集方法および編集プログラム Expired - Fee Related JP5795270B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012007145A JP5795270B2 (ja) 2012-01-17 2012-01-17 編集装置、編集方法および編集プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012007145A JP5795270B2 (ja) 2012-01-17 2012-01-17 編集装置、編集方法および編集プログラム

Publications (2)

Publication Number Publication Date
JP2013148965A JP2013148965A (ja) 2013-08-01
JP5795270B2 true JP5795270B2 (ja) 2015-10-14

Family

ID=49046433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012007145A Expired - Fee Related JP5795270B2 (ja) 2012-01-17 2012-01-17 編集装置、編集方法および編集プログラム

Country Status (1)

Country Link
JP (1) JP5795270B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6305356B2 (ja) * 2015-01-29 2018-04-04 東芝デジタルソリューションズ株式会社 仕様抽出装置、仕様抽出方法およびプログラム
JP6077694B1 (ja) * 2016-03-14 2017-02-08 株式会社富士通エフサス デシジョンテーブル生成装置、デシジョンテーブル生成方法およびデシジョンテーブル生成プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273142A (ja) * 2000-03-28 2001-10-05 Meidensha Corp デシジョンテーブルの構造

Also Published As

Publication number Publication date
JP2013148965A (ja) 2013-08-01

Similar Documents

Publication Publication Date Title
US20210034990A1 (en) Rule Assignments and Templating
US7761457B2 (en) Creation of segmentation definitions
US9117007B2 (en) Visualization of streaming real-time data
US20160266766A1 (en) Three dimensional conditional formatting
US8910064B2 (en) GUI program creation supporting apparatus, GUI program creation support method, computer-readable recording medium and integrated circuit
KR101773574B1 (ko) 데이터 테이블의 차트 시각화 방법
JP7206419B2 (ja) 人工知能推奨モデルの特徴処理方法、装置、電子機器、及びコンピュータプログラム
CN106599039B (zh) 一种支持关系数据库数据自由组合嵌套的统计表述方法
CN111459993B (zh) 基于行为分析的配置更新方法、装置、设备及存储介质
CN111046283A (zh) 特征选择方法、装置、设备及存储介质
JP5795270B2 (ja) 編集装置、編集方法および編集プログラム
González et al. Developing web applications for different architectures: The MoWebA approach
US6868297B1 (en) Method and system for designing objects using functional modeling
CN112084753B (zh) 一种文档辅助编辑的方法和系统
JP5812878B2 (ja) ソースコード生成装置、ソースコード生成方法およびソースコード生成プログラム
US11061664B2 (en) Code management system and code management method
Ding et al. A compositional analysis method for petri-net models
CN113506099A (zh) 申报业务的配置系统、方法、计算机设备和存储介质
CN109635281B (zh) 业务导图中更新节点的方法和装置
KR20220067820A (ko) 이종 플랫폼 사이의 상호운용성을 증대하기 위한 빅데이터 통합처리 사용자 인터페이스 방법
US7650260B1 (en) Method and system for designing objects using functional object representation
US10515330B2 (en) Real time visibility of process lifecycle
JP4328623B2 (ja) オーディオビジュアルコンテンツの分散型意味的記述
JP2004227281A (ja) 関連性ネットワーク型データの表示方法及び装置
KR102456646B1 (ko) 문자열의 의도 분류 방법 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150717

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150812

R150 Certificate of patent or registration of utility model

Ref document number: 5795270

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees