自然言語要求文からのOCL導出
木村江里 平野宏明 村上真吾
1.目的
現在、主流になりつつあるオブジェクト指向分析設計方法論「統一モデリング言語UML:
UnifiedModelingLanguage)」では、システムに対する要求をユースケースシナリオにて記述し、そのシナリオからクラス図と自然言語による制約を導出する。
シナリオの中には、多くの制約が含まれている。長いシナリオには、矛盾する制約が発生することがある。また、自然言語による制約記述は、さまざまな表現と解釈の違いを生みやすい。その結果、モデル記述者に混乱をまねく。
本研究は、ユースケースシナリオから制約の抽出と抽出した制約を「制約記述言語(OCL:
ObjectConstraintLanguage)」形式に変換するシステムを試作する。また、試作システムを用いて制約抽出と形式記述への変換の妥当性を評価・検討する。
2.研究内容
(1)試作プログラム設計・開発
試作プログラムは次の機能を持つ。
(a)自然言語解析
平叙文で構成されたシナリオ入力を形態素解析・構文解析をおこない、C構造とF構造を生成する。
(b)クラス導出
抽出されたF構造と自然言語解析で利用される辞書を用い、クラス候補と属性候補の導出を行う。
(c)OCL導出
F構造の中から制約語彙を抽出し、クラス導出で得られたクラス候補と属性候補を参照しながらOCLの導出を行う。
(2)妥当性の評価・検討
(a)試作ツールの評価
(b)OCL導出後の利用方法の検討
複数のOCLに、矛盾が発生したときの検知方法について考察した。
試作プログラム及び検討の結果、以下の点が明らかになった。
(1)簡単な平叙文によるシナリオ入力では、導出できるOCLに制限がある。
(2)OCLによる制約導出は、制約文中において発生した矛盾を確認できる。
試作プログラムでは、入力されるシナリオは平叙文で構成される。複数の自然言語制約文から導出されるOCLは、平叙文では扱うことはできない。
同じ属性に対する制約が、複数発生したことを想定しテストを行い、矛盾の可能性の検知が可能であることがわかった。
4.まとめ
本研究では、OCL導出プログラムを試作し、その妥当性について評価・考察を行った。その結果、OCLによる形式記述は、矛盾検知に有効なことがわかった。今後の課題として、自然言語による複文の解析、矛盾訂正機能、対応できる制約文の増加等が考えられる。
参考文献
[1]ObjectConstraintLanguageSpecification (1997)、http://www.software.ibm.com
[2]H.E.エリクソン・M.ペンカー著:「UMLガイドブック」、トッパン(1998
[3]吉田裕之・山本里枝子・上原忠弘・田中達雄:「UMLによるオブジェクト指向開発実践ガイド」、技術評論社(1999)