JPWO2017199443A1 - テンプレート生成装置、テンプレート生成プログラム及びテンプレート生成方法 - Google Patents

テンプレート生成装置、テンプレート生成プログラム及びテンプレート生成方法 Download PDF

Info

Publication number
JPWO2017199443A1
JPWO2017199443A1 JP2018500822A JP2018500822A JPWO2017199443A1 JP WO2017199443 A1 JPWO2017199443 A1 JP WO2017199443A1 JP 2018500822 A JP2018500822 A JP 2018500822A JP 2018500822 A JP2018500822 A JP 2018500822A JP WO2017199443 A1 JPWO2017199443 A1 JP WO2017199443A1
Authority
JP
Japan
Prior art keywords
area
source code
specifications
external
internal
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.)
Granted
Application number
JP2018500822A
Other languages
English (en)
Other versions
JP6305671B1 (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
Application granted granted Critical
Publication of JP6305671B1 publication Critical patent/JP6305671B1/ja
Publication of JPWO2017199443A1 publication Critical patent/JPWO2017199443A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

第1抽出部(910)は、要求仕様書(51)、外部仕様書(52)、内部仕様書(53)を複数の領域に分割し、各領域からキーワードを抽出する。第2抽出部(920)は複数の領域からなるソースコードからオブジェクトごとにファンクションリストを生成し、ファンクションリストからキーワードを抽出する。生成部(930)は、抽出されたキーワードを用いて、ソースコード(54)、内部仕様書(53)、外部仕様書(52)、要求仕様書(51)の各領域の計4領域の対応付けを示す対応付け情報を製品ごとに生成する。決定部(940)は、複数の製品の中に、対応付け情報の示す4領域からなる領域グループであって、製品を異にして互いに類似する領域グループである複数の類似領域グループが存在するか判定する。

Description

本発明は、ソフトウェア開発過程における、要求仕様書、外部設計書、内部設計書及びソースコードのそれぞれのテンプレートを生成するテンプレート生成装置に関する。
類似製品の仕様書作成を支援する市販ツールはなく、通常、類似製品の仕様書を作成する場合、既存の仕様書をコピーアンドペーストし、部分的に変更箇所を改訂することで、類似製品の仕様書が作成されることが一般的であった。
特開平07−129381号公報 特開2010−204910号公報
特許文献1については、Doxygen等の既存の解析ソフトウェアを用いて、ソースコードから設計書を自動生成する。しかし、ここでの設計書は内部設計書相当のものであり、要求仕様書や外部設計書までは自動生成できない。
また、特許文献2は、ソースコードを閲覧しているときに、参考となる設計書を表示するが、この表示に止まり、設計書やソースコードのテンプレートを自動生成する技術ではない。
この発明は、既存の複数製品の要求仕様書、外部設計書、外部設計書、ソースコードから、新たに開発される製品の要求仕様書、外部設計書、外部設計書、ソースコードのそれぞれのテンプレートを生成する装置の提供を目的とする。
この発明のテンプレート生成装置は、
いずれも電子データである一つの製品の要求仕様書、外部仕様書、内部仕様書を複数の領域に分割し、各領域からキーワードを抽出する第1抽出部と、
複数の記述領域である複数の領域からなる前記製品の電子データであるソースコードからオブジェクトごとにファンクションリストを生成し、前記ファンクションリストからキーワードを抽出する第2抽出部と、
抽出されたキーワードを用いて、前記ソースコードの領域と、前記内部仕様書の領域と、前記外部仕様書の領域と、前記要求仕様書の領域との4領域の対応付けを示す対応付け情報を製品ごとに生成する生成部と、
複数の製品の中に、前記対応付け情報で対応付けが示される4領域からなる領域グループであって、製品を異にして互いに類似する領域グループである複数の類似領域グループが存在するか判定し、存在する場合に、いずれかの前記類似領域グループの4領域を、要求仕様書、外部仕様書、内部仕様書、ソースコードの各テンプレートに採用するかどうか決定する決定部と
を備える。
本発明のテンプレート生成装置によれば、サンプル文書のようにベースとなる書類が自動生成される。よって、開発プロジェクトの参加設計者が開発製品の設計技術に熟達していない場合であっても、ベースとなる共通的なサンプル文書を用意することができる。よって、効率的に仕様書作成ができる。
実施の形態1の図で、テンプレート生成装置の構成図。 実施の形態1の図で、テンプレート生成装置の処理工程を示す図。 実施の形態1の図で、テンプレート生成装置の前段処理1Aの構成図。 実施の形態1の図で、テンプレート生成装置の前段処理1Aの構成図。 実施の形態1の図で、テンプレート生成装置の後段処理1Bの構成図。 実施の形態1の図で、テンプレート生成装置の動作概要を示す図。 実施の形態1の図で、類似領域グループと製品の個数との関係を示す図。 実施の形態1の図で、前段処理1Aの動作を示すフローチャート。 実施の形態1の図で、後段処理1Bの動作を示すフローチャート。 実施の形態1の図で、外部仕様書に相当するOpenEL 2.0の仕様書の目次構成の例を示す図。 実施の形態1の図で、前段処理1Aの処理フローを示す図。 実施の形態1の図で、前段処理1Aのキーワード抽出を説明するフローチャート。 実施の形態1の図で、ソースコード解析部21によってソースコード54から抽出されるAPI仕様の情報を示す図。 実施の形態1の図で、外部仕様書52の各文章領域のキーワードを示す図。 実施の形態1の図で、要求仕様書51の各文章領域のキーワードを示す図。 実施の形態1の図で、内部仕様書53の各文章領域のキーワードを示す図。 実施の形態1の図で、ソースコード54に含まれるAPI名称を示す図。 実施の形態1の図で、内部仕様書53に含まれるAPI名称を示す図。 実施の形態1の図で、ソースコード54の領域と内部仕様書53の領域との対応付けを示す図。 実施の形態1の図で、内部仕様書53の領域と外部仕様書52の領域との対応付けを示す図。 実施の形態1の図で、外部仕様書52の領域と要求仕様書51の領域との対応付けを示す図。 実施の形態1の図で、後段処理1Bの処理フローを示す図。 実施の形態1の図で、対応付け情報を示す図。 実施の形態1の図で、要求仕様書51のテンプレートの例を示す図。 実施の形態1の図で、外部仕様書52のテンプレートの例を示す図。 実施の形態1の図で、内部仕様書53のテンプレートの例を示す図。 実施の形態1の図で、ソースコード54のテンプレートの例を示す図。 実施の形態1の図で、各文章領域の主要キーワードとして抽出できたものを表形式で記載したサンプルを示す図。 実施の形態1の図で、後段処理にて共通的なオブジェクトと関数を抽出する処理を示した図。 実施の形態1の図で、テンプレート生成装置のハードウェア構成を示す図。 実施の形態2の図で、要求仕様書51−2の目次を示す図。 実施の形態2の図で、図31から続く要求仕様書51−2の目次を示す図。 実施の形態2の図で、外部仕様書52の簡略な目次構成案を示す図。 実施の形態2の図で、要求仕様書51−2から抽出された主要キーワードを示す図。 実施の形態2の図で、第1の対応抽出部31aによる処理結果を示す図。 実施の形態3の図で、外部仕様書52に相当するWeb APIの一覧を示す図。 実施の形態3の図で、Web APIのソースコードファイル一覧を示す図。 実施の形態3の図で、基本設計書の主要目次項目を示す図。
実施の形態1.
図1から図30を参照して、実施の形態1のテンプレート生成装置1を説明する。実施の形態1のテンプレート生成装置1の特徴は、ソースコードを解析して、各オブジェクトやファンクションに対応する設計書の文章領域を抽出する点にある。テンプレート生成装置1は、内部仕様書から外部仕様書、要求仕様書へと設計の上流へ、対応する文章領域への展開を図る。
(1)内部仕様書は、内部設計書、詳細設計書などと呼ばれる場合もあるが、本実施の形態では、内部仕様書と記す。
(2)外部仕様書は、外部設計書、概略設計書などと呼ばれる場合もあるが、本実施の形態では、外部仕様書と記す。
なおテンプレート生成装置1の利用件として、1つ以上の製品で、要求仕様書、外部仕様書、内部仕様書、ソースコードが、章節等の目次構成を備えていること想定する。要求仕様書、外部仕様書、内部仕様書、ソースコードは、製品設計データである。
<***構成の説明***>
図1〜図5を用いて、実施の形態1のテンプレート生成装置1の構成を説明する。
図1は、テンプレート生成装置1の構成を示す。テンプレート生成装置1は、コンピュータである。テンプレート生成装置1は、プロセッサ901、記憶装置902、入力インタフェース903、出力インタフェース904等のハードウェアを備える。入力インタフェース903は入力IF903と記し、出力インタフェース904は出力IF904と記す。テンプレート生成装置1は、構成機能として、第1抽出部910、第2抽出部920、生成部930、決定部940を有する。
以下の説明では、テンプレート生成装置1における、第1抽出部910と、第2抽出部920と、生成部930と、決定部940との機能を、テンプレート生成装置1の「部」の機能という。テンプレート生成装置1の「部」の機能は、ソフトウェアで実現される。第1抽出部910、第2抽出部920等は、後述する図3〜図5に示すように、さらに、複数の機能部からなる。第1抽出部910等を構成するさらに具体的な機能部は後述する。
記憶装置902は、補助記憶装置902a及びメモリ902bを含む。補助記憶装置902aは、具体的には、ROM(Read・Only・Memory)、フラッシュメモリ、又は、HDD(Hard・Disk・Drive)である。メモリ902bは、具体的には、RAM(Random・Access・Memory)である。
入力IF903は、信号が入力されるポートである。また、入力IF903は、マウス、キーボード、タッチパネルといった入力装置と接続されるポートであってもよい。入力IF903は、具体的には、USB(Universal・Serial・Bus)端子である。なお、入力IF903は、LAN(Local・Area・Network)と接続されるポートであってもよい。
出力IF904は、信号を出力するポートである。出力IF904は、USB端子でもよい。
補助記憶装置902aには、プロセッサ901として示す「部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリ902bにロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。補助記憶装置902aには、OS(Operating・System)も記憶されている。OSの少なくとも一部がメモリ902bにロードされ、プロセッサ901はOSを実行しながら、プロセッサ901として示す「部」の機能を実現するプログラムを実行する。
図2は、テンプレート生成装置1の処理を示す機能ブロック図である。テンプレート生成装置1は、前段処理1Aと後段処理1Bとを実行して、テンプレート群70を生成する。前段処理1Aは、第1抽出部910と第2抽出部920と生成部930とが実行する。後段処理1Bは、決定部940が実行する。後段処理1Bには前段処理1Aの実行結果が入力され、後段処理1Bはテンプレート群70を出力する。テンプレート群70とは、要求仕様書のテンプレート、外部仕様書のテンプレート、内部仕様書のテンプレート、ソースコードのテンプレートである。
(1)前段処理1Aでは、テンプレート生成装置1には、まずP製品の要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54が入力され、テンプレート生成装置1は、P製品の前段処理1Aを実施する。
(2)次に、Q製品の要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54が入力され、テンプレート生成装置1は、Q製品の前段処理1Aを実施する。
(3)以下同様に、R製品、S製品等の要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54が入力され、テンプレート生成装置1は、Q製品、S製品等の前段処理1Aを実施する。前段処理1Aの具体的な内容は図3、図4で後述する。なお前段処理1Aに入力されるのは2以上の製品の、要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54を想定している。
後段処理1Bでは、前段処理1Aによる実行結果である、製品Pの対応付け情報61、製品Qの対応付け情報62、製品Rの対応付け情報63が入力される。「対応付け情報」は後述する。
図3は、テンプレート生成装置1の前段処理1Aを実行する、テンプレート生成装置1の機能部を示す。
(1)第1抽出部910は、分割部11、第1のキーワード抽出部12を備える。
(2)第2抽出部920は、ソースコード解析部21、ファンクションリスト生成部22、第2のキーワード抽出部23を備える。
(3)生成部930は、第1の対応抽出部31a、第2の対応抽出部31b、第3の対応抽出部31c、対応付け情報生成部32を備える。
図4は、生成部930が、さらに、トレーサビリティ情報取得部33a,33b,33c、相互関係判定部34を備える。図4は、図3に対して、生成部930にトレーサビリティ情報取得部33a,33b,33c、相互関係判定部34が追加された点が異なる。
図5は、テンプレート生成装置1の後段処理1Bを実行する、テンプレート生成装置1の「部」の機能を示す。決定部940は、対応判定部41、カウント部41a、文章解析部41b、重要度判定部42、テンプレート出力部43、空欄作成部44を備える。
***動作の説明***
図1、図6を参照して、テンプレート生成装置1の動作の概要を説明する。
図6は、テンプレート生成装置1の動作の概要を説明するための図である。
テンプレート生成装置1には、入力インタフェース903から、P製品の要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54が入力される。まず、テンプレート生成装置1は、P製品の前段処理1Aを実施する。入力インタフェース903から入力される要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54は、いずれも電子データである。第1抽出部910は、一つの製品の要求仕様書51、外部仕様書52、内部仕様書53を複数の領域に分割し、各領域からキーワードを抽出する。図6は、製品P,Q,Rの要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54を示している。上段が製品P、中段が製品Q、下段が製品Rである。以下、製品Pについて図6を説明するが他の製品についても同じである。
要求仕様書51、外部仕様書52、内部仕様書53は4段になっている。これは第1抽出部910が要求仕様書51等を複数の領域(4つの領域)に分割したことを示す。また4段の各矢印は、抽出されるキーワードを示す。他の製品も同じである。第1抽出部910は、要求仕様書51について、1段目(最上段)の領域からモータを、2段目の領域からジャイロセンサを、3段目の領域からトルクセンサを、キーワードとして抽出したことを示す。
第2抽出部920は、複数の記述領域である複数の領域からなるソースコード54からオブジェクトごとにファンクションリストを生成し、ファンクションリストからキーワードを抽出する。図6ではファンクションリスト(後述する)は示していない。図6は、ファンクションリストからモータ、ジャイロセンサ、トルクセンサがキーワードとして抽出され、これらのキーワードは、ソースコード54における1段目の領域、2段目の領域、3段目の領域に存在することを示している。
生成部930は、抽出されたキーワードを用いて、ソースコード54の領域と、内部仕様書53の領域と、外部仕様書52の領域と、要求仕様書51の領域との4領域の対応付けを示す「対応付け情報」を製品ごとに生成する。図6において、生成部930は、抽出されたキーワードのモータを用いて、ソースコード54の1段目の領域と、内部仕様書53の1段目の領域と、外部仕様書52の1段目の領域と、要求仕様書51の1段目の領域との4領域の対応付けを示す「対応付け情報61−1」を生成する。つまり、モータというキーワードが同じであるため、生成部930は、ソースコード54、内部仕様書53、外部仕様書52、要求仕様書51の各1段目を、「対応付け情報61−1」として対応付ける。
同じように、生成部930は、抽出されたキーワードのジャイロセンサを用いて、ソースコード54の2段目の領域と、内部仕様書53の2段目の領域と、外部仕様書52の領域の2段目と、要求仕様書51の2段目の領域との4領域の対応付けを示す「対応付け情報61−2」を生成する。同じように、生成部930は、抽出されたキーワードのトルクセンサを用いて、ソースコード54の3段目の領域と、内部仕様書53の3段目の領域と、外部仕様書52の3段目の領域と、要求仕様書51の3段目の領域との4領域の対応付けを示す「対応付け情報61−3」を生成する。
なお、製品Qからはトルクセンサがキーワードとして抽出されず、製品Rからはジャイロセンサがキーワードとして抽出されなかったとする。
第1抽出部910,第2抽出部920、生成部930は前段処理1Aを実行するが、前段処理1Aは製品ごとである。これに対して決定部940は後段処理1Bを実行するが、後段処理1Bは複数の製品を対象とする。
決定部940は、複数の製品の中に、対応付け情報で対応付けが示される4領域からなる領域グループであって、製品を異にして互いに類似する領域グループである複数の類似領域グループが存在するか判定する。決定部940は、存在する場合に、いずれかの類似領域グループの4領域を、要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54の各テンプレートに採用するかどうか決定する。
具体的には以下のようである。決定部940は、P,Q,Rの製品の中に、「対応付け情報61−1」等で対応付けが示される4領域からなる領域グループであって、製品を異にして互いに類似する領域グループである複数の類似領域グループが存在するか判定する。具体例で説明する。「対応付け情報61−1」は、ソースコード54、内部仕様書53、外部仕様書52、要求仕様書51の各1段目の領域を対応付ける。「領域グループ」とは、「対応付け情報61−1」で対応が示される、ソースコード54の一つの領域、内部仕様書53の一つの領域、外部仕様書52の一つの領域、要求仕様書51の一つの領域の計4領域からなる領域のグループである。図6には、「対応付け情報61−1」で示される領域グループとして、領域グループ61G−1を示した。製品Qの場合、「対応付け情報62−1」で示される領域グループは領域グループ62G−1である。
決定部940は製品を異にする領域グループである領域グループ61G−1と領域グループ62G−1とが類似するか判定する。類似の判定方式は後述する。決定部940は、類似領域グループが存在する場合に、いずれかの類似領域グループの4領域を、要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54の各テンプレートに採用するかどうか決定する。この決定方式は後述する。
対応付け情報を生成する場合、生成部930は、抽出されたキーワードを用いて、ソースコード54の領域と内部仕様書53の領域とを対応付ける。
次に、抽出されたキーワードを用いて、生成部930は、ソースコード54の領域に対応付けられた内部仕様書53の領域と、外部仕様書52の領域とを対応付ける。
次に、抽出されたキーワードを用いて、生成部930は、内部仕様書53の領域を介してソースコード54の領域に対応付けられた外部仕様書52の領域と、要求仕様書51の領域とを対応付ける。
以上により、生成部930は、ソースコード54の領域と、内部仕様書53の領域と、外部仕様書52の領域と、要求仕様書51の領域との4領域を対応付ける。つまり、図6の場合、まず、生成部930は、抽出されたキーワードである「モータ」を用いて、ソースコード54の1段目の領域と内部仕様書53の1段目の領域とを対応付ける。
次に、「モータ」を用いて、生成部930は、ソースコード54の1段目の領域に対応付けられた内部仕様書53の1段目の領域と、外部仕様書52の領域とを対応付ける。
次に、「モータ」を用いて、生成部930は、内部仕様書53の1段目の領域を介してソースコード54の1段目の領域に対応付けられた外部仕様書52の1段目の領域と、要求仕様書51の領域とを対応付ける。
以上により、生成部930は、ソースコード54、内部仕様書53、外部仕様書52、要求仕様書51の各1段目の領域を対応付けで対応付け情報61−1を生成する。
決定部940は、各製品の領域グループに含まれるキーワードであって、第1抽出部910と第2抽出部920とが抽出したキーワードである「抽出キーワード」を用いて、類似領域グループが存在するか判定する。つまり、図6の場合、領域グループ61G−1と、領域グループ62G−1とが類似するか、決定部940は、第1抽出部910が抽出した「モータ」によって判定する。この場合、決定部940は、同一の「抽出キーワード」の出現頻度を用いて、類似領域グループが存在するか判定する。
具体的には以下のようである。図6では領域グループ61G−1、62G−1において、要求仕様書51等の各1段目からは「モータ」がキーワードとして抽出されるが、各1段目から「モータ、ジャイロセンサ」が抽出されたとする。
この場合、領域グループ61G−1、62G−1の各1段目からは、例えば1:9の比率のように、「ジャイロセンサ」に比べて多くの「モータ」が抽出される場合、決定部940は、領域グループ61G−1、62G−1は、特徴点を「モータ」として互いに類似する類似領域グループと判定する。一方、領域グループ61G−1の各1段目からは1:9の比率で多くの「モータ」が抽出され、領域グループ62G−1の各1段目からは1:9の比率で多くの「ジャイロセンサ」が抽出された場合、決定部940は、領域グループ61G−1、62G−1は、類似領域グループではないと判定する。
上記では類似領域グループが存在するかどうか、「抽出キーワード」で判定したが以下のように要約を用いてもよい。決定部940は、領域グループにおける内部仕様書53の領域と、外部仕様書52の領域と、要求仕様書51の領域とのうちの少なくともいずれかの領域の要約を生成し、異なる製品の領域グループどうしの要約を比較することによって、類似領域グループが存在するか判定してもよい。
決定部940は、特徴点を同じくして互いに類似する類似領域グループが存在する製品の個数に基づいて、いずれかの類似領域グループの4領域を、要求仕様書、外部仕様書、内部仕様書、ソースコードの各テンプレートに採用することを決定する。
図7は、図6において、類似領域グループが存在する製品の個数を説明する図である。図6において、キーワードの「モータ」が同じである領域グループ61G−1、領域グループ62G−1、領域グループ63G−1が、「モータ」を特徴点として互いに類似する類似領域グループであるとする。また、キーワードの「ジャイロセンサ」が同じである領域グループ61G−2、領域グループ62G−2が、「ジャイロセンサ」を特徴点として互いに類似する類似領域グループであるとする。また、キーワードの「トルクセンサ」が同じである領域グループ61G−3、領域グループ63G−2が、「トルクセンサ」を特徴点として互いに類似する類似領域グループであるとする。
この場合、特徴点を同じくして類似する類似領域グループが存在する製品の個数は、図7の丸印の個数である。決定部940は、特徴点を同じくして類似する類似領域グループが存在する製品の個数で、いずれかの類似領域グループの4領域を、要求仕様書、外部仕様書、内部仕様書、ソースコードの各テンプレートに採用することを決定する。特徴点が「モータ」の製品の個数は3個、特徴点が「ジャイロセンサ」の製品の個数は2個、特徴点が「トルクロセンサ」の製品の個数は2個である。決定部940は、例えば、特徴点が「モータ」である類似領域グループを選択する。この場合、領域グループ61G−1、62G−1、63G−1のそれぞれが類似領域グループである。この例では、決定部940は、どの領域グループをテンプレート作成用に決定してもよい。決定部940は、領域グループ61G−1をテンプレート作成用に決定するとする。その場合、決定部940は、領域グループ61G−1に含まれる、ソースコード54、内部仕様書53、外部仕様書52、要求仕様書51の各1段目の領域を、ソースコード、内部仕様書、外部仕様書、要求仕様書の各テンプレートに採用する。
図8は、前段処理1Aの動作を示すフローチャートである。
図9は、後段処理1Bの動作を示すフローチャートである。
図8、図9を参照して、前段処理1A、後段処理1Bの処理内容を、具体例に沿って、以下に説明する。前段処理1Aは、図4に示す前段処理1Aによって実行され、後段処理1Bは、図5に示す後処理1Bによって実行されるものとする。つまり前段処理1Aは、分割部11等によって実行され、後段処理1Bは対応判定部41等によって実行される。
なお、以下の具体例では、一般公開されている情報を使用して説明する。
本実施の形態では、既存のソフトウェア資産の例として、一般社団法人組込みシステム技術協会により策定されたOpenELを取り上げる。OpenEL(Open Embedded Library)とは、ロボット、制御システムなどのソフトウェアの実装仕様を標準化する組込みシステム向けのオープンなプラットフォームである(http://jasa.or.jp/openel/Main_Page/ja)。具体的には、OpenELは、センサ入力やモータへの出力等、機器制御のためのAPI(Application Programming Interface)を、ミドルウェアよりも低いレイヤで標準化したプラットフォームである。OpenELは、デバイスドライバ等のソフトウェアの移植性、再利用性、生産性を向上するための仕組みである。OpenELに関する情報は、一般社団法人組込みシステム技術協会のホームページよりダウンロードできる。
なお、OpenELにおいて公開されている情報としては、現在、外部仕様書52に相当する仕様書しかない。このため、要求仕様書51、内部仕様書53、ソースコード54は、実施の形態1では仮定して説明する。
図4に示すように、要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54が、前段処理1Aに入力されるデータである。前段処理1Aに入力される要求仕様書51、外部仕様書52、内部仕様書53は、電子データの文書である。前段処理1Aに入力されるソースコード54も電子データである。
要求仕様書51、外部仕様書52、内部仕様書53は、一般的に、章、節、項などのように、目次構成を持つ。
図10は、OpenEL 2.0における仕様書の目次である。図10は、外部仕様書52に相当する、OpenEL 2.0の仕様書である、OpenEL 2.0に関する各仕様書は、図10のような、目次構成を持つ。
<***前段処理1Aの動作の説明***>
図8、図11、図12を参照して、前段処理1Aの動作を説明する。
図8は、図4のブロック図に対応する形式の処理フローである。
図11も前段処理1Aの処理フローであり、図8に対応する処理には図8のステップ番号を付している。
図12は、第1のキーワード抽出部12及び第2のキーワード抽出部23の処理フローである。つまり、図12は、要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54が読み込まれた後に、分割部11が、要求仕様書51、外部仕様書52、内部仕様書53を文章領域に分割し、第2抽出部920が、ソースコード54を関数領域に分割し、キーワードを抽出するフローチャートである。
入力IF903には、要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54が入力される。要求仕様書51等は、入力IF903から入力された場合、補助記憶装置902bに保存される。第1抽出部910、第2抽出部920、生成部930、決定部940によって生成されたデータは、補助記憶装置902aに記憶される。第1抽出部910、第2抽出部920、生成部930、決定部940が処理を行う場合、第1抽出部910等はデータを補助記憶装置902aからメモリ90bにロードする。そして、第1抽出部910等は、メモリ902bからデータを読み出し、あるいは、メモリ902bにデータを書き込み、処理を進める。
(S11:仕様書の分割)
ステップS11において、図6で説明したように、分割部11は、要求仕様書51等の文章領域を章、節の構造に合わせて、文章データとして分割する。要求仕様書51を例にとれば、分割部11は、要求仕様書51の各章、各節等の、番号で識別される文章領域を要求仕様書51から切り出し、切り出した各文章領域を章、節番号と対応付ける。要するに前段処理1Aでは、「7.1」のような章、節等の番号を指定すると、分割部11が該当する文章領域の文章データを取り出す。この機能は、マイクロソフト社のワード等の一般的な構造化エディタのソフトウェアが備えている。
(S12:キーワードの抽出)
次に、ステップS12において、図6で説明したように、切り出された文章領域ごとに、第1のキーワード抽出部12は、文書データから主要キーワードをランク付けして抽出し、主要キーワードを選び出す。この機能を備えるソフトウェアは、代表的なものとして要約作成ソフトウェアである。例としては、フリーウェアのEKWords(http://www.djsoft.co.jp/products/ekwords.html)がある。
以上のステップS11、ステップS12では要求仕様書51を例に説明したが、外部仕様書52、内部仕様書53も、要求仕様書51と同様に処理される。
ステップS11、ステップS12の処理により、要求仕様書51、外部仕様書52、内部仕様書53については、それぞれの文章領域ごとのキーワードが抽出できる。次にソースコード54の取り扱いについて説明する。
(S21:ソースコードの解析)
ステップS21において、ソースコード解析部21は、ソースコード54を解析し、ソースコード54のそれぞれの記述領域からAPI(Application Interface)仕様の情報を抽出する。ソースコード解析部21がそれぞれの記述領域から抽出するAPI仕様の情報は、関数名、入力引数、出力引数、機能、使用するデータ型などである。ソースコード解析部21の機能を備えるソフトウェアは、Doxygen(http://www.doxygen.jp/)が有名であるが、他にも同様の複数のプログラム構造解析ソフトウェアがある。
図13は、ソースコード解析部21によってソースコード54から抽出されるAPI仕様の情報の例を示す図である。OpenELに適用する場合、API仕様の情報の抽出結果として、図13に示すような、モータ関連の関数一覧を得ることができる。なお図13は、一部を掲載している。
(S22:ファンクションリストの生成)
次に、ステップS22において、ファンクションリスト生成部22は、ソースコード解析部21によって抽出されたAPI仕様の情報から、オブジェクトごとのファンクションのリストを生成する。つまり、ファンクションリスト生成部22は、抽出されたAPI仕様の情報における「関数名、引数名、機能」から、オブジェクトに相当するキーワードを抽出する。ファンクションリスト生成部22による処理も、第1のキーワード抽出部12と同様に、キーワードを抽出することになるが、抽出の元データが関数一覧であるため、より効率的な抽出が可能である。また、関数名は複数の単語を連結した記述となっていることが多いため、ファンクションリスト生成部22は、関数名を分解し、複数の単語の状態でキーワード抽出を行う。なお、図13は、抽出されたAPI仕様の情報の一部を掲載しているが、オブジェクトとして「モータ」に関する関数一覧である。図13は、オブジェクトが「モータ」であるファンクションリストとみることができる。
図13に示す、抽出されたAPI仕様の情報では、関数名の共通部分を抽出した場合、「HalMotor」に機能の名称が付加されたものが関数名となるパターン規則を考慮できる。日本語文章で記述される右側の「機能」の文章から、「モータ」という共通キーワードが抽出される。図13の例では、「HalMotor」と「モータ」とがリンクできる。ランク付けされた複数候補のキーワードが得られる場合は、上位語を選択するようにする。計算機の処理では、誤った決定をする場合もあるため、人がオブジェクトの判定結果を確認して誤りがあれば訂正できる仕組みを用意しても良い。
なお図13に関して、一般のソースコードであれば、通常、関数ごとにプログラムが記述されている。内部仕様書に対応したソースコードを実装するのであれば、必ず関数1つ1つがソースコードの中のどこかに記述される。実施の形態1のソースコードには、図13に示す関数一覧内の全関数が記載されている。なお、関数という記載以外にAPI、ファンクションという記載もあるが、本明細書では、関数、API、ファンクションは同等に取り扱っている。オブジェクトごとのファンクションのリストは、ファンクションリスト生成部22が生成するが、ファンクションリスト生成部22は、API仕様を入力とし、関数名の一覧を生成する。図13は関数一覧であり、ファンクションリストである。
(S23:キーワードの抽出)
次に、ステップS23において、第2のキーワード抽出部23は、ファンクションリスト生成部22が生成したファンクションリスト(図13)から、主要キーワードをランク付けして抽出する。第2のキーワード抽出部23は、オブジェクトごとのファンクションリストから、主要キーワードを選び出す。図13の場合であれば、オブジェクトが「モータ」のファンクションリストとみることができるので、第2のキーワード抽出部23は、図13のリストから主要キーワードをランク付けして抽出する。
以上の処理により、要求仕様書51、外部仕様書52、内部仕様書53、ソースコード54のそれぞれの文章領域の主要キーワードが抽出される。それぞれの文章領域の主要キーワードの抽出は、図6の矢印に対応する。
外部仕様書52に相当する「OpenEL 2.0の仕様書」では、第1のキーワード抽出部12によるステップS12に関係する分割された領域のキーワードの例は、図14のようになる。
図14は、外部仕様書52に相当する「OpenEL 2.0の仕様書」において、複数の文章領域と、文章領域のキーワードとを示す。
ここで、例を示すために、図15のような、仮の簡略な要求仕様書51の章節構成(以下、目次構成と記す)を定義する。
図15は、仮の簡略な要求仕様書51における、複数の文章領域と、文章領域のキーワードとを示す。
さらに、仮に、図16のような内部仕様書53の目次構成を用意し、キーワードを設定する。
図16は、内部仕様書53における、複数の文章領域と、文章領域のキーワードとを示す。ソースコード54から内部仕様書53を自動生成するDoxygenツールがあるが、内部仕様書53にも、ソースコード54にもAPI名称が記載されている。ソースコード54の領域と内部仕様書53の領域との対応付けのキーワードとしては、API名称を採用するのが適している。対応付け処理の基本的なアルゴリズムは、各仕様書の領域、ソースコードの領域に対して、他方の領域のキーワードで検索を行い、大量に見つかるものを最も対応付けがとれると判断することができる。最近では、単純なキーワードの一致だけではなく、より対応付け処理の精度を向上できる手段があるので、これらの手段も利用できる。
なお、APIごとにソースコードが用意されているとする。
図17は、ソースコード54の構成例を示す。ソースコード54の主要キーワードとして、API名称を取り上げることができる。
図18は、内部仕様書53に含まれるAPI名称を示す。図18の「HalInit,HalExit」等がソースコード54のキーワードと共通するキーワードである。
(S31:領域対応情報の抽出)
以上の、図17の形式のソースコード54、図16、図18の形式の内部仕様書53、図14の形式の外部仕様書52、図15の形式の要求仕様書51に対して、第1の対応抽出部31a、第2の対応抽出部31b、第3の対応抽出部31cは、各仕様書及びソースコードの領域ごとに、主要キーワードを比較して、対応する文章領域同士を結び付けて、領域対応情報を生成する。「領域対応情報」とは、ソースコード54の領域と内部仕様書53の領域、内部仕様書53の領域と外部仕様書52の領域、外部仕様書52の領域と要求仕様書51の領域との領域というように2つの領域同士を対応付ける情報である。図6で述べたように、第1の対応抽出部31aは、ソースコード54の領域と内部仕様書53の領域とを対応付ける。第2の対応抽出部31bは、内部仕様書53の領域と外部仕様書52の領域とを対応付ける。第3の対応抽出部31cは、外部仕様書52の領域と要求仕様書51の領域とを対応付ける。なお一つの領域に対して複数の領域が対応付けられてもよい。図6の製品Pでは、ソースコード54の1段目の領域、内部仕様書53の1段目、4段目の領域は、いずれもキーワードが「モータ」である。この場合、第1の対応抽出部31aは、ソースコード54の1段目の領域を、内部仕様書53の1段目、4段目の各領域と対応付ける。この場合、対応付け情報生成部32は、キーワードのモータに関しては、対応付け情報として、要求仕様書51〜ソースコード54の4つの1段目から成る対応付け情報と、要求仕様書51、外部仕様書52、ソースコード54の3つの1段目、内部仕様書53の4段目からなる対応付け情報を生成する。
(第1の対応抽出部31a)
第1の対応抽出部31aは、キーワード比較により、ソースコード54と内部仕様書53との各領域の対応関係を抽出する。第1の対応抽出部31aは、主要キーワードがAPI名称の場合は、比較的容易に、ソースコード54の各記述領域と、内部仕様書53の各文章領域とを対応付けできる。なお、ここで「対応付ける」とは、仕様書どうしにおいて、あるいはソースコード54と内部仕様書53とにおいて、一方の領域が他方のどの領域に対応づけられるかを照合し、対応付ける処理である。例を示せば、一方の1つの領域をクリックすると、ハイパーリンクが張られており、他方の1つの領域が示される場合である。ただし、「対応」は1対1対応とは限らず、一つの領域が、他方の複数の領域に対応付けられる場合も有る。第1の対応抽出部31a,第2の対応抽出部31b,第3の対応抽出部31cによる対応付けの結果である領域対応情報は、対応付け情報生成部32が対応付け情報の生成に使用する。対応付け情報は、後段処理1Bの対応判定部41によって使用される。
図19は、第1の対応抽出部31aが、図13のキーワードを持つソースコード54と、図16のキーワードを持つ内部仕様書53とから、ソースコード54と内部仕様書53との領域同士の対応付けを行った例を示す。
(第2の対応抽出部31b)
第2の対応抽出部31bは、キーワード比較により、内部仕様書53と外部仕様書52との各文書領域の対応関係を抽出する。第2の対応抽出部31bでは、主要キーワードは、出現頻度に応じて選定された語彙を採用することができる。第2の対応抽出部31bによる処理において、有効な判断基準としては、章、節の名称の類似性を考慮できる。上述の例からも明らかである。こうして、内部仕様書53と外部仕様書52との各文章領域とを効率よく対応付けることができる。
図20は、図16、図18の内部仕様書53と、図14の外部仕様書52との領域の対応付けの例を示す。
(第3の対応抽出部31c)
第3の対応抽出部31cは、キーワード比較により、外部仕様書52と要求仕様書51との対応関係を抽出する。第3の対応抽出部31cでも、同様に、主要キーワードは、出現頻度に応じて選定された語彙を採用することができる。ただし、元来、要求仕様書51は、プログラムの構成は考慮されていないため、要求機能が羅列されている場合が多い。このため要求仕様書51は、プログラムの構成的な目次構成から、はずれた目次構成になっている場合が多い。よって、要求仕様書51は、外部仕様書52の目次構成と1対1には対応しない可能性が高い。しかし、機能を記述する際に使用するキーワードの出現頻度で対応付け可能であると想定でき、キーワードによる分類解析は有効である。
図21は、図14の外部仕様書52と、図15の要求仕様書51とから得られた領域の対応を示す。
(S32:対応付け情報61、62、63の生成)
ステップS33において、第1の対応抽出部31aはソースコード54の領域と、内部仕様書53の領域とを対応付けた領域対応情報を生成する。同様に、第2の対応抽出部31b、第3の対応抽出部31cは、2つの仕様書間の領域どうしを対応付けた領域対応情報を生成する。対応付け情報生成部32は、第1の対応抽出部31a等が生成する領域対応情報を用いて、対応付け情報を生成する。図6を参照して説明する。製品Pを想定する。第1の対応抽出部31aは、キーワードのモータによって、ソースコード54の1段目の領域と内部仕様書53の1段目の領域とを対応付ける領域対応情報を生成し、対応付け情報生成部32に送信する。第2の対応抽出部31bは、キーワードのモータによって、内部仕様書53の1段目の領域と、外部仕様書52の1段目の領域とを対応付ける領域対応情報を生成し、対応付け情報生成部32に送信する。第3の対応抽出部31cは、キーワードのモータによって、外部仕様書52の1段目の領域と要求仕様書51の1段目の領域とを対応付ける領域対応情報を生成し、対応付け情報生成部32に送信する。対応付け情報生成部32は、キーワードのモータについて、対応付け情報61−1を生成する。製品Q、Rについても、対応付け情報生成部32は同様に、キーワードのモータについて、対応付け情報を生成する。なお、内部仕様書53の4段目の「モータ」について、対応付け情報生成部32は、要求仕様書51、外部仕様書52の1段目、内部仕様書53の4段目、ソースコード54の1段目の4領域を対応付けた対応付け情報も生成する。対応付け情報生成部32は、対応付け情報62−1等を対応判定部41へ送信する。
(S34:トレーサビリティ情報)
文章領域の対応付けについては、既存の各仕様書にトレーサビリティ情報が記載している場合があり、トレーサビリティ情報を活用することができる。図4において、トレーサビリティ情報取得部33a、33b、33cは、それぞれトレーサビリティ情報33d,33e,33fにより、第1の対応抽出部31a〜第3の対応抽出部31cによる対応付けを限定する、オプション的な構成要素である。トレーサビリティ情報33fは要求仕様書51のものであり、トレーサビリティ情報33eは外部仕様書52のものであり、トレーサビリティ情報33dは内部仕様書53のものである。トレーサビリティ情報33d、33e、33fは補助記憶装置902aに記憶されており、トレーサビリティ情報取得部33a、33b、33cは、補助記憶装置902aから読み出す。
(S34:相互関係判定部34)
また、図4では、相互関係判定部34によるステップS34を付加している。相互関係判定部34は、複数キーワードの出現場所の近傍レベルからキーワード間の相関関係を判定する。これは、単純に文書領域に特定のキーワードが含まれる、含まれないということで、文章領域どうしの類似性を判断するものではない。相互関係判定部34は、複数のキーワードが比較的近くの場所に現れるということで、関連の強いキーワード群として扱うものであり、必ずしも、キーワード群の全てが現れなくても、そのうちのいくつかのキーワードが含まれていれば、類似箇所として判定することが可能になる。つまり、相互関係判定部34は、一方の文章領域に存在するキーワード群と、他方の文章領域に存在するキーワード群との類似性から、一方の文章領域と他方の文書領域との類似性を判定することが可能である。これも、上述した文書間の類似性を調べる手法の1つとなる。相互関係判定部34は前段処理1Aにはオプション的な機能であるが、相互関係判定部34によって、文書領域どうしの類似性を効果的に調べることができる。
***後段処理1Bの動作の説明
次に、図9、図22を参照して後段処理1Bの動作を説明する。
図9は、図5のブロック図に対応する形式の処理フローである。
図22は、後段処理1Bの処理フローであり、図9に対応する処理には図9のステップ番号を付している。
後段処理1Bにより、新規に開発する製品Zの要求仕様書、外部仕様書、内部仕様書、ソースコードに関して、既存の類似製品のものからテンプレートを作成する。以下の説明では、既存の類似製品としてP、Q、Rの3製品があり、それぞれ各種仕様書とソースコードが存在する。
製品P、Q、Rの各文章領域の対応付けが前段処理1Aにより行われたものとする。後段処理1Bでは、対応付けされた複数の文章領域を含むP、Q、R同士を比較する。既に、各文章領域にて主要キーワードを抽出されている(ステップS12、ステップS23)ので、P、Q、Rの文書間にてお互いの主要キーワードの出現頻度を検索で算出し、類似度を求める。なお、複数文書間にて、それぞれの文書がもつ主要キーワード群を照らし合わせて類似度を求める以外にも、文書を要約してその要約文の類似性を求めるなど、文書間の類似性を調べる既存の手法は様々にあり、こうした手法を用いることも可能である。そして、その類似度が高い領域が存在するかどうかを確認し、製品P、Q、Rのそれぞれにて共通的に存在する領域を見つけ出し、今回の新製品の仕様書、ソースコードのためのテンプレート採用箇所とする。詳細を以下に説明する。
図9のステップに沿って説明する。
(S41:対応判定)
ステップS41において、対応判定部41は以下の処理を行う。
図23は、図6の要求仕様書51〜ソースコード54の1段目の領域を「モータ」で対応付ける対応付け情報61−1を示す。図6、図9に示すように、対応判定部41には、製品P、Q、Rの対応付け情報が入力データとして入力される。ここで製品P、Q、Rの対応付け情報は、図6で説明したものである。対応判定部41は、P,Q,Rの製品の中に、類似領域グループが存在するか判定する。対応判定部41には、図6の製品Pについての対応付け情報61−1、製品Qについての対応付け情報62−1、製品Rについての対応付け情報63−1等が入力されている。対応付け情報61−1は、製品Pの要求仕様書51〜ソースコード54の1段目の領域を対応付ける情報である。同様に、対応付け情報62−1は製品Qの要求仕様書51〜ソースコード54の1段目の領域を、対応付け情報63−1は製品Rの要求仕様書51〜ソースコード54の1段目の領域を対応付ける情報である。対応判定部41は、対応付け情報61−1によって対応付けが示される領域グループ61G−1を、メモリ902bから取得する。領域グループ61G−1は、製品Pの要求仕様書51〜ソースコード54の1段目の領域からなる。同様に、対応判定部41は、領域グループ62G−1、63G−1を、メモリ902bから取得する。領域グループ62G−1、63G−1は、それぞれ、製品Q、製品Rの要求仕様書51〜ソースコード54の1段目の領域からなる。
対応判定部41では、カウント部41aが製品P,Q,Rの領域グループ61G−1、62G−1、63G−1の領域グループの類似関係を判定する。つまり、前段処理1Aでは、一つの製品を単位として、ソースコード54、内部仕様書53、外部仕様書52、要求仕様書51の各領域について、図6における横の類似関係を判定する。対応判定部41では、複数の製品のそれぞれの領域グループについて、図6における縦の類似関係を判定する。カウント部41aは、前段処理1Aで第1のキーワード抽出部12、第2のキーワード抽出部23が抽出したキーワードと、キーワードが抽出された領域との対応関係の情報をメモリ902bから読み取る。つまり、対応判定部41は、領域グループ61G−1、62G−1、63G−1をメモリ902bから取得している。これらはキーワードの「モータ」が同一であるので、「モータ」を特徴点として互いに類似する類似領域グループである。しかし、対応判定部41にはこれらが類似領域グループであるかわからない。そこで、対応判定部41はカウント部41aを用いて領域グループ61G−1、62G−1、63G−1が類似領域グループかを判定する。カウント部41aは、領域グループ61G−1等の各領域のキーワードをカウントすることで、領域グループ61G−1、62G−1、63G−1が、「モータ」を特徴点として互いに類似する類似領域グループであると判定する。
図7は、対応判定部41がカウント部41aを用いた場合の判定結果である。図7は、特徴点を同じとして互いに類似する類似領域グループの存在の有無を製品ごとに示す。図7の「モータ」の行は、類似領域グループである領域グループ61G−1、62G−1、63G−1が製品P、Q、Rに存在することを示す。「ジャイロセンサ」の行は、類似領域グループである「領域グループ61G−2、62G−2」(図6)が製品P、Qに存在することを示す。「トルクセンサ」の行は、類似領域グループである「領域グループ61G−3、63G−2」(図6)が製品P、Rに存在することを示す。
上記のように、対応判定部41がカウント部41aを用いる場合、カウント部41aがキーワードをカウントすることで、製品P,Q,Rの各領域グループを類似領域グループとして対応づけることができる。しかし、カウント部41aの使用に限らず、対応判定部41は、相関関係の強い複数キーワード、文章等の類似度によって、関連のある文書領域を抽出してもよい。相関関係の強い複数キーワードの例として、モータに関連してデバイス、速度、ブレーキというような複数キーワードがある。対応判定部41がデバイス、速度、ブレーキを含む文章領域を製品P,Q,Rそれぞれの書類の領域として抽出すれば、1つのキーワードで選んだ文章領域よりも、より類似的な内容が書かれた領域であり、関連性がある高いと考えることができる。
また、文章の構造を解析する文章解析部41bが要約を作成してよい。図6の領域グループ61G−1、62G−1を例に説明する。文章解析部41bは、領域グループ61G−1、62G−1における内部仕様書53の領域と、外部仕様書52の領域と、要求仕様書51の領域とのうちの少なくともいずれかの領域の要約を生成する。文章解析部41bは、領域グループ61G−1、領域グループ62G−1の要約どうしを比較することによって、領域グループ61G−1と領域グループ62G−1とが互いに類似する類似領域グループか判定する。要約どうしの比較は同じ種類の仕様書どうしが好ましいが、文章解析部41bは、異なる種類の仕様書の要約どうしを比較してもよい。
(S42:重要度の判定)
次に、ステップS42において、重要度判定部42は、対応判定部41の作成した図7を参照する。重要度判定部42は、図7において、「モータ」に関する類似領域グループが製品P,Q,R全てに存在していると確認し、「モータ」を特徴点とする類似領域グループの重要度は高いと判定する。また、重要度判定部42は、図7の「ジャイロセンサ」、「トルクセンサ」に関する類似領域グループが、製品P,Q、製品P,Rに存在すると確認する。「ジャイロセンサ」を特徴点とする類似領域グループ、「トルクセンサ」を特徴点とする類似領域グループの重要度は、中程度と判定する。
(S43:テンプレートの出力)
ステップS43において、テンプレート出力部43は、製品P,Q,Rの3つに存在する確認された、モータを特徴点とする類似領域グループについて、製品Pの類似領域グループを出力する。なお、「モータ」を特徴点とする類似領域グループであれば、製品Qあるいは製品Rの類似領域グループを出力しても良い。
図24は、要求仕様書のテンプレートの例を説明する図である。
図25は、外部仕様書52のテンプレートの例を説明する図である。
図26は、内部仕様書53のテンプレートの例を説明する図である。
図27は、ソースコードのテンプレートの例を説明する図である。
(S44:空欄の作成)
最後に、ステップS44において、空欄作成部44は、テンプレート出力部43によって出力された各テンプレート中に、製品機種名称、モータ等のデバイスの型番、製品名など、製品P,Q,Rに独自な記載箇所があるか確認する。有る場合は、その箇所を空欄に修正し、テンプレートの利用の際に、新たに入力可能にする。
図28は、各文章領域の主要キーワードとして抽出できたものを表形式で記載したサンプルを示す。図28は、主要キーワードをもつ文章領域が、製品P、Q、Rのそれぞれの要求仕様書51、外部仕様書52、内部仕様書53、及びソースコード54に存在するかどうかを整理した図である。文章領域が3製品に共通していれば、新製品用のテンプレートとして採用する候補になる。また、2製品にのみ含まれる場合には、中程度の候補となり、1つの製品にしかなければ、候補としては採用しにくくなる。これは上記の図7で説明した内容であり、重要度判定部42が判定する。
図29は、後段処理にて共通的なオブジェクトと関数を抽出する処理を示した説明図である。
以上に説明したテンプレート生成装置1は、前段処理1Aでは、単一製品について、ソースコード54のオブジェクトや関数の記述に対応する仕様書類記述を、内部仕様書53、外部仕様書52、要求仕様書と遡って対応付けを行う。テンプレート生成装置1は、各設計情報部品の関連性を明確にするために、対応箇所ごとに整理を行う。テンプレート生成装置1は、後段処理1Bでは、複数製品の書類間で対応箇所の比較を行い、重要で共通的な記述を、テンプレートの材料として選択する。
***実施の形態1の効果の説明***
(1)実施の形態1のテンプレート生成装置1は、前段処理1Aと後段処理1Bとを実行することにより、ソースコードから内部仕様書、外部仕様書、要求仕様書へと設計の上流へ遡って文章領域の対応付けを行うので、類似製品の、要求仕様書、外部仕様書、内部仕様書、ソースコードのテンプレートを作成できる。
(2)テンプレート生成装置1によれば、サンプル文書のように、ベースとなる仕様書、ソースコードが自動生成できる。よって、開発プロジェクトの参加設計者が開発製品の設計技術に熟達していない場合であっても、ベースとなる共通的なサンプル文書を用意することができる。よって、効率的に仕様書作成ができる。
(3)実施の形態1に示したように、既存の複数製品の要求仕様書51、外部仕様書52、内部仕様書53及びソースコード54をベースに、共通的な文章領域を中心として類似製品の、ソースコード、内部仕様書、外部仕様書、要求仕様書の各テンプレートを生成する。よって、生成された各テンプレートを使用することで、開発者は、新製品の要求仕様書、外部仕様書、内部仕様書、ソースコードについて、比較的重要な設計記述を中心に記載ができる。
(4)また、あまり重要でないオプション的な処理の記述が取り除かれたテンプレートが生成されるので、開発は、効率良い編集作業ができる。
***他の構成***
図30は、処理回路99を示す図である。本実施の形態ではテンプレート生成装置1の「部」の機能はソフトウェアで実現されるが、変形例として、テンプレート生成装置1の「部」の機能がハードウェアで実現されてもよい。つまり、処理回路99によって、前述したプロセッサ901として示すテンプレート生成装置1の「部」の機能、及び「記憶装置」の機能を実現する。処理回路99は信号線99aに接続している。処理回路99は、テンプレート生成装置1の「部」の機能及び「記憶装置」の機能を実現する専用の電子回路である。処理回路99は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate・Array)、ASIC(Application・Specific・Integrated・Circuit)、又は、FPGA(Field−Programmable・Gate・Array)である。
テンプレート生成装置1は、処理回路99を代替する複数の処理回路を備えていてもよい。これら複数の処理回路により、全体として、テンプレート生成装置1の「部」の機能が実現される。それぞれの処理回路は、処理回路99と同じように、専用の電子回路である。
別の変形例として、テンプレート生成装置1の機能がソフトウェアとハードウェアとの組合せで実現されてもよい。すなわち、テンプレート生成装置1の一部の機能が専用のハードウェアで実現され、残りの機能がソフトウェアで実現されてもよい。
プロセッサ901、記憶装置902及び処理回路99を、総称して「プロセッシングサーキットリ」という。つまり、テンプレート生成装置1の「部」の機能及び記憶装置は、プロセッシングサーキットリにより実現される。
「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。また、「部」の機能をファームウェアで実現してもよい。つまり、テンプレート生成装置1の動作はテンプレート作成プログラム、テンプレート作成方法として把握できる。また、「部」の機能は、テンプレート作成プログラムを格納する記録媒体して実現することもできる。
実施の形態2.
<要求仕様書51と外部仕様書52との対応関係の異なる抽出例>
以下に実施の形態2を説明する。なお、以下の実施の形態2、3では、実施の形態1のテンプレート生成装置1を使用する。実施の形態2、3では、実施の形態1に対して、前段処理1Aに入力されるデータが実施の形態1と異なる。
本実施の形態2では、要求仕様書51の例として、公開されているシステム開発文書品質研究会(ASDoQ)人材育成部会(http://asdoq.jp/)による「SWP1−D301 ムーブレボ通報システム ソフトウェア要求仕様書」(著者:山本雅基氏)(http://asdoq.jp/research/jinzai.html)を例として説明を行う。このソフトウェア要求仕様書を以下、要求仕様書51−2と記す。要求仕様書51−2は、「ムーブレボ」という仮想の電動一人乗り移動体(自動走行も可能な高機能な車椅子)を想定している。要求仕様書51−2は、さらに、その移動体に搭載される複数の組込みシステムの一つとして、異常が発生した時にヘルプセンターへ異常を知らせる「通報システム」に関する。
図31、図32は、要求仕様書51−2の目次を示す。要求仕様書51−2の目次は、図31、図32との2図に分けた。図31の最後の「3.10 通報地値(出力) 9」が、図32の上段の「4 開発制約要求 10」につながる。右端の数字はページ数を示す。
一般に、要求仕様書と外部仕様書との関連性は、要求仕様書における機能に対する要求の記述と、外部仕様書の関数記述とが、最も深く対応づけられる。以下で全体構成を順に確認し、機能に対する要求にあたる箇所を示す。以下、図31,図32を参照して説明する。
「1.はじめに」の章では、1.1 本書の目的、1.2 用語定義、1.3 関連文書があり、「1.はじめに」の章は、全般的に文書の前置きとしての記載であり、機能関連の記述は特にない。
実際の要求仕様書の「2.ソフトウェア概要」の章では、2.1 本ソフトウェアの概要、2.3 外部入出力値の概要、2.4 通報システムが取る状態、2.5 起動と終了の各節に、機能関連の記述が分散して含まれている。ただし、機能を詳細に記述している章は、後続であるため、本章の記載はあくまで概要レベル、あるいは、機能記述の補足情報レベルで留まっていると言える。
「3.入出力値の定義」の章では、機能を詳細に定義する際の各種数値条件について記載があり、機能についての補足情報の記述が含まれているといえる。すなわち、個々の機能を記述する際に、必要に応じてこれらの数値条件を参照することになる。
「4.開発制約要求」の章では、要求仕様書51−2の要求条件として参照すべき関連文書が記載されており、特に機能関連の記述と結びつくものではない。
「5.機能要求」の章では、直接、個々の機能についての記述が列挙されている。「5.機能要求」の章は、外部仕様書52の関数記述に直接に対応付けられる。ただし、必ずしも全ての外部仕様書52の主要関数に1対1で対応がとれる保証はない。機能自体が複数の関数に分散して実装される可能性があるからである。
「6.効率性要求」の章では、実装上の制約が記載されている。「6.効率性要求」の章は、特に機能関連の記述と結びつくものではない。
「7.保守・移植性要求」の章では、プログラムを実装する際のコーディング上の留意事項が記載されている。「7.保守・移植性要求」の章は、特に機能関連の記述と結びつくものではない。
「8.信頼性要求」の章では、試験要件が記載されており、特に機能関連の記述と結びつくものではない。
次に、以上の要求仕様書51−2の機能関連記述を分析して、仮に要求仕様書51−2に対する外部仕様書52の簡略な目次構成案を策定してみると、図33のようになる。
図33は、要求仕様書51−2の簡略な目次構成を示す。図33の「1.はじめに」の章では、外部仕様書52の位置づけが説明される。
「2.概要」の章では、要求仕様書51−2からもたらされる目的や機能の概要が記載される。また、用語定義や関連文書など、外部仕様書52を外部から規定する情報も記載される。
「3.ソフトウェア全体構成」の章では、要求仕様では現れない別の観点での設計情報が記載される。実装するにあたっての最適なソフトウェア全体構成が記載される。時間的な性能、使用するメモリ等の資源の効率的使用、コーディング設計の容易性、プログラムの保守性や再利用性などが考慮され、ソフトウェア構成が設計される。次章の関数APIにおける関数が、タスク、スレッド、コールバック、各種ハンドラなど、どのように呼び出されるのかも、「3.ソフトウェア全体構成」から規定される。実際の要求仕様書51−2の「図1 状態遷移」を参照すると、電源が入って起動処理が実行された後は、正常状態で各種機能を実行しながらメインループ処理が動作すると想定される。このメインループ中にボタン操作や電圧チェック判定などで必要な機能を呼び出して処理を行い、メインループ処理を継続する。各種機能で異常が発生した場合に、異常状態に移行して電源が切断される。
「4.関数API」の章では、個々の機能に対応する表層の全関数について、インタフェース仕様が記載される。
本実施の形態の個々の機能では、
要求仕様書51−2の「5.機能要求」から、
5.1 起動処理、
5.2 移動速度表示機能、
5.3 バッテリ残量表示機能、
5.4 走行可能距離表示機能、
5.5 システム状態表示機能、
5.6 G値超過通報機能、
5.7 警報ボタン押下時通報機能、
5.8 電圧低下時終了機能
のそれぞれについて、関数が用意されると想定される。
ここでは、「4.関数API」の章において、4.1から4.8までの節番号を、これらの各機能について順に付加する。
また、上述したメインループ内から、
5.2 移動速度表示機能、
5.3 バッテリ残量表示機能、
5.4 走行可能距離表示機能、
5.5 システム状態表示機能、
5.6 G値超過通報機能、
5.7 警報ボタン押下時通報機能
に相当する関数が呼び出される。
図33の「5.外部設計補足情報」の章では、「4.関数API」で説明した各関数を実装するにあたって、補足となる数値や留意点等が記載される。
以上の要求仕様書51−2と外部仕様書52について、実施の形態1のテンプレート生成装置1を適用した処理を以下に説明する。
要求仕様書51−2、外部仕様書52の目次構成は上述通りであるので、分割部11は、容易に文書データを分割出力できる。
次に、第1のキーワード抽出部12は、主要キーワードを、以下のように抽出できる。
要求仕様書51−2については、上述した機能関連の章節に限定して、図34に示す。
図34は、要求仕様書51−2から抽出された主要キーワードである。
外部仕様書52については、「1.はじめに」、「2.概要」「3.ソフトウェア全体構成」の章は、特に頻出する主要キーワードもほとんど現れない。これらは、特に対応付けをとるまでもなく、前置き的な文章領域として位置付けられる。
「4.関数API」の章については、上述したように各種機能関数が項目別に記載されている。よって、個々の関数ごとに要求仕様書51−2側の主要キーワードが良く現れる箇所に、対応付けることができる。今回の例を図35に示す。つまり、図35は、第1の対応抽出部31aによる処理結果である。
基本的に文書間の各文章領域の対応関係付けは、主要キーワードを中心に行うが、オプション的な補助手段として、日本語文章として詳細に文章構造解析を行って、意味論的に類似性を調べて対応付けを行うことで、より精度の高い対応付けを行うことができる。
実施の形態1と同様に、外部仕様書52から内部仕様書53、ソースコード54と各関数に対応付けして作成している想定であり、実施の形態1と同様な対応付けができる。
以上、実施の形態2で示したように、一般にソースコードの各関数に対応する仕様書の文章領域は、内部仕様書や外部仕様書を中心に1対1に対応する記述箇所となる場合が多い。しかし、要求仕様書の場合、要求記載項目が必ずしも、各関数に1対1に対応しないことが多い。このような多対多対応の仕様書の対応付けの整理も、実施の形態1で述べたテンプレート生成装置1によれば効率的に実行できる。よって、共通で必要な設計情報を盛り込んだテンプレートの自動生成ができる。
実施の形態3.
<要求仕様書51と外部仕様書52との対応関係の別の抽出例>
次に、日本医師会総合政策研究機構により策定、開発、公開されているオープンソースプロジェクトであるORCA PROJECTにおける日医標準レセプトソフト(https://www.orca.med.or.jp/receipt/)を取り上げて説明する。本プロジェクトでは、仕様書類、ソースコードの公開が充実化されている。システム全体は、データベースシステムを含む大規模なものであるが、クライアント端末装置からレセプト関連業務の処理を行うためのWeb APIのソフトウェア実装部分を、実施の形態1で述べたテンプレート生成装置1の適用の対象とする。
要求仕様書51相当の技術文書として、システム全体の基本仕様書(http://ftp.orca.med.or.jp/pub/data/receipt/tec/orca_bd_bss_010.pdf)を取り上げる。さらに、外部仕様書52相当の技術文書として、日医標準レセプトソフトAPI仕様(https://www.orca.med.or.jp/receipt/tec/api/overview.html#ver470)を取り上げる。これは、公開ホームページ上で1冊のまとまった文書としての体裁ではなく、API一覧に各APIの詳細説明文書がリンクされたハイパーテキスト形態で参照できるようになっているが、テンプレート生成装置の入力データとして、API一覧と各APIの詳細説明文書を1冊の文書データとして取り扱う。
また、このAPIはクライアント端末からデータベースのあるサーバへのWeb APIとして実装されており、実際にデータベースを操作する内部処理はAPSと呼ばれるCOBOLモジュールが行う。したがって、これら各APIに相当するソースコードはCOBOL実装となる。本ソフトではこのCOBOL実装の内部仕様書53がなく、直接にソースコードを読み解く必要がある(現状のソースコードではDoxygen等での内部仕様書の生成もできない)。したがって、この例では、内部仕様書53はAPI一覧に沿ったものが仮に作られたと想定して説明する。
図36は、外部仕様書52に相当するWeb APIの一覧を示す。
図37に、Web APIのソースコードファイル一覧を示す。右端に対応APIとして想定できるものを付記している。正確な対応付けについては、外部仕様書に相当するAPI仕様に、詳細なレスポンス情報やサンプルソースコードが記載されているため、前段処理1Aによってキーワードを中心に類似度を求めれば可能になる。
図37は、ソースコード54と外部仕様書52との対応付けをいきなり示しているが、内部仕様書53と外部仕様書52との対応付けについては、上記のCOBOLのソースコード中に記載されたAPIごとに記載された内部仕様書53が存在するとして、COBOLのソースコードに1対1に対応した形態となる。したがって、特にこれ以上の記載はしない。
次に、要求仕様書51相当の基本仕様書と外部仕様書52との対応付けについてみることにする。
図38は、基本仕様書の主要目次項目を示す。
キーワード的に、患者、予約、病名などが、外部仕様書52に相当するAPI仕様の各項目名と対応していることが容易にわかる。同様に、前段処理1Aにより、要求仕様書51と外部仕様書52との各領域の対応付けを決めることが可能である。上述の要求仕様書51−2の場合と同様に、多対多の対応付けがなされる可能性がある。
注意すべき点は、以下である。要求仕様書51に記されているシステム動作環境、ネットワーク構成等の記述箇所は、外部仕様書52との対応付けからは除外される場合がある。しかし、記述内容としては重要であるため、複数製品の要求仕様書51にてほぼ共通に記載されていれば、その記載箇所を要求仕様書51のテンプレート生成部分として採用するべきである。
ここまででは、前段処理1Aを中心に記載した。「日医標準レセプトソフトの場合でも、特に複数製品分の設計文書があるわけではないが、後段処理1Bについても、実施の形態1の場合と同様に適用が可能である。
このように、実施の形態1、2は、組込ソフトウェア分野に該当するが、実施の形態3のように、医療分野のアプリケーションソフトウェア分野でも、同様にテンプレート生成装置1が適用できることを説明した。
テンプレート生成装置1は、ソフトウェア設計について適用する例で説明した。ハードウェア設計についても、ハードウェア設計データとしてハードウェア設計記述言語による実装がソフトウェアのプログラム実装と類似している。このため、テンプレート生成装置1は、ハードウェア設計にも適用できる。また、最終的なプログラム相当の記述言語(データ記述言語、仕様記述言語、アーキテクチャ記述言語、システムレベル記述言語など)で書かれた実装が存在するものであれば、何にでも適用できる。例としては、HTML、XML、JAVA(登録商標)スクリプト等で実装されるWebホームページがある。
1 テンプレート生成装置、1A 前段処理、1B 後段処理、11 分割部、12 第1のキーワード抽出部、21 ソースコード解析部、22 ファンクションリスト生成部、23 第2のキーワード抽出部、31a 第1の対応抽出部、31b 第2の対応抽出部、31c 第3の対応抽出部、32 対応付け情報生成部、33a,33b,33c トレーサビリティ情報取得部、33d,33e,33f トレーサビリティ情報、34 相互関係判定部、41 対応判定部、41a カウント部、41b 文章解析部、42 重要度判定部、43 テンプレート出力部、44 空欄作成部、51 要求仕様書、51−2 要求仕様書、52 外部仕様書、53 内部仕様書、54 ソースコード、61−1,61−2,61−3 対応付け情報、62−1,61−2 対応付け情報、63−1,63−2 対応付け情報、61G−1,62G−1 領域グループ、70 テンプレート群、99 処理回路、99a 信号線、901 プロセッサ、902 記憶装置、902a 補助記憶装置、902b メモリ、903 入力IF、904 出力IF、910 第1抽出部、920 第2抽出部、930 生成部、940 決定部。

Claims (8)

  1. いずれも電子データである一つの製品の要求仕様書、外部仕様書、内部仕様書を複数の領域に分割し、各領域からキーワードを抽出する第1抽出部と、
    複数の記述領域である複数の領域からなる前記製品の電子データであるソースコードからオブジェクトごとにファンクションリストを生成し、前記ファンクションリストからキーワードを抽出する第2抽出部と、
    抽出されたキーワードを用いて、前記ソースコードの領域と、前記内部仕様書の領域と、前記外部仕様書の領域と、前記要求仕様書の領域との4領域の対応付けを示す対応付け情報を製品ごとに生成する生成部と、
    複数の製品の中に、前記対応付け情報で対応付けが示される4領域からなる領域グループであって、製品を異にして互いに類似する領域グループである複数の類似領域グループが存在するか判定し、存在する場合に、いずれかの前記類似領域グループの4領域を、要求仕様書、外部仕様書、内部仕様書、ソースコードの各テンプレートに採用するかどうか決定する決定部と
    を備えるテンプレート生成装置。
  2. 前記生成部は、
    抽出されたキーワードを用いて、
    前記ソースコードの領域と前記内部仕様書の領域とを対応付け、前記ソースコードの領域に対応付けられた前記内部仕様書の領域と前記外部仕様書の領域とを対応付け、前記内部仕様書の領域を介して前記ソースコードの領域に対応付けられた前記外部仕様書の領域と前記要求仕様書の領域とを対応付けることにより、前記ソースコードの領域と、前記内部仕様書の領域と、前記外部仕様書の領域と、前記要求仕様書の領域との4領域を対応付ける請求項1に記載のテンプレート生成装置。
  3. 前記決定部は、
    各製品の前記領域グループに含まれるキーワードであって、前記第1抽出部と前記第2抽出部とが抽出したキーワードである抽出キーワードを用いて、前記類似領域グループが存在するか判定する請求項1または請求項2に記載のテンプレート生成装置。
  4. 前記決定部は、
    同一の前記抽出キーワードの出現頻度を用いて、前記類似領域グループが存在するか判定する請求項3に記載のテンプレート生成装置。
  5. 前記決定部は、
    前記領域グループにおける前記内部仕様書の領域と、前記外部仕様書の領域と、前記要求仕様書の領域とのうちの少なくともいずれかの領域の要約を生成し、要約を比較することによって、前記類似領域グループが存在するか判定する請求項1または請求項2に記載のテンプレート生成装置。
  6. 前記決定部は、
    互いに類似する前記類似領域グループが存在する製品の個数に基づいて、いずれかの前記類似領域グループの4領域を、要求仕様書、外部仕様書、内部仕様書、ソースコードの各テンプレートに採用することを決定する請求項1から請求項5のいずれか一項に記載のテンプレート生成装置。
  7. コンピュータに、
    いずれも電子データである一つの製品の要求仕様書、外部仕様書、内部仕様書を複数の領域に分割し、各領域からキーワードを抽出する処理、
    複数の記述領域である複数の領域からなる前記製品の電子データであるソースコードからオブジェクトごとにファンクションリストを生成し、前記ファンクションリストからキーワードを抽出する処理、
    抽出されたキーワードを用いて、前記ソースコードの領域と、前記内部仕様書の領域と、前記外部仕様書の領域と、前記要求仕様書の領域との4領域の対応付けを示す対応付け情報を製品ごとに生成する処理、
    複数の製品の中に、前記対応付け情報で対応付けが示される4領域からなる領域グループであって、製品を異にして互いに類似する領域グループである複数の類似領域グループが存在するか判定し、存在する場合に、いずれかの前記類似領域グループの4領域を、要求仕様書、外部仕様書、内部仕様書、ソースコードの各テンプレートに採用するかどうか決定する処理、
    を実行させるためのテンプレート生成プログラム。
  8. コンピュータが、
    いずれも電子データである一つの製品の要求仕様書、外部仕様書、内部仕様書を複数の領域に分割し、各領域からキーワードを抽出し、
    複数の記述領域である複数の領域からなる前記製品の電子データであるソースコードからオブジェクトごとにファンクションリストを生成し、前記ファンクションリストからキーワードを抽出し、
    抽出されたキーワードを用いて、前記ソースコードの領域と、前記内部仕様書の領域と、前記外部仕様書の領域と、前記要求仕様書の領域との4領域の対応付けを示す対応付け情報を製品ごとに生成し、
    複数の製品の中に、前記対応付け情報で対応付けが示される4領域からなる領域グループであって、製品を異にして互いに類似する領域グループである複数の類似領域グループが存在するか判定し、存在する場合に、いずれかの前記類似領域グループの4領域を、要求仕様書、外部仕様書、内部仕様書、ソースコードの各テンプレートに採用するかどうか決定する
    テンプレート生成方法。
JP2018500822A 2016-05-20 2016-05-20 テンプレート生成装置、テンプレート生成プログラム及びテンプレート生成方法 Expired - Fee Related JP6305671B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/065093 WO2017199443A1 (ja) 2016-05-20 2016-05-20 テンプレート生成装置、テンプレート生成プログラム及びテンプレート生成方法

Publications (2)

Publication Number Publication Date
JP6305671B1 JP6305671B1 (ja) 2018-04-04
JPWO2017199443A1 true JPWO2017199443A1 (ja) 2018-05-31

Family

ID=60325526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018500822A Expired - Fee Related JP6305671B1 (ja) 2016-05-20 2016-05-20 テンプレート生成装置、テンプレート生成プログラム及びテンプレート生成方法

Country Status (4)

Country Link
US (1) US20200293290A1 (ja)
EP (1) EP3447638A4 (ja)
JP (1) JP6305671B1 (ja)
WO (1) WO2017199443A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102671676B1 (ko) * 2021-12-16 2024-06-03 (주)제이앤피메디 키워드 데이터 연동 시스템 및 그 방법
JP2024033123A (ja) * 2022-08-30 2024-03-13 日立Astemo株式会社 文書分析装置、及び文書分析用プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129381A (ja) 1993-11-02 1995-05-19 Nippon Steel Corp プログラムドキュメント作成装置
US8677310B2 (en) * 2008-06-30 2014-03-18 Rockwell Automation Technologies, Inc. Industry template abstracting and creation for use in industrial automation and information solutions
JP2010204910A (ja) * 2009-03-03 2010-09-16 Nec Corp 相互リンク表示システム、相互リンク表示方法及び相互リンク表示プログラム
JP2013003715A (ja) * 2011-06-14 2013-01-07 Fuji Electric Co Ltd トレース情報管理装置、管理方法およびプログラム
JP2013246644A (ja) * 2012-05-25 2013-12-09 Mitsubishi Electric Corp ソフトウェアオブジェクト修正支援装置、ソフトウェアオブジェクト修正支援方法、および、プログラム

Also Published As

Publication number Publication date
EP3447638A1 (en) 2019-02-27
JP6305671B1 (ja) 2018-04-04
WO2017199443A1 (ja) 2017-11-23
US20200293290A1 (en) 2020-09-17
EP3447638A4 (en) 2019-05-01

Similar Documents

Publication Publication Date Title
US10489439B2 (en) System and method for entity extraction from semi-structured text documents
US9715531B2 (en) Weighting search criteria based on similarities to an ingested corpus in a question and answer (QA) system
Van Dam et al. Software language identification with natural language classifiers
US10430713B2 (en) Predicting and enhancing document ingestion time
Shokripour et al. Automatic bug assignment using information extraction methods
US9251245B2 (en) Generating mappings between a plurality of taxonomies
US10832049B2 (en) Electronic document classification system optimized for combining a plurality of contemporaneously scanned documents
US20150356456A1 (en) Real-Time or Frequent Ingestion by Running Pipeline in Order of Effectiveness
US20160188569A1 (en) Generating a Table of Contents for Unformatted Text
US12001951B2 (en) Automated contextual processing of unstructured data
US9990268B2 (en) System and method for detection of duplicate bug reports
WO2023278052A1 (en) Automated troubleshooter
Zhou et al. Augmenting bug localization with part-of-speech and invocation
JP6305671B1 (ja) テンプレート生成装置、テンプレート生成プログラム及びテンプレート生成方法
US12014140B2 (en) Utilizing machine learning and natural language processing to determine mappings between work items of various tools
JP2006323517A (ja) テキスト分類装置およびプログラム
US20170140010A1 (en) Automatically Determining a Recommended Set of Actions from Operational Data
EP4258107A1 (en) Method and system for automated discovery of artificial intelligence and machine learning assets in an enterprise
US10628632B2 (en) Generating a structured document based on a machine readable document and artificial intelligence-generated annotations
WO2023091209A1 (en) Classifying parts of a markup language document, and applications thereof
US11783116B2 (en) Resembling transition identifying apparatus, resembling transition identifying method and program
KR102449580B1 (ko) 컴포넌트 네트워크 기반의 분석 시스템을 이용한 비정형 데이터 분석 방법
Yıldız et al. Bilingual software requirements tracing using vector space model
Shi et al. A strategy to determine when to stop using automatic bug localization
JP2024089449A (ja) 検索装置、及び検索方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180110

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180110

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180306

R150 Certificate of patent or registration of utility model

Ref document number: 6305671

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees