日本ソフトウェア科学会第 30 回大会 (2013 年度) 講演論文集

DITA を用いたソフトウェアドキュメンテーションにおけるトピックの意味検索手法の提案
坂井 麻里恵大場 みち子伊藤 恵

奥野 拓

ソフトウェアの開発プロセスにおいて，多くのドキュメントが作成される．しかし，ワードプロセッサ等のアプリケーションで作成された一般的なドキュメントでは，ドキュメント数の増加に伴ってトレーサビリティの低下，メンテナンスコストの増大といった問題が発生する．技術文書向けの XML 標準である DITA に基づいてドキュメントを記述し，コンポーネント単位で再利用することで，それらの問題の解決を目指している．DITA トピックとして記述し蓄積されたソフトウェアドキュメントから効率的に情報を抽出するためには．目的に応じて必要なトピックを検索できる仕組みが必要である．そのため，トピック間を関連付け，それらの関連情報を用いてトピックを検索する意味検索システムの構築に向けた検討を行った．

General software documents have some problems with traceability and maintenance. This study aims tosolve those problems by using DITA, an XML-based architecture for authoring technical documents. In
DITA architecture, documents consist of topics and maps. Topics have small amount of information which
can be reused, and maps specify contents of each output by organizing topics. It is necessary to build topic
search system for extracting information from software documents written as DITA topics eﬃciently. This
paper describes the semantic search system that allows us to extract necessary topics by associating themsemantically.

理などのメンテナンスにかかるコストが増大し，生1 序言

産性の低下やソフトウェアの品質低下を招く恐れがソフトウェアの開発プロセスにおいて，提案書，要ある．

件定義書，設計書といった多くのドキュメントが作成

本研究では，これらの問題を解決するために，技されている．これらのドキュメントはプロジェクトに術文書向けの XML アーキテクチャ標準である DITAおける情報共有の要であり，要求の検討過程やユー（Darwin Information Typing Architecture) を用いザ・ベンダ間の合意事項など，開発されるソフトウェ

る．DITA に基づくドキュメントは，再利用可能な情アに関するあらゆる情報が含まれている．しかし，ソ報の単位であるトピックと，トピックの組み合わせかフトウェアドキュメントの多くは一般的に汎用のワーらなる文書構造を定義するマップで構成される．ソフ

ドプロセッサやスプレッドシートを用いて作成されてトウェアドキュメントを DITA の構造に則って記述おり，記載された情報の横断的な閲覧や再利用が難しし，コンテンツと文書構造を分離させることにより，い．それにより，トレーサビリティの管理や，変更管関連する情報を横断的に参照することや，同じ記述

A Proposal of Semantic Search System for Extracting
Information from Software Documents Written as
DITA Topics
Marie Sakai, 公立はこだて未来大学大学院システム情報科学研究科, Graduate School of Systems Information
Science, Future University Hakodate.
Michiko Oba, Kei Ito and Taku Okuno, 公立はこだて未来大学システム情報科学部, School of Systems
Information Science, Future University Hakodate.

を複数ドキュメントで再利用することが容易になる．
これは，トレーサビリティの向上やメンテナンスコストの削減に繋がる．
しかし，ソフトウェアドキュメントをトピックに分割した場合，蓄積されるトピックの量は膨大になるため，トピック群の中から必要なトピックを抽出する仕組みが必要である．そこで本稿では，トピック間に意味的な関係情報を設定し，その情報を元にトピックを一括検索できるような仕組みの構築について論じる．

2 章では，DITA についての概説と，ソフトウェアドキュメントへ適用した際の利点を述べる．3 章では，蓄積したトピックからユーザが目的に応じて必要なトピックを抽出できるようにするためのトピック検索手法と，構築に向けた課題について説明する．最後に，4 章において今後の計画を述べる．

2 ソフトウェアドキュメントへの DITA の適用
まず，DITA におけるドキュメントの構造と，一般

図1

Task トピックの例

的な XML ドキュメントとの相違点について説明する．そして，ソフトウェアドキュメントへ適用した際要素が用意されている（図 1）．これらの 4 種類の型の利点を述べる．

は，技術文書のために定義された汎用的な構造である
ため，一般的な技術文書の大半をこれらの型に従って

2. 1 DITA に基づくドキュメントの構造記述する事ができる．

DITA とは，技術文書向けの XML ベースのアーキ

一方で，DITA の特徴に特殊化という仕組みがあテクチャ標準である [3]．2005 年に OASIS によってる．特殊化とは，既存の型から派生する形で，新たに標準化され，欧米を中心に導入が進んでいる．

独自の型を定義することをいう．特殊化した型は元とDITA に基づくドキュメントは，トピックとマップなる型やその要素を継承するため，特殊化後の型の定の二つの要素で構成される．トピックとは，異なる義情報を持たなくとも，元となる要素に置き換えて解コンテクスト間で再利用することを想定した比較的釈することが可能である．この仕組みにより，DITA小さな単位の情報を指す．DITA ドキュメントにおいは，他組織との間でのドキュメントの互換性と，独自て，文章や図などのコンテンツは全てトピックとしてに型を定義できる柔軟性を共に兼ね備えている．

記述される．これに対し，マップはコンテンツそのものを含まず，トピックの組み合わせによって表される

2. 3 DITA 適用の利点

文書の構造のみを定義したものである．これらの二DITA の仕組みに基づいてドキュメントを作成する

つの要素でドキュメントを記述することにより，必要ことで，ソフトウェアドキュメントの再利用性が向上に応じてマップ上でトピックを組み替え，同じトピッし，トレーサビリティの向上やメンテナンスのコストク群から様々な形のドキュメントを出力することがで削減が期待できる．

きる構造になっている．

まず，複数のドキュメントに散在する情報から，関係する部分だけを一括して参照することが容易にな

2. 2 トピックの型

る．図 2 のように，従来は「業務一覧」「要件定義書」

DITA では，トピックの基本の型として Concept， 「画面設計書」の三つのドキュメントに分かれていたTask，Reference，Glossary の 4 種類の型を提供して情報を，トピック単位に切り分けてリポジトリに保存おり，それぞれ異なる用途に沿った要素が定義されてする．すると，改めて文章を加筆することなく，「機いる．例えば，Task トピックは特定の目標を達成す能 A」という一つの機能についてのみ記述されたドるための手続きを記述するのに適した型であり，作業キュメントを出力することができる．このように，目手順をステップ毎に記述するための <steps> という的に応じてマップを作成することで求める情報のみを合がある．例として，開発の進捗に伴って開発者が新規参画した時，要求事項や設計に変更が生じた時などが挙げられる．開発者が途中で新規参画した場合，これまでに蓄積されたドキュメントから，プロジェク
トの目的や現時点までの合意事項，自身の担当箇所の現状など，プロジェクト全体を概観するための情報を読み取る必要がある．一方，要求事項や設計に変更が発生した場合，開発者はその他の要求事項や設計と整合性が取れているかを各ドキュメントを元に確認し，該当する要求事項や設計についての記載を修正する必要がある．変更による影響がその他の部分にも波及する場合は，同様に確認・修正を繰り返す．このように，ソフトウェアドキュメントを十分に活用するため
図2

DITA 適用イメージには，ドキュメント群から様々な視点や粒度で多角的に情報を引き出すことが求められる．

取り出すことができるため，従来のドキュメントに比べトレーサビリティが向上すると考えられる．

しかし，従来のソフトウェアドキュメントは，主に汎用のワードプロセッサやスプレッドシートなどをまた，図 2 における「画面 A」のトピックのよう用いて作成されており，閲覧手段の柔軟性に乏しい．に，トピックは複数のマップから参照する形で，ド閲覧する際は，過去に作成したドキュメントから目的キュメント間で共有することができる．従って，トの箇所を特定し，さらに関連する情報が必要な場合

ピックの内容を変更する際，同じトピックを含む全ては複数のドキュメントを参照しながら情報の取捨選のドキュメントをそれぞれ修正する必要は無い．元ト択を行わなければならない．このことが，ソフトウェピックの変更が全ての共有先に反映されるため，修アドキュメントのトレーサビリティやファインダビリ

正回数や範囲が小さくなり，メンテナンスコストの削ティを損なっており，結果として生産性の低下やソフ減が見込める．これらの利点から，本研究では DITAトウェアの品質低下を招く恐れがある．に基づいたソフトウェアドキュメンテーション手法の構築を目指す．

DITA に則ってソフトウェアドキュメントを記述す
ると，様々な閲覧要求に対して柔軟に対応することが可能となる．状況に応じて必要なトピックのみを選択

3 トピックの意味検索手法の構築

し，新たにマップを作成することで，読み手の要求にトピック単位に分割されたドキュメントを効率的に即したドキュメントを生成することができる．しか再利用するためには，目的に応じて必要なトピックをし，ソフトウェアドキュメントを DITA で記述した検索できる仕組みが必要である．トピック間を関連付場合，蓄積されるトピックの量は膨大になる．そのたけ，それらの関連情報を用いてトピックを抽出する仕め，蓄積された全てのトピック群の中から逐一必要な組みについて検討する．

トピックを探し，マップに配置することは極めて困難である．そこで，本研究では，トピック間に関係情報

3. 1 ソフトウェアドキュメントの閲覧における問題
ソフトウェアドキュメントを閲覧する際，あるドキュメントを単体で閲覧するのではなく，複数のドキュメントに記載された情報を横断的に閲覧したい場を設定し，その情報を元にトピックを一括検索できるような仕組みの構築を考える．

3. 2 トピック間の関係情報の設定
ある目的を持ってソフトウェアドキュメントを閲覧する際，読み手が手掛かりとしているのはドキュメン
ト名やその項番が主ではない．多くの場合，ソフトウェアの機能，それに関わる要求，業務など，ドキュメントに記載されている内容そのものの概念や関係性から必要な情報を辿っていく．従って，トピックを検索する際も，トピックに記載された内容やそれらの間の関係から，必要なトピックや関連するトピックを取得できることが望ましい．
通常，DITA に基づくドキュメントでは，トピックは各々が独立したコンテンツとして記述され，それらの関係性はマップでのみ定義されている．マップ上では，XML タグの構造によってトピックの親子関係と図3

トピックマップ概念図

並列関係を表現することができ，ドキュメントとして出力した際には，それらのトピック間にハイパーリWeb の技術を利用して，意味に基づいた検索を行うンクなどの参照情報が自動的に挿入される．DITA で手法も多く研究されている．庭山らは，ソフトウェアは，この仕組みによりドキュメント内での参照関係を部品の再利用を目的として，ソースコードのメタデー定義することはできるが，トピック間の関係に意味情タを RDF で記述することで必要とする部品を意味的報を持たせることはできない．このような単純な参照に検索する手法を提案している [7]．本研究ではこれ関係のみを定義した場合，参照の有無によりトピックらの考え方を取り入れ，トピックにメタデータを付加同士の関連の有無を機械的に判別することは可能でし，それらの間に意味的な関係情報を設定しておくこある．しかし，それらが意味的にどのような関係にあとで，ユーザが求める情報を意図に沿って検索できるるか判断することができないため，検索時に不必要なような仕組みの構築を目指す．

トピックまで提示してしまう可能性がある．
一方，利用者の持つ概念体系に合わせて情報を分

3. 3 意味的な関係情報を用いたトピックの検索類・整理し，情報の見つけやすさを実現することをトピックの意味検索の仕組みを図 4 に表す．(1) ま目的としたトピックマップという国際規格がある [6]．

ず，開発者がトピックを記述し，そのトピックに記述

トピックマップでは，「主題」，主題間の関係を表すしたコンテンツの主題を表すキーワードやフレーズを「関連」，主題と主題に関するリソースを結びつけるメタデータとして付加する．(2) 次に，付加されたメ「出現」の三つの要素で情報を表現する（図 3）．このタデータ間に意味的な関係情報を設定する．(3) 設定

構造は本の索引の概念に基づいており，複数のドキュされた関係情報を元に，トピックの検索を行う．図 4

メントにまたがるインデックスの役割を果たすことの例では，トピック A に「要求：不正利用の防止」，ができる．DITA におけるマップも，トピックマップ

トピック B に「要件：購入ライセンス数の登録」との考え方を取り入れているが，DITA のマップで主題いうメタデータが付加されており，それらの間は「詳間の関係として定義できるのは参照関係のみである．

細化」という関係で結ばれている．同様に，トピック

これに対し，トピックマップにおける関連や出現は，C には「業務：ライセンスの購入」というメタデータ

関係性を表す名前や結びつける対象となる型などをが付加されており，「要件：購入ライセンス数の登録」

自由に設定できるため，より意味的にわかりやすくとの間は「対象業務」という関係で結ばれている．こ関係を表現することができる．また，セマンティックのようにトピックが蓄積されていると，例えばライセ

3. 4. 1 メタデータ及びメタデータ間の関係の種類
提案する手法では，メタデータはトピックの主題を表すフレーズやキーワードであるため，トピックに付加されるメタデータ自体は開発対象となるソフトウェア毎にそれぞれ異なる．しかし，メタデータとして記述できる項目の種類は，要求事項，システム要件，ソフトウェアの機能名など共通するものが多い．そのため，これらをメタデータの基本的なクラスとして定義し，そのインスタンスとしてメタデータを記述することを考える．図 4 のメタデータの例では，「要求」「要件」「業務」がクラスにあたり，「不正利用の防止」「購入ライセンス数の登録」「ライセンスの購入」がそれぞれのインスタンスにあたる．この考え方を取り入れることにより，検索条件にメタデータ間の関係情報だ
図4

トピックの意味検索の仕組み

けでなくメタデータのクラスを指定することができるようになるため，より柔軟な問い合わせが可能にな

ンス購入業務の業務プロセスを見直すことになった場

る．また，メタデータ間の関係の例としては詳細化，合，「S - 対象業務 - 業務：ライセンスの購入」という依存，包含などが考えられるが，これらは開発対象に関係を満たす S にあたるメタデータが付加されたト関わらず共通であると想定される．そのため，標準的ピックを検索することで，ライセンス購入業務に関わに利用できる関係の種類についても検討を行う．

るシステム要件を全て抽出することができる．さら

これまでに，ソフトウェアドキュメントを DITA トに，抽出したシステム要件のうち「要求：不正利用のピックに分割する際の適切な粒度を検討する目的で，防止 - 詳細化 - O」に当てはまらないものをフィルタ標準的なソフトウェアドキュメントに含まれるコンリングすることによって，「不正利用の防止に必要なテンツの項目を可視化したドキュメント構造化モデ

システム要件のうち，ライセンス購入業務に関わるもルを作成した [8]．作成したモデルの一部を図 5 に示の」という検索条件に当てはまるトピックだけが抽出す．このモデルでは，ソフトウェアドキュメントを構できる．

成する主要な項目をノードとして記載し，そのうちこのように，トピックにメタデータを付加し，付加単体で，もしくは複合してトピックとなり得るものされたメタデータ間に意味的な関係情報を設定するを定義している．図 5 では，ソフトウェアドキュメン

ことによって，より読み手の意図に沿った情報抽出を

トを DITA トピックとして記述する際には各「業務」実現することが可能である．

を単体のトピックとして記述することとし，そのトピックには「業務内容」や「業務特性」などの内容が3. 4 検討課題含まれることを表している．また，「業務」トピックに前述の手法を構築するにあたり，トピックに付加す含まれる「組織」の項目は，「構成」「要員」などの内るメタデータ及びメタデータ間の関係の種類と，それ容を含む単体のトピックとして記述し，トピックをネらをシステム上で保持し，検索可能にするための方法ストする形で「業務」トピックに含まれることを表しについて検討する必要がある．それぞれの課題についている．このモデルにおいて，トピックとして定義さて詳しく説明する．

れている「業務」「組織」などの項目は，そのまま各トピックに付加するメタデータのクラスとなり得る．
本研究では，このドキュメント構造化モデルからメタ図5ドキュメント構造化モデルの一部データのクラスとなり得る項目を抽出することを想定している．

保持し，それらを利用した問い合わせができる仕組みを構築する必要がある．DITA のトピックにはそのまた，類似の研究として Ramesh らの研究があるトピックについてのキーワードを記述することがで[2]．Ramesh らは，要求トレーサビリティを確保するきるため，メタデータをキーワードとして各トピックために要求や設計事項などの関係を記述する関連メに埋め込むことは可能である．一方で，それらのメタタモデルを定義している．このモデルでは，Require-データ間の関係を記述する仕組みは用意されていな

ments，System Objectives といった関連モデルを構い．推論による意味検索を行う場合，メタデータとト成するエンティティや，それらのエンティティを繋ぐピックの関係や，メタデータ同士の関係は，RDF な

depend-on，describe といったリンクタイプの種類がどのフレームワークを用いて記述されていることが定義されており，ソフトウェア開発のトレーサビリ

望ましい．

ティ管理に汎用的に適用できるものとなっている．本

都原らは，DITA のトピックやマップにメタデータ研究におけるメタデータのクラスとしてこれらのエを埋め込み，それらを XSLT による変換で RDF トンティティを用い，その間に同様のリンクタイプを設リプルとして取り出すことで，DITA ドキュメントか定した場合，要求トレーサビリティの観点からトピッらの情報検索の精度を向上させる研究を行っている

ク間の関係に意味付けをすることが可能である．その[5]．この手法は，既存の DITA の枠組み内で意味的他に，システム工学のためのモデリング言語であるな関連付けを実現できるという利点があるが，トピッ

SysML の要求図においても，要求間の関連ステレオクの型が複数ある場合，それぞれの型に応じた変換タイプとして refine，satisfy などの関連の種類が定処理を施す必要がある．これに対し，トピックのメタ義されている [4]．これらの既存手法も参考とし，メデータやメタデータ間の関係情報をデータベースなタデータのクラスやメタデータ間の関係の種類を検どに保存するシステムを構築し，トピックとは切り離討する．

して管理した場合，システム外でトピックの修正など

3. 4. 2 メタデータと関係情報の保持手法が行われると，メタデータやそれらの関係情報がトトピックの意味検索を実現するためには，トピックピックの実体と乖離してしまう恐れがある．のメタデータや，メタデータ間の関係をデータとして本研究では，これらの問題点を踏まえた上で，都原らと同様にメタデータを埋め込んで RDF トリプルとされているオープンソース CMS の Drupal を用いるして抽出する方法と，メタデータ及びそれらの関係情[1]．その後，実装したシステムを用いて有効性の評価報をトピック外で管理する方法の二種類の方法を検討を行う．

する．

謝辞 本研究は科研費 (23500127) の助成を受けたものである．

4 結言
DITA に基づいてソフトウェアドキュメントを記述し，トピック間に意味的な関係情報を設定することでトピックの意味検索を行う手法について述べた．これにより，蓄積したドキュメントから必要な情報を横断的に抽出することができるようになり，トレーサビリティの向上が期待できる．また，一度記述したトピックを再利用することができるため，メンテナンスコストの削減が見込める．
今後は，本手法の構築に向けて，トピックに付加すべきメタデータや，それらの間に設定すべき関係の種類について検討を行う．さらに，それらの技術的な実現方法を決定し，トピックの意味検索システムの実装を行う．DITA コンテンツは一般的に CMS 上で管理されることから，本研究においてもソフトウェアドキュメントの執筆・管理には CMS を利用することを想定している．そのため，トピックの意味検索システ
ムも CMS のモジュールとして実装する予定である．

CMS には，DITA 対応モジュールが既に作成・公開

参 考 文 献[1] Drupal.org: Oﬃcial website of Drupal,
http://drupal.org/.
[2] Ramesh, B. and Jarke, M.: Toward reference models for requirements traceability, Software Engineering, IEEE Transactions on, Vol. 27,
No. 1(2001), pp. 58–93.
[3] Services, I. C.: DITA 概説書, エスアイビーアクセ
ス, 1 2010.
[4] SysML.org: SysML Open Source Specification
Project, http://www.sysml.org.
[5] 都原安貴, 塚本享治: 3S-3 DITA ドキュメントのRDF/OWL への変換 (XML と応用, 学生セッション,データベースとメディア), 情報処理学会全国大会講演論
文集, Vol. 70, No. 1(2008), pp. 1–595–1–596.
[6] 内藤求: トピックマップ入門 (セマンティック技術シリーズ), 東京電機大学出版局, 12 2006.
[7] 庭山直幹, 松尾景樹, 荻原剛志, 金田悠紀夫: セマン
ティック Web を利用したソフトウェア検索システムの提案, 電子情報通信学会技術研究報告. SS, ソフトウェ
アサイエンス, Vol. 102, No. 704(2003), pp. 27–31.
[8] 坂井麻里恵, 大場みち子, 伊藤恵, 奥野拓: 統合ソフト
ウェアドキュメンテーション環境としての DITA ベース CMS の開発, 情報処理学会研究報告. DD, [デジタル・ドキュメント], Vol. 2013, No. 8(2013), pp. 1–8.