JP5456707B2 - 機能情報生成装置、機能情報生成方法及び機能情報生成プログラム - Google Patents

機能情報生成装置、機能情報生成方法及び機能情報生成プログラム Download PDF

Info

Publication number
JP5456707B2
JP5456707B2 JP2011025481A JP2011025481A JP5456707B2 JP 5456707 B2 JP5456707 B2 JP 5456707B2 JP 2011025481 A JP2011025481 A JP 2011025481A JP 2011025481 A JP2011025481 A JP 2011025481A JP 5456707 B2 JP5456707 B2 JP 5456707B2
Authority
JP
Japan
Prior art keywords
function
information
probability
noun
information generation
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
JP2011025481A
Other languages
English (en)
Other versions
JP2012164232A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011025481A priority Critical patent/JP5456707B2/ja
Publication of JP2012164232A publication Critical patent/JP2012164232A/ja
Application granted granted Critical
Publication of JP5456707B2 publication Critical patent/JP5456707B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

この発明は、機能情報生成装置、機能情報生成方法及び機能情報生成プログラムに関する。
従来、現時点で稼動しているシステムで利用されているソフトウェアの機能をユーザの要求に従って変更する場合がある。かかる場合には、ソフトウェア開発者は、現時点で利用されているソフトウェアが開発された際に作成されたトレーサビリティマトリクス(Traceability Matrix)を参照することにより、変更すべきソースコードを特定する。
トレーサビリティマトリクスは、要件、機能及びソースコードなどが対応付けられた表である。例えば、機能設計書中のどの機能がソースコード中のどの部分によって実現されているか、或いは、機能設計書に記載された機能と要件定義書に記載された要件との対応関係などが示されている。なお、ここでいう要件とは、ユーザによって所望されるシステムやソフトウェアの仕様である。
しかしながら、上述した従来技術では、ユーザの要求に柔軟に対応することができない場合があった。具体的には、トレーサビリティマトリクスは、ソフトウェアを開発する際に、ソフトウェア開発者が要件、機能及びソースコードなどを手作業で対応付けることにより作成される。従って、トレーサビリティマトリクスを作成するための作業コストが高いため、要件が変わりやすいプロジェクト以外においては、トレーサビリティマトリクスが作成されることが少ない。その結果、例えば、トレーサビリティマトリクスが作成されていないソフトウェアに対してユーザから機能の変更要求があった場合などに柔軟に対応することができない。
そこで、本願に開示する技術は、上述した従来技術の問題に鑑みてなされたものであって、ユーザの要求に柔軟に対応することを可能とする機能情報生成装置、機能情報生成方法及び機能情報生成プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示の装置は、ソフトウェアが有する機能が記述された第1の文字ファイルから、当該機能ごとに、当該機能を示す文字列に含まれる名詞を抽出し、抽出した名詞と当該機能との対応関係を示す第1情報を生成する第1情報生成部と、前記ソフトウェアに関連する第2の文字ファイルから名詞を抽出し、抽出した各名詞が前記第2の文字ファイルに含まれる各項目において出現する頻度から当該各名詞が出現する確率を項目ごとに算出し得る第2情報を生成する第2情報生成部と、所定の機能に関して前記第1情報に対応付けられている全ての名詞について、いずれかの名詞が記述された前記第2の文字ファイルの項目全てを前記第2情報を用いて特定し、特定した項目それぞれが当該所定の機能である確率を前記第2情報を用いて算出する確率算出部と、前記算出された確率の値が所定の閾値を超える項目を特定し、当該項目と前記所定の機能とに対応関係があることを示す機能情報を生成する機能情報生成部とを有することを特徴とする。
開示の方法は、ユーザの要求に柔軟に対応することを可能にする。
図1は、実施例1に係る機能情報生成装置の構成の一例を説明するための図である。 図2は、トレーサビリティマトリクスの例1を説明するための図である。 図3は、トレーサビリティマトリクスの例2を説明するための図である。 図4は、実施例1に係る成果物テキスト記憶部によって記憶される情報の一例を示す図である。 図5は、実施例1に係る機能ファイル記憶部によって記憶される機能ファイルの一例を説明するための図である。 図6は、実施例1に係る確率情報記憶部によって記憶される確率情報の一例を説明するための図である。 図7は、実施例1に係る結果ファイル記憶部によって記憶される結果ファイルの一例を説明するための図である。 図8は、実施例1に係るトレーサビリティマトリクス記憶部によって記憶されるトレーサビリティマトリクスの一例を説明するための図である。 図9は、実施例1に係る機能ファイル生成部による処理の一例を模式的に示す図である。 図10は、実施例1に係る確率情報生成部による処理の一例を模式的に示す図である。 図11は、実施例1に係る結果ファイル生成部による処理の一例を模式的に示す図である。 図12は、実施例1に係るトレーサビリティマトリクス生成部の処理の一例を説明するための図である。 図13は、実施例1に係る機能情報生成装置のユースケースを説明するための図である。 図14は、実施例1に係る機能情報生成装置によるトレーサビリティマトリクス生成処理の手順を示すフローチャートである。 図15は、実施例1に係る機能情報生成装置による処理の手順を示すシーケンス図である。 図16は、実施例2に係る機能情報生成プログラムを実行するコンピュータを示す図である。
以下に添付図面を参照して、本願の開示する機能情報生成装置、機能情報生成方法及び機能情報生成プログラムの実施例を詳細に説明する。なお、本願の開示する機能情報生成装置、機能情報生成方法及び機能情報生成プログラムは、以下の実施例により限定されるものではない。
[実施例1に係る機能情報生成装置の構成]
実施例1に係る機能情報生成装置の構成について説明する。図1は、実施例1に係る機能情報生成装置100の構成の一例を説明するための図である。図1に示すように、実施例1に係る機能情報生成装置100は、入出力制御I/F部10と、入力部20と、表示部30と、記憶部40と、制御部50とを有している。そして、機能情報生成装置100は、ソフトウェアの成果物テキストに基づいて、トレーサビリティマトリクスを生成する。なお、機能情報生成装置100は、例えば、PC(Personal Computer)、ワークステーション又は機能情報生成用の専用装置である。
ここで、まず、トレーサビリティマトリクスについて説明する。図2は、トレーサビリティマトリクスの例1を説明するための図である。図2においては、ソフトウェアが有する機能と要件とを対応付けたトレーサビリティマトリクスを示している。例えば、トレーサビリティマトリクスは、図2に示すように、要件とモジュール名とが対応付けられる。ここで、要件とは、ユーザによって所望されるシステムやソフトウェアの仕様である。要件としては、例えば、図2に示すように、「機器登録確認」、「会員登録」、「会員登録確認」、「アプリケーションダウンロード」、「利用権入手確認」などが含まれている。また、モジュール名とは、所定の機能を実現するためのプログラム群の名称である。モジュール名としては、例えば、図2に示すように、「所有:2−4−1制御モジュール」、「所有:2−4−2DBアクセス制御」、「所有:2−4−3鍵管理」、「所有:2−4−4ログ管理」、「NI2−3−1通信管理」、「NI2−3−2制御モジュール」などが含まれている。
トレーサビリティマトリクスの一例を挙げると、図2に示すように、「要件:アプリケーションダウンロード」において「モジュール名:NI2−3−1通信管理、機能名:通信初期化機能」、「モジュール名:NI2−3−1通信管理、機能名:電文送受信機能」の項目にそれぞれ「○」が示されている。上記した情報は、「アプリケーションダウンロード」の仕様を満たすためには、「NI設計書2−3−1」に示された「通信初期化機能」と「電文送受信機能」とが必要であることを意味する。
また、トレーサビリティマトリクスは、機能と要件とを対応付けたものだけではなく、例えば、機能とソースコードとを対応付けたものも作成される。図3は、トレーサビリティマトリクスの例2を説明するための図である。例えば、トレーサビリティマトリクスは、図3に示すように、モジュール名とクラスとが対応付けられる。ここで、クラスとは、プログラミングにおいてデータと操作手順とをまとめたオブジェクトを定義したものである。
上記したように、トレーサビリティマトリクスは、ソフトウェアの機能と要件、或いは、機能とソースコードとが項目ごとに細分化されて作成される。従って、ソフトウェア開発者が手作業で作成する従来技術では作業コストが高くなるため、トレーサビリティマトリクスは、要件が変更されやすいプロジェクトにおいてのみ作成されることとなる。その結果、例えば、トレーサビリティマトリクスが作成されていないソフトウェアに対してユーザから機能の変更要求があった場合などに柔軟に対応することができない。
そこで、本願の開示する機能情報生成装置100は、トレーサビリティマトリクスを自動で生成することができ、ユーザの要求に柔軟に対応することを可能にする。なお、以下では、ソフトウェアの機能設計書とソースコードとを用いてトレーサビリティマトリクスを生成する場合について説明するが、開示の技術はこれに限定されるものではなく、機能設計書と要件定義書を用いてトレーサビリティマトリクスを生成する場合であってもよい。
図1に戻って、入出力制御I/F部10は、入力部20、表示部30と記憶部40、制御部50との間での各種情報のやり取りを制御するインタフェースである。入力部20は、例えば、キーボードやタッチパネルなどであり、操作者による種々の情報の入力処理を受け付ける。例えば、入力部20は、機能設計書に記述された機能の抽出に関する情報の入力処理を受け付ける。表示部30は、例えば、ディスプレイなどであり、操作者に対して処理結果を表示出力する。例えば、表示部30は、後述する制御部50によって生成されたトレーサビリティマトリクスを表示出力する。
記憶部40は、図1に示すように、成果物テキスト記憶部41と、機能ファイル記憶部42と、確率情報記憶部43と、結果ファイル記憶部44と、トレーサビリティマトリクス記憶部45とを有する。記憶部40は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
成果物テキスト記憶部41は、ソフトウェアに関与する各種テキストファイルを記憶する。具体的には、成果物テキスト記憶部41は、ソフトウェアの開発に際して作成された機能設計書、要件定義書、ソースコード、Read Meなどの成果物テキストを記憶する。図4は、実施例1に係る成果物テキスト記憶部41によって記憶される情報の一例を示す図である。例えば、成果物テキスト記憶部41は、図4に示すように、機能設計書及びソースコードなどを記憶する。一例を挙げると、成果物テキスト記憶部41は、図4に示すように、「第1章 システムの説明 このシステムは〜〜」などが記述された機能設計書を記憶する。また、成果物テキスト記憶部41は、図4に示すように、クラス名「##DataSend.pl」、「##作成日 20100911」、「##作成者 nagano」などが記述されたソースコードを記憶する。
図1に戻って、機能ファイル記憶部42は、後述する制御部50によって生成された機能ファイルを記憶する。具体的には、機能ファイル記憶部42は、後述する制御部50が成果物テキスト記憶部41によって記憶された機能設計書から生成した機能ファイルを記憶する。図5は、実施例1に係る機能ファイル記憶部42によって記憶される機能ファイルの一例を説明するための図である。
例えば、機能ファイル記憶部42は、機能の説明に記述された文字列に含まれる名詞を機能ごとに対応付けた機能ファイルを記憶する。一例を挙げると、機能ファイル記憶部42は、図5に示すように、「<func>データ送信機能</func>」に「クライアント 名詞」、「サーバ 名詞」、「以下 名詞」、「情報 名詞」などを対応付けた機能ファイルを記憶する。
図1に戻って、確率情報記憶部43は、後述する制御部50によって生成された確率情報を記憶する。具体的には、確率情報記憶部43は、後述する制御部50が成果物テキスト記憶部41によって記憶されたソースコードを用いて生成した確率情報を記憶する。図6は、実施例1に係る確率情報記憶部43によって記憶される確率情報の一例を説明するための図である。
例えば、確率情報記憶部43は、ソースコードのコメントに記述された文字列に含まれる名詞と、当該ソースコードに含まれるクラス名と、総和とを対応付けた確率情報を記憶する。一例を挙げると、確率情報記憶部43は、図6に示すように、「作成日」に「DataSend.pl:1」、「algo.pl:0」、「DataTrans.pl:1」、「Serch.pl:1」などを対応付けた確率情報を記憶する。上記した情報は、「DataSend.pl」、「DataTrans.pl」及び「Serch.pl」のクラス内のコメントに「作成日」が記述されていることを意味する。そして、確率情報記憶部43は、図6に示すように、「作成日」に「総和(作成日)=3」を対応付けて記憶する。上記した情報は、「作成日」が記述されたクラス名が「3つ」あることを意味する。同様に、確率情報記憶部43は、「作成者」、「本プログラム」、「・・・」、「クライアント」、「サーバ」、「以下」、「情報」などに、クラス名と総和とを対応付けた確率情報を記憶する。
図1に戻って、結果ファイル記憶部44は、後述する制御部50によって生成された結果ファイルを記憶する。具体的には、結果ファイル記憶部44は、後述する制御部50が、機能ファイル記憶部42によって記憶された機能ファイルと、確率情報記憶部43によって記憶された確率情報とを用いて生成した結果ファイルを記憶する。図7は、実施例1に係る結果ファイル記憶部44によって記憶される結果ファイルの一例を説明するための図である。
例えば、結果ファイル記憶部44は、図7に示すように、機能ごとにクラスの確率が示された結果ファイルを記憶する。一例を挙げると、結果ファイル記憶部44は、「<func>データ送信機能</func>」に「DataSend.pl:50%」、「algo.pl:15%」、「hoge.pl:5%」が示された結果ファイルを記憶する。上記した例は、「DataSend.pl」が用いられる場合の「50%」が「データ送信機能」に用いられることを意味する。また、「algo.pl」が用いられる場合の「15%」が「データ送信機能」に用いられることを意味する。また、「hoge.pl」が用いられる場合の「5%」が「データ送信機能」に用いられることを意味する。同様に、結果ファイル記憶部44は、図7に示すように、「<func>データ暗号化機能</func>」に「DataSend.pl:0%」、「algo.pl:55%」、「hoge.pl:5%」が示された結果ファイルを記憶する。
図1に戻って、トレーサビリティマトリクス記憶部45は、後述する制御部50によって生成されたトレーサビリティマトリクスを記憶する。図8は、実施例1に係るトレーサビリティマトリクス記憶部45によって記憶されるトレーサビリティマトリクスの一例を説明するための図である。
例えば、トレーサビリティマトリクス記憶部45は、図8に示すように、「データ送信機能」に「DataSend.pl:○」、「algo.pl:○」、「DataTrans.pl」、「Serch.pl」などを対応付けたトレーサビリティマトリクスを記憶する。上記した情報は、「データ送信機能」を実現するために、「DataSend.pl」及び「algo.pl」などが必要であることを意味する。
図1に戻って、制御部50は、機能ファイル生成部51と、確率情報生成部52と、結果ファイル生成部53と、トレーサビリティマトリクス生成部54とを有し、成果物テキスト記憶部41によって記憶された成果物テキストに基づいてトレーサビリティマトリクスを生成する。制御部50は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路、又は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路などである。
機能ファイル生成部51は、ソフトウェアが有する機能が記述された第1の文字ファイルから、当該機能ごとに、当該機能を示す文字列に含まれる名詞を抽出し、抽出した名詞と当該機能との対応関係を示す第1情報を生成する。具体的には、機能ファイル生成部51は、成果物テキスト記憶部41によって記憶された機能設計書から機能及び該機能に対応するテキストのデータを抽出する。そして、機能ファイル生成部51は、抽出した機能ごとに対応するテキストに含まれる名詞を抽出し、抽出した名詞を機能に対応付けた機能ファイルを生成する。そして、機能ファイル生成部51は、生成した機能ファイルを機能ファイル記憶部42に格納する。
図9は、実施例1に係る機能ファイル生成部51による処理の一例を模式的に示す図である。例えば、機能ファイル生成部51は、図9の(A)に示す機能設計書を成果物テキスト記憶部41から読み出し、読み出した機能設計書をルールベース(rule base)に基づいて機能及び該機能に対応するテキストごとに分割する。ここで、ルールベースとは、機能とテキストとの組合せのルールを概念化したものである。すなわち、機能ファイル生成部51は、ルールベースに基づいて機能設計書中の機能とテキストとの組合せを推定し、推定した組合せのデータを機能設計書から分割する。
例えば、機能ファイル生成部51は、図9の(B)に示すように、「<func>データ送信機能</func>」及び該機能に対応するテキスト「<txt>クライアントからサーバへ以下の情報を送信する機能 ・ユーザ名 ・社員番号</txt>」を機能設計書から分割する。同様に、機能ファイル生成部51は、図9の(B)に示すように、「<func>データ暗号化機能</func>」、「<func>検索機能</func>」などを機能設計書から分割する。なお、図9に示す機能ファイルにおいては、funcタグに機能名、txtタグに対応するテキストが入ったXML形式で示される。
そして、機能ファイル生成部51は、分割した機能ごとのテキストに対して形態素解析を実行して、テキストを品詞ごとに分割する。例えば、機能ファイル生成部51は、図9の(C)に示すように、「<func>データ送信機能</func>」に対応するテキストに対して形態素解析を実行して、「クライアント 名詞」、「から 助詞」、「サーバ 名詞」、「へ 助詞」、「以下 名詞」、「の 助詞」、「情報 名詞」などに分割する。そして、機能ファイル生成部51は、品詞ごとに分割した文字から名詞を抽出して、機能に対応付けた機能ファイルを生成する。例えば、機能ファイル生成部51は、図9の(D)に示すように、「<func>データ送信機能</func>」に「クライアント 名詞」、「サーバ 名詞」、「以下 名詞」、「情報 名詞」などを対応付けた機能ファイルを生成して機能ファイル記憶部42に格納する。なお、形態素解析は、例えば、MeCabなどの形態素解析器によって実行される。また、上記した機能ファイルの生成においては、ルールベースに基づいて機能及び該機能に対応するテキストを分割する場合について説明したが、開示の技術はこれに限定されるものではなく、例えば、ソフトウェア開発者が手作業で分割する場合であってもよい。
図1に戻って、確率情報生成部52は、ソフトウェアに関連する第2の文字ファイルから名詞を抽出し、抽出した各名詞が第2の文字ファイルに含まれる各項目において出現する頻度から当該各名詞が出現する確率を項目ごとに算出し得る第2情報を生成する。具体的には、確率情報生成部52は、第2の文字ファイルを用いたベイズ(Bayes)学習により確率情報を生成する。図10は、実施例1に係る確率情報生成部52による処理の一例を模式的に示す図である。
例えば、確率情報生成部52は、図10の(A)に示すソースコードを成果物テキスト記憶部41から読み出す。そして、確率情報生成部52は、図10の(B)に示すように、読み出したソースコードのコメント部分に対して形態素解析を実行して、「DataSend.pl 未知語」、「本プログラム 名詞」、「は 助詞」、「フォーム 名詞」、「に 助詞」などに分割する。そして、確率情報生成部52は、図10の(C)に示すように、品詞ごとに分割した文字から名詞「作成日」、「作成者」、「本プログラム」、「フォーム」などを抽出する。さらに、確率情報生成部52は、図10の(D)に示すように、抽出した名詞ごとのベイズ学習により、確率情報を生成する。ここで、ベイズの定理について説明する。ベイズの定理とは、ある結果が得られた場合に、その結果を反映した事後確率を求める確率論の定理である。すなわち、確率情報生成部52は、所定の名詞(w)が出現した場合に、該名詞(w)が出現したテキストがカテゴリ(c)である確率P(w|c)を示す確率情報を生成する。
例えば、確率情報生成部52は、図10の(D)に示すように、「作成日」に「DataSend.pl:1」、「algo.pl:0」、「DataTrans.pl:1」、「Serch.pl:1」などのクラスと、「総和(作成日)=3」とを対応付けた確率情報を生成する。すなわち、確率情報生成部52は、「作成日」が記述されたテキストは、「1/3」が「DataSend.pl」であり、「1/3」が「DataTrans.pl」であり、残りの「1/3」が「Serch.pl」であることを示す確率情報を生成する。そして、確率情報生成部52は、生成した確率情報を確率情報記憶部43に格納する。同様に、確率情報生成部52は、図10の(D)に示すように、「作成者」、「本プログラム」、「・・・」、「クライアント」、「情報」、「社員番号」などに対するベイズ学習により確率情報を生成する。
図1に戻って、結果ファイル生成部53は、所定の機能に関して第1情報に対応付けられている全ての名詞について、いずれかの名詞が記述された第2の文字ファイルの項目全てを第2情報を用いて特定し、特定した項目それぞれが当該所定の機能である確率を第2情報を用いて算出する。具体的には、結果ファイル生成部53は、機能ファイルと、確率情報生成部52がベイズ学習により生成した確率情報とを用いたベイズ推定により確率を算出する。図11は、実施例1に係る結果ファイル生成部53による処理の一例を模式的に示す図である。
例えば、結果ファイル生成部53は、図11の(A)に示す「データ送信機能」の機能ファイルを機能ファイル記憶部42から読み出し、「データ送信機能」に対する結果ファイルを生成する。この時、結果ファイル生成部53は、まず、確率情報記憶部43によって記憶された確率情報を参照して、「データ送信機能」の機能ファイルに含まれる全ての名詞の確率情報を取得する。そして、結果ファイル生成部53は、取得した確率情報において、「データ送信機能」の機能ファイルに含まれる全ての名詞について、該名詞が記述されていた各クラスの情報を取得する。そして、結果ファイル生成部53は、取得した各クラスが記述された場合のソースコードが「データ送信機能」である確率を算出する。
一例を挙げると、結果ファイル生成部53は、「DataSend.pl」が記述された場合のソースコードが「データ送信機能」である確率P(データ送信機能|DataSend.pl)を以下に示す式により算出する。
結果ファイル生成部53は、「P(データ送信機能|DataSend.pl)」=「データ送信機能の機能ファイルに含まれる名詞のうち「DataSend.pl」と対応付けられた全ての名詞の結合確率ΠP(x)」を算出する。すなわち、結果ファイル生成部53は、図6に示す確率情報を参照して、「作成日」、「作成者」、「本プログラム」、「クライアント」、「情報」、「社員番号」などについて、それぞれが記述された場合の「DataSend.pl」である確率を算出し、算出した確率の積を算出する。
同様に、結果ファイル生成部53は、取得したクラスについて「結合確率ΠP(x)」を算出する。そして、結果ファイル生成部53は、算出した「結合確率ΠP(x)」を「データ送信機能」に対応付けた結果ファイルを生成して、生成した結果ファイルを結果ファイル記憶部44に格納する。例えば、結果ファイル生成部53は、図11の(B)に示すように、「<func>データ送信機能</func>」に「DataSend.pl 50%」、「algo.pl 15%」及び「hoge.pl 5%」を対応付けた結果ファイルを生成する。
なお、各名詞が記述された場合に「DataSend.pl」である確率は、以下の式により算出される。例えば、「クライアント」が記述された場合に「DataSend.pl」である確率P(クライアント)は、P(クライアント)=(DataSend.pl中のクライアントの出現数/DataSend.plの数)/{(DataSend.pl中のクライアントの出現数/DataSend.plの数)+(DataSend.pl以外のクライアントの出現数/DataSend.pl以外の数)}により算出される。
図1に戻って、トレーサビリティマトリクス生成部54は、算出された確率の値が所定の閾値を超える項目を特定し、当該項目と所定の機能とに対応関係があることを示す機能情報を生成する。具体的には、トレーサビリティマトリクス生成部54は、結果ファイル記憶部44によって記憶された結果ファイルを参照して、確率が任意の閾値を超えたクラスと機能とを関連付けたトレーサビリティマトリクスを生成する。図12は、実施例1に係るトレーサビリティマトリクス生成部54の処理の一例を説明するための図である。
例えば、任意の閾値が「10%」であった場合には、トレーサビリティマトリクス生成部54は、図12の(B)に示すように、図12の(A)に示す結果ファイルにおいて確率が10%を超えたクラス「DataSend.pl」及び「algo.pl」と、機能「データ送信機能」とを関連付けたトレーサビリティマトリクスを生成する。そして、トレーサビリティマトリクス生成部54は、生成したトレーサビリティマトリクスをトレーサビリティマトリクス記憶部45に格納する。なお、閾値は、機能情報生成装置100の管理者や操作者によって任意に決定される。
また、トレーサビリティマトリクス生成部54は、生成したトレーサビリティマトリクスを表示部30にて表示させるように制御する。ここで、本願の開示する機能情報生成装置100のユースケースについて図13を用いて説明する。図13は、実施例1に係る機能情報生成装置100のユースケースを説明するための図である。図13においては、ソフトウェア開発者によって指定された機能に関連するソースコードを表示する場合について示す。例えば、実施例1に係る機能情報生成装置100は、図13に示すように、事前処理として機能設計書に対してテキスト分割、形態素解析、名詞抽出することにより機能ファイルを生成し、機能ファイル記憶部42に格納する。同時に、機能情報生成装置100は、図13に示すように、事前処理としてソースコードのコメント部分に対して形態素解析、名詞抽出、ベイズ学習を実行することにより確率情報を生成し、確率情報記憶部43に格納する。
そして、ソフトウェア開発者によって機能が指定されると、結果ファイル生成部53が指定された機能に相当する機能ファイルを機能ファイル記憶部42から読み出す。さらに、結果ファイル生成部53は、読み出した機能ファイルと確率情報記憶部43によって記憶された確率情報とに基づいてベイズ推定を実行することで結果ファイルを生成する。そして、トレーサビリティマトリクス生成部54が、結果ファイル生成部53によって生成された結果ファイルトレーサビリティマトリクスを生成するとともに、指定された機能に関連するクラスを表示部30に表示させる。なお、図13に示すユースケースは、あくまで一例である。例えば、実施例1に係る機能情報生成装置100は、機能設計書及びソースコードが入力された時点で、トレーサビリティマトリクスを自動的に生成するように設定することも可能である。
[実施例1に係る機能情報生成装置による処理の手順]
次に、実施例1に係る機能情報生成装置100による処理の手順について、図14及び15を用いて説明する。図14は、実施例1に係る機能情報生成装置100によるトレーサビリティマトリクス生成処理の手順を示すフローチャートである。
図14に示すように、実施例1に係る機能情報生成装置100においては、ソフトウェア開発者によって成果物テキストがアップロードされると(ステップS101肯定)、機能ファイル生成部51は、機能設計書を用いて機能ファイルを生成する(ステップS102)。そして、確率情報生成部52は、ソースコードを用いて確率情報を生成する(ステップS103)。
その後、ソフトウェア開発者によって機能が指定されると(ステップS104肯定)、結果ファイル生成部53は、機能ファイル生成部51によって生成された機能ファイルを取得し(ステップS105)、確率情報生成部52によって生成された確率情報を参照して、ベイズ推定により結果ファイルを生成する(ステップS106)。
続いて、トレーサビリティマトリクス生成部54は、結果ファイル生成部53によって生成された結果ファイルに基づいてトレーサビリティマトリクスを生成し(ステップS107)、ソフトウェア開発者によって指定された機能に関連するクラスを表示部30に表示させ(ステップS108)、処理を終了する。なお、実施例1に係る機能情報生成装置100は、成果物テキストがアップロードされるまで待機状態である(ステップS101否定)。また、実施例1に係る機能情報生成装置100は、ソフトウェア開発者から機能が指定されるまで待機状態である(ステップS104否定)。また、上述した処理の手順では、機能ファイルを生成した後に確率情報を生成する場合について説明したが、開示の技術はこれに限定されるものではなく、生成の順番は任意であり、同時に生成することも可能である。
図15は、実施例1に係る機能情報生成装置100による処理の手順を示すシーケンス図である。図15に示すように、実施例1に係る機能情報生成装置100においては、システム開発担当者である開発者Bによって機能設計書がアップロードされると(ステップS201)、機能ファイル生成部51は、アップロードされた機能設計書を用いて機能ファイルを生成する(ステップS202)。そして、開発者Bによってソースコードがアップロードされると(ステップS203)、確率情報生成部52は、アップロードされたソースコードを用いて確率情報を生成する(ステップS204)。
続いて、機能追加担当者である開発者Aによって機能が指定されると(ステップS205)、結果ファイル生成部53は、機能ファイル生成部51によって生成された機能ファイルを取得し(ステップS206)、確率情報生成部52によって生成された確率情報を参照して、結果ファイルを生成する(ステップS207)。結果ファイル生成部53によって結果ファイルが生成されると、トレーサビリティマトリクス生成部54は、生成された結果ファイルに基づいて、トレーサビリティマトリクスを生成し(ステップS208)、指定された機能に関連するクラスの情報を表示部30に表示させることで(ステップS209)、開発者Aに提示する。
[実施例1の効果]
上述したように、実施例1によれば、機能ファイル生成部51は、ソフトウェアが有する機能が記述された機能設計書から、当該機能ごとに、当該機能を示す文字列に含まれる名詞を抽出し、抽出した名詞と当該機能との対応関係を示す機能ファイルを生成する。そして、確率情報生成部52は、ソフトウェアに関連するソースコードから名詞を抽出し、抽出した各名詞がソースコードに含まれる各項目において出現する頻度から当該各名詞が出現する確率を項目ごとに算出し得る確率情報を生成する。そして、結果ファイル生成部53は、所定の機能に関して機能ファイルに対応付けられている全ての名詞について、いずれかの名詞が記述されたソースコードの項目全てを確率情報を用いて特定し、特定した項目それぞれが当該所定の機能である確率を確率情報を用いて算出する。そして、トレーサビリティマトリクス生成部54は、算出された確率の値が所定の閾値を超える項目を特定し、当該項目と前記所定の機能とに対応関係があることを示すトレーサビリティマトリクスを生成する。従って、実施例1に係る機能情報生成装置100は、トレーサビリティマトリクスを自動で生成することができ、ユーザの要求に柔軟に対応することを可能にする。
また、実施例1によれば、確率情報生成部52は、ソースコードを用いたベイズ学習により確率情報を生成する。そして、結果ファイル生成部53は、機能ファイルと、確率情報生成部52がベイズ学習により生成した確率情報とを用いたベイズ推定により前記確率を算出する。従って、実施例1に係る機能情報生成装置100は、機能とソースコードとの関連について既知の情報から未知の情報を容易に推定することを可能にする。
これまで実施例1について説明したが、本願が開示する技術は実施例1に限定されるものではない。すなわち、これらの実施例は、その他の様々な形態で実施されることが可能であり、種々の省略、置き換え、変更を行うことができる。
(1)形態素解析
上記した実施例1では、機能設計書を機能ごとにテキスト分割し、テキスト部分に対して形態素解析を実行する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、機能名に対して形態素解析を実行する場合であってもよい。
(2)名詞抽出
上記した実施例1では、機能設計書及びソースコードから名詞を抽出する際に、単独の名詞を抽出する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、連続する名詞を複合した複合名詞を処理対象とする場合であってもよい。
(3)名詞の重要度
上記した実施例1では、名詞の出現数に基づいて確率情報を生成する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、名詞の重要度に応じて重み付けをして確率情報を生成する場合であってもよい。かかる場合には、例えば、tf−idfによりソースコード中の特徴的な名詞を抽出し、抽出した名詞に対して所定の重み付けをして確率情報を生成する。
(4)ベイズ推定
上述した実施例1では、単純なベイズ推定により結果ファイルを生成する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、Graham方式やRobinson方式などにより確率情報を出現数で示したり、機能ファイルに記述する名詞を絞り込こんだり、などのアレンジを実行する場合であってもよい。
(5)システム構成等
例えば、各装置の分散・統合の具体的形態(例えば、図1の形態)は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、機能ファイル記憶部42と確率情報記憶部43とを一つの記憶部として統合してもよく、一方、結果ファイル生成部53を、機能ファイルを取得する機能ファイル取得部と、結果ファイルを生成する生成部とに分散してもよい。
また、制御部50を機能情報生成装置100の外部装置としてネットワーク経由で接続するようにしてもよく、或いは、結果ファイル生成部53、トレーサビリティマトリクス生成部54を別の装置がそれぞれ有し、ネットワークに接続されて協働することで、上述した機能情報生成装置100の機能を実現するようにしてもよい。
(6)機能情報生成プログラム
上記実施例で説明した機能情報生成装置100は、あらかじめ用意されたプログラムをコンピュータで実行することで実現することもできる。そこで、以下では、図1に示した機能情報生成装置100と同様の機能を実現する機能情報生成プログラムを実行するコンピュータの一例を説明する。
図16は、実施例2に係る機能情報生成プログラムを実行するコンピュータ1000を示す図である。図16に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。ディスクドライブ1100には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
ここで、図16に示すように、ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。実施例2に係る機能情報生成プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。具体的には、上記実施例で説明した機能ファイル生成部51と同様の情報処理を実行する第1情報生成ステップと、確率情報生成部52と同様の情報処理を実行する第2情報生成ステップと、結果ファイル生成部53と同様の情報処理を実行する確率算出ステップと、トレーサビリティマトリクス生成部54と同様の情報処理を実行する機能情報生成ステップとが記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。
また、上記実施例で説明した成果物テキスト記憶部41に記憶されるデータのように、機能情報生成プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュールやプログラムデータを必要に応じてRAM1012に読み出して、第1情報生成ステップと、第2情報生成ステップと、確率算出ステップと、機能情報生成ステップとを実行する。
なお、情報送受信プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、情報送受信プログラムに係るプログラムモジュールやプログラムデータは、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
これらの実施例やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
51 機能ファイル生成部
52 確率情報生成部
53 結果ファイル生成部
54 トレーサビリティマトリクス生成部
100 機能情報生成装置

