[go: up one dir, main page]

JP5968186B2 - プログラム作成支援装置及びプログラム - Google Patents

プログラム作成支援装置及びプログラム Download PDF

Info

Publication number
JP5968186B2
JP5968186B2 JP2012227988A JP2012227988A JP5968186B2 JP 5968186 B2 JP5968186 B2 JP 5968186B2 JP 2012227988 A JP2012227988 A JP 2012227988A JP 2012227988 A JP2012227988 A JP 2012227988A JP 5968186 B2 JP5968186 B2 JP 5968186B2
Authority
JP
Japan
Prior art keywords
comment
name
symbol
unit
candidate
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
JP2012227988A
Other languages
English (en)
Other versions
JP2014081715A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012227988A priority Critical patent/JP5968186B2/ja
Publication of JP2014081715A publication Critical patent/JP2014081715A/ja
Application granted granted Critical
Publication of JP5968186B2 publication Critical patent/JP5968186B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、プログラムの作成を支援する技術に関し、特に、シンボル名の決定を支援する技術に関する。
大規模なプログラムを複数の作業者が共同して開発するようなケースでは、各作業者は、当該企業あるいは開発チームにおいて予め決められたコーディングのルールに則って、コーディング作業を行うのが一般的である。
例えば、特許文献1には、作成されたソースコードのコーディングスタイルが、予め定義されたコーディング規則に適合しているか否かを自動的に診断し、その結果をユーザに提示する装置が提案されている。
特開平6−28165号公報
コーディング規約の主たるものとして、命名規約が挙げられる。命名規約とは、関数名や変数名等のシンボル名を決定するためのルールを定めたものである。各シンボル名が、ルール通りに作成されると、ソースコードの可読性や視認性が向上し、保守性を高めるというメリットが得られる。
その一方、各作業者が、コーディングの際、命名規約を遵守して逐一シンボル名を決定するのは容易な作業とはいえず、シンボル数が多い場合では、大きな作業負担になり、コーディングの作業効率を低下させてしまうという問題もある。
したがって、プログラムのコーディング作業の際のこのようなシンボル名の決定に関し、作業者を支援する有効な技術の提案が望まれているのが実情である。
本発明は、上記実情に鑑みてになされたものであり、プログラム作成において、命名規約に則ったシンボル名の決定を支援するプログラム作成支援装置及びプログラムを提供することを目的とする。
上記目的を達成するため、本発明に係るプログラム作成支援装置は、
ユーザからの操作を受け付ける入力部と、
所定の形態素と、見出し語とが対応付けられたコメント解析用辞書データと、前記見出し語と、1又は複数の英語表記とが対応付けられた変換辞書データと、シンボルの種別毎に、コメントパターンと、名称生成パターンとが対応付けられた命名規約データと、を記憶するデータ記憶部と、
ユーザによる所定操作に応じて、ソースコード中のコメント文から、指定されたシンボルに対応するコメント部分を抽出し、抽出したコメント部分を前記コメント解析用辞書データを用いて解析するコメント解析部と、
前記命名規約データから、前記コメント解析部の解析結果に対応する前記コメントパターンを検索することで、前記コメント部分に対応する前記名称生成パターンを取得すると共に、前記コメント解析部の解析結果と、前記変換辞書データと、に基づいて、前記コメント部分に含まれる見出し語に対応する英語表記を取得し、取得した英語表記と、取得した前記名称生成パターンと、に基づいて、前記コメント文における前記指定されたシンボルの名称候補を生成するシンボル名候補生成部と、を備えることを特徴とする。
本発明によれば、ソースコードのコメント文から、指定されたシンボルの名称候補を自動的に生成する。このため、ユーザは、シンボル名を決定する負担から解放され、作業効率の向上が図れる。また、シンボル名が、命名規約に則って生成されるため、ソースコードの可読性や視認性が向上し、保守性が高まるという効果を奏する。
本発明の実施形態1に係るプログラム作成支援装置の構成を示すブロック図である。 ソースコードに記述されるコメント文の一例を示す図である。 解析用辞書データの一例を示す図である。 解析用辞書データにおける各形態素の品詞の種類を示す図である。 変換辞書データの一例を示す図である。 命名規約データの一例を示す図である。 実施形態1のプログラム作成支援装置により生成された関数名候補の一覧(その1)を示す図である。 実施形態1のプログラム作成支援装置により生成された関数名候補の一覧(その2)を示す図である。 シンボル名候補生成処理の手順を示すフローチャートである。 シンボル指定画面の一例を示す図である。 関数コメント解析処理の手順を示すフローチャートである。 引数コメント解析処理の手順を示すフローチャートである。 関数名候補生成処理の手順を示すフローチャートである。 不適切な関数コメントの一例を示す図である。 エラーメッセージ画面の一例を示す図である。 実施形態1のプログラム作成支援装置により生成された引数名候補の一覧を示す図である。 本発明の実施形態2に係るプログラム作成支援装置の構成を示すブロック図である。 関係辞書データの一例を示す図である。 作成済みのソースコードの一例を示す図である。 関数候補順位決定処理の手順を示すフローチャートである。 最関連関数名決定処理の手順を示すフローチャートである。
以下、本発明の実施形態について図面を参照して詳細に説明する。
(実施形態1)
図1は、本発明の実施形態1に係るプログラム作成支援装置1の構成を示すブロック図である。このプログラム作成支援装置1は、プログラムのコーディング作業を支援する装置である。
プログラム作成支援装置1は、一般的なパーソナルコンピュータであり、図1に示すように、入力部10と、表示部11と、データ記憶部12と、制御部13と、を備える。
入力部10は、キーボード、マウス、キーパッド、タッチパッドやタッチパネル等から構成され、ユーザからの入力操作を受け付け、受け付けた入力操作に係る信号を制御部13に送出する。表示部11は、CRTや液晶モニタ等から構成され、制御部13の制御の下、ユーザ操作用の画面等の表示を行う。
データ記憶部12は、読み書き可能な不揮発性の半導体メモリやハードディスクドライブ等から構成される外部記憶装置であり、後述する複数の辞書データ、命名規約データ、コーディング作業を支援するためプログラム、作成済みのソースコード等、本発明特有のデータ及びプログラムや、その他、プログラム作成支援装置1で使用される様々なデータ等を記憶する。
制御部13は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を含んで構成され、入力部10、表示部11、データ記憶部12を制御し、それに付随して、これらとの間でデータの授受を行う。制御部13は、機能的には、コメント解析部130と、シンボル名候補生成部131と、を備える。これらの各機能部は、CPU等が、データ記憶部12に記憶されている上記のプログラムを実行することで実現する。
コメント解析部130は、ユーザが作成中(コーディング中)のソースコードにおけるコメント文の解析を行う。より詳細には、コメント解析部130は、作成対象となる関数のソースコードの先頭から数行に亘って記述されるコメント文(図2参照)において、ユーザが指定したシンボルの種類(本実施形態では、関数又は引数)についてのコメント部分を解析する。
本実施形態では、コメント文には、図2に示すように、「関数名」、「機能」、「引数」、「戻り値」の各項目が含まれており、「関数名」には、決定した関数名が記述され(図2の例では、空白)、「機能」には、この関数の機能説明が記述され、「引数」には、引数(パラメータ)の型、引数名(図2の例では、空白)及び意味が記述され、「戻り値」には、戻り値及び意味が記述されるものとする。なお、関数名、引数名が未決定であっても、ユーザは、例えば、dmy()やXXXXX()等、ダミー名を記述してもよい。
コメント解析部130は、ユーザにより、名称を決定したいシンボルとして「関数」が指定されると、コメント文において、“機能:”から“引数:”までに記述されている部分の解析を行う。また、ユーザにより「引数」が指定されると、“引数:”から“戻り値:”までに記述されている部分の解析を行う。
コメント解析部130は、関数又は引数のコメント部分を形態素解析すると共に、データ記憶部12に記憶されている解析用辞書データ120を用いて、各形態素を正規化した語(見出し語)に変換する。解析用辞書データ120は、図3に示すように、「形態素」と、「見出し語」と、含むレコードが複数登録されたデータテーブルである。図4に、各形態素の品詞の種類を示す。コメント解析部130は、解析した結果をシンボル名候補生成部131に供給する。
シンボル名候補生成部131は、コメント解析部130の解析結果と、データ記憶部12に記憶されている変換辞書データ121及び命名規約データ122と、に基づいて、当該命名対象のシンボル(関数又は引数)の名称候補を生成する。変換辞書データ121とは、図5に示すように、「見出し語」と、「カテゴリ」と、「英語表記」と、を含むレコードが複数登録されたデータテーブルである。
「見出し語」には、コメントに含まれる可能性のある形態素を正規化した語が設定される。「カテゴリ」には、作成対象のプログラムにおいて、「見出し語」が属する概念上のカテゴリが設定される。「英語表記」には、「見出し語」に対応する英語のテキストデータ(文字列)が設定される。また「英語表記」には、「フル表記」、「短縮1」〜「短縮3」が含まれる。「フル表記」とは、「見出し語」に対応する英語を略さずに表した英語のテキストデータが設定される。「短縮1」〜「短縮3」は、「見出し語」に対応する英語を省略して表したテキストデータが設定され、短縮の度合い(短縮レベル)は、「短縮1」<「短縮2」<「短縮3」となっている。なお、「見出し語」によっては、「短縮2」あるいは「短縮2」及び「短縮3」に設定されるデータが存在しない場合もある。
命名規約データ122は、シンボル名を生成するためのルールを定めたデータテーブルである。図6に示すように、命名規約データ122には、「シンボル」と、「コメントパターン」と、「名称生成パターン」と、を含むレコードが複数登録されている。
「シンボル」には、関数又は引数を示す情報が設定される。「コメントパターン」には、コメント内容をパターン化した情報が設定される。「名称生成パターン」には、シンボル名の生成パターンが設定される。なお、「名称生成パターン」に、複数のパターンが設定される場合もある。
例えば、図2に示すコメント文の場合では、関数に対応するコメント、即ち、“シリアルでフレームを送る”には、“シリアル”、“フレーム”及び“送信”の3つの見出し語が含まれる。したがって、このコメントには、<通信I/F>、<通信データ>及び<通信処理>といった複数のカテゴリが含まれていることなる。このため、このコメント内容は、命名規約データ122における番号1のレコードの「コメントパターン」と一致し、「名称生成パターン」は、<通信I/F>の英語表記+<通信処理>の英語表記+<通信データ>の英語表記となる。
シンボル名候補生成部131は、上記のようにして、シンボル名の候補を生成し、生成したシンボル名候補の一覧を表示部11を介して所定態様で表示する。例えば、図2に示すコメント文の場合では、生成される関数名の候補は、図7に示すようになる。また、例えば、関数に対応するコメントが、“整数をバイト列に変換する”の場合では、生成される関数名の候補は、図8に示すようになる。
図9は、以上のように構成された本実施形態の制御部13が実行するシンボル名候補生成処理の手順を示すフローチャートである。ユーザにより、入力部10を介して、データ記憶部12に記憶されている所定のプログラム(コーディング支援プログラム)を起動させるための所定操作が行われると、制御部13は、表示部11に、ソースコード編集用の画面(コーディング画面)を表示する。シンボル名候補生成処理は、このコーディング画面を介して、ユーザにより、図2に示すような新規の関数についてのコメントが記述され、所定操作(例えば、マウスの右クリック等)が行われることで開始される。
先ず、コメント解析部130は、当該コーディング画面にて表示されているコメント文を取り込んで、RAM等に展開する(ステップS101)。また、コメント解析部130は、図10に示すような、名称を生成するシンボル対象をユーザに指定させるためのメニュー画面(シンボル指定画面1001)をコーディング画面上にポップアップ表示する(ステップS102)。
このシンボル指定画面1001にて、ユーザにより、関数ボタン1002が押下操作されると(ステップS103;YES)、コメント解析部130は、取り込んだコメント文中の関数に対応するコメント部分(関数コメント)を解析する処理(関数コメント解析処理)を実行する(ステップS104)。一方、ユーザにより、引数ボタン1003が押下操作されると(ステップS103;NO)、コメント解析部130は、取り込んだコメント文中の引数に対応するコメント部分(引数コメント)を解析する処理(引数コメント解析処理)を実行する(ステップS105)。
図11は、関数コメント解析処理の手順を示すフローチャートである。先ず、コメント解析部130は、取り込んだコメント文から関数コメントを抽出する(ステップS201)。例えば、図2の例では、コメント文から“シリアルでフレームを送る”が、関数コメントとして抽出される。
次に、コメント解析部130は、抽出した関数コメントを形態素解析すると共に、解析用辞書データ120(図3参照)を用いて、当該関数コメントに含まれる各形態素を見出し語に変換する(ステップS202)。そして、コメント解析部130は、処理結果をシンボル名候補生成部131に供給する(ステップS203)。
例えば、関数コメントが、図2に示す“シリアルでフレームを送る”の場合、コメント解析部130は、“シリアル、フレーム、送信”を解析結果としてシンボル名候補生成部131に供給する。また、関数コメントが、例えば、“整数をバイト列に変換する”の場合、コメント解析部130は、“整数、を、バイト例、に”を解析結果としてシンボル名候補生成部131に供給する。
図12は、引数コメント解析処理の手順を示すフローチャートである。この処理では、コメント解析部130は、取り込んだコメント文から、一の引数に対応する引数コメントを抽出する(ステップS301)。例えば、図2の場合では、コメント文から“フレーム”が、一の引数コメントとして抽出される。
コメント解析部130は、抽出した引数コメントを形態素解析すると共に、解析用辞書データ120(図3参照)を用いて、当該引数コメントに含まれる各形態素を見出し語に変換する(ステップS302)。次に、コメント解析部130は、コメント文に未処理の引数コメントがあるか否かをチェックする(ステップS303)。未処理の引数コメントがある場合(ステップS303;YES)、コメント解析部130の処理はステップS301に戻る。ステップS301では、例えば、コメント文から“フレーム長”が抽出される。
一方、コメント文に未処理の引数コメントがない場合(ステップS303;NO)、コメント解析部130は、処理結果をシンボル名候補生成部131に供給する(ステップS304)。
例えば、引数コメント“フレーム”については、コメント解析部130は、“フレーム”を解析結果としてシンボル名候補生成部131に供給する。また、引数コメント“フレーム長”については、コメント解析部130は、“フレーム、長さ”を解析結果としてシンボル名候補生成部131に供給する。
図9に戻り、ステップS104の処理が完了すると、シンボル名候補生成部131は、関数名候補生成処理を実行する(ステップS106)。
図13は、関数名候補生成処理の手順を示すフローチャートである。シンボル名候補生成部131は、コメント解析部130から供給された解析結果に含まれる各「見出し語」を、図5に示す変換辞書データ121を参照して、対応する「カテゴリ」に変換することで、命名規約データ122(図6参照)から、当該関数コメントに対応する名称生成パターンを検索する(ステップS401)。
対応する名称生成パターンが見つかった場合(ステップS402;YES)、シンボル名候補生成部131は、当該名称生成パターンと、変換辞書データ121と、に基づいて、当該関数の名称を生成する(ステップS403)。具体的には、シンボル名候補生成部131は、当該名称生成パターンにおける各「見出し語」について、変換辞書データ121を参照して対応する英語表記を取得し、取得した英語表記を当該名称生成パターンが示す通りに合成することで、当該関数の名称を生成する。この際、シンボル名候補生成部131は、フル表記同士だけでなく、「フル表記」、「短縮1」〜「短縮3」の全ての組み合わせで合成することで、複数の関数名候補を生成する。
シンボル名候補生成部131は、生成した関数名候補の一覧をコーディング画面上にポップアップ表示する(ステップS404)。一方、対応する名称生成パターンが見つからなかった場合(ステップS402;NO)、シンボル名候補生成部131は、シンボル名を自動生成できない旨のエラーメッセージ画面をコーディング画面上にポップアップ表示する(ステップS405)。その際、エラーメッセージ画面に、不足する「見出し語」についての情報等を表示してもよい。例えば、図14に示すように、関数コメントが“フレームを送る”の場合、図15に示すようなエラーメッセージ画面を表示してもよい。
図9に戻り、ステップS105の処理が完了すると、シンボル名候補生成部131は、引数名候補生成処理を実行する(ステップS107)。この処理は、上述した関数名候補生成処理とほぼ同様のロジックであるため説明を省略する。例えば、引数コメントが“フレーム長”の場合、表示される引数名の一覧は、図16に示すようになる。
以上のように、本実施形態のプログラム作成支援装置1によれば、作成中のソースコードのコメント文の解析を行い、その解析結果と、予め決められた命名規約と、に基づいて、関数名や引数名等のシンボル名を自動的に生成し、ユーザ(作業者)に提示する。したがって、ユーザは、シンボル名を決定する負担から解放され、作業効率の向上が図れる。また、シンボル名が、命名規約に則って生成されるため、ソースコードの可読性や視認性が向上し、当該ソフトウェアプログラムの保守性が高まるという効果を奏する。
(実施形態2)
続いて、本発明の実施形態2に係るプログラム作成支援装置について説明する。なお、以下の説明において、実施形態1と共通する構成要素等については、同一の符号を付し、その説明を省略する。
図17は、本発明の実施形態2に係るプログラム作成支援装置1Aの構成を示すブロック図である。プログラム作成支援装置1Aは、実施形態1のプログラム作成支援装置1と同様、一般的なパーソナルコンピュータであり、図17に示すように、入力部10と、表示部11と、データ記憶部12Aと、制御部13Aと、を備える。
データ記憶部12Aは、実施形態1のデータ記憶部12と同様、読み書き可能な不揮発性の半導体メモリやハードディスクドライブ等から構成される外部記憶装置である。データ記憶部12Aには、解析用辞書データ120、変換辞書データ121、命名規約データ122といった実施形態1のデータ記憶部12に記憶されるデータと同様のデータが記憶される。さらに、データ記憶部12Aには、関係辞書データ123と、ソースファイル124と、が記憶される。
関係辞書データ123は、図18に示すように、所定の関係にある「見出し語」同士と、その関係内容と、を含むレコードが複数登録されたデータテーブルである。本実施形態では、関係辞書データ123には、“送信”と“受信”等、反対関係にある「見出し語」同士、“送信”と“出力”等、同類関係にある「見出し語」同士が登録されている。
ソースファイル124は、ユーザによって既に作成された複数の関数のソースコード(図19参照)が記述されたファイルである。
制御部13Aは、実施形態1の制御部13と同様、CPU、ROM、RAM等を含んで構成される。制御部13Aは、実施形態1の制御部13と同様、機能的には、コメント解析部130と、シンボル名候補生成部131と、を備える。さらに、制御部13Aは、作成済シンボル名取得部132と、候補順位決定部133と、を備える。
作成済シンボル名取得部132は、所定のタイミングで、データ記憶12Aに記憶されているソースファイル124から、名称作成対象のシンボル名(関数名又は引数名)を全て取得する。本実施形態では、作成済シンボル名取得部132は、シンボル名候補生成部131によってシンボル名候補の作成が完了すると起動する。シンボル名候補生成部131によって関数名候補が作成された場合には、作成済シンボル名取得部132は、ソースファイル124から、作成済みの関数の名称を全て取得する。一方、シンボル名候補生成部131によって引数名候補が作成された場合には、ソースファイル124から、作成済みの関数における引数名を全て取得する。
なお、作成済シンボル名取得部132は、ユーザによってその内容がコーディングされた関数をシンボル名の取得対象とし、OS等により提供される汎用関数は取得対象としない。
作成済シンボル名取得部132は、取得した複数のシンボル名(関数名又は引数名)をRAM又はデータ記憶部12Aに一時的に保存する。
候補順位決定部133は、作成済シンボル名取得部132によって取得された複数のシンボル名の内から、シンボル名候補生成部131によって生成されたシンボル名候補群と最も関連度が高いシンボル名を抽出する。そして、候補順位決定部133は、この抽出した最も関連度が高いシンボル名を用いて、各シンボル名候補の順位を決定する。候補順位決定部133は、各シンボル名候補を、決定した順位に並べた一覧を表示部11を介して所定態様で表示して、ユーザに提示する。
図20は、候補順位決定部133により実行される関数候補順位決定処理の手順を示すフローチャートである。この処理は、シンボル名候補生成部131によって関数名候補群が作成され、作成済シンボル名取得部132により、ソースファイル124から、作成済みの関数の名称が全て取得された後に実行される。
先ず、候補順位決定部133は、取得された複数の関数名の内から、シンボル名候補群と最も関連度の高いものを決定する処理(最関連関数名決定処理)を実行する(ステップS501)。
図21は、最関連関数名決定処理の手順を示すフローチャートである。先ず、候補順位決定部133は、取得された関数名の内から1つを選択し、部分文字列を抽出する(ステップS601)。部分文字列とは、合成する前の各「見出し語」に対応する英語表記である。本実施形態では、各「見出し語」に対応する英語表記の先頭文字は、大文字となっており、候補順位決定部133は、関数名から、大文字部分をデリミタとして、部分文字列を抽出する。例えば、関数名が“SeriRcvFrame”の場合は、“Seri”、“Rcv”及び“Frame”が部分文字列として抽出される。また、関数名のアルファベット以外の文字(例えば、“2”)についても、部分文字列として抽出する。
候補順位決定部133は、変換辞書データ121を参照して、抽出した各部分文字列に対応する「見出し語」を取得する(ステップS602)。なお、特定の部分文字列(例えば、“I”、“R”、“S”等)については、「見出し語」が異なる場合もあるため、候補順位決定部133は、当該関数名に対応する作成済みのソースコードのコメント文を参照して、対応する「見出し語」を取得する。
候補順位決定部133は、選択した関数名が、生成された関数名候補群と同一の命名ルール、即ち、命名規約データ122における同一の名称生成パターンで生成されたものであるか否かを判定する(ステップS603)。双方が、同一の名称生成パターンで生成されたものである場合(ステップS603;YES)、候補順位決定部133は、当該選択した関数名に対応する評価値(初期値は0)に5点加算する(ステップS604)。
次に、候補順位決定部133は、抽出した各部分文字列に対応する「見出し語」の何れかに、生成された関数名候補群に対応する各「見出し語」と反対関係にあるものが存在するか否かを判定する(ステップS605)。その結果、反対関係にある「見出し語」が存在する場合(ステップS605;YES)、候補順位決定部133は、対応する評価値に4点加算する(ステップS606)。
次に、候補順位決定部133は、抽出した各部分文字列に対応する「見出し語」の何れかに、生成された関数名候補群に対応する各「見出し語」と同類関係にあるものが存在するか否かを判定する(ステップS607)。その結果、同類関係にある「見出し語」が存在する場合(ステップS607;YES)、候補順位決定部133は、対応する評価値に3点加算する(ステップS608)。
候補順位決定部133は、取得された全ての関数名について上記の処理が完了したか否かを判定する(ステップS609)。全ての関数名について処理が完了していない場合(ステップS609;NO)、候補順位決定部133の処理はステップS601に戻る。一方、全ての関数名について処理が完了した場合(ステップS609;YES)、候補順位決定部133は、最も評価値が大きい関数名を、関数名候補群と最も関連度が高い関数名(最関連関数名)であるとして決定する(ステップS610)。
図20に戻り、ステップS502では、候補順位決定部133は、上記決定した最関連関数名に対応する全「見出し語」及び関数名候補群に対応する全「見出し語」のそれぞれから、部分文字列の合成順に従って、1つずつ選択する。候補順位決定部133は、それぞれ選択した「見出し語」が同一であるか否かを判定する(ステップS503)。その結果、同一である場合(ステップS503;YES)、候補順位決定部133は、関数名候補群の内、この「見出し語」に対応する部分文字列(英語表記)が、最関連関数名の当該「見出し語」に対応する部分文字列と同一である関数名候補を、他の関数名候補より高い順位にする(ステップS504)。
一方、それぞれ選択した「見出し語」が同一でない場合(ステップS503;NO)、候補順位決定部133は、選択した双方の「見出し語」同士に、関係辞書データ123で定められた所定の関係があるか否かを判定する(ステップS505)。その結果、双方の「見出し語」同士に所定の関係がある場合(ステップS505;YES)、候補順位決定部133は、関数名候補群の内、関数名候補群側の当該「見出し語」に対応する部分文字列(英語表記)の形式が、最関連関数名側の当該「見出し語」に対応する部分文字列の形式と同一である関数名候補を、他の関数名候補より高い順位にする(ステップS506)。ここで、部分文字列(英語表記)の形式が同一であるとは、例えば、どちらもフル表記であるか、あるいは、短縮のレベル(短縮1〜3)が同一である場合をいう。
候補順位決定部133は、最関連関数名に対応する全「見出し語」及び関数名候補群に対応する全「見出し語」について、少なくとも何れか一方が選択済みであるか否かを判定する(ステップS507)。選択済みでない場合(ステップS507;NO)、候補順位決定部133の処理は、ステップS502に戻る。一方、選択済みである場合(ステップS507;YES)、候補順位決定部133は、関数名候補の一覧を決定した順位で表示する(ステップS508)。
例えば、シンボル名候補生成部131により、図2に示すコメント文から関数名の候補が生成された場合であって、最関連関数名が“SeriRcvFrame()”の場合、候補順位決定部133による処理の結果、最も順位の高い関数名候補は、“SeriSndFrame()”となる。また、例えば、“整数をバイト列に変換する”という関数コメントから関数名の候補が生成された場合であって、最関連関数名が“Bytes2Int()”の場合、候補順位決定部133による処理の結果、最も順位の高い関数名候補は、“Int2Bytes()”となる。
なお、候補順位決定部133により実行される引数候補順位決定処理のロジックは、上述した関数候補順位決定処理と同様であるため、その説明は省略する。
以上のように、本実施形態のプログラム作成支援装置1Aによれば、作成中のソースコードのコメント文から自動的に生成した関数名や引数名等のシンボル名候補の順位を、作成済み関数の名称に基づいて決定し、ユーザに提示することができる。したがって、シンボル名の統一性がより向上する。
なお、本発明は、上記各実施形態に限定されず、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
例えば、上記実施形態1、2のプログラム作成支援装置1、1Aが各々実行したプログラムを、既存のパーソナルコンピュータ(PC)等に適用することで、当該PCを本発明に係るプログラム作成支援装置として機能させることも可能である。
このようなプログラムの配布方法は任意であり、例えば、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。
1,1A プログラム作成支援装置、10 入力部、11 表示部、12,12A データ記憶部、13,13A 制御部、120 解析用辞書データ、121 変換辞書データ、122 命名規約データ、123 関係辞書データ、124 ソースファイル、130 コメント解析部、131 シンボル名候補生成部、132 作成済シンボル名取得部、133 候補順位決定部

Claims (4)

  1. ユーザからの操作を受け付ける入力部と、
    所定の形態素と、見出し語とが対応付けられたコメント解析用辞書データと、前記見出し語と、1又は複数の英語表記とが対応付けられた変換辞書データと、シンボルの種別毎に、コメントパターンと、名称生成パターンとが対応付けられた命名規約データと、を記憶するデータ記憶部と、
    ユーザによる所定操作に応じて、ソースコード中のコメント文から、指定されたシンボルに対応するコメント部分を抽出し、抽出したコメント部分を前記コメント解析用辞書データを用いて解析するコメント解析部と、
    前記命名規約データから、前記コメント解析部の解析結果に対応する前記コメントパターンを検索することで、前記コメント部分に対応する前記名称生成パターンを取得すると共に、前記コメント解析部の解析結果と、前記変換辞書データと、に基づいて、前記コメント部分に含まれる見出し語に対応する英語表記を取得し、取得した英語表記と、取得した前記名称生成パターンと、に基づいて、前記コメント文における前記指定されたシンボルの名称候補を生成するシンボル名候補生成部と、を備える、
    ことを特徴とするプログラム作成支援装置。
  2. 前記シンボルは、関数又は引数の何れかである、
    ことを特徴とする請求項1に記載のプログラム作成支援装置。
  3. 前記データ記憶部は、ユーザによって既に作成された複数の関数のソースコードが記述されたソースファイルをさらに記憶し、
    前記シンボル名候補生成部によって前記指定されたシンボルの名称候補が生成された後、前記ソースファイルから、前記指定されたシンボルについての作成済みの名称を取得し、取得した作成済みの名称を用いて、前記生成された各候補の順位を決定する候補順位決定部をさらに備える、
    ことを特徴とする請求項1又は2に記載のプログラム作成支援装置。
  4. コンピュータを、
    ユーザによる所定操作に応じて、ソースコード中のコメント文から、指定されたシンボルに対応するコメント部分を抽出し、抽出したコメント部分を、所定の形態素と、見出し語とが対応付けられたコメント解析用辞書データを用いて解析するコメント解析部、
    シンボルの種別毎に、コメントパターンと、名称生成パターンとが対応付けられた命名規約データから、前記コメント解析部の解析結果に対応する前記コメントパターンを検索することで、前記コメント部分に対応する前記名称生成パターンを取得すると共に、前記コメント解析部の解析結果と、前記見出し語と1又は複数の英語表記とが対応付けられた変換辞書データと、に基づいて、前記コメント部分に含まれる見出し語に対応する英語表記を取得し、取得した英語表記と、取得した前記名称生成パターンと、に基づいて、前記コメント文における前記指定されたシンボルの名称候補を生成するシンボル名候補生成部、として機能させる、
    ことを特徴とするプログラム。
JP2012227988A 2012-10-15 2012-10-15 プログラム作成支援装置及びプログラム Expired - Fee Related JP5968186B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012227988A JP5968186B2 (ja) 2012-10-15 2012-10-15 プログラム作成支援装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012227988A JP5968186B2 (ja) 2012-10-15 2012-10-15 プログラム作成支援装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2014081715A JP2014081715A (ja) 2014-05-08
JP5968186B2 true JP5968186B2 (ja) 2016-08-10

Family

ID=50785875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012227988A Expired - Fee Related JP5968186B2 (ja) 2012-10-15 2012-10-15 プログラム作成支援装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5968186B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6027941A (ja) * 1983-07-26 1985-02-13 Fujitsu Ltd 名標生成システム
JP2000122855A (ja) * 1998-10-13 2000-04-28 Ntt Data Corp データ名称付与方法及び装置、記録媒体
JP2004258848A (ja) * 2003-02-25 2004-09-16 Hitachi Software Eng Co Ltd プログラム作成支援方法およびシステム並びにプログラム
WO2008102426A1 (ja) * 2007-02-19 2008-08-28 Mitsubishi Electric Corporation プログラマブルコントローラの周辺装置、置換方法およびプログラム
US8677313B2 (en) * 2009-11-30 2014-03-18 Accenture Global Services Limited Functional design creation tool

Also Published As

Publication number Publication date
JP2014081715A (ja) 2014-05-08

Similar Documents

Publication Publication Date Title
US9262403B2 (en) Dynamic generation of auto-suggest dictionary for natural language translation
US9262104B2 (en) Information processing apparatus, image processing apparatus, and information processing system
US20100223047A1 (en) Computer-assisted natural language translation
JP5471065B2 (ja) 文書情報生成装置、文書登録システム、及びプログラム
JP4502615B2 (ja) 類似文検索装置、類似文検索方法、およびプログラム
CN104462030B (zh) 字符转换装置、字符转换方法
CN104679642A (zh) 日志分析系统中的日志的与语言无关的处理方法和系统
TW200842662A (en) Stroke number input
WO2016021085A1 (ja) データリンク生成装置、データリンク生成方法、データリンク構造および電子ファイル
JP2020115246A (ja) 生成装置、ソフトウェアロボットシステム、生成方法及び生成プログラム
JP7293693B2 (ja) 情報処理装置及びプログラム
JP5968186B2 (ja) プログラム作成支援装置及びプログラム
CN112487334A (zh) 用于前端页面语言翻译的方法、装置、计算机设备和介质
JP5640700B2 (ja) 情報検索装置、検索入力方法、及び検索入力プログラム
WO2015030016A1 (ja) 非構造化データ処理システム、非構造化データ処理方法および記録媒体
JP7607863B2 (ja) 情報処理装置、ドメイン組織情報生産装置、情報処理方法、ドメイン組織情報生産方法、およびプログラム
JPS60176169A (ja) 文章処理装置
JP7092992B2 (ja) 文書管理プログラム、文書管理装置および文書管理方法
JP2022059523A (ja) 情報処理装置、及び情報処理プログラム
JP5984375B2 (ja) 簡体字・正字変換装置及び当該装置を用いた簡体字・正字変換方法
JP2012230460A (ja) 機械翻訳システム、方法及びプログラム
JP2019204221A (ja) 検索ワードサジェスト装置、固有表現情報の作成方法、および、固有表現情報の作成プログラム
JP2009230705A (ja) テンプレート作成装置、文書データ作成装置、その作成方法及びプログラム
JP6973132B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP2022177381A (ja) 文書処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160516

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160705

R150 Certificate of patent or registration of utility model

Ref document number: 5968186

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees