最先端ソフトウェア工学ゼミ[個別ゼミ2]
成果報告
2021年12月9日
塚田 祥弘 (キヤノン株式会社)
関 堅吾 (株式会社NTTデータ)

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

2

１．設定したテーマとその理由
n テーマ：機械学習を用いた、要求仕様書からの設計ドキュメントの自動生成に関する研究の調査
n 設定した理由
n 本ゼミ参加者は、いずれも業務で上流工程のレビュアを務める
ことがあり、設計ドキュメントの品質改善に関心があるため
n お互いの現場のレビューで重要視されるのはデータ関連の設計図（DFD; DataFlowDiagram, DLD; DataLineageDiagram）
である。

n 要求仕様から設計ドキュメントを執筆する際に有識者が用いる暗黙知を、機械学習を用いてシステム化することで、以下の効
果が期待できると考えた
n 誤った解釈・要件見落し防止による、成果物の品質向上
n ドキュメント生成の自動化による、執筆者の負担軽減
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

3

自動生成対象の図面はDFD

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

4

個別ゼミ２開始までのまとめ

上期の調査により、
DFDの構成要素それぞれは抽出可能であることが判明。
その後の調査により、係り受け解析によりDFD自動生成を目指す報告もあった。
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

5

ゼミ２の全体概要n 目的
n 誤った解釈・要件見落し防止による、成果物の品質向上
n 課題：人が作業することによる誤った解釈・要件見落し。

n ドキュメント生成の自動化による、執筆者の負担軽減
n 課題：作業工数がかかる。

n 解決手段n 要求仕様書からDFDの自動生成

n DFD自動生成の実施計画
n 10/7-10/28 スプリント１
n 要求仕様書の内容を全て反映したDFD作成の検討
n 文章のルールパターンすべてに対応する手法では、様々なケースで課題解決できない。
n 様々なケースが発生しないようにDFD作成工程を分解し、自動化対象を絞り込むべき。

n 11/4-11/25 スプリント２
n 抽象度の高いDFD作成の検討
n 課題解決：ターミネータを取りこぼさない、設計初期工数の削減。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

6

DFD自動生成対象
n 話題沸騰ポット要求仕様書 (GOMA-1015型) 第６版
n 全18ページn 約3600文字
n 総単語数 232
種類
数

品詞種別（ChaSenによる結果）
話題沸騰ポット（GOMA-1015 型）要求仕様書第6 版, 組込みソフトウェア管理者・技術者育成研究会,2005.
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

7

ゼミ２の全体概要n 目的
n 誤った解釈・要件見落し防止による、成果物の品質向上
n 課題：人が作業することによる誤った解釈・要件見落し。

n ドキュメント生成の自動化による、執筆者の負担軽減
n 課題：作業工数がかかる。

n 解決手段n 要求仕様書からDFDの自動生成

n DFD自動生成の実施計画
n 10/7-10/28 スプリント１
n 要求仕様書の内容を全て反映したDFD作成の検討
n 文章のルールパターンすべてに対応する手法では、様々なケースで課題解決できない。
n 様々なケースが発生しないようにDFD作成工程を分解し、自動化対象を絞り込むべき。

n 11/4-11/25 スプリント２
n 抽象度の高いDFD作成の検討
n 課題解決：ターミネータを取りこぼさない、設計初期工数の削減。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

8

スプリント1
要求仕様書の内容を全て反映したDFD作成の検討
n 要求仕様書からDFD生成までのデータフロー。
n プロセス間はテキストファイル出力とし、事前にフォーマットを確定した
n 非同期での作業を可能にするため。
Chasenにより特定した‘数’、‘非自立’、‘副詞可能’、‘形容動詞語
幹’、‘代名詞’、‘接尾’、‘形容動
詞語’、‘サ変接続’以外の名詞。

要求仕様書
pdf

スプリント１の対象
各要素の関係

pｄｆ2ｔｘｔ
コーパス

形態素解析

単語リスト

データ
抽出

係り受け解析

データ候補

単語リスト

DFD

各要素の関係

単語リスト
文字オブジェクトの位置がずれていると文章化した際に文章構造がずれる。

DFD描画

プロセス
Ginza (https://megagonlabs.github.io/ginza/)
係り受け解析というライブラリを選定。
プロセス候補・KNP や CaboChaと比較して導入が容易
抽出・Universal Dependencies という考え方により多言語展開も視野に入る
・spaCy が提供する NLP の機能も活用できる各要素の関係

データ
係り受け解析
源泉抽出 データ源泉
候補
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

9

スプリント1:基本的なアイデアと直面した課題「受注プロセスは、在庫確認プロセスに注文内容を送信する」という文を例に取ると・・②それに係っている主語・目的語・斜格を特定すれば、主語・斜格（ニ格の場合）はデータの受け渡し元と先、目的語は受け渡すデータを表現しているのではないか。

受注

注文内容

①まず係り受け解析のroot要素となる動詞を特定し、

形態素解析
在庫確認

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

10

スプリント1:基本的なアイデアと直面した課題「受注プロセスは、在庫確認プロセスに注文内容を送信する」という文に倣うと、「給水線は、このポットに入れることができる水量の上限をユーザに知らせます」という文なら、確かに同じ構造になるので正しく解釈できそうに思える。

給水線

水量の上限

水量の上限

ユーザ

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

11

スプリント1:基本的なアイデアと直面した課題
しかし、実際の要求仕様書に書かれている文は「給水線は、ユーザに、このポットに入れることができる水量の上限を知らせるための目印です。」
この文を係り受け解析して先述のルールを当てはめても、期待したようには解釈できない。

「ユーザに」は、本来は「知らせる」に係ってほしいのに、「入れる」に係るものと判断されてしまっている

文のroot要素が「目印です」になるため、直接これに係っている目的語や斜格が存在しなくなってしまう

加えて、以下のような問題も存在することを認識。
n 格助詞の表層格だけに着目しても、データの受け渡し元／先かどうか正しく判断することはできない例）『蓋センサは（中略）蓋が閉じている時にonになります。』→「名詞（句）」＋「二格」だが、着点ではなく時間を表しているn 主語や目的語が省略、もしくは代名詞化される場合がある。また説明が一文で完結せず、複数の文に跨る場合がある例）『システム全体として、以下の動作仕様を満たさなければなりません。（中略）ユーザが設定したタイマのタイムアウト時、及び沸騰状態終了時には、ブザーを3回鳴らします。』→後半の主語は「システム全体」（もしくは別の箇所で述べられているキッチンタイマ機能）だが、一つの文に閉じた処理ではそのことはわからない→これらの問題に、その都度ルールを追加し続けて対応していくのは難しいと判断
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

12

スプリント１振り返り
n 文章のルールパターンすべてに対応する手法では、様々なケースで課題解決できない。
n 改善点
n 様々なケースが発生しないようにDFD作成工程を分解し、自動化対象を絞り込むべき。
n 全要素の関連性は、期待する文法パターンで記述されていないと抽出は難しい。
n 正しい文法で記載されていれば、確かに本手法で対応できるはずだが、対象の要求仕様書が正しい文法で記載されている前提では、実現場での使用は難しい。
n 既存の文章を、全て正規化する難しさ、文章を記載する人（顧客や非技術系人材）の教育の難しさ。
n プロセスと、データの源泉間の関係に絞るなどすれば、対処は可能。

抽出対象を限定する。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

13

DFD作成工程(トップダウン法)
n ステップ１n データの源泉、ターミネータを洗い出し
n ステップ２n 抽象度の高いプロセス定義
n プロセスとデータ源泉/ターミネータ等を結ぶ関連線
n ステップ３n データストアの定義

n プロセスを段階的に詳細化していく。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

14

ゼミ２の全体概要n 目的
n 誤った解釈・要件見落し防止による、成果物の品質向上
n 課題：人が作業することによる誤った解釈・要件見落し。

n ドキュメント生成の自動化による、執筆者の負担軽減
n 課題：作業工数がかかる。

n 解決手段n 要求仕様書からDFDの自動生成

n DFD自動生成の実施計画
n 10/7-10/28 スプリント１
n 要求仕様書の内容を全て反映したDFD作成の検討
n 文章のルールパターンすべてに対応する手法では、様々なケースで課題解決できない。
n 様々なケースが発生しないようにDFD作成工程を分解し、自動化対象を絞り込むべき。

n 11/4-11/25 スプリント２
n 抽象度の高いDFD作成の検討
n 課題解決：ターミネータを取りこぼさない、設計初期工数の削減。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

15

スプリント２の設計：
抽象度の高いDFD作成の検討
n ステップ１

スプリント２の対象

n データの源泉、ターミネータを洗い出し
スプリント１の成果物を利用し復号語の名詞抽出で対応

n ステップ２n 抽象度の高いプロセス定義
n 話題沸騰ポットの場合は、仕様書に明記されていた。
n プロセス候補のクラスタリングで対応できそうだが、今回は割愛する。

n プロセスとデータ源泉/ターミネータ等を結ぶ関連線
n 関連性を抽出する処理を検討する必要あり。

n ステップ３n データストアの定義

n ステップ１‘
n プロセスのブレイクダウン
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

16:人間が実施スプリント２の設計①②③:自然言語処理で実施①要求仕様書の主要プロセスを特定②形態素解析・品詞タグ付けを行い、名詞・名詞句をDFD中の要素の候補として抽出③名詞の場合・係り受け解析により文中の主語特定・主語に対応する動詞・目的語と①プ
ロセス名との類似度(Word2Vecを使用)から関連度を判定③名詞句の場合
・①プロセスと関連があるかを、同一の文中にプロセス名と共起しているかどうかに基づき判定④抽出されたDFD中の要素とプロセスとの関連を可視化
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

17

スプリント２の設計①②①n 要求仕様書の1章に記載されている以下の3機能をDFD上の主要なプロセスとし、これらに関連する 「データの源泉」や「データストア」を特定することを目標とする。
n 沸騰・保温n 給湯n タイマ

n 「データの源泉」や「データストア」の候補として、要求仕様書の2・3章から、名詞・名詞句を抽出。それぞれ後述するルールに従い、関連するプロセスを判定。

②

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

18③

ステップ２の設計（続き）③名詞
抽出した名詞は、以下の方法でどのプロセスに関連しているか（あるいはどのプロセスにも関連していないか）を判定した。
n 課題１：明らかなストップワード（例：「以下」「次」「時」「下」…）を除去しても、単体ではDFD中の要素になり得るかどうか判断が難しいもの（例：「外観」「意味」「通常」「異常」「位置」…）が多数抽出されてしまう。
n 工夫１：文中で重要な役割を果たしている名詞を特定するため、係り受け解析を行い、文中で主語となっているものに対象を限定。
n 課題２：単純なキーワードマッチでは、関連するプロセスを判断できない場合がある。
n たとえば、「ヒータは水を沸騰させます」という記述があれば、単純なキーワードマッチで沸騰プロセスと関連があることを判断できるが、実際には「ヒータは水を加熱します」「ヒータは水を温めます」「ヒータは湯を沸かします」…などと、多様な表現が可能

n 工夫２：表現の揺らぎを吸収するため、係り受け解析を行って主語に対応する動詞及び目的語を特定し、それらの語が各プロセスの名称（「沸騰」、「保温」、「給湯」、「タイマ」のいずれか）と一定以上類似していれば、そのプロセスに関連していると判定。
n 類似度の評価には下記ページで公開されているWord2Vecの学習済み日本語モデルを用い、
閾値は0.5以上とした。https://aial.shiroyagi.co.jp/2017/02/japanese-word2vec-model-builder/
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

19③

ステップ２の設計（続き）③名詞句
名詞句については、仕様書内のいずれかの文中でプロセス名（ 「沸騰」、「保温」、「給湯」、「タイマ」）と共起していればそのプロセスと関連しているとみなしたが、以下の工夫を行った。
n 課題３：説明が複数の文に分かれている場合、それらの文同士の関係を考慮できていない。
n たとえば、「蓋センサは、蓋が開いているかどうかを検出します。」「蓋が閉じられた場合は、温度制御可能な水位ならば沸騰状態に移行し、ポット内の水を加熱します。 」という2つの文があった場合、蓋センサは沸騰プロセスと関連があるが、それぞれの文を独立に分析していたのでは見出すことができない。

n 工夫３：名詞句の末尾の名詞に同じものが複数存在した場合（今回は「センサ」「ボタン」「ランプ」が該当）、語尾より前の部分の名詞（句）でもプロセス名との共起判定を行う。
n システムや機器に（ 「センサ」「ボタン」「ランプ」 といった）同じ種類の要素が複数存在する場合、名詞句の前方部分がそれらを識別するための情報であり、役割を端的に表した言葉として重要な役割を担っていると考えた。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

20

出力結果
数件の誤検出はあるものの、「データの源泉」「データストア」の抽出と、プロセスとの関連付けが、概ね正しく実現できていることがわかる。
網掛け（ツールの出力を手作業で加工）の凡例
・青：DFD中のデータとして抽出されるべき要素
・黒：DFD中の要素ではないもの

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

21

本手法による課題に対しての解決度
n 我々の目的に対してどうか
n 誤った解釈・要件見落し防止による、成果物の品質向上

n文章に存在するすべての要素を抽出可能。
n 必要ない要素も含まれる可能性がある。
n 日本語特有の省略をどこまで許容できるかの検証が必要。

n ドキュメント生成の自動化による、執筆者の負担軽減

nDFD作成時の、各要素作成、プロセスー各要素間接合の手間軽減。
n 段階的細分化は現状では未対応。

n DFD作図の際の初期コスト軽減の補助ツールとして現場導入可能。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

22

考察・展望

n ツールの展望

n 今回は抽象度の高いプロセスが要求仕様書に明記されていたので、それをよりどころにDFD自動生成をすすめた。
n 本来であれば、要求仕様書から抽象度の高いプロセスも導けると対応可能なケースが増えて良い。
n 試しに、動詞になりえる単語に対してクラスタリングしてみた。
n Jaccard係数、Ward法でクラスタリング。
n 給湯関連、沸騰・保温関連、鳴らす関連、それ以外でクラス分類できた。
n たまたまかもしれないが、追加検討の余地あり。

n 抽出結果（ステンレス素材など）を取り除いたり、（現状では恣意的な）閾値を調整したりといった
フィードバックをかけることで対応可能。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

23

考察・展望
n 日本語の難しさは他の仕様書解析のケースでも活かせそう。
nnnn

主語や目的語が省略、もしくは代名詞化される場合がある
文の構造が複雑化すると、誤った品詞タグが付与される場合がある
説明が一文で完結せず、複数の文に跨って記述される場合がある
同じ内容を多種多様な表現で記述できるので、どういった品詞の組合せが揃っていればよいかを大量に定義する必要がある

n 設計図の自動生成の論文は多く見たが、実用化に至るものはなかった。
n 今回、設計図作成の工程分解し、対象を絞ることで、現場にとって意
味のある結果を出すことができた。
n 上期に調査した論文で対応されていたFeatureツリー、ドメインクラス
図、ユースケース図なども同様に作成工程を分析し現場導入。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

24

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

25

上期まとめ
n 本ゼミでは、機械学習を用いて、要求仕様書から設計ドキュメント（特にデータの流れに着目したもの）を自動生成する研究について、ここ4年ほどの論文の調査を行った。
n 自然言語で記述された要求仕様書から設計ドキュメントを自動生成する先行研
究としては、ユースケース図・フィーチャーモデル・クラス図などを対象としたものがあり、それらの手法を適用することで、DFDの構成要素の抽出と要素の種類の識別が、ある程度の精度でできそうなことが判明した。
n 論文の一つに、要求仕様書からフィーチャモデルを生成するツールを公開しているものがあったため試してみたが、日本語に未対応・コードの品質が悪い・同一のエンティティがモデルの異なる場所に複数回現れる、といった問題があり、そのまま使うのは難しいことがわかった。
n 個別ゼミ2では、今回学んだ手法を活用することで、日本語で記述された要求仕様書からDFDを自動生成するツールの開発に取り組みたい。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

26

DFDの自動生成に関する報告
n DFDを用いた要求仕様の洗練化のための トレーサビリティ構築と条件の抜け漏れ検出
n 情報処理学 会, 第 181 回ソフトウェア工学研究会 (SIGSE), 2013n 和田 大輝 弓倉 陽介 鷲見 毅 藤本 宏 村田 由香里

n データフローダイアグラムを利用した 要求仕様の品質向上技術
n 東芝レビューVol.68 No.11（2013）n 村田 由香里 弓倉 陽介 和田 大輝

要求仕様書に対して形態素解析・係り受け解析を行うことでDFDを生成。
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

27

２．調査方法

説明 １分

n Scopus から抽出した, “requirement engineering” と “machine learning” の両方に関連する, 2017年以降の国際論文のリスト250件から調査。
n 対象論文のabstract を分析し、要求仕様からの設計図生成に関連しそうな23論
文に絞り込んだ。
n 量が多い・対象分野に詳しくないため調査方法を工夫した。
n クラスター分析で的を絞った。（20クラスに分割）
n Noun, Proper Noun, Verb のみ対象。
n Ward法, 距離：Cosine, 値：TF-IDF
n 引用、被引用論文検索。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

28

３．調査結果説明 0.5分

調査の結果、「要求仕様からデータ関連の設計図（DFD,DLD）を生成できる論文」
は発見できなかった。
ただし、他の設計図を生成する論文はいくつか見られたので、関連しそうな3パターンの論文を共有します。
関連設計図

対象論文

UC図

Identifying Use Case Elements from Textual
Specification: A Preliminary Study

FeatureModel

Extracting Software Product Line Feature Models fromNatural Language Specifications

クラス図

Towards Queryable and Traceable Domain Models

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

29

３－１．ユースケースの抽出に関する研究
説明 2分

n Identifying Use Case Elements from Textual
Specification: A Preliminary Study（Tiwari S., Rathore S.S., Sagar S., Mirani Y.）

n テキストで書かれた要求仕様書からユースケー
スの要素を特定する予備研究。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

30

研究内容
学習データ作成：
サンプルシステムのデータセット28種に対して手動タグ
付けで、UC名、アクター名、その他の3カテゴリに分類。
学習データを元に、UC要素の推論：
右図の手順のように、抽出したワードに対して、学習済
みデータを用いて予測。

推論→

n 結論
n 基本、代替、例外フロー抽出は本アプローチの拡張では不可。
n アクター名予測は精度、再現率、Fスコア高い。
n 精度0.91 再現率1.00 F値0.92

n UC名予測は精度、再現率、Fスコア低い。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

31

所感

n データ系設計図への活用案
n 本手法を活用して抽出したアクター名はDFDのデータの源泉に使用できそう。
n 例：顧客は注文する。この場合、アクター名は、顧客となり、「データの源泉」にあたる。

n プロセスなど他のDFD要素の特定はできない。
n 学習データはどのように用意すべきか。
n 本論文の結果は英語のデータセットで学習した結果である。
n 同様の方法をとる場合は、改めて日本語での教師データを用意してラベリングする必要がある。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

32

説明 2分
３－２．フィーチャーモデルの抽出に関する研究（１）n Extracting Software Product Line Feature
Models from Natural Language Specifications(A Sree-Kumar, et al., 2018)n https://doi.org/10.1145/3233027.3233029

フィーチャモデルの例(https://en.wikipedia.org/wiki/Feature_model)
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

33

研究の目的
n 自然言語で記述されたSPL仕様書からフィーチャモデルを抽出

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

34

先行研究の課題n 先行研究は非公開のツールを用いてなされており結果を再現できない
n 本研究では、一般に利用可能な以下のツールを組み合わせて、フィーチャモデルを抽出・構築可能なフレームワークである FeatureX を提案(https://github.com/5Quintessential/FeatureX)n NLTK (https://www.nltk.org/)n Pattern (https://github.com/clips/pattern)n WordNet (https://wordnet.princeton.edu/)n PDFMiner (https://github.com/euske/pdfminer)
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

35

FeatureXの処理フロー
FeatureXの処理の流れは以下の通り。
1. 字句解析でトークン化や品詞のタグ付けを行い、名詞句を抽出してモデル中のフィーチャの候補とする
2. 全フィーチャ候補の TF-IDF を計算して、もっともスコアが高かったものを最上位のフィーチャとする
3. 文章中で主語・目的語として出てくる順序に従い、フィーチャモデルのツリーを構成していく
4. あらかじめ定めた品詞の並びが見つかった場合は、それに応じてモデルに情報 (必須・任意・排他など) を付与したり、ツリー構造を修正したりしていく。以下のような要素をもとに判断。
nnnn

助動詞: can, could, may, might, must, shall, should, will, would
副詞: often, never, always, frequently, normally, usually, generally,
regularly, occasionally, sometimes, hardly, rarely
限定詞: all, every, each, any, some
if-then 構文 など
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

36

結果
n 先行研究と比較して、フィーチャおよびフィーチャ間関係のrecallが改善し、precisionも同程度 (と著者らは主張)
n 先行研究と異なり、本研究のツールはPythonで実装されており、広く一般に利用可能

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

37

所感

n 文章中の主語を抽出することで、（システム内の処理の主体である）プロセスの候補を特定できそうn 例:「受注システムは顧客から注文を受け取り、顧客情報DBと突合して受注内容を在庫システムに送信する」
n 書き方によってはデータの源泉も主語になりそうなので、識別する手段が必要(例：「顧客は受注システムに注文を送信する」)→3-3で議論
n 同様に目的語を抽出することで、データフローの候補を特定できそう
n 例:「受注システムは顧客から注文を受け取り、顧客情報DBと突合して受注内容を在庫システムに送信する」
n 書き方によってはデータストアも目的語になりそうなので、識別する手段が必要(例:「受注システムは顧客情報DBを参照し、顧客が存在することを確認」)→3-3で議論
n 抽出された候補が単なる一般名詞か、システム中の固有名詞かは、名詞句かそうでな
いかと、TF-IDF によるスコアリングである程度判別できそう
n 例: 「受注(システム|プロセス)」「顧客情報データベース」
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

38

説明 2分

３－３．クラス図の抽出に関する研究（１）n Towards Queryable and Traceable Domain Models(R. Saini, et al., 2020)
n https://ieeexplore.ieee.org/document/9218176

クラス図の例(https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%A2%E3%83%87%E3%83%AB)
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

39

概要
n ドメインの問題を記述した文書から、ドメインモデルを自動で抽出するためのフレームワークを提案
n NLPベースの既存研究に、MLを導入することで精度を改善

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

40

処理フロー
1. トークン化、品詞タグ付けなどの字句解析
2. 名詞句を抽出することで、ドメイン内のエンティティ候補を発見。また主語―動詞―目的語の関係から、エンティティ間の関連の候補を発見。
3. それぞれのエンティティをクラスと属性のどちらとしてモデル化するか、後者の場合
データ型は何にするかを、機械学習を用いて判定
4. 3までで構築したモデルをクラス図として可視化し出力

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

41

結果：先行研究との比較
n Arora et al. (2016) をベースラインとして比較すると、すべての課題について正答率が向上した
n 特に、MLを組み合わせることで属性推定の精度が大幅に改善した

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

42

所感
n 名詞句をエンティティとして抽出したり、主語ー動詞ー目的語の組合せからエンティティ間の関係を見出す手法は、3-2の研究と同様。
n 抽出したエンティティの種類 (クラス or 属性) を判定するのに ML を使って精度を上げているのが特徴。
n 3-2の所感で、「品詞に基づく判断だけではプロセスとデータの源
泉、データフローとデータストアの識別が難しいかもしれない」と述べたが、この課題にもMLが使えるのではないか。
n 先に挙げた例で言えば、「注文を『受け取る』」「受注内容を『送信する』」なら、目的語が指すものはデータフローだが、「顧客情報DBを『参照する』」ならデータストアである。
n 人間は後続する動詞に基づいてこういった判断を行っているが、類語は多数存在し、それらに対してルールを逐一記述するのは現実的でないため、MLで例を与えて学習させるのが適していそうに思える。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

43

３．調査結果（まとめ）説明 1分
n 調査結果のまとめ
n DFDの各要素を特定できそうな手段を見つけることができた。
n データの源泉（3-1）
n プロセス(3-2)
n データストア(3-2,3-3)n データフロー(3-2,3-3)

n FeatureX（3-2）の仕組みで、DFDの要素は概ね抽出可能である
ため、FeatureXを参考にDFD抽出手法を確立する。
n Step1:FeatureXを用いたフィーチャモデル抽出の実践
n Step2:FeatureXをベースに3-1,3-3の手法を取り込む。（こちらはゼミ２）

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

44

4. FeatureXを用いたフィーチャモデル抽出の実践
n 目的
n 3-2で紹介したFeatureXを実際に動かしてみることで、自然言語処理や機械学習を体験するとともに、FeatureXが我々の目的に使えそうか
どうか、そのままでは使えない場合はどういった課題が存在するかを明確にする。

n 入出力
n 入力：英語で記述された暗号通貨の仕様書
n 中間生成物：品詞タグ付け結果、フィーチャ候補群、最上位フィーチャ
n 出力：ツリー状のフィーチャモデルn 所感
n 使用しているNLPのライブラリが日本語に対応していない
n コードの品質も特に高いわけではなく、そのまま使うのは難しそう
n 明らかなバグや論文の記述との乖離も存在し、そのうちいくつかは本体にフィードバックを実施 (https://github.com/5Quintessential/FeatureX/pull/2,
https://github.com/5Quintessential/FeatureX/issues/3).
Copyright (C) 2019 National Institute of Informatics, All rights reserved.

45

入力

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

46

中間生成物
品詞タグ付け結果

フィーチャ候補群

最上位フィーチャ

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

47

出力

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

48
n 実際のマニュアルを対象にした際のFeatureXの実力を確認するために、キヤノン製品Canon i-SENSYS MF742Cdwの欧州向けユーザマニュアル (英語)に対してFeatureXによる解析を実行。

対象は機体管理の章（p.359-p456）

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

説明 2分 49

n 結果：
n rootFeatureがmachineであることを特定。
n DFDのデータフローとプロセスに関連するものを関連付けれていた。
例： 「password entered 」 と 「login screen」の関連。

n 問題点：n ドメインエンジニア観点では、関連を示す線が不足している。
n ネットワークのportがNetwork comｍunicationと関連していない。

n 同義語などがノードとして出現するので、ツリー構造が複雑化。

n 考察：
n ドメインのFeature関連図を反映。
n 別のFeatureModelとの結合。
n 他の周辺機器のマニュアルの結果も考慮する。

n 同義語をまとめる仕組みを考える必要がある。
n 辞書（手動で作ったリスト、MLを使って作るなど）

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

50

まとめ
n 本ゼミでは、機械学習を用いて、要求仕様書から設計ドキュメント（特にデータの流れに着目したもの）を自動生成する研究について、ここ4年ほどの論文の調査を行った。
n 自然言語で記述された要求仕様書から設計ドキュメントを自動生成する先行研
究としては、ユースケース図・フィーチャーモデル・クラス図などを対象としたものがあり、それらの手法を適用することで、DFDの構成要素の抽出と要素の種類の識別が、ある程度の精度でできそうなことが判明した。
n 論文の一つに、要求仕様書からフィーチャモデルを生成するツールを公開しているものがあったため試してみたが、日本語に未対応・コードの品質が悪い・同一のエンティティがモデルの異なる場所に複数回現れる、といった問題があり、そのまま使うのは難しいことがわかった。
n 個別ゼミ2では、今回学んだ手法を活用することで、日本語で記述された要求仕様書からDFDを自動生成するツールの開発に取り組みたい。

Copyright (C) 2019 National Institute of Informatics, All rights reserved.

51

全体設計の再設計
n ステップ１ 抽象度の高いプロセスをクラス分け
で定義
n ステップ２n データ特定n データの源泉、ターミネータ、抽象度の高いプロセ
ス、それらを結ぶ関連線

n ステップ３n データストアの定義

n ステップ１‘
n プロセスのブレイクダウンn；Copyright (C) 2019 National Institute of Informatics, All rights reserved.