(57)【要約】【課題】ＸＭＩ表現から仕様情報を取り込む際に、ユーザが設定した項目を抽出して適切な構造として取り込む。【解決手段】本発明に係る称作成支援装置は、ＸＭＩ形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援装置であって、ＸＭＩ形式の仕様情報を読み込む読込手段と、ＸＭＩ形式の仕様情報における、属性情報と子要素の関係に基づいて、機械的に前記形式仕様表現に変換した機械的変換巣に変換するＸＭＩ変換手段と、採取出力結果のテンプレートと、機械的変換結果におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとに基づいて、機械的変換結果を形式仕様表現の仕様情報に変換するモデル図変換手段と、を備える。【選択図】図１４
2012185533.tif 000002
【特許請求の範囲】
【請求項１】
ＸＭＩ形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援装置であって、
ＸＭＩ形式の仕様情報を読み込む読込手段と、
ＸＭＩ形式の仕様情報における、属性情報と子要素の関係に基づいて、ＸＭＩ形式における構造を保ったまま前記形式仕様表現に変換した表現である機械的変換仕様情報に変換するＸＭＩ変換手段と、
前記形式仕様表現の仕様情報のテンプレートと、前記機械的変換仕様情報におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとを記憶した記憶する記憶手段と、
前記仕様情報のテンプレートと前記変換ルールとに基づいて、前記機械的変換仕様情報を形式仕様表現の仕様情報に変換するモデル図変換手段と、
を備える仕様作成支援装置。
【請求項２】
前記テンプレートおよび前記変換ルールのいずれもが、前記形式仕様表現の仕様情報として記述されている、
請求項１に記載の仕様作成支援装置。
【請求項３】
前記ＸＭＩ変換手段は、
ＸＭＩ形式の仕様情報におけるタグ要素の属性情報を、タグ要素を表すデータに対する制約「属性」の参照データに変換し、
ＸＭＩ形式の仕様情報におけるタグ要素の子要素を、タグ要素を表すデータに対する制約「構成」の参照データに変換し、
各タグ要素について再帰的に、属性情報と子要素の変換を実行する、
請求項１または２に記載の仕様作成支援装置。
【請求項４】
前記仕様情報のテンプレートは、データ毎に取り得る制約の候補および、制約毎に取り得る参照データの候補を記述したものである、
請求項１〜３のいずれかに記載の仕様作成支援装置。
【請求項５】
前記変換ルールは、変換対象とする機械的変換仕様情報におけるデータを、前記テンプレートにおける制約の候補または参照データの候補のいずれに対応付けるかを記述しており、
前記モデル図変換手段は、前記変換ルールにおいて変換対象として記述された前記機械的変換仕様情報におけるデータの制約「値」の参照データが、前記テンプレートにおける制約の候補または参照データの候補と一致する場合に、前記制約「値」の参照データを前記制約または参照データとして形式仕様表現の仕様情報に変換する、
請求項４に記載の仕様作成支援装置。
【請求項６】
ＸＭＩ形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援方法であって、
変換の最終結果である前記形式仕様表現の仕様情報のテンプレートと、変換の途中結果である機械的変換仕様情報におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとを記憶した記憶する記憶手段を有するコンピュータが、
ＸＭＩ形式の仕様情報を読み込む読込工程と、
ＸＭＩ形式の仕様情報における、属性情報と子要素の関係に基づいて、ＸＭＩ形式における構造を保ったまま前記形式仕様表現に変換した表現である機械的変換仕様情報に変換
するＸＭＩ変換工程と、
前記仕様情報のテンプレートと前記変換ルールとに基づいて、前記機械的変換仕様情報を形式仕様表現の仕様情報に変換するモデル図変換工程と、
を実行する、仕様作成支援方法。
【請求項７】
前記テンプレートおよび前記変換ルールのいずれもが、前記形式仕様表現の仕様情報として記述されている、
請求項６に記載の仕様作成支援方法。
【請求項８】
前記ＸＭＩ変換工程では、
ＸＭＩ形式の仕様情報におけるタグ要素の属性情報を、タグ要素を表すデータに対する制約「属性」の参照データに変換し、
ＸＭＩ形式の採用上におけるタグ要素の子要素を、タグ要素を表すデータに対する制約「構成」の参照データに変換し、
各タグ要素について再帰的に、属性情報と子要素の変換を実行する、
請求項６または７に記載の仕様作成支援方法。
【請求項９】
前記仕様情報のテンプレートは、データ毎に取り得る制約の候補および、制約毎に取り得る参照データの候補を記述したものである、
請求項６〜８のいずれかに記載の仕様作成支援方法。
【請求項１０】
前記変換ルールは、変換対象とする機械的変換仕様情報におけるデータを、前記テンプレートにおける制約の候補または参照データの候補のいずれに対応付けるかを記述しており、
前記モデル図変換工程では、前記変換ルールにおいて変換対象として記述された機械的変換仕様情報におけるデータの制約「値」の参照データが、前記テンプレートにおける制約の候補または参照データの候補と一致する場合に、前記制約「値」の参照データを前記制約または参照データとして形式仕様表現の仕様情報に変換する、
請求項９に記載の仕様作成支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム開発等における仕様作成を支援する技術に関する。
【背景技術】
【０００２】
従来、システム開発等における仕様はＵＭＬ（Unified Modeling Language）やPromela（Process Meta Language）といったモデリング言語でモデル化されている。また、これ
らのモデルをＳＰＩＮやＳＭＬといったモデル検査ツールで検査することが知られている。しかしながら、仕様検証の対象は機能要求であり、非機能要求の検証を行うモデル検査ツールは知られていない。
【０００３】
本発明者らは、機能要求と非機能要求の両方を検証可能な、形式仕様記述技術（形式表現）の開発を進めている。ここで、機能要求については従来からＵＭＬ等での表現が用いられていることから、ＵＭＬによって表現された仕様を取り込み、それに対して非機能要求の仕様情報を付加していくことが効率的と考えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−０７５６８１号公報
【特許文献２】特開２００８−３０５０７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、ＵＭＬ表現と新形式仕様表現との間でフォーマット変換を行う際に、ＵＭＬ（ＸＭＩ）で表現された構造をそのまま取り込むのではなく、設計情報として重要な意味を持つ項目の抽出に重点を置いた変換を行うことが、設計情報の見やすさの観点から好ましい。
【０００６】
そこで、本発明では、ＸＭＩ表現からデータを取り込む際に、ユーザが設定した項目を重点的に抽出し適切な構造として取り込むことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明に係る仕様作成支援装置は、ＸＭＩ形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援装置であって、
ＸＭＩ形式の仕様情報を読み込む読込手段と、
ＸＭＩ形式の仕様情報における、属性情報と子要素の関係に基づいて、ＸＭＩ形式における構造を保ったまま前記形式仕様表現に変換した表現である機械的変換仕様情報（機械的変換結果）に変換するＸＭＩ変換手段と、
前記形式仕様表現の仕様情報のテンプレート（類型）と、前記機械的変換仕様情報におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとを記憶した記憶する記憶手段と、
前記仕様情報のテンプレートと前記変換ルールとに基づいて、前記機械的変換仕様情報を形式仕様表現の仕様情報に変換するモデル図変換手段と、
を備える。
【０００８】
このように、ＸＭＩ形式の仕様情報をまずＸＭＩ形式の構造を保ったまま機械的に形式仕様表現に取り込み、そこからテンプレートと変換ルールを用いて最終的な形式仕様表現の仕様情報へと変換することで、ユーザが設定した項目のみを取り出すことができる。また、変換結果もテンプレートによって定義された構造となるため、ユーザにとって見やすい仕様情報を作成することができる。
【０００９】
本発明において、前記テンプレートおよび前記変換ルールのいずれもが、前記形式仕様表現の仕様情報として記述されている、ことも好ましい。
【００１０】
このように、テンプレートや変換ルールを形式仕様表現の仕様情報として記述することで、テンプレートや変換ルールを機械的変換仕様情報と統一的な方法により取り扱うことができる。
【００１１】
また、本発明において、前記ＸＭＩ変換手段は、
ＸＭＩ形式の仕様情報におけるタグ要素の属性情報を、タグ要素を表すデータに対する制約「属性」の参照データに変換し、
ＸＭＩ形式の仕様情報におけるタグ要素の子要素を、タグ要素を表すデータに対する制約「構成」の参照データに変換し、
各タグ要素について再帰的に、属性情報と子要素の変換を実行する、
ことも好ましい。
【００１２】
このような変換を行うことで、ＸＭＩ形式の仕様情報を、その構造をそのままに保ちつつ形式仕様表現の仕様情報（機械的変換仕様情報）に変換することができる。
【００１３】
また、本発明において、前記仕様情報のテンプレートは、データ毎に取り得る制約の候補および、制約毎に取り得る参照データの候補を記述したものである、ことが好ましい。
【００１４】
また、本発明において、前記変換ルールは、変換対象とする機械的変換仕様情報におけるデータを、前記テンプレートにおける制約の候補または参照データの候補のいずれに対応付けるかを記述しており、
前記モデル図変換手段は、前記変換ルールにおいて変換対象として記述された機械的変換仕様情報におけるデータの制約「値」の参照データが、前記テンプレートにおける制約の候補または参照データの候補と一致する場合に、前記制約「値」の参照データを前記制約または参照データとして形式仕様表現の仕様情報に変換する、
ことも好ましい。
【００１５】
このように、変換ルールを定義することで、ＸＭＩ形式の仕様情報における任意のデータを、テンプレートにおける任意の位置に配置して変換することができる。テンプレートと変換ルールを、変換対象のＸＭＩ形式の仕様情報に応じて設計することで、このＸＭＩ形式の仕様情報のうち、設計情報や仕様情報として重要な意味を持つ要素のみを取り出して形式仕様表現に変換することができる。
【００１６】
本発明は、上記手段の少なくとも一部を含む仕様作成支援装置として捉えることができる。また、これらの処理を行う仕様作成支援方法、さらには、これらの方法をコンピュータにおいて実現するためのプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【００１７】
本発明によれば、ＸＭＩ表現の仕様情報を取り込んで形式仕様表現に変換する際に、ユーザが設定した項目を重点的に抽出して、適切な構造の形式仕様表現とすることが可能と
なる。
【図面の簡単な説明】
【００１８】
【図１】形式仕様記述図を構成する図形要素を説明する図である。
【図２】形式仕様記述図の例である。
【図３】形式仕様記述図を表現したＸＭＬフォーマットデータである。
【図４】形式仕様記述図のＸＭＬデータフォーマットにおける各図形要素を表す記述例である。
【図５】類型を説明するための図である。
【図６】類型定義を説明するための図である。
【図７】条件を付加した類型定義の例である。
【図８】構造化した類型定義の例であり、クラスに対応する類型である。
【図９】図８の構造化類型定義のために定義した類型を示す図である。
【図１０】形式仕様記述図（Ａ）と、その選択部分（点線）から自動的に作成される類型定義（Ｂ）である。
【図１１】ＸＭＩ変換機能における、変換対象のＸＭＩ記述（Ａ）と、変換後の形式仕様記述（Ｂ）の例を示す図である。
【図１２】ＸＭＩ変換機能による機械的変換結果（Ａ）のデータ構造を、モデル図用類型（Ｂ）と変換ルール（Ｃ）と類型の紐付け（Ｄ）を用いて変換するモデル図変換機能を説明する図である。
【図１３】ＸＭＩ変換機能による機械的変換結果におけるデータの関係を定義する機械的類型パターン（Ａ）と、モデル図用類型（Ｂ）と、類型の紐付け（Ｃ）と、関係情報の変換結果（Ｄ）を示す図である。
【図１４】仕様作成支援装置の構成図
【図１５】ＸＭＩ変換機能（ＸＭＩ形式から形式仕様記述形式への機械的変換）のフローチャートである。
【図１６】モデル図変換機能の概要を示すフローチャートである。
【図１７】モデル図変換機能における類型データの読込および関連づけ処理のフローチャートである。
【図１８】モデル図変換機能における変換対象データ抽出処理のフローチャートである。
【図１９】モデル図変換機能におけるデータ構造変換処理のフローチャートである。
【図２０】モデル図変換機能における関係定義変換処理のフローチャートである。
【図２１】変換対象のＸＭＩ記述の例。
【図２２】図２１のＸＭＩ記述をＸＭＩ変換（機械的変換）した結果。
【図２３】図２１のＸＭＩ記述をＸＭＩ変換（機械的変換）した結果（続き）。
【図２４】モデル図変換において使用する作図用類型の例。
【図２５】モデル図変換において使用するデータ構造変換用の変換ルールの例。
【図２６】モデル図変換において使用する関係定義変換用の変換ルールの例。
【図２７】モデル図変換において機械的変換結果に適用する変換ルールのマッピングの例。
【図２８】図２４〜図２７の変換定義を用いて図２２〜図２３の機械的変換結果に対してモデル図変換をした結果。
【発明を実施するための形態】
【００１９】
＜１．形式表現＞
（１−１）作図要素
まず初めに本発明者らが開発を進めている新しい形式表現手法について説明する。本形式表現は、作成や理解を容易とするために図形として表現される。形式仕様記述図で用いられる図形要素は、データ、制約ラベル、制約線、参照線の４つである。本形式仕様記述
では、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データの関連づけによって仕様情報が記述される。
【００２０】
・データ
データは、状態・条件・処理などを表す数値・文字・記号である。形式仕様記述図では、データは図１Ａに示すようにデータ名が内部に書かれた実線の矩形として表現される。データとデータは下記の「制約」を介して接続される。
【００２１】
・制約
制約は、あるデータに対して説明する視点を与え、その視点で見た場合の具体的な内容として別データを参照する。形式仕様記述図では、制約は図１Ｂに示すように制約名が内部に書かれた角括弧として表現される。
【００２２】
・制約線
制約線は、データと、そのデータに付加される制約とを結ぶものである。形式仕様記述図では、制約線は図１Ｃに示すように実線の矢印として表現される。矢印側にはデータが接続され、矢印のない方に制約が接続される。
【００２３】
・参照線
参照線は、制約と、その制約の内容であるデータとを結ぶものである。形式仕様記述図では、参照線は図１Ｄに示すように実線として表現される。
【００２４】
図２は本形式表現によって表した仕様の例である。ここでは、車載カメラ映像処理の仕様を定義している。ここでは、車載カメラで映像を撮影し、輪郭を抽出して元の画像に合成して表示する処理を想定している。この車載カメラ映像処理は、その構成として、カメラ・輪郭抽出・輪郭合成・モニタを有することが表現されている。また、カメラは、結果としてカメラ画像を出力し、その処理時間がＸ秒であることが表現されている。また、このカメラ画像の画像形式はＶＧＡカラーであることが表現されている。さらに、輪郭抽出・輪郭合成・モニタについてもカメラと同様の仕様が表現されている。
【００２５】
また、車載カメラ映像処理の総処理時間が、カメラ（撮像）・輪郭抽出・輪郭合成・モニタ（表示）の各処理時間の合計として表される時間であり、その上限がＴ秒であることが表現されている。
【００２６】
このように、本形式表現手法では、機能要件（入力や出力の型や値の範囲など）と非機能要件（処理時間、製造コストなど）の両方を統一的に記述することができる。仕様の検証においては、各データの型や値の範囲が定義を満たすか否か、データ間の接続が適切であるかという側面から、機能要件の検証が行える。また、非機能要件についても同様に「データ」と「制約」の形で表されているため、制約を充足するか否かを判定することで、非機能要件の検証が行える。
【００２７】
（１−２）データ構造
上記の形式表現（形式記述図）をコンピュータ上で表現するために、以下のデータ構造で形式記述図を表現する。形式記述図のデータ表現を種々の手法が考えられるが、ここではＸＭＬ形式にて表現する例を説明する。
【００２８】
形式記述図の１つが、図３に示されるようなＸＭＬファイルとして保存される。１行目はＸＭＬに基づくファイルであることを示すために"<?xml"で始まるタグを記述する。２
行目には、新形式仕様記述図であることを示すタグ"<nndiagram>"が記述される。このタ
グの属性にはフォーマットバージョンが記述される。３行目以降には、図の書式設定部と
作図データの２つの構造の領域に分けて情報が記述される。
【００２９】
図の書式設定部には、印刷設定、作図画面の設定、各作図要素のデフォルト設定などが記述される。印刷設定は、例えば、用紙サイズ、向き、上下左右のマージンなどである。作図画面の設定は、編集領域のサイズや、編集ツールで開いたときに画面に表示される領域などである。各作図要素のデフォルト設定は、「データ」「制約」等のそれぞれについての、背景色、線の色、線幅などのデフォルト値である。
【００３０】
作図データ部の記述例を、図４Ａ〜図４Ｄに「データ」「制約」「制約線」「参照線」それぞれについて示した。
【００３１】
「データ」は、項目名dataとして表現され、属性として管理用の通し番号（id）と使用する類型（template）が記述される。なお、類型については後述する。要素dataの子要素として、データ名称（name）、背景色（bgColor）、線色（fgColor）、線幅（lineThickness）、図中の座標（position）、シンボルのサイズ（size）などが記述される。
【００３２】
「制約」は、項目名constraintとして表現され、属性として管理用の通し番号（id）が記述される。要素constraintの子要素として、データ名称（name）、背景色（bgColor）
、線色（fgColor）、線幅（lineThickness）、図中の座標（position）、シンボルのサイズ（size）などが記述される。
【００３３】
「制約線」は、項目名constraintRelationとして表現され、属性として管理用の通し番号（id）、接続するデータシンボルのＩＤ（endsymbol）、接続する制約シンボルのＩＤ
（startsymbol）が記述される。要素constraintRelationの子要素として、線色（fgColor）、線幅（lineThickness）、図中の位置（startposition, position, endposition）な
どが記述される。図中の位置については、始点と終点は必須であり、折れ点がある場合には折れ点の数だけタグpositionが記述されるものとする。
【００３４】
「参照線」は、項目名referenceRelationとして表現され、属性として管理用の通し番
号（id）、接続するデータシンボルのＩＤ（startsymbol）、接続する制約シンボルのＩ
Ｄ（endsymbol）が記述される。要素referenceRelationの子要素として、線色（fgColor
）、線幅（lineThickness）、図中の位置（startposition, position, endposition）な
どが記述される。図中の位置については、始点と終点は必須であり、折れ点がある場合には折れ点の数だけタグpositionが記述されるものとする。
【００３５】
ここで各項目の子要素としては挙げたものは例示であってその他の要素を含んでも良い。また、図の書式設定部に記載されたデフォルト値を採用する項目については、ここでの記述を省略してもかまわない。また、個々で紹介したＸＭＬ表現は一例であり、同様の情報を異なる形式でも表現してもかまわない。
【００３６】
（１−３）作図方法
形式仕様記述の作成は、ユーザが編集ツール上で作図を行うことにより行われる。このような編集ツール（作図ツール）は一般的なものであり、画面上での作図を上記のデータ構造へ変換することは当業者であれば容易に実装することができる。
【００３７】
＜２．類型および類型定義＞
（２−１）類型
類型（テンプレート）とは、データと制約の組合せを単一の表現にまとめたものである。以下、類型およびその定義方法について、簡単な例を参照して説明する。図５には、「撮影データ」と「写真データ」という類似のデータ構造が形式仕様記述図として表されて
いる。「撮影データ」と「写真データ」のいずれもが画像であることから、「幅」「高さ」「色」という属性（制約）を有する。したがって、制約として「幅」「高さ」「色」を１つずつ有し、各制約の参照データには任意の記述が可能な、類型「画像」というものを定義することが考えられる。また、制約の参照データとしてある定められたデータをとる必要がある場合には、このような関係も類型に定義することができる。なお、後述するように、類型に含まれる制約に多重度を設定したり、参照データの候補を設定したりするようにしても良い。
【００３８】
このような類型を導入することにより、例えば、以下のような利点を得ることができる。
【００３９】
第１に、あるデータについて類型を適用することで、類型に定義されたデータや制約を自動的に作成したり、あるいは、必要なデータや制約をユーザに選択させたりといった、形式仕様記述の作成支援が可能となる。
【００４０】
第２に、複数人で仕様や設計を形式仕様記述で記述する際に、類似の構造について同一の構造として統一的に記述することが可能となる。
【００４１】
第３に、ＵＭＬツール等で作成されたクラス図や状態機械図やアクティビティ図のモデル図を形式仕様記述図に変換することが可能となる。このＵＭＬ図からの変換については、類型について説明した後に詳しく説明する。
【００４２】
（２−２）類型定義
類型の定義は、任意の表現が可能であるが、ここでは形式仕様記述を用いて記述する方式を採用する。類型定義では、形式仕様記述のデータと制約の関係性、制約と参照データの関係性、更に制約や参照データに対する条件の指定について、制約を用いて記述する。このような制約を総称して「メタ制約」と呼ぶ。形式仕様記述と類型定義の関係を図６に示す。形式仕様記述におけるデータと制約の関係は、類型定義の「メタ制約」を用いて、図中の定義（ａ）の形で定義する。形式仕様記述の「データ」が類型定義の「データ」に、形式仕様記述の「制約」が類型定義の「制約を示すデータ」に対応する。同様に、形式仕様記述の制約と参照データの関係も「メタ制約」を用いて、図中の定義（ｂ）の形で定義する。形式仕様記述の「制約」が類型定義の「制約を示すデータ」に、形式仕様記述の「参照データ」が類型定義の「参照データ」に対応する。このような基本構造を繰り返す形で類型を定義できる。繰り返す際には、「参照データ」が次の繰り返しの「データ」になる。
【００４３】
さらに、類型定義における「データ」、「制約を示すデータ」、「参照データ」に対して、メタ制約を用いて条件を示すデータを定義することができる。このような類型定義を図７に示す。図中の定義（ｃ）のように、「データ」に対する条件を「メタ制約」と「データの条件を示すデータ」で定義する。同様に、図中の定義（ｄ）のように、「制約を示すデータ」に対する条件を「メタ制約」と「制約の条件を示すデータ」で定義する。同様に、図中の定義（ｅ）のように、「参照データ」に対する条件を「メタ制約」と「参照データの条件を示すデータ」で定義する。
【００４４】
このように定義することで、今後類型を拡張する場合にも、新たな位置づけのメタ制約を追加する形で容易に拡張が行える。
【００４５】
図８に具体的な例として、クラスの構造を類型化した類型定義を示す。なお、ここでは同じ記述の重複を避けるためにクラス以外の構造も類型として定義して使用している。クラスの類型定義において参照した類型定義を図９に示す。なお、このように他の類型定義
を参照して定義した類型定義のことを、構造化した類型定義と称する。
【００４６】
図８を参照すると、データ「クラス」は制約として「属性」と「操作」を持ちうることが示される。制約「属性」は０個以上の多重度を有する、すなわち、０個以上の制約「属性」の参照データがデータ「クラス」に関連づけられることが示されている。また、制約「属性」の参照データのデータ名は任意である。また、この参照データは、可視属性と、１つの型を制約として有する。ここでの「可視属性」は図９に示した類型定義「可視属性」を参照した複製データである。複製データとは、このデータが他の類型定義に定義されていることを示すデータである。ここでは、複製データを類型定義「可視属性」で置き換えたものと同等の意味を成す。
【００４７】
制約「操作」は０個以上の多重度を有する、すなわち、０個以上の制約「操作」の参照データがデータ「クラス」に関連づけられることが示されている。また、制約「操作」の参照データのデータ名は任意のものと「コンストラクタ」および「デストラクタ」を取り得ることを示している。任意の参照データは多重度が０個以上であり、制約候補として可視属性、戻り値（多重度１）、引数（多重度０以上）を有する。また、コンストラクタの制約候補は可視属性と戻り値のみであることが示されている。また、デストラクタの制約候補は可視属性のみであることが示されている。
【００４８】
このような類型定義を用いることで、あるデータに類型定義を適用して自動または半自動的に形式仕様記述が行えるようにできる。たとえば、形式仕様記述図の編集ツール上で、あるデータに類型「引数」（図９）を適用した場合には、制約として「インスタンス」または「ポインタ」のいずれか一方のみを選択可能なように表示される。ここで制約として「インスタンス」を選択した場合には参照データとして「int」「char」「float」のいずれか１つを選択できるように表示される。一方制約として「ポインタ」を選択した場合には参照データとして「void」「int」「char」「float」のいずれか１つを選択できるように表示される。このように、類型を適用することで、選択可能な制約やデータ名などが構造や多重度が考慮されてユーザに提示されるので、形式仕様記述図を作成するユーザの負担が軽減される。さらに複数人の間で同様の構造で形式仕様記述図が作成できる。
【００４９】
また、あるデータに類型を適用して形式仕様記述図を作成した場合に、その図が類型定義で表される通りの記述となっているかを、検証することもできる。したがって、作成した形式仕様記述図の構造が適切であるか検証することができる。
【００５０】
（２−３）類型定義の作成方法
類型定義自体も形式仕様表現により表現されるため、形式仕様記述図の作成と同様に編集ツール上で一から作図して作ることができる。別の方法として、既存の形式仕様記述図から類型定義のひな形を作成するようにしても良い。たとえば、図１０Ａに示すような形式仕様記述図があった場合に、データ「setAge」以外の範囲（点線内部）など所望の範囲を選択して類型の自動作成処理を行うことができる。変換後の類型定義を図１０Ｂに示す。この類型の自動作成処理では、メタ制約として「制約候補」と「データ候補」のみを使用して類型定義に変換する。すなわち、データと制約の関係を、データとこのデータに対する制約「制約候補」の参照データの関係に変換する。同様に、制約と参照データの関係を、制約とこの制約に対する制約「データ候補」の参照データの関係に変換する。類型の定義に条件やその他の制約候補、データ候補を加えるなどの編集を行いたい場合には、自動で作成された類型定義を手動で編集すればよい。このようにすれば、類型定義の作成の手間が省ける。
【００５１】
＜３．ＵＭＬ変換機能＞
上述のように、本形式仕様表現は機能要求と非機能要求の両方を統一的に記述できる。
ここで、従来より機能要求についての設計はＵＭＬ関連のツールによってされている。したがって、他の設計ツールを用いて作成されたＵＭＬ図を、本形式仕様表現に自動的に変換すると既存の設計情報を有効活用できる。
【００５２】
本実施形態では、ＵＭＬ作図ツールが出力したＸＭＩ形式のファイルを入力として変換を行う。ＸＭＩ形式から本形式仕様記述への変換は、ＸＭＩ記述の構文（構造）をそのままに保ちつつ機械的に本形式仕様記述へと変換するＸＭＩ変換と、ＵＭＬ図の各要素の意味を考慮した変換を行うモデル図変換の２通りの変換を用いて段階的に行う。このように２つの機能に分けることで、ＸＭＩ変換機能だけを適用したり、モデル図変換機能だけを適用したりすることも可能としている。
【００５３】
ここでは、ＸＭＩ形式のＵＭＬ図から本形式仕様記述へ変換することを述べたが、逆に本形式仕様記述からＵＭＬ図への変換も可能とする。なお、ＵＭＬ図への変換においては、本ツール側ではＸＭＩ形式への変換のみを行い、ＸＭＩからＵＭＬ図への変換についてはＵＭＬ図の作成ツールに行わせることを想定する。
【００５４】
（３−１）対象とするＸＭＩ
変換対象としてＸＭＩのバージョンに制限は設けない。また、変換範囲はＸＭＩファイルの記述内容のうち、<uml:Model>タグの子要素のみとする。ただし、子要素の記述であ
ってもＸＭＩ出力ツールの拡張記述である<xmi:Extension>タグ以下は対象外とする。
【００５５】
モデル図変換を行う場合に、元にしたＸＭＩのバージョンの違いを意識した変換ルールを定義することで、ＸＭＩの各バージョンに対応した変換を行う。
【００５６】
（３−２）ＸＭＩ変換機能
まず、ＸＭＩ形式から、本形式仕様記述へ機械的に変換を行う機能（ＸＭＩ変換機能）について説明する。ＸＭＩ形式のファイルは、種々の情報が要素に対する属性情報または子要素の関係で構造的に表現されている。ＸＭＩ変換機能では、このＸＭＩ形式における構造をそのままの形で全て形式仕様へと変換する。
【００５７】
ＸＭＩ変換では、ＸＭＩ形式ファイルの<uml:Model>タグ内の子要素を処理の対象とす
る。まず最初のタグについて、タグ名を名称とするデータ（以下、このデータを「タグ名データ」と称する）を作成する。また、このタグの、属性情報と子要素を抽出する。そして、属性情報は制約「属性」の参照データに変換し、子要素はタグ名データに対する制約「構成」の参照データに変換する。なお、ここで、１つのタグ名データに対しては、制約「属性」および「構成」はいずれも１つのみとして、タグに複数の属性情報や子要素がある場合には、全て同じ制約の参照データとする。また、制約「属性」の参照データは属性名とし、属性値は属性名に対する制約「値」の参照データとして変換する。また、子要素については、タグ毎に再帰的に上記の変換を行うことで全体の構造が本形式仕様記述図に変換することができる。
【００５８】
ＸＭＩ変換の例を図１１に示す。図１１Ａは変換対象のＸＭＩデータであり、図１１ＢはＸＭＩ変換後の形式仕様記述である。
【００５９】
<uml:Model>タグ内のタグ「packagedElement」を名称とするデータ「packagedElement
」が作成され、その属性情報である「name="クラス"」と「xmi:type="class"」が、この
データの制約「属性」の参照データに変換されている。なお、制約「属性」の直接の参照データは「name」と「xmi:type」であり、これらに対する制約「値」として「クラス」「uml:Class」がそれぞれ割り当てられる。また、タグ「packagedElement」の子要素である「ownedAttribute」と「ownedOperation」がそれぞれ、データ「packagedElement」の制
約「構成」の参照データに変換されている。子要素「ownedAttribute」の属性情報と子要素については、再帰的処理により同様に制約「属性」と制約「構成」として記述されることになる。
【００６０】
（３−３）モデル図変換機能
次に、上記のようにして機械的に変換された形式仕様記述から、各データの意味を踏まえて行う変換（モデル図変換）について説明する。ここでは、機械的に変換された形式仕様記述図から、仕様や設計情報として必要なもののみを抜き出して変換された形式仕様記述図のことをモデル図と称し、機械的に変換された形式仕様記述図からモデル図へ変換することをモデル図変換と称する。
【００６１】
モデル図変換を行う際には、変換元のＵＭＬ図等に応じて変換ルールをあらかじめ定めておく必要がある。実際にモデル図変換は、この変換ルールに基づいて自動的に行われる。変換ルールは、以下の３つの形式仕様記述図によって表される。
【００６２】
１．モデル図用類型の定義
モデル図用類型は、変換結果であるモデル図に適用される類型定義である。モデル図に適用する類型は、新たに作成するか作成済みの類型から選択する。類型および類型定義については既に述べたのでここでは説明は省略する。例えば、クラス図を変換する場合には、図８に示したようなクラス図の類型が用いられる。
【００６３】
２．機械的記述類型パターンの定義
ＵＭＬ図を示すＸＭＩファイルの機械的変換を行った結果の形式仕様記述図に含まれる各種制約または参照データに着目し、その中から仕様・設計情報として意味を持つ要素を抜き出して、類型として定義する。この類型定義を機械的記述類型パターンと称する。すなわち、機械的記述類型パターンは、機械的変換結果におけるデータを、モデル図用類型における制約候補またはデータ候補のいずれに対応付けて変換するかを示した変換ルールの定義である。なお、１つのＵＭＬ図を１つの類型で定義する必要はなく、複数の機械的記述類型パターンで定義してもよい。たとえば、クラス図を、クラスシンボルのようなデータ構造を示す機械的記述類型パターンと、依存関係を示す機械的記述類型パターンに分けて定義することができる。
【００６４】
機械的記述類型パターンの例を図１２Ｃに示す。この機械的記述類型パターンは以下のように記述される。
・類型パターンの名称を示すデータ（以下、類型名データと称する）を付ける。
・類型名に制約「対象」として、変換対象を判断するための機械的変換結果の出力パターンを記述する。
・類型名に制約「構成」として、変換範囲のデータを定義する。機械的変換結果の制約「構成」「属性」両方の参照データをこの定義として使用できる。
・変換範囲の各末端要素に制約「変換」としてモデル図用類型の該当箇所を記述する。
・変換ルールの多重度のデフォルト値は「１」とする。
【００６５】
３．類型の関連づけ
上記１，２で作成または選択した機械的記述類型パターンとモデル図用類型を制約「同意」で結び、形式仕様記述図を作成する。また、機械的記述類型パターンの終端データ（制約が付いていないデータ）をモデル図用類型のどの位置のデータとして変換するかを示す、変換ルールを機械的記述類型パターンに追加する。
【００６６】
ここで、変換ルールの定義には、クラス定義などデータ構造を変換するためのルールと、関連線のように２つのデータの関係情報を変換するためのルールの、大きく分けて２通
りの定義がある。以下、それぞれについて説明する。
【００６７】
（Ａ）データ構造の変換ルール
データ構造の変換においては、機械的記述類型パターンの各構成要素に、変換先のモデル図用類型のどの要素に関連づけるかを、制約「変換」を用いて記述することで行う。制約「変換」の参照データには、制約「同意」により変換ルールと関連づけを行った類型の定義中の対応するデータを、そのデータの複製データを用いて記述する。制約「変換」の参照データとして指定できるデータは、類型定義において制約を規定しているデータ（つまり、制約「制約候補」の参照データ）のみとする。
【００６８】
データ構造変換における変換処理の概要について図１２を参照して説明する。図１２ＡはＸＭＩ変換による変換結果（機械的変換結果）であり、モデル図変換の変換元図である。図１２Ｂは、変換後の構造を示す類型（モデル図用類型）である。図１２Ｃは、変換ルール記述（機械的記述類型パターンに変換ルールを追記した例）である。なお、これらの図は説明のために一部分を抜き出したものである。図１２Ｄは、機械的変換結果をモデル図用類型を用いて変換することを表す記述である。
【００６９】
この変換ルールに基づいた変換処理の実装では、制約「変換」により制約を受けるデータ「name（より正確にはpackageElementの属性であるname）」１２０９が示す変換元図（機械的変換結果）のデータ「name」１２０１に付けられた制約「値」の参照データ「arg:int」１２０２を取得する。そして、変換ルールにおける制約「変換」の参照データ（こ
こでは「属性」１２１０）として記述している類型定義データ（ここでは「属性」１２０５）に付けられた制約「データ候補」の値（１２０６）とみなして変換する。制約「データ候補」の参照データが「任意」である場合には、すべてのデータが変換対象となるが、データ「任意」が規定されていない場合は、データ候補として記述されているデータのいずれかと一致する場合のみ変換を実行する。ここでは、属性「visibiity」１２１１の変
換においては、類型定義においてデータ候補として「private」「public」が規定されて
いるが、機械的変換結果において「visibility」１２０３の値は「public」１２０４で類型定義におけるデータ候補と一致するため変換の対象となる。
【００７０】
（Ｂ）データの関係情報の変換ルール
関連線はＵＭＬ図においては２つのシンボル要素を接続するために用いられる。したがって、変換ルールにおいても、作成済みの２つのデータの関係を、関係種別に応じて制約で結びつける形へ変換を行うルールとして記述する。
【００７１】
図１３Ａは、関係を定義する機械的類型パターンである。図１３Ｂは、変換後の構造を示す類型（モデル図用類型）である。図１３Ｃは、機械的変換結果をモデル図類型を用いて変換することを表す記述である。この変換は、データと参照データを制約で結びつけるという基本的な形式であり、関係情報の変換においては共通する類型である。図１３Ｄは、変換結果の例である。なお、関係線の変換においては、データと参照データを制約で結びつけるという基本パターンへの変換であるため、制約「同意」を用いた類型同士の関連づけを行わずに定義可能であるが、ここでは制約「同意」を用いて関連づけを定義する場合を例として説明する。
【００７２】
制約名の定義は類型に制約「名称」を用いて定義する。制約「名称」の参照データは複数記述しても良く、その場合は、それら複数のデータを「：」で接続したものを制約名とする。また、制約「名称」を省略可能とし、省略された場合に類型パターン名を制約としても良い。
【００７３】
関連づけるデータは、ＸＭＩでは参照の形で記述されているため、変換した形式仕様記
述においても、関連データの制約の中には直接関連づけているクラス等のオブジェクトの情報は直接記述されていない。そのため、関連情報の変換ルールとしては参照データのＩＤを示すデータ「idref」を用いて記述する。データの関係情報の変換における実装では
、このＩＤを用いて機械的変換結果の形式仕様記述図全体から該当するオブジェクトを探し出し、該当するＩＤと同一のＩＤが制約「属性」の参照データ「xmi:idref」として定
義されているデータ（packagedElementであることが多い）を探し出し、そのデータの属
性あるいは構成から変換に必要なデータを取り出す。そして、これらの２つのデータの間を、制約「名称」で定義された制約名で関係づける。
【００７４】
（４）実装
（４−１）全体構成
以下、本発明に係る仕様作成支援装置の構成例を図１４を参照して説明する。図１４に示すように、仕様作成支援装置１は、データの演算処理を行うデータ処理部１１と、他の装置との通信を行う通信処理部１２、演算処理のためのデータやソフトウェアを記憶する記憶部（ハードディスク）１３、出力部１４、入力部１５を備えたコンピュータである。通信処理部１２は、ネットワークやケーブル等の回線を介して他のコンピュータとの通信を行う。記憶部１３は、オペレーティングシステム（ＯＳ）やアプリケーションプログラム（仕様作成支援プログラム）を記憶している。また、記憶部１３は、その他のＵＭＬ作図用ツールのプログラムを記憶していても良い。また、記憶部１３は、作成された形式仕様記述図のデータや、ＵＭＬ図のデータ等も記憶している。入力部１５は、データ処理部１１へ情報を入力する手段であり、キーボードやマウスといったユーザインタフェースや、メモリカードやＤＶＤ−ＲＯＭ等の記憶媒体から情報を読み取るデバイスを有する。出力部１４は、データ処理部１１の処理結果を出力する手段であり、処理結果等を表示する表示装置や、データを印刷するプリンタを有する。データ処理部１１は、ＣＰＵやメインメモリを有し、ＯＳやアプリケーションプログラムを記憶部１３からメインメモリに読み出し、読み出したＯＳやアプリケーションプログラムにしたがって、ＣＰＵが演算処理を行う。この演算処理により、ＣＰＵは、作図ツール２１、ＸＭＩ読込部２２、ＸＭＩ変換部２３、モデル図変換部２４としても機能する。
【００７５】
（４−２）作図ツール
作図ツール２１は、ユーザがキーボードやマウス等の入力装置から入力を行うによって、本発明の形式仕様記述図を作成するための機能部である。ユーザが「データ」や「制約」などを配置するための機能を選択し、画面上で適当で位置に配置し、名称をキーボードから入力することで、データや制約が配置できる。また、「制約線」や「関連線」を選択し、データ同士やデータと制約を選択することで、制約や関連としてこれらを結びつけることができる。入力された形式仕様記述図は、（１−２）のようなデータ構造に変換されて記憶部１３に記憶される。
【００７６】
なお、（１−３）で説明したように、作図ツール２１を利用すれば、形式仕様記述図を作成できるだけでなく、類型定義も作成可能である。また、既存の形式仕様記述図を元に類型定義を作成することも可能である。同様に、作図ツール２１を利用して、（３−３）で説明したモデル図変換における変換ルール（機械的類型パターンや類型の関連づけ）を作成することも可能である。
【００７７】
（４−３）ＸＭＩ読込部
ＸＭＩ読込部２２は、ＵＭＬ作図ツール等で作成されたＸＭＩファイルを読み込む機能部である。ＸＭＩ読込部２２は、ハードディスクに記憶されているＸＭＩファイルを読み込んでも良いし、通信によって他のコンピュータから取得しても良いし、ＵＭＬ作成ツールとプログラム（プロセス）間でＸＭＩファイルを取得しても良い。
【００７８】
（４−４）ＸＭＩ変換部（機械的変換部）
ＸＭＩ変換部２３は、（３−２）で示したＸＭＩ変換機能を実行する機能部である。ＸＭＩ読込部２２から取得されたＸＭＩファイルに対して、以下の図１５に示される処理を施すことで、本発明の形式仕様記述図へと機械的に変換を行う。
【００７９】
まず、ＸＭＩ読込部２２によって取得されたＸＭＩ形式のファイルを読み込んで、ＸＭＩの<uml:Model>タグ内の子要素に対して以下の処理を行う。まず最初のタグについて、
タグ名を名称とするデータ（以下、このデータを「タグ名データ」と称する）を作成する（Ｓ１０２）。また、このタグの、属性と子要素を抽出する（Ｓ１０４）。
【００８０】
タグの属性情報は、タグ名データに対する制約「属性」の参照データに変換する（Ｓ１０６）。ここで、１つのタグ名データに対して、制約「属性」は１つのみとして、タグに複数の属性値がある場合は、それらの属性を全て同じ制約「属性」の参照データとする。また、制約「属性」の参照データは属性名とし、属性値は属性名に対する制約「値」の参照データとして変換する。
【００８１】
タグの子要素は、タグ名データに対する制約「構成」の参照データに変換する（Ｓ１０８）。ここで、１つのタグ名データに対して、制約「構成」は１つのみとして、タグに複数の子要素がある場合は、それらの子要素を全て同じ制約「構成」の参照データとする。
【００８２】
さらに、子要素についてもタグ毎に、再帰的に上記のルールを適用して変換を行う（Ｓ１１０）。
【００８３】
このような処理により、ＵＭＬ作図ツール等によって作成されたＸＭＩ形式のファイルから本形式仕様記述図への変換が可能となる。変換の例は、図１１に示したとおりである。
【００８４】
（４−５）モデル図変換部
モデル図変換部２４は、（３−３）で示したモデル図変換機能を実行する機能部である。ＸＭＩ変換部２３の出力結果である形式仕様記述図（ここでは、変換元図とも称する）と、記憶部２３に格納されているモデル図用類型定義、機械的記述類型パターン（変換ルール）とを取得し、これらに基づいて各データの意味を踏まえて変換元図の変換を行う。
【００８５】
モデル図変換部２４が行う処理の大まかな流れは、図１６に示すように、類型データの読込および関連づけ（Ｓ２０２）を行い、変換元図から変換対象データを抽出する（Ｓ２０４）。そして、週出された変換対象データに対して、類型データに示されたようなデータ構造変換（Ｓ２０６）および関係定義変換（Ｓ２０８）を実施する。以下、それぞれの処理について図１７〜図２０を参照して詳しく説明する。
【００８６】
図１７は、類型データの読込および関連づけ処理（Ｓ２０２）の内容をより詳しく表したフローチャートである。まず、記憶部１３に記憶されている変換ルール定義類型を読み込む（Ｓ２０２−１）。そして、変換ルール定義類型に記載されている制約「同意」（図１２Ｄ）の参照データを探す。そして、探し出した参照データの名称と同じ名称のモデル図類型を探し（Ｓ２０２−３）、見つかった組合せを変換ルール−モデル図類型マッピングテーブルに登録する（Ｓ２０２−４）。なお、変換ルール−モデル図類型マッピングテーブルは記憶部１３に格納される。そして、上記の処理を全ての変換ルールについて繰り返して実行し（Ｓ２０２−５）、マッピングテーブルを構築する。
【００８７】
ステップＳ２０２−２〜Ｓ２０２−４の処理を、図１２および図１３の例に基づいて説明する。まず、変換ルール類型「機械的変換クラス」における制約「同意」の参照データ
の名称「クラスの類型」が抽出される（Ｓ２０２−２）。そして、これと同じ名称のモデル図類型「クラスの類型」（図１２Ｂ）が抽出される（Ｓ２０２−３）。変換ルール−モデル図類型マッピングテーブルには、変換ルール類型「機械的変換クラス」とモデル図用類型「クラスの類型」が関連づけて記憶される（Ｓ２０２−４）。また、図１３の例では、変換ルール類型「関係を示す類型」と、制約「同意」の参照データ名称「関係の類型」と同じ名称のモデル図類型「関係の類型」が、マッピングテーブルに関連づけて記憶される。
【００８８】
図１８は、変換対象データの抽出処理（Ｓ２０４）の内容をより詳しく表しフローチャートである。まず、データ構造変換用および関係定義変換用の２種類の変換対象登録テーブルを記憶部１３に用意する（Ｓ２０４−１）。これらのマッピングテーブルには、以降の処理で見つかった変換対象データと、そのデータの変換で使用する変換ルール類型のマッピング情報が登録される。
【００８９】
ステップＳ２０２で読み込んだ各変換ルール類型から対象変換データ名（制約「対象」の参照データ）を探し出し、変換元図からそのデータと同名のデータを全て抽出する（Ｓ２０４−２）。また、変換ルール類型から制約「構成」の記述を調べ、この変換ルールがデータ構造変換用のルールと、データとデータの関係定義（クラス図の継承関係など）の変換用のルールのいずれであるかを調べる（Ｓ２０４−３）。変換ルールがデータ構造変換用のルールである場合には、ステップＳ２０４−２で抽出したデータをデータ構造変換用の変換対象登録テーブルに登録し、変換ルールがデータ関係変換用のルールである場合には、抽出したデータを関係定義変換用の変換対象登録テーブルに登録する（Ｓ２０４−４）。
【００９０】
ステップＳ２０４−２〜Ｓ２０４−４の処理を、図１２の例（データ構造変換）に基づいて説明する。まず、ステップＳ２０２で読み込んだ変換ルール類型「機械的変換クラス」から対象変換データ名（図１２Ｃでは、制約「対象」の参照データである「タグ名packagedElement、属性xmi:type="uml:Class」）を探し、変換元図（図１２Ａ）から同名のデータ（packagedElement）を抽出する（Ｓ２０４−２）。また、変換ルール類型「機械的
変換クラス」の制約「構成」の内容から、この変換ルールがデータ構造変換用ルールであることが判断される（Ｓ２０４−３）。したがって、変換対象データであるpackagedElementをデータ構造変換用の変換対象登録テーブルに登録する（Ｓ２０４−４）。なお、変
換対象packagedElementは、xmi:idで識別することができる。
【００９１】
また、ステップＳ２０４−２〜Ｓ２０４−４の処理を、図１３の例（関係定義変換）に基づいて説明する。ステップＳ２０２で読み込んだ変換ルール「関係を示す類型」から変換対象データ名（図１３Ａにおける制約「対象」の参照データ「タグ名generalization, 属性xmi:type=uml:Generalization」）を探し、変換元図から同名のデータを抽出する（
Ｓ２０４−２）。また、変換ルール類型「関係を示す類型」の制約「構成」の内容から、この変換ルールが関係定義変換用のルールであることが判断される（Ｓ２０４−３）。したがって、変換対象データ（generalization)を関係定義変換用の変換対象登録テーブル
に登録する（Ｓ２０４−４）。ここでも、変換対象はxmi:idで識別することができる。
【００９２】
図１９は、データ構造変換処理（Ｓ２０６）の内容をより詳しく表したフローチャートである。ステップＳ２０４においてデータ構造変換用の変換対象登録テーブルに登録された変換対象ごとにこのフローチャート手順で変換を行って、結果をモデル図に追加する。ここでは、図１２の具体例を参照しながら説明する。
【００９３】
まず、データ構造変換用の変換対象登録テーブルから、変換対象データと変換ルール類型の組を１つ取り出す（Ｓ２０６−１）。図１２の例では、ステップＳ２０４で変換対象
データ（packagedElement）と変換ルール類型「機械的変換クラス」が対応付けられてデ
ータ構造変換用の変換対象登録テーブルに登録されているので、これが取り出される。
【００９４】
取り出した変換ルール類型から、作成するデータ構造の基点となるデータの名称および、ＸＭＩにてそのデータに割り当てられているＩＤ（xmi:id）を取り出す（Ｓ２０６−２）。ステップＳ２０６−２で取り出した名前で新しいデータを作成し、モデル図に追加する（Ｓ２０６−３）。このデータがモデル図類型の基点データとなる。図１２Ｃの例では、基点となるデータの名称としてpackagedElementが取り出されて、データpackagedElementが基点となるデータとしてモデル図に追加される。また、ＸＭＩにてそのデータに割り当てられているＩＤ（図１２ＡではＩＤ属性は省略されている）が取り出される。
【００９５】
ステップＳ２０６−３で作成したデータシンボルと、ステップＳ２０６−２で取り出したＩＤの組をデータシンボル−データＩＤマッピングテーブルに登録する（Ｓ２０６−４）。このマッピングテーブルは、関係定義変換（ステップＳ２０８）にて使用される。
【００９６】
ステップＳ２０２で作成した変換ルール−モデル図類型マッピングテーブルから、変換ルールに関連づけられているモデル図類型を取り出す（Ｓ２０６−５）。図１２の例では、変換ルール「機械的変換クラス」に紐付けられているモデル図類型「クラスの類型」が取り出される。
【００９７】
変換ルール類型の「構成」以下の部分から、変換元図のデータ構造と、モデル図類型のデータ位置との組合せを１つ取り出す（Ｓ２０６−６）。そして、取り出したデータ構造を元に、変換元図の該当箇所を探し出し、その値を取り出す（Ｓ２０６−８）。図１２の例では、変換ルール（図１２Ｃ）の「構成」以下から、たとえば、データ構造「ownedAttribute <- 属性 - name」が取り出され、変換元図（図１２Ａ）における対応する構造の
値「arg:int」が取り出される。
【００９８】
次に、ステップＳ２０６−６で取り出したモデル図類型のデータ位置を元に、作成するデータ位置を調べ、その位置に取得したデータ名称のデータまたは制約を作成する（Ｓ２０６−９）。図１２の例では、取り出したデータ構造「ownedAttribute <- 属性 - name
」は制約「変換」として「属性」が指定されているので、モデル図類型において作成するデータ位置は制約「制約候補」の参照データ「属性」がある位置であることが分かる。したがって、モデル図において、データ「ownedAttribute」に対して、制約「属性」を作成し、その参照データは変換元図において対応する値である「arg:int」とする。
【００９９】
ステップＳ２０６−６〜Ｓ２０６−９の処理を、変換ルールにおける「構成」全てについて行うことで、１つの変換ルールに定義されたデータおよび制約の変換が全て行われることになる。図１２に例では、データ構造「ownedAttribute <- 属性 - name」について
の処理が終わったら、次にデータ構造「ownedAttribute <- 属性 - visibility」の処理
が行われ、変換ルールにおける全ての変換が行われる。
【０１００】
１つの変換対象について、複数の変換ルールを適用しても良いので、現在の変換対象に対してまだ処理を行っていない変換ルールがある場合には、その変換ルールについて上記の処理を繰り返す（Ｓ２０６−１０）。なお、複数のルールを用いて変換する場合には、同一データを複数回変換することがあり得る。この場合は、変換する名称のデータが既に変換されている場合には、そのデータを共有する形で変換を行い、同じ名前のデータが変換後のモデル図に複数個現れないようにする。
【０１０１】
以上のようにして、１つの変換対象について、機械的変換結果（変換元図）からデータ構造の変換処理が完了する。変換対象登録テーブルに登録された全ての変換対象について
上記の処理を行うことで、変換元図の全ての要素がモデル図に変換される。
【０１０２】
図２０は、関係定義変換処理の内容をより詳しく表したフローチャートである。ステップＳ２０４において関係定義変換用の変換対象登録テーブルに登録された変換対象ごとにこのフローチャートの手順で変換を行って、結果をモデル図に追加する。ここでは、図１３の具体例を参照しながら説明する。
【０１０３】
まず、関係定義変換用の変換対象登録テーブルから、変換対象データと変換ルール類型の組を１つ取り出す（Ｓ２０８−１）。図１３の例では、変換対象データ（generalization）と変換ルール類型「関係を示す類型」が取り出される。
【０１０４】
次に、変換ルール類型から、関係における「データ」の役割となるデータを探すためのパターンを探す（Ｓ２０８−２）。また、変換ルール類型から、関係における「参照データ」の役割となるデータを探すためのパターンを探す（Ｓ２０８−３）。ステップＳ２０８−２で見つかったパターンにマッチするデータ構造を変換対象データの制約以下の部分から探し、見つかったデータ構造から「データ」に相当するデータシンボルを示すＩＤを取り出す。同様に、ステップＳ２０８−３で見つかったパターンにマッチするデータ構造を変換対象データの制約以下の部分から探し、見つかったデータ構造から「参照データ」に相当するデータシンボルを示すＩＤを取り出す。図１３の例では、「データ」の役割を探すためのパターンは構成「データ１」である（実際には「データ１」に対して更に制約が加えられていても良い）。そして、このパターン「データ１」に対応するデータ構造を変換元図（不図示）から求め、そのデータシンボルＩＤを取得する。同様に、「参照データ」の役割を探すためのパターンとして構成「データ２」が得られ、これに対応する変換元図におけるデータシンボルのＩＤを取得する。
【０１０５】
そして、ステップＳ２０６−４で作成したデータシンボル−データシンボルＩＤマッピングテーブルを用いて、ステップＳ２０８−４，５で見つけたＩＤに対応するモデル図上のデータを探し出す（Ｓ２０８−６）。変換ルール類型の制約「名称」の参照データを元に、変換元図から制約名を取り出す。ステップＳ２０８−６で見つけたデータと参照データをつなぐ制約を作成し、この制約の名称をステップＳ２０８−７で取り出した名前とする。
【０１０６】
１つの変換対象について、複数の変換ルールを適用しても良いので、現在の変換対象に対してまだ処理を行っていない変換対象がある場合には、その変換対象について上記の処理を繰り返す。
【０１０７】
以上のようにして、１つの変換対象について、機械的変換結果（変換元図）からデータ構造の変換処理が完了する。変換対象登録テーブルに登録された全ての変換対象について上記の処理を行うことで、変換元図の全ての要素がモデル図に変換される。
【０１０８】
（４−６）変換例
以上のような変換によって、ＵＭＬ作図ツール等が出力するＸＭＩから、データの意味などを考慮して表現された形式仕様記述図への変換の具体例を例示する。
【０１０９】
図２１に変換元となるＸＭＩ表現を示す。このＸＭＩ表現を入力として、ＸＭＩ変換部２３によって図１６に示したＸＭＩ変換（機械的変換）を行って得られる形式仕様記述を図２２，２３に示す。ここでは、一部の表現を省略して示している。各タグ要素について、属性情報については「属性名＝属性値」の形式が「[属性] - 属性名 <- [値] - 属性値」という形式に変換される。子要素について、制約「構成」の参照データに変換され、再帰的に制約「属性」「構成」が記述される。機械的変換では、このようにＸＭＩにおける
属性情報であるか子要素であるかという構造のみに着目して変換が行われるので、変換結果は膨大なものとなり、ユーザにとって必ずしも見やすいものではない。
【０１１０】
このような機械的変換結果は、設計情報・仕様情報として意味を持つ項目の抽出に重点を置いて変換（モデル図変換）することで、設計情報を見やすくすることができる。図２４は、モデル図変換の結果となる形式仕様記述図の類型（モデル図類型）である。ここでは、変換対象のＸＭＩがクラス図を表したものであるために、クラス図を形式仕様記述図で表したときの類型を定義して使用している。なお、図２４では、類型「クラス」の中で類型「関数」を参照しているため、類型「関数」についても図中に示している。
【０１１１】
図２５は、モデル図変換におけるデータ構造変換ルール（機械的記述類型）を示す。ここでは、制約「対象」に「packageElement <- [属性] - xmi:type <- [値] - uml:Class
」が指定されているので、機械的変換結果における同様のデータ構造が変換対象であることが示されている。また、制約「構成」には、各データ構造が示す値を、モデル図類型におけるどの箇所に挿入するかが記述されている。ここでは、例えば、ownedAttributeの属性名nameがとる値（属性値）を、制約「属性」の参照データに変換することが、制約「変換」によって表されている。
【０１１２】
同様に、図２６は、モデル図変換における関係定義変換ルールを示す。変換対象が「generalization <- [属性] - xmi:type <- [値] - uml:Generalization」と指定されている。ここでは制約の名称が省略されていることから、関係定義変換における制約の名称は類型名である「継承」が利用される。また、この制約「継承」のデータとなるデータ構造（general）と参照データとなるデータ構造（specific）が定義されている。
【０１１３】
図２７は、モデル図変換において、モデル図類型（ここでは「クラス」）の形式仕様記述図を作成する際に、「機械的変換クラス」と「継承」の」２つの変換ルールを利用することが表されている。
【０１１４】
図２８は、図２２，２３に示す機械的変換結果である形式仕様記述図を入力として、図２４〜図２７に示した定義にしたがって、上記で説明した図１７〜図２０の処理（モデル図変換）を行った結果として得られる形式仕様記述図である。このように、設計情報・仕様情報として重要なデータを抽出してモデル図類型の適切な箇所に配置することで、最終的に得られるモデル図は、ユーザにとって見やすいものとなる。
【０１１５】
＜５．本実施形態の作用・効果＞
以上のように、本実施形態によれば、機能要求と非機能要求を統一的に記述可能な新規な形式仕様記述表現において、既存のＵＭＬツール等によって作成された機能要求を表す仕様情報を取り込んで利用することができる。この際、設計情報として重要な意味を持つ項目を抽出することができるので、ユーザにとって見やすい形式仕様記述図の作成が可能となる。
【０１１６】
＜６．その他＞
なお、以上の説明では、主にクラス図を表したＸＭＩ表現を形式仕様記述図に変換する場合を例として説明しているが、上記の説明から明らかなように、作図用類型と変換ルールを適切に設定することでクラス図以外のＸＭＩ表現についても、その意味を考慮して適切な構造で取り込むことが可能である。たとえば、クラス図以外に、状態機械図、アクティビティ図、シーケンス図、ユースケース図など任意のＵＭＬ図を形式仕様記述図に変換できる。もちろん、形式仕様記述図への変換はＵＭＬ図に限られず、ＸＭＩで表現されたデータ構造であれば変換可能である。
【符号の説明】
【０１１７】
１１  データ処理部
１２  通信処理部
１３  記憶部
１４  出力部
１５  入力部
２１  作図ツール
２２  ＸＭＩ読込部
２３  ＸＭＩ変換部
２４  モデル図変換部
【図１】
2012185533.tif 000003
【図２】
2012185533.tif 000004
【図３】
2012185533.tif 000005
【図４】
2012185533.tif 000006
【図５】
2012185533.tif 000007
【図６】
2012185533.tif 000008
【図７】
2012185533.tif 000009
【図８】
2012185533.tif 000010
【図９】
2012185533.tif 000011
【図１０】
2012185533.tif 000012
【図１１】
2012185533.tif 000013
【図１２】
2012185533.tif 000014
【図１３】
2012185533.tif 000015
【図１４】
2012185533.tif 000016
【図１５】
2012185533.tif 000017
【図１６】
2012185533.tif 000018
【図１７】
2012185533.tif 000019
【図１８】
2012185533.tif 000020
【図１９】
2012185533.tif 000021
【図２０】
2012185533.tif 000022
【図２１】
2012185533.tif 000023
【図２２】
2012185533.tif 000024
【図２３】
2012185533.tif 000025
【図２４】
2012185533.tif 000026
【図２５】
2012185533.tif 000027
【図２６】
2012185533.tif 000028
【図２７】
2012185533.tif 000029
【図２８】
2012185533.tif 000030