Claims (3)

  1. ソフトウェアが有する機能が記述された第1の文字ファイルから、当該機能ごとに、当該機能を示す文字列に含まれる名詞を抽出し、抽出した名詞と当該機能との対応関係を示す第1情報を生成する第1情報生成部と、
    前記ソフトウェアに関連する第2の文字ファイルから名詞を抽出し、抽出した各名詞が前記第2の文字ファイルに含まれる各項目において出現する頻度から当該各名詞が出現する確率を項目ごとに算出し得る第2情報を生成する第2情報生成部と、
    所定の機能に関して前記第1情報に対応付けられている全ての名詞について、いずれかの名詞が記述された前記第2の文字ファイルの項目全てを前記第2情報を用いて特定し、特定した項目それぞれが当該所定の機能である確率を前記第2情報を用いて算出する確率算出部と、
    前記算出された確率の値が所定の閾値を超える項目を特定し、当該項目と前記所定の機能とに対応関係があることを示す機能情報を生成する機能情報生成部と、
    を有し、
    前記第2情報生成部は、前記第2の文字ファイルを用いたベイズ学習により前記第2情報を生成し、
    前記確率算出部は、前記第1情報と、前記第2情報生成部がベイズ学習により生成した前記第2情報とを用いたベイズ推定により前記確率を算出することを特徴とする機能情報生成装置。
  2. 機能情報生成装置で実行される機能情報生成方法であって、
    ソフトウェアが有する機能が記述された第1の文字ファイルから、当該機能ごとに、当該機能を示す文字列に含まれる名詞を抽出し、抽出した名詞と当該機能との対応関係を示す第1情報を生成する第1情報生成工程と、
    前記ソフトウェアに関連する第2の文字ファイルから名詞を抽出し、抽出した各名詞が前記第2の文字ファイルに含まれる各項目において出現する頻度から当該各名詞が出現する確率を項目ごとに算出し得る第2情報を生成する第2情報生成工程と、
    所定の機能に関して前記第1情報に対応付けられている全ての名詞について、いずれかの名詞が記述された前記第2の文字ファイルの項目全てを前記第2情報を用いて特定し、特定した項目それぞれが当該所定の機能である確率を前記第2情報を用いて算出する確率算出工程と、
    前記算出された確率の値が所定の閾値を超える項目を特定し、当該項目と前記所定の機能とに対応関係があることを示す機能情報を生成する機能情報生成工程と、
    を含み、
    前記第2情報生成工程は、前記第2の文字ファイルを用いたベイズ学習により前記第2情報を生成し、
    前記確率算出工程は、前記第1情報と、前記第2情報生成工程がベイズ学習により生成した前記第2情報とを用いたベイズ推定により前記確率を算出することを特徴とする機能情報生成方法。
  3. ソフトウェアが有する機能が記述された第1の文字ファイルから、当該機能ごとに、当該機能を示す文字列に含まれる名詞を抽出し、抽出した名詞と当該機能との対応関係を示す第1情報を生成する第1情報生成ステップと、
    前記ソフトウェアに関連する第2の文字ファイルから名詞を抽出し、抽出した各名詞が前記第2の文字ファイルに含まれる各項目において出現する頻度から当該各名詞が出現する確率を項目ごとに算出し得る第2情報を生成する第2情報生成ステップと、
    所定の機能に関して前記第1情報に対応付けられている全ての名詞について、いずれかの名詞が記述された前記第2の文字ファイルの項目全てを前記第2情報を用いて特定し、特定した項目それぞれが当該所定の機能である確率を前記第2情報を用いて算出する確率算出ステップと、
    前記算出された確率の値が所定の閾値を超える項目を特定し、当該項目と前記所定の機能とに対応関係があることを示す機能情報を生成する機能情報生成ステップと、
    をコンピュータに実行させ
    前記第2情報生成ステップは、前記第2の文字ファイルを用いたベイズ学習により前記第2情報を生成し、
    前記確率算出ステップは、前記第1情報と、前記第2情報生成ステップがベイズ学習により生成した前記第2情報とを用いたベイズ推定により前記確率を算出することを特徴とする機能情報生成プログラム。
JP2011025481A 2011-02-08 2011-02-08 機能情報生成装置、機能情報生成方法及び機能情報生成プログラム Expired - Fee Related JP5456707B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011025481A JP5456707B2 (ja) 2011-02-08 2011-02-08 機能情報生成装置、機能情報生成方法及び機能情報生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011025481A JP5456707B2 (ja) 2011-02-08 2011-02-08 機能情報生成装置、機能情報生成方法及び機能情報生成プログラム

Publications (2)

Publication Number Publication Date
JP2012164232A JP2012164232A (ja) 2012-08-30
JP5456707B2 true JP5456707B2 (ja) 2014-04-02

Family

ID=46843547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011025481A Expired - Fee Related JP5456707B2 (ja) 2011-02-08 2011-02-08 機能情報生成装置、機能情報生成方法及び機能情報生成プログラム

Country Status (1)

Country Link
JP (1) JP5456707B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042612B2 (en) 2015-12-02 2018-08-07 Mitsubishi Electric Corporation Software development support apparatus, software development support method, and computer readable medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7259432B2 (ja) 2019-03-18 2023-04-18 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250744A (ja) * 1999-02-26 2000-09-14 Hitachi Ltd ソフトウエア要求定義支援装置
JP2002182908A (ja) * 2000-12-15 2002-06-28 Mitsubishi Electric Corp S/w開発プロセス間のトレーサビリティ装置
EP1680741B1 (en) * 2003-11-04 2012-09-05 Kimberly-Clark Worldwide, Inc. Testing tool for complex component based software systems
JP4954674B2 (ja) * 2006-11-01 2012-06-20 株式会社日立製作所 ソフトウェア開発支援方法、ソフトウェア開発支援装置、ソフトウェア開発支援プログラム、及び計算機システム
JP5029047B2 (ja) * 2007-02-07 2012-09-19 日本電気株式会社 要件(要求)間リンクの設定支援システム、要件(要求)間リンクの設定方法及びプログラム
JP5137024B2 (ja) * 2008-06-20 2013-02-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 開発支援装置、方法、およびプログラム
JP5236564B2 (ja) * 2009-04-20 2013-07-17 株式会社日立製作所 ソフトウェア再利用支援方法及び装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042612B2 (en) 2015-12-02 2018-08-07 Mitsubishi Electric Corporation Software development support apparatus, software development support method, and computer readable medium

Also Published As

Publication number Publication date
JP2012164232A (ja) 2012-08-30

Similar Documents

Publication Publication Date Title
JP2008059369A (ja) ワークフロー管理システム、ワークフロー管理方法、ワークフロー管理プログラムおよび記録媒体
JP2019519019A (ja) テキストタイプを識別する方法、装置及びデバイス
WO2021208701A1 (zh) 代码变更的注释生成方法、装置、电子设备及存储介质
US8788248B2 (en) Transparent flow model simulation implementing bi-directional links
EP3079086A1 (en) Collaborative generation of configuration technical data for a product to be manufactured
JP2011238221A (ja) パッセージシーケンスの再使用を介して文書の展開を推測することによる文書類似性の測定
JP5456707B2 (ja) 機能情報生成装置、機能情報生成方法及び機能情報生成プログラム
US20090094052A1 (en) System and method for dynamically generated clinical form elements
JP2009003596A (ja) 文書処理装置および文書処理プログラム
CN112214602B (zh) 基于幽默度的文本分类方法、装置、电子设备及存储介质
JP6695987B2 (ja) 広告生成方法、コンピュータ読み取り可能な記憶媒体及びシステム
CN111316191A (zh) 用于多级模式发现和视觉分析推荐的预测引擎
JP6608061B2 (ja) Sns情報に基づくリスクイベント認識システム、方法、電子装置及び記憶媒体
US10320727B1 (en) Managing document feedback on a sharing service using a messaging client
US20140068426A1 (en) System and method of modifying order and structure of a template tree of a document type by merging components of the template tree
US20130117245A1 (en) Method and system for identification of asset records in a version managed datastore
US20080103752A1 (en) Apparatus, method, and program for conversion of application program
JP2012164231A (ja) 言語変換装置、言語変換方法及び言語変換プログラム
CN112528647A (zh) 相似文本生成方法、装置、电子设备及可读存储介质
JP2017182377A (ja) 情報処理装置、制御方法、及びプログラム
JP5644599B2 (ja) オブジェクト指向モデル設計支援装置
CN111833165A (zh) 一种支出预算管理系统、设备及介质
JP2008102731A (ja) 設計書の変更履歴管理システム
CN106909494A (zh) 一种在基于linux平台的刀片服务器中实时显示bmc日志的方法
US20050251372A1 (en) Computer product, design aiding method, and design aiding apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131029

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131210

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140108

R150 Certificate of patent or registration of utility model

Ref document number: 5456707

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees