仕様作成支援装置および方法
【課題】XMI表現から仕様情報を取り込む際に、ユーザが設定した項目を抽出して適切な構造として取り込む。
【解決手段】本発明に係る称作成支援装置は、XMI形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援装置であって、XMI形式の仕様情報を読み込む読込手段と、XMI形式の仕様情報における、属性情報と子要素の関係に基づいて、機械的に前記形式仕様表現に変換した機械的変換巣に変換するXMI変換手段と、採取出力結果のテンプレートと、機械的変換結果におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとに基づいて、機械的変換結果を形式仕様表現の仕様情報に変換するモデル図変換手段と、を備える。
【解決手段】本発明に係る称作成支援装置は、XMI形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援装置であって、XMI形式の仕様情報を読み込む読込手段と、XMI形式の仕様情報における、属性情報と子要素の関係に基づいて、機械的に前記形式仕様表現に変換した機械的変換巣に変換するXMI変換手段と、採取出力結果のテンプレートと、機械的変換結果におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとに基づいて、機械的変換結果を形式仕様表現の仕様情報に変換するモデル図変換手段と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システム開発等における仕様作成を支援する技術に関する。
【背景技術】
【0002】
従来、システム開発等における仕様はUML(Unified Modeling Language)やPromela(Process Meta Language)といったモデリング言語でモデル化されている。また、これ
らのモデルをSPINやSMLといったモデル検査ツールで検査することが知られている。しかしながら、仕様検証の対象は機能要求であり、非機能要求の検証を行うモデル検査ツールは知られていない。
【0003】
本発明者らは、機能要求と非機能要求の両方を検証可能な、形式仕様記述技術(形式表現)の開発を進めている。ここで、機能要求については従来からUML等での表現が用いられていることから、UMLによって表現された仕様を取り込み、それに対して非機能要求の仕様情報を付加していくことが効率的と考えられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−075681号公報
【特許文献2】特開2008−305079号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、UML表現と新形式仕様表現との間でフォーマット変換を行う際に、UML(XMI)で表現された構造をそのまま取り込むのではなく、設計情報として重要な意味を持つ項目の抽出に重点を置いた変換を行うことが、設計情報の見やすさの観点から好ましい。
【0006】
そこで、本発明では、XMI表現からデータを取り込む際に、ユーザが設定した項目を重点的に抽出し適切な構造として取り込むことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本発明に係る仕様作成支援装置は、XMI形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援装置であって、
XMI形式の仕様情報を読み込む読込手段と、
XMI形式の仕様情報における、属性情報と子要素の関係に基づいて、XMI形式における構造を保ったまま前記形式仕様表現に変換した表現である機械的変換仕様情報(機械的変換結果)に変換するXMI変換手段と、
前記形式仕様表現の仕様情報のテンプレート(類型)と、前記機械的変換仕様情報におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとを記憶した記憶する記憶手段と、
前記仕様情報のテンプレートと前記変換ルールとに基づいて、前記機械的変換仕様情報を形式仕様表現の仕様情報に変換するモデル図変換手段と、
を備える。
【0008】
このように、XMI形式の仕様情報をまずXMI形式の構造を保ったまま機械的に形式仕様表現に取り込み、そこからテンプレートと変換ルールを用いて最終的な形式仕様表現の仕様情報へと変換することで、ユーザが設定した項目のみを取り出すことができる。また、変換結果もテンプレートによって定義された構造となるため、ユーザにとって見やすい仕様情報を作成することができる。
【0009】
本発明において、前記テンプレートおよび前記変換ルールのいずれもが、前記形式仕様表現の仕様情報として記述されている、ことも好ましい。
【0010】
このように、テンプレートや変換ルールを形式仕様表現の仕様情報として記述することで、テンプレートや変換ルールを機械的変換仕様情報と統一的な方法により取り扱うことができる。
【0011】
また、本発明において、前記XMI変換手段は、
XMI形式の仕様情報におけるタグ要素の属性情報を、タグ要素を表すデータに対する制約「属性」の参照データに変換し、
XMI形式の仕様情報におけるタグ要素の子要素を、タグ要素を表すデータに対する制約「構成」の参照データに変換し、
各タグ要素について再帰的に、属性情報と子要素の変換を実行する、
ことも好ましい。
【0012】
このような変換を行うことで、XMI形式の仕様情報を、その構造をそのままに保ちつつ形式仕様表現の仕様情報(機械的変換仕様情報)に変換することができる。
【0013】
また、本発明において、前記仕様情報のテンプレートは、データ毎に取り得る制約の候補および、制約毎に取り得る参照データの候補を記述したものである、ことが好ましい。
【0014】
また、本発明において、前記変換ルールは、変換対象とする機械的変換仕様情報におけるデータを、前記テンプレートにおける制約の候補または参照データの候補のいずれに対応付けるかを記述しており、
前記モデル図変換手段は、前記変換ルールにおいて変換対象として記述された機械的変換仕様情報におけるデータの制約「値」の参照データが、前記テンプレートにおける制約の候補または参照データの候補と一致する場合に、前記制約「値」の参照データを前記制約または参照データとして形式仕様表現の仕様情報に変換する、
ことも好ましい。
【0015】
このように、変換ルールを定義することで、XMI形式の仕様情報における任意のデータを、テンプレートにおける任意の位置に配置して変換することができる。テンプレートと変換ルールを、変換対象のXMI形式の仕様情報に応じて設計することで、このXMI形式の仕様情報のうち、設計情報や仕様情報として重要な意味を持つ要素のみを取り出して形式仕様表現に変換することができる。
【0016】
本発明は、上記手段の少なくとも一部を含む仕様作成支援装置として捉えることができる。また、これらの処理を行う仕様作成支援方法、さらには、これらの方法をコンピュータにおいて実現するためのプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0017】
本発明によれば、XMI表現の仕様情報を取り込んで形式仕様表現に変換する際に、ユーザが設定した項目を重点的に抽出して、適切な構造の形式仕様表現とすることが可能と
なる。
【図面の簡単な説明】
【0018】
【図1】形式仕様記述図を構成する図形要素を説明する図である。
【図2】形式仕様記述図の例である。
【図3】形式仕様記述図を表現したXMLフォーマットデータである。
【図4】形式仕様記述図のXMLデータフォーマットにおける各図形要素を表す記述例である。
【図5】類型を説明するための図である。
【図6】類型定義を説明するための図である。
【図7】条件を付加した類型定義の例である。
【図8】構造化した類型定義の例であり、クラスに対応する類型である。
【図9】図8の構造化類型定義のために定義した類型を示す図である。
【図10】形式仕様記述図(A)と、その選択部分(点線)から自動的に作成される類型定義(B)である。
【図11】XMI変換機能における、変換対象のXMI記述(A)と、変換後の形式仕様記述(B)の例を示す図である。
【図12】XMI変換機能による機械的変換結果(A)のデータ構造を、モデル図用類型(B)と変換ルール(C)と類型の紐付け(D)を用いて変換するモデル図変換機能を説明する図である。
【図13】XMI変換機能による機械的変換結果におけるデータの関係を定義する機械的類型パターン(A)と、モデル図用類型(B)と、類型の紐付け(C)と、関係情報の変換結果(D)を示す図である。
【図14】仕様作成支援装置の構成図
【図15】XMI変換機能(XMI形式から形式仕様記述形式への機械的変換)のフローチャートである。
【図16】モデル図変換機能の概要を示すフローチャートである。
【図17】モデル図変換機能における類型データの読込および関連づけ処理のフローチャートである。
【図18】モデル図変換機能における変換対象データ抽出処理のフローチャートである。
【図19】モデル図変換機能におけるデータ構造変換処理のフローチャートである。
【図20】モデル図変換機能における関係定義変換処理のフローチャートである。
【図21】変換対象のXMI記述の例。
【図22】図21のXMI記述をXMI変換(機械的変換)した結果。
【図23】図21のXMI記述をXMI変換(機械的変換)した結果(続き)。
【図24】モデル図変換において使用する作図用類型の例。
【図25】モデル図変換において使用するデータ構造変換用の変換ルールの例。
【図26】モデル図変換において使用する関係定義変換用の変換ルールの例。
【図27】モデル図変換において機械的変換結果に適用する変換ルールのマッピングの例。
【図28】図24〜図27の変換定義を用いて図22〜図23の機械的変換結果に対してモデル図変換をした結果。
【発明を実施するための形態】
【0019】
<1.形式表現>
(1−1)作図要素
まず初めに本発明者らが開発を進めている新しい形式表現手法について説明する。本形式表現は、作成や理解を容易とするために図形として表現される。形式仕様記述図で用いられる図形要素は、データ、制約ラベル、制約線、参照線の4つである。本形式仕様記述
では、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データの関連づけによって仕様情報が記述される。
【0020】
・データ
データは、状態・条件・処理などを表す数値・文字・記号である。形式仕様記述図では、データは図1Aに示すようにデータ名が内部に書かれた実線の矩形として表現される。データとデータは下記の「制約」を介して接続される。
【0021】
・制約
制約は、あるデータに対して説明する視点を与え、その視点で見た場合の具体的な内容として別データを参照する。形式仕様記述図では、制約は図1Bに示すように制約名が内部に書かれた角括弧として表現される。
【0022】
・制約線
制約線は、データと、そのデータに付加される制約とを結ぶものである。形式仕様記述図では、制約線は図1Cに示すように実線の矢印として表現される。矢印側にはデータが接続され、矢印のない方に制約が接続される。
【0023】
・参照線
参照線は、制約と、その制約の内容であるデータとを結ぶものである。形式仕様記述図では、参照線は図1Dに示すように実線として表現される。
【0024】
図2は本形式表現によって表した仕様の例である。ここでは、車載カメラ映像処理の仕様を定義している。ここでは、車載カメラで映像を撮影し、輪郭を抽出して元の画像に合成して表示する処理を想定している。この車載カメラ映像処理は、その構成として、カメラ・輪郭抽出・輪郭合成・モニタを有することが表現されている。また、カメラは、結果としてカメラ画像を出力し、その処理時間がX秒であることが表現されている。また、このカメラ画像の画像形式はVGAカラーであることが表現されている。さらに、輪郭抽出・輪郭合成・モニタについてもカメラと同様の仕様が表現されている。
【0025】
また、車載カメラ映像処理の総処理時間が、カメラ(撮像)・輪郭抽出・輪郭合成・モニタ(表示)の各処理時間の合計として表される時間であり、その上限がT秒であることが表現されている。
【0026】
このように、本形式表現手法では、機能要件(入力や出力の型や値の範囲など)と非機能要件(処理時間、製造コストなど)の両方を統一的に記述することができる。仕様の検証においては、各データの型や値の範囲が定義を満たすか否か、データ間の接続が適切であるかという側面から、機能要件の検証が行える。また、非機能要件についても同様に「データ」と「制約」の形で表されているため、制約を充足するか否かを判定することで、非機能要件の検証が行える。
【0027】
(1−2)データ構造
上記の形式表現(形式記述図)をコンピュータ上で表現するために、以下のデータ構造で形式記述図を表現する。形式記述図のデータ表現を種々の手法が考えられるが、ここではXML形式にて表現する例を説明する。
【0028】
形式記述図の1つが、図3に示されるようなXMLファイルとして保存される。1行目はXMLに基づくファイルであることを示すために"<?xml"で始まるタグを記述する。2
行目には、新形式仕様記述図であることを示すタグ"<nndiagram>"が記述される。このタ
グの属性にはフォーマットバージョンが記述される。3行目以降には、図の書式設定部と
作図データの2つの構造の領域に分けて情報が記述される。
【0029】
図の書式設定部には、印刷設定、作図画面の設定、各作図要素のデフォルト設定などが記述される。印刷設定は、例えば、用紙サイズ、向き、上下左右のマージンなどである。作図画面の設定は、編集領域のサイズや、編集ツールで開いたときに画面に表示される領域などである。各作図要素のデフォルト設定は、「データ」「制約」等のそれぞれについての、背景色、線の色、線幅などのデフォルト値である。
【0030】
作図データ部の記述例を、図4A〜図4Dに「データ」「制約」「制約線」「参照線」それぞれについて示した。
【0031】
「データ」は、項目名dataとして表現され、属性として管理用の通し番号(id)と使用する類型(template)が記述される。なお、類型については後述する。要素dataの子要素として、データ名称(name)、背景色(bgColor)、線色(fgColor)、線幅(lineThickness)、図中の座標(position)、シンボルのサイズ(size)などが記述される。
【0032】
「制約」は、項目名constraintとして表現され、属性として管理用の通し番号(id)が記述される。要素constraintの子要素として、データ名称(name)、背景色(bgColor)
、線色(fgColor)、線幅(lineThickness)、図中の座標(position)、シンボルのサイズ(size)などが記述される。
【0033】
「制約線」は、項目名constraintRelationとして表現され、属性として管理用の通し番号(id)、接続するデータシンボルのID(endsymbol)、接続する制約シンボルのID
(startsymbol)が記述される。要素constraintRelationの子要素として、線色(fgColor)、線幅(lineThickness)、図中の位置(startposition, position, endposition)な
どが記述される。図中の位置については、始点と終点は必須であり、折れ点がある場合には折れ点の数だけタグpositionが記述されるものとする。
【0034】
「参照線」は、項目名referenceRelationとして表現され、属性として管理用の通し番
号(id)、接続するデータシンボルのID(startsymbol)、接続する制約シンボルのI
D(endsymbol)が記述される。要素referenceRelationの子要素として、線色(fgColor
)、線幅(lineThickness)、図中の位置(startposition, position, endposition)な
どが記述される。図中の位置については、始点と終点は必須であり、折れ点がある場合には折れ点の数だけタグpositionが記述されるものとする。
【0035】
ここで各項目の子要素としては挙げたものは例示であってその他の要素を含んでも良い。また、図の書式設定部に記載されたデフォルト値を採用する項目については、ここでの記述を省略してもかまわない。また、個々で紹介したXML表現は一例であり、同様の情報を異なる形式でも表現してもかまわない。
【0036】
(1−3)作図方法
形式仕様記述の作成は、ユーザが編集ツール上で作図を行うことにより行われる。このような編集ツール(作図ツール)は一般的なものであり、画面上での作図を上記のデータ構造へ変換することは当業者であれば容易に実装することができる。
【0037】
<2.類型および類型定義>
(2−1)類型
類型(テンプレート)とは、データと制約の組合せを単一の表現にまとめたものである。以下、類型およびその定義方法について、簡単な例を参照して説明する。図5には、「撮影データ」と「写真データ」という類似のデータ構造が形式仕様記述図として表されて
いる。「撮影データ」と「写真データ」のいずれもが画像であることから、「幅」「高さ」「色」という属性(制約)を有する。したがって、制約として「幅」「高さ」「色」を1つずつ有し、各制約の参照データには任意の記述が可能な、類型「画像」というものを定義することが考えられる。また、制約の参照データとしてある定められたデータをとる必要がある場合には、このような関係も類型に定義することができる。なお、後述するように、類型に含まれる制約に多重度を設定したり、参照データの候補を設定したりするようにしても良い。
【0038】
このような類型を導入することにより、例えば、以下のような利点を得ることができる。
【0039】
第1に、あるデータについて類型を適用することで、類型に定義されたデータや制約を自動的に作成したり、あるいは、必要なデータや制約をユーザに選択させたりといった、形式仕様記述の作成支援が可能となる。
【0040】
第2に、複数人で仕様や設計を形式仕様記述で記述する際に、類似の構造について同一の構造として統一的に記述することが可能となる。
【0041】
第3に、UMLツール等で作成されたクラス図や状態機械図やアクティビティ図のモデル図を形式仕様記述図に変換することが可能となる。このUML図からの変換については、類型について説明した後に詳しく説明する。
【0042】
(2−2)類型定義
類型の定義は、任意の表現が可能であるが、ここでは形式仕様記述を用いて記述する方式を採用する。類型定義では、形式仕様記述のデータと制約の関係性、制約と参照データの関係性、更に制約や参照データに対する条件の指定について、制約を用いて記述する。このような制約を総称して「メタ制約」と呼ぶ。形式仕様記述と類型定義の関係を図6に示す。形式仕様記述におけるデータと制約の関係は、類型定義の「メタ制約」を用いて、図中の定義(a)の形で定義する。形式仕様記述の「データ」が類型定義の「データ」に、形式仕様記述の「制約」が類型定義の「制約を示すデータ」に対応する。同様に、形式仕様記述の制約と参照データの関係も「メタ制約」を用いて、図中の定義(b)の形で定義する。形式仕様記述の「制約」が類型定義の「制約を示すデータ」に、形式仕様記述の「参照データ」が類型定義の「参照データ」に対応する。このような基本構造を繰り返す形で類型を定義できる。繰り返す際には、「参照データ」が次の繰り返しの「データ」になる。
【0043】
さらに、類型定義における「データ」、「制約を示すデータ」、「参照データ」に対して、メタ制約を用いて条件を示すデータを定義することができる。このような類型定義を図7に示す。図中の定義(c)のように、「データ」に対する条件を「メタ制約」と「データの条件を示すデータ」で定義する。同様に、図中の定義(d)のように、「制約を示すデータ」に対する条件を「メタ制約」と「制約の条件を示すデータ」で定義する。同様に、図中の定義(e)のように、「参照データ」に対する条件を「メタ制約」と「参照データの条件を示すデータ」で定義する。
【0044】
このように定義することで、今後類型を拡張する場合にも、新たな位置づけのメタ制約を追加する形で容易に拡張が行える。
【0045】
図8に具体的な例として、クラスの構造を類型化した類型定義を示す。なお、ここでは同じ記述の重複を避けるためにクラス以外の構造も類型として定義して使用している。クラスの類型定義において参照した類型定義を図9に示す。なお、このように他の類型定義
を参照して定義した類型定義のことを、構造化した類型定義と称する。
【0046】
図8を参照すると、データ「クラス」は制約として「属性」と「操作」を持ちうることが示される。制約「属性」は0個以上の多重度を有する、すなわち、0個以上の制約「属性」の参照データがデータ「クラス」に関連づけられることが示されている。また、制約「属性」の参照データのデータ名は任意である。また、この参照データは、可視属性と、1つの型を制約として有する。ここでの「可視属性」は図9に示した類型定義「可視属性」を参照した複製データである。複製データとは、このデータが他の類型定義に定義されていることを示すデータである。ここでは、複製データを類型定義「可視属性」で置き換えたものと同等の意味を成す。
【0047】
制約「操作」は0個以上の多重度を有する、すなわち、0個以上の制約「操作」の参照データがデータ「クラス」に関連づけられることが示されている。また、制約「操作」の参照データのデータ名は任意のものと「コンストラクタ」および「デストラクタ」を取り得ることを示している。任意の参照データは多重度が0個以上であり、制約候補として可視属性、戻り値(多重度1)、引数(多重度0以上)を有する。また、コンストラクタの制約候補は可視属性と戻り値のみであることが示されている。また、デストラクタの制約候補は可視属性のみであることが示されている。
【0048】
このような類型定義を用いることで、あるデータに類型定義を適用して自動または半自動的に形式仕様記述が行えるようにできる。たとえば、形式仕様記述図の編集ツール上で、あるデータに類型「引数」(図9)を適用した場合には、制約として「インスタンス」または「ポインタ」のいずれか一方のみを選択可能なように表示される。ここで制約として「インスタンス」を選択した場合には参照データとして「int」「char」「float」のいずれか1つを選択できるように表示される。一方制約として「ポインタ」を選択した場合には参照データとして「void」「int」「char」「float」のいずれか1つを選択できるように表示される。このように、類型を適用することで、選択可能な制約やデータ名などが構造や多重度が考慮されてユーザに提示されるので、形式仕様記述図を作成するユーザの負担が軽減される。さらに複数人の間で同様の構造で形式仕様記述図が作成できる。
【0049】
また、あるデータに類型を適用して形式仕様記述図を作成した場合に、その図が類型定義で表される通りの記述となっているかを、検証することもできる。したがって、作成した形式仕様記述図の構造が適切であるか検証することができる。
【0050】
(2−3)類型定義の作成方法
類型定義自体も形式仕様表現により表現されるため、形式仕様記述図の作成と同様に編集ツール上で一から作図して作ることができる。別の方法として、既存の形式仕様記述図から類型定義のひな形を作成するようにしても良い。たとえば、図10Aに示すような形式仕様記述図があった場合に、データ「setAge」以外の範囲(点線内部)など所望の範囲を選択して類型の自動作成処理を行うことができる。変換後の類型定義を図10Bに示す。この類型の自動作成処理では、メタ制約として「制約候補」と「データ候補」のみを使用して類型定義に変換する。すなわち、データと制約の関係を、データとこのデータに対する制約「制約候補」の参照データの関係に変換する。同様に、制約と参照データの関係を、制約とこの制約に対する制約「データ候補」の参照データの関係に変換する。類型の定義に条件やその他の制約候補、データ候補を加えるなどの編集を行いたい場合には、自動で作成された類型定義を手動で編集すればよい。このようにすれば、類型定義の作成の手間が省ける。
【0051】
<3.UML変換機能>
上述のように、本形式仕様表現は機能要求と非機能要求の両方を統一的に記述できる。
ここで、従来より機能要求についての設計はUML関連のツールによってされている。したがって、他の設計ツールを用いて作成されたUML図を、本形式仕様表現に自動的に変換すると既存の設計情報を有効活用できる。
【0052】
本実施形態では、UML作図ツールが出力したXMI形式のファイルを入力として変換を行う。XMI形式から本形式仕様記述への変換は、XMI記述の構文(構造)をそのままに保ちつつ機械的に本形式仕様記述へと変換するXMI変換と、UML図の各要素の意味を考慮した変換を行うモデル図変換の2通りの変換を用いて段階的に行う。このように2つの機能に分けることで、XMI変換機能だけを適用したり、モデル図変換機能だけを適用したりすることも可能としている。
【0053】
ここでは、XMI形式のUML図から本形式仕様記述へ変換することを述べたが、逆に本形式仕様記述からUML図への変換も可能とする。なお、UML図への変換においては、本ツール側ではXMI形式への変換のみを行い、XMIからUML図への変換についてはUML図の作成ツールに行わせることを想定する。
【0054】
(3−1)対象とするXMI
変換対象としてXMIのバージョンに制限は設けない。また、変換範囲はXMIファイルの記述内容のうち、<uml:Model>タグの子要素のみとする。ただし、子要素の記述であ
ってもXMI出力ツールの拡張記述である<xmi:Extension>タグ以下は対象外とする。
【0055】
モデル図変換を行う場合に、元にしたXMIのバージョンの違いを意識した変換ルールを定義することで、XMIの各バージョンに対応した変換を行う。
【0056】
(3−2)XMI変換機能
まず、XMI形式から、本形式仕様記述へ機械的に変換を行う機能(XMI変換機能)について説明する。XMI形式のファイルは、種々の情報が要素に対する属性情報または子要素の関係で構造的に表現されている。XMI変換機能では、このXMI形式における構造をそのままの形で全て形式仕様へと変換する。
【0057】
XMI変換では、XMI形式ファイルの<uml:Model>タグ内の子要素を処理の対象とす
る。まず最初のタグについて、タグ名を名称とするデータ(以下、このデータを「タグ名データ」と称する)を作成する。また、このタグの、属性情報と子要素を抽出する。そして、属性情報は制約「属性」の参照データに変換し、子要素はタグ名データに対する制約「構成」の参照データに変換する。なお、ここで、1つのタグ名データに対しては、制約「属性」および「構成」はいずれも1つのみとして、タグに複数の属性情報や子要素がある場合には、全て同じ制約の参照データとする。また、制約「属性」の参照データは属性名とし、属性値は属性名に対する制約「値」の参照データとして変換する。また、子要素については、タグ毎に再帰的に上記の変換を行うことで全体の構造が本形式仕様記述図に変換することができる。
【0058】
XMI変換の例を図11に示す。図11Aは変換対象のXMIデータであり、図11BはXMI変換後の形式仕様記述である。
【0059】
<uml:Model>タグ内のタグ「packagedElement」を名称とするデータ「packagedElement
」が作成され、その属性情報である「name="クラス"」と「xmi:type="class"」が、この
データの制約「属性」の参照データに変換されている。なお、制約「属性」の直接の参照データは「name」と「xmi:type」であり、これらに対する制約「値」として「クラス」「uml:Class」がそれぞれ割り当てられる。また、タグ「packagedElement」の子要素である「ownedAttribute」と「ownedOperation」がそれぞれ、データ「packagedElement」の制
約「構成」の参照データに変換されている。子要素「ownedAttribute」の属性情報と子要素については、再帰的処理により同様に制約「属性」と制約「構成」として記述されることになる。
【0060】
(3−3)モデル図変換機能
次に、上記のようにして機械的に変換された形式仕様記述から、各データの意味を踏まえて行う変換(モデル図変換)について説明する。ここでは、機械的に変換された形式仕様記述図から、仕様や設計情報として必要なもののみを抜き出して変換された形式仕様記述図のことをモデル図と称し、機械的に変換された形式仕様記述図からモデル図へ変換することをモデル図変換と称する。
【0061】
モデル図変換を行う際には、変換元のUML図等に応じて変換ルールをあらかじめ定めておく必要がある。実際にモデル図変換は、この変換ルールに基づいて自動的に行われる。変換ルールは、以下の3つの形式仕様記述図によって表される。
【0062】
1.モデル図用類型の定義
モデル図用類型は、変換結果であるモデル図に適用される類型定義である。モデル図に適用する類型は、新たに作成するか作成済みの類型から選択する。類型および類型定義については既に述べたのでここでは説明は省略する。例えば、クラス図を変換する場合には、図8に示したようなクラス図の類型が用いられる。
【0063】
2.機械的記述類型パターンの定義
UML図を示すXMIファイルの機械的変換を行った結果の形式仕様記述図に含まれる各種制約または参照データに着目し、その中から仕様・設計情報として意味を持つ要素を抜き出して、類型として定義する。この類型定義を機械的記述類型パターンと称する。すなわち、機械的記述類型パターンは、機械的変換結果におけるデータを、モデル図用類型における制約候補またはデータ候補のいずれに対応付けて変換するかを示した変換ルールの定義である。なお、1つのUML図を1つの類型で定義する必要はなく、複数の機械的記述類型パターンで定義してもよい。たとえば、クラス図を、クラスシンボルのようなデータ構造を示す機械的記述類型パターンと、依存関係を示す機械的記述類型パターンに分けて定義することができる。
【0064】
機械的記述類型パターンの例を図12Cに示す。この機械的記述類型パターンは以下のように記述される。
・類型パターンの名称を示すデータ(以下、類型名データと称する)を付ける。
・類型名に制約「対象」として、変換対象を判断するための機械的変換結果の出力パターンを記述する。
・類型名に制約「構成」として、変換範囲のデータを定義する。機械的変換結果の制約「構成」「属性」両方の参照データをこの定義として使用できる。
・変換範囲の各末端要素に制約「変換」としてモデル図用類型の該当箇所を記述する。
・変換ルールの多重度のデフォルト値は「1」とする。
【0065】
3.類型の関連づけ
上記1,2で作成または選択した機械的記述類型パターンとモデル図用類型を制約「同意」で結び、形式仕様記述図を作成する。また、機械的記述類型パターンの終端データ(制約が付いていないデータ)をモデル図用類型のどの位置のデータとして変換するかを示す、変換ルールを機械的記述類型パターンに追加する。
【0066】
ここで、変換ルールの定義には、クラス定義などデータ構造を変換するためのルールと、関連線のように2つのデータの関係情報を変換するためのルールの、大きく分けて2通
りの定義がある。以下、それぞれについて説明する。
【0067】
(A)データ構造の変換ルール
データ構造の変換においては、機械的記述類型パターンの各構成要素に、変換先のモデル図用類型のどの要素に関連づけるかを、制約「変換」を用いて記述することで行う。制約「変換」の参照データには、制約「同意」により変換ルールと関連づけを行った類型の定義中の対応するデータを、そのデータの複製データを用いて記述する。制約「変換」の参照データとして指定できるデータは、類型定義において制約を規定しているデータ(つまり、制約「制約候補」の参照データ)のみとする。
【0068】
データ構造変換における変換処理の概要について図12を参照して説明する。図12AはXMI変換による変換結果(機械的変換結果)であり、モデル図変換の変換元図である。図12Bは、変換後の構造を示す類型(モデル図用類型)である。図12Cは、変換ルール記述(機械的記述類型パターンに変換ルールを追記した例)である。なお、これらの図は説明のために一部分を抜き出したものである。図12Dは、機械的変換結果をモデル図用類型を用いて変換することを表す記述である。
【0069】
この変換ルールに基づいた変換処理の実装では、制約「変換」により制約を受けるデータ「name(より正確にはpackageElementの属性であるname)」1209が示す変換元図(機械的変換結果)のデータ「name」1201に付けられた制約「値」の参照データ「arg:int」1202を取得する。そして、変換ルールにおける制約「変換」の参照データ(こ
こでは「属性」1210)として記述している類型定義データ(ここでは「属性」1205)に付けられた制約「データ候補」の値(1206)とみなして変換する。制約「データ候補」の参照データが「任意」である場合には、すべてのデータが変換対象となるが、データ「任意」が規定されていない場合は、データ候補として記述されているデータのいずれかと一致する場合のみ変換を実行する。ここでは、属性「visibiity」1211の変
換においては、類型定義においてデータ候補として「private」「public」が規定されて
いるが、機械的変換結果において「visibility」1203の値は「public」1204で類型定義におけるデータ候補と一致するため変換の対象となる。
【0070】
(B)データの関係情報の変換ルール
関連線はUML図においては2つのシンボル要素を接続するために用いられる。したがって、変換ルールにおいても、作成済みの2つのデータの関係を、関係種別に応じて制約で結びつける形へ変換を行うルールとして記述する。
【0071】
図13Aは、関係を定義する機械的類型パターンである。図13Bは、変換後の構造を示す類型(モデル図用類型)である。図13Cは、機械的変換結果をモデル図類型を用いて変換することを表す記述である。この変換は、データと参照データを制約で結びつけるという基本的な形式であり、関係情報の変換においては共通する類型である。図13Dは、変換結果の例である。なお、関係線の変換においては、データと参照データを制約で結びつけるという基本パターンへの変換であるため、制約「同意」を用いた類型同士の関連づけを行わずに定義可能であるが、ここでは制約「同意」を用いて関連づけを定義する場合を例として説明する。
【0072】
制約名の定義は類型に制約「名称」を用いて定義する。制約「名称」の参照データは複数記述しても良く、その場合は、それら複数のデータを「:」で接続したものを制約名とする。また、制約「名称」を省略可能とし、省略された場合に類型パターン名を制約としても良い。
【0073】
関連づけるデータは、XMIでは参照の形で記述されているため、変換した形式仕様記
述においても、関連データの制約の中には直接関連づけているクラス等のオブジェクトの情報は直接記述されていない。そのため、関連情報の変換ルールとしては参照データのIDを示すデータ「idref」を用いて記述する。データの関係情報の変換における実装では
、このIDを用いて機械的変換結果の形式仕様記述図全体から該当するオブジェクトを探し出し、該当するIDと同一のIDが制約「属性」の参照データ「xmi:idref」として定
義されているデータ(packagedElementであることが多い)を探し出し、そのデータの属
性あるいは構成から変換に必要なデータを取り出す。そして、これらの2つのデータの間を、制約「名称」で定義された制約名で関係づける。
【0074】
(4)実装
(4−1)全体構成
以下、本発明に係る仕様作成支援装置の構成例を図14を参照して説明する。図14に示すように、仕様作成支援装置1は、データの演算処理を行うデータ処理部11と、他の装置との通信を行う通信処理部12、演算処理のためのデータやソフトウェアを記憶する記憶部(ハードディスク)13、出力部14、入力部15を備えたコンピュータである。通信処理部12は、ネットワークやケーブル等の回線を介して他のコンピュータとの通信を行う。記憶部13は、オペレーティングシステム(OS)やアプリケーションプログラム(仕様作成支援プログラム)を記憶している。また、記憶部13は、その他のUML作図用ツールのプログラムを記憶していても良い。また、記憶部13は、作成された形式仕様記述図のデータや、UML図のデータ等も記憶している。入力部15は、データ処理部11へ情報を入力する手段であり、キーボードやマウスといったユーザインタフェースや、メモリカードやDVD−ROM等の記憶媒体から情報を読み取るデバイスを有する。出力部14は、データ処理部11の処理結果を出力する手段であり、処理結果等を表示する表示装置や、データを印刷するプリンタを有する。データ処理部11は、CPUやメインメモリを有し、OSやアプリケーションプログラムを記憶部13からメインメモリに読み出し、読み出したOSやアプリケーションプログラムにしたがって、CPUが演算処理を行う。この演算処理により、CPUは、作図ツール21、XMI読込部22、XMI変換部23、モデル図変換部24としても機能する。
【0075】
(4−2)作図ツール
作図ツール21は、ユーザがキーボードやマウス等の入力装置から入力を行うによって、本発明の形式仕様記述図を作成するための機能部である。ユーザが「データ」や「制約」などを配置するための機能を選択し、画面上で適当で位置に配置し、名称をキーボードから入力することで、データや制約が配置できる。また、「制約線」や「関連線」を選択し、データ同士やデータと制約を選択することで、制約や関連としてこれらを結びつけることができる。入力された形式仕様記述図は、(1−2)のようなデータ構造に変換されて記憶部13に記憶される。
【0076】
なお、(1−3)で説明したように、作図ツール21を利用すれば、形式仕様記述図を作成できるだけでなく、類型定義も作成可能である。また、既存の形式仕様記述図を元に類型定義を作成することも可能である。同様に、作図ツール21を利用して、(3−3)で説明したモデル図変換における変換ルール(機械的類型パターンや類型の関連づけ)を作成することも可能である。
【0077】
(4−3)XMI読込部
XMI読込部22は、UML作図ツール等で作成されたXMIファイルを読み込む機能部である。XMI読込部22は、ハードディスクに記憶されているXMIファイルを読み込んでも良いし、通信によって他のコンピュータから取得しても良いし、UML作成ツールとプログラム(プロセス)間でXMIファイルを取得しても良い。
【0078】
(4−4)XMI変換部(機械的変換部)
XMI変換部23は、(3−2)で示したXMI変換機能を実行する機能部である。XMI読込部22から取得されたXMIファイルに対して、以下の図15に示される処理を施すことで、本発明の形式仕様記述図へと機械的に変換を行う。
【0079】
まず、XMI読込部22によって取得されたXMI形式のファイルを読み込んで、XMIの<uml:Model>タグ内の子要素に対して以下の処理を行う。まず最初のタグについて、
タグ名を名称とするデータ(以下、このデータを「タグ名データ」と称する)を作成する(S102)。また、このタグの、属性と子要素を抽出する(S104)。
【0080】
タグの属性情報は、タグ名データに対する制約「属性」の参照データに変換する(S106)。ここで、1つのタグ名データに対して、制約「属性」は1つのみとして、タグに複数の属性値がある場合は、それらの属性を全て同じ制約「属性」の参照データとする。また、制約「属性」の参照データは属性名とし、属性値は属性名に対する制約「値」の参照データとして変換する。
【0081】
タグの子要素は、タグ名データに対する制約「構成」の参照データに変換する(S108)。ここで、1つのタグ名データに対して、制約「構成」は1つのみとして、タグに複数の子要素がある場合は、それらの子要素を全て同じ制約「構成」の参照データとする。
【0082】
さらに、子要素についてもタグ毎に、再帰的に上記のルールを適用して変換を行う(S110)。
【0083】
このような処理により、UML作図ツール等によって作成されたXMI形式のファイルから本形式仕様記述図への変換が可能となる。変換の例は、図11に示したとおりである。
【0084】
(4−5)モデル図変換部
モデル図変換部24は、(3−3)で示したモデル図変換機能を実行する機能部である。XMI変換部23の出力結果である形式仕様記述図(ここでは、変換元図とも称する)と、記憶部23に格納されているモデル図用類型定義、機械的記述類型パターン(変換ルール)とを取得し、これらに基づいて各データの意味を踏まえて変換元図の変換を行う。
【0085】
モデル図変換部24が行う処理の大まかな流れは、図16に示すように、類型データの読込および関連づけ(S202)を行い、変換元図から変換対象データを抽出する(S204)。そして、週出された変換対象データに対して、類型データに示されたようなデータ構造変換(S206)および関係定義変換(S208)を実施する。以下、それぞれの処理について図17〜図20を参照して詳しく説明する。
【0086】
図17は、類型データの読込および関連づけ処理(S202)の内容をより詳しく表したフローチャートである。まず、記憶部13に記憶されている変換ルール定義類型を読み込む(S202−1)。そして、変換ルール定義類型に記載されている制約「同意」(図12D)の参照データを探す。そして、探し出した参照データの名称と同じ名称のモデル図類型を探し(S202−3)、見つかった組合せを変換ルール−モデル図類型マッピングテーブルに登録する(S202−4)。なお、変換ルール−モデル図類型マッピングテーブルは記憶部13に格納される。そして、上記の処理を全ての変換ルールについて繰り返して実行し(S202−5)、マッピングテーブルを構築する。
【0087】
ステップS202−2〜S202−4の処理を、図12および図13の例に基づいて説明する。まず、変換ルール類型「機械的変換クラス」における制約「同意」の参照データ
の名称「クラスの類型」が抽出される(S202−2)。そして、これと同じ名称のモデル図類型「クラスの類型」(図12B)が抽出される(S202−3)。変換ルール−モデル図類型マッピングテーブルには、変換ルール類型「機械的変換クラス」とモデル図用類型「クラスの類型」が関連づけて記憶される(S202−4)。また、図13の例では、変換ルール類型「関係を示す類型」と、制約「同意」の参照データ名称「関係の類型」と同じ名称のモデル図類型「関係の類型」が、マッピングテーブルに関連づけて記憶される。
【0088】
図18は、変換対象データの抽出処理(S204)の内容をより詳しく表しフローチャートである。まず、データ構造変換用および関係定義変換用の2種類の変換対象登録テーブルを記憶部13に用意する(S204−1)。これらのマッピングテーブルには、以降の処理で見つかった変換対象データと、そのデータの変換で使用する変換ルール類型のマッピング情報が登録される。
【0089】
ステップS202で読み込んだ各変換ルール類型から対象変換データ名(制約「対象」の参照データ)を探し出し、変換元図からそのデータと同名のデータを全て抽出する(S204−2)。また、変換ルール類型から制約「構成」の記述を調べ、この変換ルールがデータ構造変換用のルールと、データとデータの関係定義(クラス図の継承関係など)の変換用のルールのいずれであるかを調べる(S204−3)。変換ルールがデータ構造変換用のルールである場合には、ステップS204−2で抽出したデータをデータ構造変換用の変換対象登録テーブルに登録し、変換ルールがデータ関係変換用のルールである場合には、抽出したデータを関係定義変換用の変換対象登録テーブルに登録する(S204−4)。
【0090】
ステップS204−2〜S204−4の処理を、図12の例(データ構造変換)に基づいて説明する。まず、ステップS202で読み込んだ変換ルール類型「機械的変換クラス」から対象変換データ名(図12Cでは、制約「対象」の参照データである「タグ名packagedElement、属性xmi:type="uml:Class」)を探し、変換元図(図12A)から同名のデータ(packagedElement)を抽出する(S204−2)。また、変換ルール類型「機械的
変換クラス」の制約「構成」の内容から、この変換ルールがデータ構造変換用ルールであることが判断される(S204−3)。したがって、変換対象データであるpackagedElementをデータ構造変換用の変換対象登録テーブルに登録する(S204−4)。なお、変
換対象packagedElementは、xmi:idで識別することができる。
【0091】
また、ステップS204−2〜S204−4の処理を、図13の例(関係定義変換)に基づいて説明する。ステップS202で読み込んだ変換ルール「関係を示す類型」から変換対象データ名(図13Aにおける制約「対象」の参照データ「タグ名generalization, 属性xmi:type=uml:Generalization」)を探し、変換元図から同名のデータを抽出する(
S204−2)。また、変換ルール類型「関係を示す類型」の制約「構成」の内容から、この変換ルールが関係定義変換用のルールであることが判断される(S204−3)。したがって、変換対象データ(generalization)を関係定義変換用の変換対象登録テーブル
に登録する(S204−4)。ここでも、変換対象はxmi:idで識別することができる。
【0092】
図19は、データ構造変換処理(S206)の内容をより詳しく表したフローチャートである。ステップS204においてデータ構造変換用の変換対象登録テーブルに登録された変換対象ごとにこのフローチャート手順で変換を行って、結果をモデル図に追加する。ここでは、図12の具体例を参照しながら説明する。
【0093】
まず、データ構造変換用の変換対象登録テーブルから、変換対象データと変換ルール類型の組を1つ取り出す(S206−1)。図12の例では、ステップS204で変換対象
データ(packagedElement)と変換ルール類型「機械的変換クラス」が対応付けられてデ
ータ構造変換用の変換対象登録テーブルに登録されているので、これが取り出される。
【0094】
取り出した変換ルール類型から、作成するデータ構造の基点となるデータの名称および、XMIにてそのデータに割り当てられているID(xmi:id)を取り出す(S206−2)。ステップS206−2で取り出した名前で新しいデータを作成し、モデル図に追加する(S206−3)。このデータがモデル図類型の基点データとなる。図12Cの例では、基点となるデータの名称としてpackagedElementが取り出されて、データpackagedElementが基点となるデータとしてモデル図に追加される。また、XMIにてそのデータに割り当てられているID(図12AではID属性は省略されている)が取り出される。
【0095】
ステップS206−3で作成したデータシンボルと、ステップS206−2で取り出したIDの組をデータシンボル−データIDマッピングテーブルに登録する(S206−4)。このマッピングテーブルは、関係定義変換(ステップS208)にて使用される。
【0096】
ステップS202で作成した変換ルール−モデル図類型マッピングテーブルから、変換ルールに関連づけられているモデル図類型を取り出す(S206−5)。図12の例では、変換ルール「機械的変換クラス」に紐付けられているモデル図類型「クラスの類型」が取り出される。
【0097】
変換ルール類型の「構成」以下の部分から、変換元図のデータ構造と、モデル図類型のデータ位置との組合せを1つ取り出す(S206−6)。そして、取り出したデータ構造を元に、変換元図の該当箇所を探し出し、その値を取り出す(S206−8)。図12の例では、変換ルール(図12C)の「構成」以下から、たとえば、データ構造「ownedAttribute <- 属性 - name」が取り出され、変換元図(図12A)における対応する構造の
値「arg:int」が取り出される。
【0098】
次に、ステップS206−6で取り出したモデル図類型のデータ位置を元に、作成するデータ位置を調べ、その位置に取得したデータ名称のデータまたは制約を作成する(S206−9)。図12の例では、取り出したデータ構造「ownedAttribute <- 属性 - name
」は制約「変換」として「属性」が指定されているので、モデル図類型において作成するデータ位置は制約「制約候補」の参照データ「属性」がある位置であることが分かる。したがって、モデル図において、データ「ownedAttribute」に対して、制約「属性」を作成し、その参照データは変換元図において対応する値である「arg:int」とする。
【0099】
ステップS206−6〜S206−9の処理を、変換ルールにおける「構成」全てについて行うことで、1つの変換ルールに定義されたデータおよび制約の変換が全て行われることになる。図12に例では、データ構造「ownedAttribute <- 属性 - name」について
の処理が終わったら、次にデータ構造「ownedAttribute <- 属性 - visibility」の処理
が行われ、変換ルールにおける全ての変換が行われる。
【0100】
1つの変換対象について、複数の変換ルールを適用しても良いので、現在の変換対象に対してまだ処理を行っていない変換ルールがある場合には、その変換ルールについて上記の処理を繰り返す(S206−10)。なお、複数のルールを用いて変換する場合には、同一データを複数回変換することがあり得る。この場合は、変換する名称のデータが既に変換されている場合には、そのデータを共有する形で変換を行い、同じ名前のデータが変換後のモデル図に複数個現れないようにする。
【0101】
以上のようにして、1つの変換対象について、機械的変換結果(変換元図)からデータ構造の変換処理が完了する。変換対象登録テーブルに登録された全ての変換対象について
上記の処理を行うことで、変換元図の全ての要素がモデル図に変換される。
【0102】
図20は、関係定義変換処理の内容をより詳しく表したフローチャートである。ステップS204において関係定義変換用の変換対象登録テーブルに登録された変換対象ごとにこのフローチャートの手順で変換を行って、結果をモデル図に追加する。ここでは、図13の具体例を参照しながら説明する。
【0103】
まず、関係定義変換用の変換対象登録テーブルから、変換対象データと変換ルール類型の組を1つ取り出す(S208−1)。図13の例では、変換対象データ(generalization)と変換ルール類型「関係を示す類型」が取り出される。
【0104】
次に、変換ルール類型から、関係における「データ」の役割となるデータを探すためのパターンを探す(S208−2)。また、変換ルール類型から、関係における「参照データ」の役割となるデータを探すためのパターンを探す(S208−3)。ステップS208−2で見つかったパターンにマッチするデータ構造を変換対象データの制約以下の部分から探し、見つかったデータ構造から「データ」に相当するデータシンボルを示すIDを取り出す。同様に、ステップS208−3で見つかったパターンにマッチするデータ構造を変換対象データの制約以下の部分から探し、見つかったデータ構造から「参照データ」に相当するデータシンボルを示すIDを取り出す。図13の例では、「データ」の役割を探すためのパターンは構成「データ1」である(実際には「データ1」に対して更に制約が加えられていても良い)。そして、このパターン「データ1」に対応するデータ構造を変換元図(不図示)から求め、そのデータシンボルIDを取得する。同様に、「参照データ」の役割を探すためのパターンとして構成「データ2」が得られ、これに対応する変換元図におけるデータシンボルのIDを取得する。
【0105】
そして、ステップS206−4で作成したデータシンボル−データシンボルIDマッピングテーブルを用いて、ステップS208−4,5で見つけたIDに対応するモデル図上のデータを探し出す(S208−6)。変換ルール類型の制約「名称」の参照データを元に、変換元図から制約名を取り出す。ステップS208−6で見つけたデータと参照データをつなぐ制約を作成し、この制約の名称をステップS208−7で取り出した名前とする。
【0106】
1つの変換対象について、複数の変換ルールを適用しても良いので、現在の変換対象に対してまだ処理を行っていない変換対象がある場合には、その変換対象について上記の処理を繰り返す。
【0107】
以上のようにして、1つの変換対象について、機械的変換結果(変換元図)からデータ構造の変換処理が完了する。変換対象登録テーブルに登録された全ての変換対象について上記の処理を行うことで、変換元図の全ての要素がモデル図に変換される。
【0108】
(4−6)変換例
以上のような変換によって、UML作図ツール等が出力するXMIから、データの意味などを考慮して表現された形式仕様記述図への変換の具体例を例示する。
【0109】
図21に変換元となるXMI表現を示す。このXMI表現を入力として、XMI変換部23によって図16に示したXMI変換(機械的変換)を行って得られる形式仕様記述を図22,23に示す。ここでは、一部の表現を省略して示している。各タグ要素について、属性情報については「属性名=属性値」の形式が「[属性] - 属性名 <- [値] - 属性値」という形式に変換される。子要素について、制約「構成」の参照データに変換され、再帰的に制約「属性」「構成」が記述される。機械的変換では、このようにXMIにおける
属性情報であるか子要素であるかという構造のみに着目して変換が行われるので、変換結果は膨大なものとなり、ユーザにとって必ずしも見やすいものではない。
【0110】
このような機械的変換結果は、設計情報・仕様情報として意味を持つ項目の抽出に重点を置いて変換(モデル図変換)することで、設計情報を見やすくすることができる。図24は、モデル図変換の結果となる形式仕様記述図の類型(モデル図類型)である。ここでは、変換対象のXMIがクラス図を表したものであるために、クラス図を形式仕様記述図で表したときの類型を定義して使用している。なお、図24では、類型「クラス」の中で類型「関数」を参照しているため、類型「関数」についても図中に示している。
【0111】
図25は、モデル図変換におけるデータ構造変換ルール(機械的記述類型)を示す。ここでは、制約「対象」に「packageElement <- [属性] - xmi:type <- [値] - uml:Class
」が指定されているので、機械的変換結果における同様のデータ構造が変換対象であることが示されている。また、制約「構成」には、各データ構造が示す値を、モデル図類型におけるどの箇所に挿入するかが記述されている。ここでは、例えば、ownedAttributeの属性名nameがとる値(属性値)を、制約「属性」の参照データに変換することが、制約「変換」によって表されている。
【0112】
同様に、図26は、モデル図変換における関係定義変換ルールを示す。変換対象が「generalization <- [属性] - xmi:type <- [値] - uml:Generalization」と指定されている。ここでは制約の名称が省略されていることから、関係定義変換における制約の名称は類型名である「継承」が利用される。また、この制約「継承」のデータとなるデータ構造(general)と参照データとなるデータ構造(specific)が定義されている。
【0113】
図27は、モデル図変換において、モデル図類型(ここでは「クラス」)の形式仕様記述図を作成する際に、「機械的変換クラス」と「継承」の」2つの変換ルールを利用することが表されている。
【0114】
図28は、図22,23に示す機械的変換結果である形式仕様記述図を入力として、図24〜図27に示した定義にしたがって、上記で説明した図17〜図20の処理(モデル図変換)を行った結果として得られる形式仕様記述図である。このように、設計情報・仕様情報として重要なデータを抽出してモデル図類型の適切な箇所に配置することで、最終的に得られるモデル図は、ユーザにとって見やすいものとなる。
【0115】
<5.本実施形態の作用・効果>
以上のように、本実施形態によれば、機能要求と非機能要求を統一的に記述可能な新規な形式仕様記述表現において、既存のUMLツール等によって作成された機能要求を表す仕様情報を取り込んで利用することができる。この際、設計情報として重要な意味を持つ項目を抽出することができるので、ユーザにとって見やすい形式仕様記述図の作成が可能となる。
【0116】
<6.その他>
なお、以上の説明では、主にクラス図を表したXMI表現を形式仕様記述図に変換する場合を例として説明しているが、上記の説明から明らかなように、作図用類型と変換ルールを適切に設定することでクラス図以外のXMI表現についても、その意味を考慮して適切な構造で取り込むことが可能である。たとえば、クラス図以外に、状態機械図、アクティビティ図、シーケンス図、ユースケース図など任意のUML図を形式仕様記述図に変換できる。もちろん、形式仕様記述図への変換はUML図に限られず、XMIで表現されたデータ構造であれば変換可能である。
【符号の説明】
【0117】
11 データ処理部
12 通信処理部
13 記憶部
14 出力部
15 入力部
21 作図ツール
22 XMI読込部
23 XMI変換部
24 モデル図変換部
【技術分野】
【0001】
本発明は、システム開発等における仕様作成を支援する技術に関する。
【背景技術】
【0002】
従来、システム開発等における仕様はUML(Unified Modeling Language)やPromela(Process Meta Language)といったモデリング言語でモデル化されている。また、これ
らのモデルをSPINやSMLといったモデル検査ツールで検査することが知られている。しかしながら、仕様検証の対象は機能要求であり、非機能要求の検証を行うモデル検査ツールは知られていない。
【0003】
本発明者らは、機能要求と非機能要求の両方を検証可能な、形式仕様記述技術(形式表現)の開発を進めている。ここで、機能要求については従来からUML等での表現が用いられていることから、UMLによって表現された仕様を取り込み、それに対して非機能要求の仕様情報を付加していくことが効率的と考えられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−075681号公報
【特許文献2】特開2008−305079号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、UML表現と新形式仕様表現との間でフォーマット変換を行う際に、UML(XMI)で表現された構造をそのまま取り込むのではなく、設計情報として重要な意味を持つ項目の抽出に重点を置いた変換を行うことが、設計情報の見やすさの観点から好ましい。
【0006】
そこで、本発明では、XMI表現からデータを取り込む際に、ユーザが設定した項目を重点的に抽出し適切な構造として取り込むことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本発明に係る仕様作成支援装置は、XMI形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援装置であって、
XMI形式の仕様情報を読み込む読込手段と、
XMI形式の仕様情報における、属性情報と子要素の関係に基づいて、XMI形式における構造を保ったまま前記形式仕様表現に変換した表現である機械的変換仕様情報(機械的変換結果)に変換するXMI変換手段と、
前記形式仕様表現の仕様情報のテンプレート(類型)と、前記機械的変換仕様情報におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとを記憶した記憶する記憶手段と、
前記仕様情報のテンプレートと前記変換ルールとに基づいて、前記機械的変換仕様情報を形式仕様表現の仕様情報に変換するモデル図変換手段と、
を備える。
【0008】
このように、XMI形式の仕様情報をまずXMI形式の構造を保ったまま機械的に形式仕様表現に取り込み、そこからテンプレートと変換ルールを用いて最終的な形式仕様表現の仕様情報へと変換することで、ユーザが設定した項目のみを取り出すことができる。また、変換結果もテンプレートによって定義された構造となるため、ユーザにとって見やすい仕様情報を作成することができる。
【0009】
本発明において、前記テンプレートおよび前記変換ルールのいずれもが、前記形式仕様表現の仕様情報として記述されている、ことも好ましい。
【0010】
このように、テンプレートや変換ルールを形式仕様表現の仕様情報として記述することで、テンプレートや変換ルールを機械的変換仕様情報と統一的な方法により取り扱うことができる。
【0011】
また、本発明において、前記XMI変換手段は、
XMI形式の仕様情報におけるタグ要素の属性情報を、タグ要素を表すデータに対する制約「属性」の参照データに変換し、
XMI形式の仕様情報におけるタグ要素の子要素を、タグ要素を表すデータに対する制約「構成」の参照データに変換し、
各タグ要素について再帰的に、属性情報と子要素の変換を実行する、
ことも好ましい。
【0012】
このような変換を行うことで、XMI形式の仕様情報を、その構造をそのままに保ちつつ形式仕様表現の仕様情報(機械的変換仕様情報)に変換することができる。
【0013】
また、本発明において、前記仕様情報のテンプレートは、データ毎に取り得る制約の候補および、制約毎に取り得る参照データの候補を記述したものである、ことが好ましい。
【0014】
また、本発明において、前記変換ルールは、変換対象とする機械的変換仕様情報におけるデータを、前記テンプレートにおける制約の候補または参照データの候補のいずれに対応付けるかを記述しており、
前記モデル図変換手段は、前記変換ルールにおいて変換対象として記述された機械的変換仕様情報におけるデータの制約「値」の参照データが、前記テンプレートにおける制約の候補または参照データの候補と一致する場合に、前記制約「値」の参照データを前記制約または参照データとして形式仕様表現の仕様情報に変換する、
ことも好ましい。
【0015】
このように、変換ルールを定義することで、XMI形式の仕様情報における任意のデータを、テンプレートにおける任意の位置に配置して変換することができる。テンプレートと変換ルールを、変換対象のXMI形式の仕様情報に応じて設計することで、このXMI形式の仕様情報のうち、設計情報や仕様情報として重要な意味を持つ要素のみを取り出して形式仕様表現に変換することができる。
【0016】
本発明は、上記手段の少なくとも一部を含む仕様作成支援装置として捉えることができる。また、これらの処理を行う仕様作成支援方法、さらには、これらの方法をコンピュータにおいて実現するためのプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0017】
本発明によれば、XMI表現の仕様情報を取り込んで形式仕様表現に変換する際に、ユーザが設定した項目を重点的に抽出して、適切な構造の形式仕様表現とすることが可能と
なる。
【図面の簡単な説明】
【0018】
【図1】形式仕様記述図を構成する図形要素を説明する図である。
【図2】形式仕様記述図の例である。
【図3】形式仕様記述図を表現したXMLフォーマットデータである。
【図4】形式仕様記述図のXMLデータフォーマットにおける各図形要素を表す記述例である。
【図5】類型を説明するための図である。
【図6】類型定義を説明するための図である。
【図7】条件を付加した類型定義の例である。
【図8】構造化した類型定義の例であり、クラスに対応する類型である。
【図9】図8の構造化類型定義のために定義した類型を示す図である。
【図10】形式仕様記述図(A)と、その選択部分(点線)から自動的に作成される類型定義(B)である。
【図11】XMI変換機能における、変換対象のXMI記述(A)と、変換後の形式仕様記述(B)の例を示す図である。
【図12】XMI変換機能による機械的変換結果(A)のデータ構造を、モデル図用類型(B)と変換ルール(C)と類型の紐付け(D)を用いて変換するモデル図変換機能を説明する図である。
【図13】XMI変換機能による機械的変換結果におけるデータの関係を定義する機械的類型パターン(A)と、モデル図用類型(B)と、類型の紐付け(C)と、関係情報の変換結果(D)を示す図である。
【図14】仕様作成支援装置の構成図
【図15】XMI変換機能(XMI形式から形式仕様記述形式への機械的変換)のフローチャートである。
【図16】モデル図変換機能の概要を示すフローチャートである。
【図17】モデル図変換機能における類型データの読込および関連づけ処理のフローチャートである。
【図18】モデル図変換機能における変換対象データ抽出処理のフローチャートである。
【図19】モデル図変換機能におけるデータ構造変換処理のフローチャートである。
【図20】モデル図変換機能における関係定義変換処理のフローチャートである。
【図21】変換対象のXMI記述の例。
【図22】図21のXMI記述をXMI変換(機械的変換)した結果。
【図23】図21のXMI記述をXMI変換(機械的変換)した結果(続き)。
【図24】モデル図変換において使用する作図用類型の例。
【図25】モデル図変換において使用するデータ構造変換用の変換ルールの例。
【図26】モデル図変換において使用する関係定義変換用の変換ルールの例。
【図27】モデル図変換において機械的変換結果に適用する変換ルールのマッピングの例。
【図28】図24〜図27の変換定義を用いて図22〜図23の機械的変換結果に対してモデル図変換をした結果。
【発明を実施するための形態】
【0019】
<1.形式表現>
(1−1)作図要素
まず初めに本発明者らが開発を進めている新しい形式表現手法について説明する。本形式表現は、作成や理解を容易とするために図形として表現される。形式仕様記述図で用いられる図形要素は、データ、制約ラベル、制約線、参照線の4つである。本形式仕様記述
では、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データの関連づけによって仕様情報が記述される。
【0020】
・データ
データは、状態・条件・処理などを表す数値・文字・記号である。形式仕様記述図では、データは図1Aに示すようにデータ名が内部に書かれた実線の矩形として表現される。データとデータは下記の「制約」を介して接続される。
【0021】
・制約
制約は、あるデータに対して説明する視点を与え、その視点で見た場合の具体的な内容として別データを参照する。形式仕様記述図では、制約は図1Bに示すように制約名が内部に書かれた角括弧として表現される。
【0022】
・制約線
制約線は、データと、そのデータに付加される制約とを結ぶものである。形式仕様記述図では、制約線は図1Cに示すように実線の矢印として表現される。矢印側にはデータが接続され、矢印のない方に制約が接続される。
【0023】
・参照線
参照線は、制約と、その制約の内容であるデータとを結ぶものである。形式仕様記述図では、参照線は図1Dに示すように実線として表現される。
【0024】
図2は本形式表現によって表した仕様の例である。ここでは、車載カメラ映像処理の仕様を定義している。ここでは、車載カメラで映像を撮影し、輪郭を抽出して元の画像に合成して表示する処理を想定している。この車載カメラ映像処理は、その構成として、カメラ・輪郭抽出・輪郭合成・モニタを有することが表現されている。また、カメラは、結果としてカメラ画像を出力し、その処理時間がX秒であることが表現されている。また、このカメラ画像の画像形式はVGAカラーであることが表現されている。さらに、輪郭抽出・輪郭合成・モニタについてもカメラと同様の仕様が表現されている。
【0025】
また、車載カメラ映像処理の総処理時間が、カメラ(撮像)・輪郭抽出・輪郭合成・モニタ(表示)の各処理時間の合計として表される時間であり、その上限がT秒であることが表現されている。
【0026】
このように、本形式表現手法では、機能要件(入力や出力の型や値の範囲など)と非機能要件(処理時間、製造コストなど)の両方を統一的に記述することができる。仕様の検証においては、各データの型や値の範囲が定義を満たすか否か、データ間の接続が適切であるかという側面から、機能要件の検証が行える。また、非機能要件についても同様に「データ」と「制約」の形で表されているため、制約を充足するか否かを判定することで、非機能要件の検証が行える。
【0027】
(1−2)データ構造
上記の形式表現(形式記述図)をコンピュータ上で表現するために、以下のデータ構造で形式記述図を表現する。形式記述図のデータ表現を種々の手法が考えられるが、ここではXML形式にて表現する例を説明する。
【0028】
形式記述図の1つが、図3に示されるようなXMLファイルとして保存される。1行目はXMLに基づくファイルであることを示すために"<?xml"で始まるタグを記述する。2
行目には、新形式仕様記述図であることを示すタグ"<nndiagram>"が記述される。このタ
グの属性にはフォーマットバージョンが記述される。3行目以降には、図の書式設定部と
作図データの2つの構造の領域に分けて情報が記述される。
【0029】
図の書式設定部には、印刷設定、作図画面の設定、各作図要素のデフォルト設定などが記述される。印刷設定は、例えば、用紙サイズ、向き、上下左右のマージンなどである。作図画面の設定は、編集領域のサイズや、編集ツールで開いたときに画面に表示される領域などである。各作図要素のデフォルト設定は、「データ」「制約」等のそれぞれについての、背景色、線の色、線幅などのデフォルト値である。
【0030】
作図データ部の記述例を、図4A〜図4Dに「データ」「制約」「制約線」「参照線」それぞれについて示した。
【0031】
「データ」は、項目名dataとして表現され、属性として管理用の通し番号(id)と使用する類型(template)が記述される。なお、類型については後述する。要素dataの子要素として、データ名称(name)、背景色(bgColor)、線色(fgColor)、線幅(lineThickness)、図中の座標(position)、シンボルのサイズ(size)などが記述される。
【0032】
「制約」は、項目名constraintとして表現され、属性として管理用の通し番号(id)が記述される。要素constraintの子要素として、データ名称(name)、背景色(bgColor)
、線色(fgColor)、線幅(lineThickness)、図中の座標(position)、シンボルのサイズ(size)などが記述される。
【0033】
「制約線」は、項目名constraintRelationとして表現され、属性として管理用の通し番号(id)、接続するデータシンボルのID(endsymbol)、接続する制約シンボルのID
(startsymbol)が記述される。要素constraintRelationの子要素として、線色(fgColor)、線幅(lineThickness)、図中の位置(startposition, position, endposition)な
どが記述される。図中の位置については、始点と終点は必須であり、折れ点がある場合には折れ点の数だけタグpositionが記述されるものとする。
【0034】
「参照線」は、項目名referenceRelationとして表現され、属性として管理用の通し番
号(id)、接続するデータシンボルのID(startsymbol)、接続する制約シンボルのI
D(endsymbol)が記述される。要素referenceRelationの子要素として、線色(fgColor
)、線幅(lineThickness)、図中の位置(startposition, position, endposition)な
どが記述される。図中の位置については、始点と終点は必須であり、折れ点がある場合には折れ点の数だけタグpositionが記述されるものとする。
【0035】
ここで各項目の子要素としては挙げたものは例示であってその他の要素を含んでも良い。また、図の書式設定部に記載されたデフォルト値を採用する項目については、ここでの記述を省略してもかまわない。また、個々で紹介したXML表現は一例であり、同様の情報を異なる形式でも表現してもかまわない。
【0036】
(1−3)作図方法
形式仕様記述の作成は、ユーザが編集ツール上で作図を行うことにより行われる。このような編集ツール(作図ツール)は一般的なものであり、画面上での作図を上記のデータ構造へ変換することは当業者であれば容易に実装することができる。
【0037】
<2.類型および類型定義>
(2−1)類型
類型(テンプレート)とは、データと制約の組合せを単一の表現にまとめたものである。以下、類型およびその定義方法について、簡単な例を参照して説明する。図5には、「撮影データ」と「写真データ」という類似のデータ構造が形式仕様記述図として表されて
いる。「撮影データ」と「写真データ」のいずれもが画像であることから、「幅」「高さ」「色」という属性(制約)を有する。したがって、制約として「幅」「高さ」「色」を1つずつ有し、各制約の参照データには任意の記述が可能な、類型「画像」というものを定義することが考えられる。また、制約の参照データとしてある定められたデータをとる必要がある場合には、このような関係も類型に定義することができる。なお、後述するように、類型に含まれる制約に多重度を設定したり、参照データの候補を設定したりするようにしても良い。
【0038】
このような類型を導入することにより、例えば、以下のような利点を得ることができる。
【0039】
第1に、あるデータについて類型を適用することで、類型に定義されたデータや制約を自動的に作成したり、あるいは、必要なデータや制約をユーザに選択させたりといった、形式仕様記述の作成支援が可能となる。
【0040】
第2に、複数人で仕様や設計を形式仕様記述で記述する際に、類似の構造について同一の構造として統一的に記述することが可能となる。
【0041】
第3に、UMLツール等で作成されたクラス図や状態機械図やアクティビティ図のモデル図を形式仕様記述図に変換することが可能となる。このUML図からの変換については、類型について説明した後に詳しく説明する。
【0042】
(2−2)類型定義
類型の定義は、任意の表現が可能であるが、ここでは形式仕様記述を用いて記述する方式を採用する。類型定義では、形式仕様記述のデータと制約の関係性、制約と参照データの関係性、更に制約や参照データに対する条件の指定について、制約を用いて記述する。このような制約を総称して「メタ制約」と呼ぶ。形式仕様記述と類型定義の関係を図6に示す。形式仕様記述におけるデータと制約の関係は、類型定義の「メタ制約」を用いて、図中の定義(a)の形で定義する。形式仕様記述の「データ」が類型定義の「データ」に、形式仕様記述の「制約」が類型定義の「制約を示すデータ」に対応する。同様に、形式仕様記述の制約と参照データの関係も「メタ制約」を用いて、図中の定義(b)の形で定義する。形式仕様記述の「制約」が類型定義の「制約を示すデータ」に、形式仕様記述の「参照データ」が類型定義の「参照データ」に対応する。このような基本構造を繰り返す形で類型を定義できる。繰り返す際には、「参照データ」が次の繰り返しの「データ」になる。
【0043】
さらに、類型定義における「データ」、「制約を示すデータ」、「参照データ」に対して、メタ制約を用いて条件を示すデータを定義することができる。このような類型定義を図7に示す。図中の定義(c)のように、「データ」に対する条件を「メタ制約」と「データの条件を示すデータ」で定義する。同様に、図中の定義(d)のように、「制約を示すデータ」に対する条件を「メタ制約」と「制約の条件を示すデータ」で定義する。同様に、図中の定義(e)のように、「参照データ」に対する条件を「メタ制約」と「参照データの条件を示すデータ」で定義する。
【0044】
このように定義することで、今後類型を拡張する場合にも、新たな位置づけのメタ制約を追加する形で容易に拡張が行える。
【0045】
図8に具体的な例として、クラスの構造を類型化した類型定義を示す。なお、ここでは同じ記述の重複を避けるためにクラス以外の構造も類型として定義して使用している。クラスの類型定義において参照した類型定義を図9に示す。なお、このように他の類型定義
を参照して定義した類型定義のことを、構造化した類型定義と称する。
【0046】
図8を参照すると、データ「クラス」は制約として「属性」と「操作」を持ちうることが示される。制約「属性」は0個以上の多重度を有する、すなわち、0個以上の制約「属性」の参照データがデータ「クラス」に関連づけられることが示されている。また、制約「属性」の参照データのデータ名は任意である。また、この参照データは、可視属性と、1つの型を制約として有する。ここでの「可視属性」は図9に示した類型定義「可視属性」を参照した複製データである。複製データとは、このデータが他の類型定義に定義されていることを示すデータである。ここでは、複製データを類型定義「可視属性」で置き換えたものと同等の意味を成す。
【0047】
制約「操作」は0個以上の多重度を有する、すなわち、0個以上の制約「操作」の参照データがデータ「クラス」に関連づけられることが示されている。また、制約「操作」の参照データのデータ名は任意のものと「コンストラクタ」および「デストラクタ」を取り得ることを示している。任意の参照データは多重度が0個以上であり、制約候補として可視属性、戻り値(多重度1)、引数(多重度0以上)を有する。また、コンストラクタの制約候補は可視属性と戻り値のみであることが示されている。また、デストラクタの制約候補は可視属性のみであることが示されている。
【0048】
このような類型定義を用いることで、あるデータに類型定義を適用して自動または半自動的に形式仕様記述が行えるようにできる。たとえば、形式仕様記述図の編集ツール上で、あるデータに類型「引数」(図9)を適用した場合には、制約として「インスタンス」または「ポインタ」のいずれか一方のみを選択可能なように表示される。ここで制約として「インスタンス」を選択した場合には参照データとして「int」「char」「float」のいずれか1つを選択できるように表示される。一方制約として「ポインタ」を選択した場合には参照データとして「void」「int」「char」「float」のいずれか1つを選択できるように表示される。このように、類型を適用することで、選択可能な制約やデータ名などが構造や多重度が考慮されてユーザに提示されるので、形式仕様記述図を作成するユーザの負担が軽減される。さらに複数人の間で同様の構造で形式仕様記述図が作成できる。
【0049】
また、あるデータに類型を適用して形式仕様記述図を作成した場合に、その図が類型定義で表される通りの記述となっているかを、検証することもできる。したがって、作成した形式仕様記述図の構造が適切であるか検証することができる。
【0050】
(2−3)類型定義の作成方法
類型定義自体も形式仕様表現により表現されるため、形式仕様記述図の作成と同様に編集ツール上で一から作図して作ることができる。別の方法として、既存の形式仕様記述図から類型定義のひな形を作成するようにしても良い。たとえば、図10Aに示すような形式仕様記述図があった場合に、データ「setAge」以外の範囲(点線内部)など所望の範囲を選択して類型の自動作成処理を行うことができる。変換後の類型定義を図10Bに示す。この類型の自動作成処理では、メタ制約として「制約候補」と「データ候補」のみを使用して類型定義に変換する。すなわち、データと制約の関係を、データとこのデータに対する制約「制約候補」の参照データの関係に変換する。同様に、制約と参照データの関係を、制約とこの制約に対する制約「データ候補」の参照データの関係に変換する。類型の定義に条件やその他の制約候補、データ候補を加えるなどの編集を行いたい場合には、自動で作成された類型定義を手動で編集すればよい。このようにすれば、類型定義の作成の手間が省ける。
【0051】
<3.UML変換機能>
上述のように、本形式仕様表現は機能要求と非機能要求の両方を統一的に記述できる。
ここで、従来より機能要求についての設計はUML関連のツールによってされている。したがって、他の設計ツールを用いて作成されたUML図を、本形式仕様表現に自動的に変換すると既存の設計情報を有効活用できる。
【0052】
本実施形態では、UML作図ツールが出力したXMI形式のファイルを入力として変換を行う。XMI形式から本形式仕様記述への変換は、XMI記述の構文(構造)をそのままに保ちつつ機械的に本形式仕様記述へと変換するXMI変換と、UML図の各要素の意味を考慮した変換を行うモデル図変換の2通りの変換を用いて段階的に行う。このように2つの機能に分けることで、XMI変換機能だけを適用したり、モデル図変換機能だけを適用したりすることも可能としている。
【0053】
ここでは、XMI形式のUML図から本形式仕様記述へ変換することを述べたが、逆に本形式仕様記述からUML図への変換も可能とする。なお、UML図への変換においては、本ツール側ではXMI形式への変換のみを行い、XMIからUML図への変換についてはUML図の作成ツールに行わせることを想定する。
【0054】
(3−1)対象とするXMI
変換対象としてXMIのバージョンに制限は設けない。また、変換範囲はXMIファイルの記述内容のうち、<uml:Model>タグの子要素のみとする。ただし、子要素の記述であ
ってもXMI出力ツールの拡張記述である<xmi:Extension>タグ以下は対象外とする。
【0055】
モデル図変換を行う場合に、元にしたXMIのバージョンの違いを意識した変換ルールを定義することで、XMIの各バージョンに対応した変換を行う。
【0056】
(3−2)XMI変換機能
まず、XMI形式から、本形式仕様記述へ機械的に変換を行う機能(XMI変換機能)について説明する。XMI形式のファイルは、種々の情報が要素に対する属性情報または子要素の関係で構造的に表現されている。XMI変換機能では、このXMI形式における構造をそのままの形で全て形式仕様へと変換する。
【0057】
XMI変換では、XMI形式ファイルの<uml:Model>タグ内の子要素を処理の対象とす
る。まず最初のタグについて、タグ名を名称とするデータ(以下、このデータを「タグ名データ」と称する)を作成する。また、このタグの、属性情報と子要素を抽出する。そして、属性情報は制約「属性」の参照データに変換し、子要素はタグ名データに対する制約「構成」の参照データに変換する。なお、ここで、1つのタグ名データに対しては、制約「属性」および「構成」はいずれも1つのみとして、タグに複数の属性情報や子要素がある場合には、全て同じ制約の参照データとする。また、制約「属性」の参照データは属性名とし、属性値は属性名に対する制約「値」の参照データとして変換する。また、子要素については、タグ毎に再帰的に上記の変換を行うことで全体の構造が本形式仕様記述図に変換することができる。
【0058】
XMI変換の例を図11に示す。図11Aは変換対象のXMIデータであり、図11BはXMI変換後の形式仕様記述である。
【0059】
<uml:Model>タグ内のタグ「packagedElement」を名称とするデータ「packagedElement
」が作成され、その属性情報である「name="クラス"」と「xmi:type="class"」が、この
データの制約「属性」の参照データに変換されている。なお、制約「属性」の直接の参照データは「name」と「xmi:type」であり、これらに対する制約「値」として「クラス」「uml:Class」がそれぞれ割り当てられる。また、タグ「packagedElement」の子要素である「ownedAttribute」と「ownedOperation」がそれぞれ、データ「packagedElement」の制
約「構成」の参照データに変換されている。子要素「ownedAttribute」の属性情報と子要素については、再帰的処理により同様に制約「属性」と制約「構成」として記述されることになる。
【0060】
(3−3)モデル図変換機能
次に、上記のようにして機械的に変換された形式仕様記述から、各データの意味を踏まえて行う変換(モデル図変換)について説明する。ここでは、機械的に変換された形式仕様記述図から、仕様や設計情報として必要なもののみを抜き出して変換された形式仕様記述図のことをモデル図と称し、機械的に変換された形式仕様記述図からモデル図へ変換することをモデル図変換と称する。
【0061】
モデル図変換を行う際には、変換元のUML図等に応じて変換ルールをあらかじめ定めておく必要がある。実際にモデル図変換は、この変換ルールに基づいて自動的に行われる。変換ルールは、以下の3つの形式仕様記述図によって表される。
【0062】
1.モデル図用類型の定義
モデル図用類型は、変換結果であるモデル図に適用される類型定義である。モデル図に適用する類型は、新たに作成するか作成済みの類型から選択する。類型および類型定義については既に述べたのでここでは説明は省略する。例えば、クラス図を変換する場合には、図8に示したようなクラス図の類型が用いられる。
【0063】
2.機械的記述類型パターンの定義
UML図を示すXMIファイルの機械的変換を行った結果の形式仕様記述図に含まれる各種制約または参照データに着目し、その中から仕様・設計情報として意味を持つ要素を抜き出して、類型として定義する。この類型定義を機械的記述類型パターンと称する。すなわち、機械的記述類型パターンは、機械的変換結果におけるデータを、モデル図用類型における制約候補またはデータ候補のいずれに対応付けて変換するかを示した変換ルールの定義である。なお、1つのUML図を1つの類型で定義する必要はなく、複数の機械的記述類型パターンで定義してもよい。たとえば、クラス図を、クラスシンボルのようなデータ構造を示す機械的記述類型パターンと、依存関係を示す機械的記述類型パターンに分けて定義することができる。
【0064】
機械的記述類型パターンの例を図12Cに示す。この機械的記述類型パターンは以下のように記述される。
・類型パターンの名称を示すデータ(以下、類型名データと称する)を付ける。
・類型名に制約「対象」として、変換対象を判断するための機械的変換結果の出力パターンを記述する。
・類型名に制約「構成」として、変換範囲のデータを定義する。機械的変換結果の制約「構成」「属性」両方の参照データをこの定義として使用できる。
・変換範囲の各末端要素に制約「変換」としてモデル図用類型の該当箇所を記述する。
・変換ルールの多重度のデフォルト値は「1」とする。
【0065】
3.類型の関連づけ
上記1,2で作成または選択した機械的記述類型パターンとモデル図用類型を制約「同意」で結び、形式仕様記述図を作成する。また、機械的記述類型パターンの終端データ(制約が付いていないデータ)をモデル図用類型のどの位置のデータとして変換するかを示す、変換ルールを機械的記述類型パターンに追加する。
【0066】
ここで、変換ルールの定義には、クラス定義などデータ構造を変換するためのルールと、関連線のように2つのデータの関係情報を変換するためのルールの、大きく分けて2通
りの定義がある。以下、それぞれについて説明する。
【0067】
(A)データ構造の変換ルール
データ構造の変換においては、機械的記述類型パターンの各構成要素に、変換先のモデル図用類型のどの要素に関連づけるかを、制約「変換」を用いて記述することで行う。制約「変換」の参照データには、制約「同意」により変換ルールと関連づけを行った類型の定義中の対応するデータを、そのデータの複製データを用いて記述する。制約「変換」の参照データとして指定できるデータは、類型定義において制約を規定しているデータ(つまり、制約「制約候補」の参照データ)のみとする。
【0068】
データ構造変換における変換処理の概要について図12を参照して説明する。図12AはXMI変換による変換結果(機械的変換結果)であり、モデル図変換の変換元図である。図12Bは、変換後の構造を示す類型(モデル図用類型)である。図12Cは、変換ルール記述(機械的記述類型パターンに変換ルールを追記した例)である。なお、これらの図は説明のために一部分を抜き出したものである。図12Dは、機械的変換結果をモデル図用類型を用いて変換することを表す記述である。
【0069】
この変換ルールに基づいた変換処理の実装では、制約「変換」により制約を受けるデータ「name(より正確にはpackageElementの属性であるname)」1209が示す変換元図(機械的変換結果)のデータ「name」1201に付けられた制約「値」の参照データ「arg:int」1202を取得する。そして、変換ルールにおける制約「変換」の参照データ(こ
こでは「属性」1210)として記述している類型定義データ(ここでは「属性」1205)に付けられた制約「データ候補」の値(1206)とみなして変換する。制約「データ候補」の参照データが「任意」である場合には、すべてのデータが変換対象となるが、データ「任意」が規定されていない場合は、データ候補として記述されているデータのいずれかと一致する場合のみ変換を実行する。ここでは、属性「visibiity」1211の変
換においては、類型定義においてデータ候補として「private」「public」が規定されて
いるが、機械的変換結果において「visibility」1203の値は「public」1204で類型定義におけるデータ候補と一致するため変換の対象となる。
【0070】
(B)データの関係情報の変換ルール
関連線はUML図においては2つのシンボル要素を接続するために用いられる。したがって、変換ルールにおいても、作成済みの2つのデータの関係を、関係種別に応じて制約で結びつける形へ変換を行うルールとして記述する。
【0071】
図13Aは、関係を定義する機械的類型パターンである。図13Bは、変換後の構造を示す類型(モデル図用類型)である。図13Cは、機械的変換結果をモデル図類型を用いて変換することを表す記述である。この変換は、データと参照データを制約で結びつけるという基本的な形式であり、関係情報の変換においては共通する類型である。図13Dは、変換結果の例である。なお、関係線の変換においては、データと参照データを制約で結びつけるという基本パターンへの変換であるため、制約「同意」を用いた類型同士の関連づけを行わずに定義可能であるが、ここでは制約「同意」を用いて関連づけを定義する場合を例として説明する。
【0072】
制約名の定義は類型に制約「名称」を用いて定義する。制約「名称」の参照データは複数記述しても良く、その場合は、それら複数のデータを「:」で接続したものを制約名とする。また、制約「名称」を省略可能とし、省略された場合に類型パターン名を制約としても良い。
【0073】
関連づけるデータは、XMIでは参照の形で記述されているため、変換した形式仕様記
述においても、関連データの制約の中には直接関連づけているクラス等のオブジェクトの情報は直接記述されていない。そのため、関連情報の変換ルールとしては参照データのIDを示すデータ「idref」を用いて記述する。データの関係情報の変換における実装では
、このIDを用いて機械的変換結果の形式仕様記述図全体から該当するオブジェクトを探し出し、該当するIDと同一のIDが制約「属性」の参照データ「xmi:idref」として定
義されているデータ(packagedElementであることが多い)を探し出し、そのデータの属
性あるいは構成から変換に必要なデータを取り出す。そして、これらの2つのデータの間を、制約「名称」で定義された制約名で関係づける。
【0074】
(4)実装
(4−1)全体構成
以下、本発明に係る仕様作成支援装置の構成例を図14を参照して説明する。図14に示すように、仕様作成支援装置1は、データの演算処理を行うデータ処理部11と、他の装置との通信を行う通信処理部12、演算処理のためのデータやソフトウェアを記憶する記憶部(ハードディスク)13、出力部14、入力部15を備えたコンピュータである。通信処理部12は、ネットワークやケーブル等の回線を介して他のコンピュータとの通信を行う。記憶部13は、オペレーティングシステム(OS)やアプリケーションプログラム(仕様作成支援プログラム)を記憶している。また、記憶部13は、その他のUML作図用ツールのプログラムを記憶していても良い。また、記憶部13は、作成された形式仕様記述図のデータや、UML図のデータ等も記憶している。入力部15は、データ処理部11へ情報を入力する手段であり、キーボードやマウスといったユーザインタフェースや、メモリカードやDVD−ROM等の記憶媒体から情報を読み取るデバイスを有する。出力部14は、データ処理部11の処理結果を出力する手段であり、処理結果等を表示する表示装置や、データを印刷するプリンタを有する。データ処理部11は、CPUやメインメモリを有し、OSやアプリケーションプログラムを記憶部13からメインメモリに読み出し、読み出したOSやアプリケーションプログラムにしたがって、CPUが演算処理を行う。この演算処理により、CPUは、作図ツール21、XMI読込部22、XMI変換部23、モデル図変換部24としても機能する。
【0075】
(4−2)作図ツール
作図ツール21は、ユーザがキーボードやマウス等の入力装置から入力を行うによって、本発明の形式仕様記述図を作成するための機能部である。ユーザが「データ」や「制約」などを配置するための機能を選択し、画面上で適当で位置に配置し、名称をキーボードから入力することで、データや制約が配置できる。また、「制約線」や「関連線」を選択し、データ同士やデータと制約を選択することで、制約や関連としてこれらを結びつけることができる。入力された形式仕様記述図は、(1−2)のようなデータ構造に変換されて記憶部13に記憶される。
【0076】
なお、(1−3)で説明したように、作図ツール21を利用すれば、形式仕様記述図を作成できるだけでなく、類型定義も作成可能である。また、既存の形式仕様記述図を元に類型定義を作成することも可能である。同様に、作図ツール21を利用して、(3−3)で説明したモデル図変換における変換ルール(機械的類型パターンや類型の関連づけ)を作成することも可能である。
【0077】
(4−3)XMI読込部
XMI読込部22は、UML作図ツール等で作成されたXMIファイルを読み込む機能部である。XMI読込部22は、ハードディスクに記憶されているXMIファイルを読み込んでも良いし、通信によって他のコンピュータから取得しても良いし、UML作成ツールとプログラム(プロセス)間でXMIファイルを取得しても良い。
【0078】
(4−4)XMI変換部(機械的変換部)
XMI変換部23は、(3−2)で示したXMI変換機能を実行する機能部である。XMI読込部22から取得されたXMIファイルに対して、以下の図15に示される処理を施すことで、本発明の形式仕様記述図へと機械的に変換を行う。
【0079】
まず、XMI読込部22によって取得されたXMI形式のファイルを読み込んで、XMIの<uml:Model>タグ内の子要素に対して以下の処理を行う。まず最初のタグについて、
タグ名を名称とするデータ(以下、このデータを「タグ名データ」と称する)を作成する(S102)。また、このタグの、属性と子要素を抽出する(S104)。
【0080】
タグの属性情報は、タグ名データに対する制約「属性」の参照データに変換する(S106)。ここで、1つのタグ名データに対して、制約「属性」は1つのみとして、タグに複数の属性値がある場合は、それらの属性を全て同じ制約「属性」の参照データとする。また、制約「属性」の参照データは属性名とし、属性値は属性名に対する制約「値」の参照データとして変換する。
【0081】
タグの子要素は、タグ名データに対する制約「構成」の参照データに変換する(S108)。ここで、1つのタグ名データに対して、制約「構成」は1つのみとして、タグに複数の子要素がある場合は、それらの子要素を全て同じ制約「構成」の参照データとする。
【0082】
さらに、子要素についてもタグ毎に、再帰的に上記のルールを適用して変換を行う(S110)。
【0083】
このような処理により、UML作図ツール等によって作成されたXMI形式のファイルから本形式仕様記述図への変換が可能となる。変換の例は、図11に示したとおりである。
【0084】
(4−5)モデル図変換部
モデル図変換部24は、(3−3)で示したモデル図変換機能を実行する機能部である。XMI変換部23の出力結果である形式仕様記述図(ここでは、変換元図とも称する)と、記憶部23に格納されているモデル図用類型定義、機械的記述類型パターン(変換ルール)とを取得し、これらに基づいて各データの意味を踏まえて変換元図の変換を行う。
【0085】
モデル図変換部24が行う処理の大まかな流れは、図16に示すように、類型データの読込および関連づけ(S202)を行い、変換元図から変換対象データを抽出する(S204)。そして、週出された変換対象データに対して、類型データに示されたようなデータ構造変換(S206)および関係定義変換(S208)を実施する。以下、それぞれの処理について図17〜図20を参照して詳しく説明する。
【0086】
図17は、類型データの読込および関連づけ処理(S202)の内容をより詳しく表したフローチャートである。まず、記憶部13に記憶されている変換ルール定義類型を読み込む(S202−1)。そして、変換ルール定義類型に記載されている制約「同意」(図12D)の参照データを探す。そして、探し出した参照データの名称と同じ名称のモデル図類型を探し(S202−3)、見つかった組合せを変換ルール−モデル図類型マッピングテーブルに登録する(S202−4)。なお、変換ルール−モデル図類型マッピングテーブルは記憶部13に格納される。そして、上記の処理を全ての変換ルールについて繰り返して実行し(S202−5)、マッピングテーブルを構築する。
【0087】
ステップS202−2〜S202−4の処理を、図12および図13の例に基づいて説明する。まず、変換ルール類型「機械的変換クラス」における制約「同意」の参照データ
の名称「クラスの類型」が抽出される(S202−2)。そして、これと同じ名称のモデル図類型「クラスの類型」(図12B)が抽出される(S202−3)。変換ルール−モデル図類型マッピングテーブルには、変換ルール類型「機械的変換クラス」とモデル図用類型「クラスの類型」が関連づけて記憶される(S202−4)。また、図13の例では、変換ルール類型「関係を示す類型」と、制約「同意」の参照データ名称「関係の類型」と同じ名称のモデル図類型「関係の類型」が、マッピングテーブルに関連づけて記憶される。
【0088】
図18は、変換対象データの抽出処理(S204)の内容をより詳しく表しフローチャートである。まず、データ構造変換用および関係定義変換用の2種類の変換対象登録テーブルを記憶部13に用意する(S204−1)。これらのマッピングテーブルには、以降の処理で見つかった変換対象データと、そのデータの変換で使用する変換ルール類型のマッピング情報が登録される。
【0089】
ステップS202で読み込んだ各変換ルール類型から対象変換データ名(制約「対象」の参照データ)を探し出し、変換元図からそのデータと同名のデータを全て抽出する(S204−2)。また、変換ルール類型から制約「構成」の記述を調べ、この変換ルールがデータ構造変換用のルールと、データとデータの関係定義(クラス図の継承関係など)の変換用のルールのいずれであるかを調べる(S204−3)。変換ルールがデータ構造変換用のルールである場合には、ステップS204−2で抽出したデータをデータ構造変換用の変換対象登録テーブルに登録し、変換ルールがデータ関係変換用のルールである場合には、抽出したデータを関係定義変換用の変換対象登録テーブルに登録する(S204−4)。
【0090】
ステップS204−2〜S204−4の処理を、図12の例(データ構造変換)に基づいて説明する。まず、ステップS202で読み込んだ変換ルール類型「機械的変換クラス」から対象変換データ名(図12Cでは、制約「対象」の参照データである「タグ名packagedElement、属性xmi:type="uml:Class」)を探し、変換元図(図12A)から同名のデータ(packagedElement)を抽出する(S204−2)。また、変換ルール類型「機械的
変換クラス」の制約「構成」の内容から、この変換ルールがデータ構造変換用ルールであることが判断される(S204−3)。したがって、変換対象データであるpackagedElementをデータ構造変換用の変換対象登録テーブルに登録する(S204−4)。なお、変
換対象packagedElementは、xmi:idで識別することができる。
【0091】
また、ステップS204−2〜S204−4の処理を、図13の例(関係定義変換)に基づいて説明する。ステップS202で読み込んだ変換ルール「関係を示す類型」から変換対象データ名(図13Aにおける制約「対象」の参照データ「タグ名generalization, 属性xmi:type=uml:Generalization」)を探し、変換元図から同名のデータを抽出する(
S204−2)。また、変換ルール類型「関係を示す類型」の制約「構成」の内容から、この変換ルールが関係定義変換用のルールであることが判断される(S204−3)。したがって、変換対象データ(generalization)を関係定義変換用の変換対象登録テーブル
に登録する(S204−4)。ここでも、変換対象はxmi:idで識別することができる。
【0092】
図19は、データ構造変換処理(S206)の内容をより詳しく表したフローチャートである。ステップS204においてデータ構造変換用の変換対象登録テーブルに登録された変換対象ごとにこのフローチャート手順で変換を行って、結果をモデル図に追加する。ここでは、図12の具体例を参照しながら説明する。
【0093】
まず、データ構造変換用の変換対象登録テーブルから、変換対象データと変換ルール類型の組を1つ取り出す(S206−1)。図12の例では、ステップS204で変換対象
データ(packagedElement)と変換ルール類型「機械的変換クラス」が対応付けられてデ
ータ構造変換用の変換対象登録テーブルに登録されているので、これが取り出される。
【0094】
取り出した変換ルール類型から、作成するデータ構造の基点となるデータの名称および、XMIにてそのデータに割り当てられているID(xmi:id)を取り出す(S206−2)。ステップS206−2で取り出した名前で新しいデータを作成し、モデル図に追加する(S206−3)。このデータがモデル図類型の基点データとなる。図12Cの例では、基点となるデータの名称としてpackagedElementが取り出されて、データpackagedElementが基点となるデータとしてモデル図に追加される。また、XMIにてそのデータに割り当てられているID(図12AではID属性は省略されている)が取り出される。
【0095】
ステップS206−3で作成したデータシンボルと、ステップS206−2で取り出したIDの組をデータシンボル−データIDマッピングテーブルに登録する(S206−4)。このマッピングテーブルは、関係定義変換(ステップS208)にて使用される。
【0096】
ステップS202で作成した変換ルール−モデル図類型マッピングテーブルから、変換ルールに関連づけられているモデル図類型を取り出す(S206−5)。図12の例では、変換ルール「機械的変換クラス」に紐付けられているモデル図類型「クラスの類型」が取り出される。
【0097】
変換ルール類型の「構成」以下の部分から、変換元図のデータ構造と、モデル図類型のデータ位置との組合せを1つ取り出す(S206−6)。そして、取り出したデータ構造を元に、変換元図の該当箇所を探し出し、その値を取り出す(S206−8)。図12の例では、変換ルール(図12C)の「構成」以下から、たとえば、データ構造「ownedAttribute <- 属性 - name」が取り出され、変換元図(図12A)における対応する構造の
値「arg:int」が取り出される。
【0098】
次に、ステップS206−6で取り出したモデル図類型のデータ位置を元に、作成するデータ位置を調べ、その位置に取得したデータ名称のデータまたは制約を作成する(S206−9)。図12の例では、取り出したデータ構造「ownedAttribute <- 属性 - name
」は制約「変換」として「属性」が指定されているので、モデル図類型において作成するデータ位置は制約「制約候補」の参照データ「属性」がある位置であることが分かる。したがって、モデル図において、データ「ownedAttribute」に対して、制約「属性」を作成し、その参照データは変換元図において対応する値である「arg:int」とする。
【0099】
ステップS206−6〜S206−9の処理を、変換ルールにおける「構成」全てについて行うことで、1つの変換ルールに定義されたデータおよび制約の変換が全て行われることになる。図12に例では、データ構造「ownedAttribute <- 属性 - name」について
の処理が終わったら、次にデータ構造「ownedAttribute <- 属性 - visibility」の処理
が行われ、変換ルールにおける全ての変換が行われる。
【0100】
1つの変換対象について、複数の変換ルールを適用しても良いので、現在の変換対象に対してまだ処理を行っていない変換ルールがある場合には、その変換ルールについて上記の処理を繰り返す(S206−10)。なお、複数のルールを用いて変換する場合には、同一データを複数回変換することがあり得る。この場合は、変換する名称のデータが既に変換されている場合には、そのデータを共有する形で変換を行い、同じ名前のデータが変換後のモデル図に複数個現れないようにする。
【0101】
以上のようにして、1つの変換対象について、機械的変換結果(変換元図)からデータ構造の変換処理が完了する。変換対象登録テーブルに登録された全ての変換対象について
上記の処理を行うことで、変換元図の全ての要素がモデル図に変換される。
【0102】
図20は、関係定義変換処理の内容をより詳しく表したフローチャートである。ステップS204において関係定義変換用の変換対象登録テーブルに登録された変換対象ごとにこのフローチャートの手順で変換を行って、結果をモデル図に追加する。ここでは、図13の具体例を参照しながら説明する。
【0103】
まず、関係定義変換用の変換対象登録テーブルから、変換対象データと変換ルール類型の組を1つ取り出す(S208−1)。図13の例では、変換対象データ(generalization)と変換ルール類型「関係を示す類型」が取り出される。
【0104】
次に、変換ルール類型から、関係における「データ」の役割となるデータを探すためのパターンを探す(S208−2)。また、変換ルール類型から、関係における「参照データ」の役割となるデータを探すためのパターンを探す(S208−3)。ステップS208−2で見つかったパターンにマッチするデータ構造を変換対象データの制約以下の部分から探し、見つかったデータ構造から「データ」に相当するデータシンボルを示すIDを取り出す。同様に、ステップS208−3で見つかったパターンにマッチするデータ構造を変換対象データの制約以下の部分から探し、見つかったデータ構造から「参照データ」に相当するデータシンボルを示すIDを取り出す。図13の例では、「データ」の役割を探すためのパターンは構成「データ1」である(実際には「データ1」に対して更に制約が加えられていても良い)。そして、このパターン「データ1」に対応するデータ構造を変換元図(不図示)から求め、そのデータシンボルIDを取得する。同様に、「参照データ」の役割を探すためのパターンとして構成「データ2」が得られ、これに対応する変換元図におけるデータシンボルのIDを取得する。
【0105】
そして、ステップS206−4で作成したデータシンボル−データシンボルIDマッピングテーブルを用いて、ステップS208−4,5で見つけたIDに対応するモデル図上のデータを探し出す(S208−6)。変換ルール類型の制約「名称」の参照データを元に、変換元図から制約名を取り出す。ステップS208−6で見つけたデータと参照データをつなぐ制約を作成し、この制約の名称をステップS208−7で取り出した名前とする。
【0106】
1つの変換対象について、複数の変換ルールを適用しても良いので、現在の変換対象に対してまだ処理を行っていない変換対象がある場合には、その変換対象について上記の処理を繰り返す。
【0107】
以上のようにして、1つの変換対象について、機械的変換結果(変換元図)からデータ構造の変換処理が完了する。変換対象登録テーブルに登録された全ての変換対象について上記の処理を行うことで、変換元図の全ての要素がモデル図に変換される。
【0108】
(4−6)変換例
以上のような変換によって、UML作図ツール等が出力するXMIから、データの意味などを考慮して表現された形式仕様記述図への変換の具体例を例示する。
【0109】
図21に変換元となるXMI表現を示す。このXMI表現を入力として、XMI変換部23によって図16に示したXMI変換(機械的変換)を行って得られる形式仕様記述を図22,23に示す。ここでは、一部の表現を省略して示している。各タグ要素について、属性情報については「属性名=属性値」の形式が「[属性] - 属性名 <- [値] - 属性値」という形式に変換される。子要素について、制約「構成」の参照データに変換され、再帰的に制約「属性」「構成」が記述される。機械的変換では、このようにXMIにおける
属性情報であるか子要素であるかという構造のみに着目して変換が行われるので、変換結果は膨大なものとなり、ユーザにとって必ずしも見やすいものではない。
【0110】
このような機械的変換結果は、設計情報・仕様情報として意味を持つ項目の抽出に重点を置いて変換(モデル図変換)することで、設計情報を見やすくすることができる。図24は、モデル図変換の結果となる形式仕様記述図の類型(モデル図類型)である。ここでは、変換対象のXMIがクラス図を表したものであるために、クラス図を形式仕様記述図で表したときの類型を定義して使用している。なお、図24では、類型「クラス」の中で類型「関数」を参照しているため、類型「関数」についても図中に示している。
【0111】
図25は、モデル図変換におけるデータ構造変換ルール(機械的記述類型)を示す。ここでは、制約「対象」に「packageElement <- [属性] - xmi:type <- [値] - uml:Class
」が指定されているので、機械的変換結果における同様のデータ構造が変換対象であることが示されている。また、制約「構成」には、各データ構造が示す値を、モデル図類型におけるどの箇所に挿入するかが記述されている。ここでは、例えば、ownedAttributeの属性名nameがとる値(属性値)を、制約「属性」の参照データに変換することが、制約「変換」によって表されている。
【0112】
同様に、図26は、モデル図変換における関係定義変換ルールを示す。変換対象が「generalization <- [属性] - xmi:type <- [値] - uml:Generalization」と指定されている。ここでは制約の名称が省略されていることから、関係定義変換における制約の名称は類型名である「継承」が利用される。また、この制約「継承」のデータとなるデータ構造(general)と参照データとなるデータ構造(specific)が定義されている。
【0113】
図27は、モデル図変換において、モデル図類型(ここでは「クラス」)の形式仕様記述図を作成する際に、「機械的変換クラス」と「継承」の」2つの変換ルールを利用することが表されている。
【0114】
図28は、図22,23に示す機械的変換結果である形式仕様記述図を入力として、図24〜図27に示した定義にしたがって、上記で説明した図17〜図20の処理(モデル図変換)を行った結果として得られる形式仕様記述図である。このように、設計情報・仕様情報として重要なデータを抽出してモデル図類型の適切な箇所に配置することで、最終的に得られるモデル図は、ユーザにとって見やすいものとなる。
【0115】
<5.本実施形態の作用・効果>
以上のように、本実施形態によれば、機能要求と非機能要求を統一的に記述可能な新規な形式仕様記述表現において、既存のUMLツール等によって作成された機能要求を表す仕様情報を取り込んで利用することができる。この際、設計情報として重要な意味を持つ項目を抽出することができるので、ユーザにとって見やすい形式仕様記述図の作成が可能となる。
【0116】
<6.その他>
なお、以上の説明では、主にクラス図を表したXMI表現を形式仕様記述図に変換する場合を例として説明しているが、上記の説明から明らかなように、作図用類型と変換ルールを適切に設定することでクラス図以外のXMI表現についても、その意味を考慮して適切な構造で取り込むことが可能である。たとえば、クラス図以外に、状態機械図、アクティビティ図、シーケンス図、ユースケース図など任意のUML図を形式仕様記述図に変換できる。もちろん、形式仕様記述図への変換はUML図に限られず、XMIで表現されたデータ構造であれば変換可能である。
【符号の説明】
【0117】
11 データ処理部
12 通信処理部
13 記憶部
14 出力部
15 入力部
21 作図ツール
22 XMI読込部
23 XMI変換部
24 モデル図変換部
【特許請求の範囲】
【請求項1】
XMI形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援装置であって、
XMI形式の仕様情報を読み込む読込手段と、
XMI形式の仕様情報における、属性情報と子要素の関係に基づいて、XMI形式における構造を保ったまま前記形式仕様表現に変換した表現である機械的変換仕様情報に変換するXMI変換手段と、
前記形式仕様表現の仕様情報のテンプレートと、前記機械的変換仕様情報におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとを記憶した記憶する記憶手段と、
前記仕様情報のテンプレートと前記変換ルールとに基づいて、前記機械的変換仕様情報を形式仕様表現の仕様情報に変換するモデル図変換手段と、
を備える仕様作成支援装置。
【請求項2】
前記テンプレートおよび前記変換ルールのいずれもが、前記形式仕様表現の仕様情報として記述されている、
請求項1に記載の仕様作成支援装置。
【請求項3】
前記XMI変換手段は、
XMI形式の仕様情報におけるタグ要素の属性情報を、タグ要素を表すデータに対する制約「属性」の参照データに変換し、
XMI形式の仕様情報におけるタグ要素の子要素を、タグ要素を表すデータに対する制約「構成」の参照データに変換し、
各タグ要素について再帰的に、属性情報と子要素の変換を実行する、
請求項1または2に記載の仕様作成支援装置。
【請求項4】
前記仕様情報のテンプレートは、データ毎に取り得る制約の候補および、制約毎に取り得る参照データの候補を記述したものである、
請求項1〜3のいずれかに記載の仕様作成支援装置。
【請求項5】
前記変換ルールは、変換対象とする機械的変換仕様情報におけるデータを、前記テンプレートにおける制約の候補または参照データの候補のいずれに対応付けるかを記述しており、
前記モデル図変換手段は、前記変換ルールにおいて変換対象として記述された前記機械的変換仕様情報におけるデータの制約「値」の参照データが、前記テンプレートにおける制約の候補または参照データの候補と一致する場合に、前記制約「値」の参照データを前記制約または参照データとして形式仕様表現の仕様情報に変換する、
請求項4に記載の仕様作成支援装置。
【請求項6】
XMI形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援方法であって、
変換の最終結果である前記形式仕様表現の仕様情報のテンプレートと、変換の途中結果である機械的変換仕様情報におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとを記憶した記憶する記憶手段を有するコンピュータが、
XMI形式の仕様情報を読み込む読込工程と、
XMI形式の仕様情報における、属性情報と子要素の関係に基づいて、XMI形式における構造を保ったまま前記形式仕様表現に変換した表現である機械的変換仕様情報に変換
するXMI変換工程と、
前記仕様情報のテンプレートと前記変換ルールとに基づいて、前記機械的変換仕様情報を形式仕様表現の仕様情報に変換するモデル図変換工程と、
を実行する、仕様作成支援方法。
【請求項7】
前記テンプレートおよび前記変換ルールのいずれもが、前記形式仕様表現の仕様情報として記述されている、
請求項6に記載の仕様作成支援方法。
【請求項8】
前記XMI変換工程では、
XMI形式の仕様情報におけるタグ要素の属性情報を、タグ要素を表すデータに対する制約「属性」の参照データに変換し、
XMI形式の採用上におけるタグ要素の子要素を、タグ要素を表すデータに対する制約「構成」の参照データに変換し、
各タグ要素について再帰的に、属性情報と子要素の変換を実行する、
請求項6または7に記載の仕様作成支援方法。
【請求項9】
前記仕様情報のテンプレートは、データ毎に取り得る制約の候補および、制約毎に取り得る参照データの候補を記述したものである、
請求項6〜8のいずれかに記載の仕様作成支援方法。
【請求項10】
前記変換ルールは、変換対象とする機械的変換仕様情報におけるデータを、前記テンプレートにおける制約の候補または参照データの候補のいずれに対応付けるかを記述しており、
前記モデル図変換工程では、前記変換ルールにおいて変換対象として記述された機械的変換仕様情報におけるデータの制約「値」の参照データが、前記テンプレートにおける制約の候補または参照データの候補と一致する場合に、前記制約「値」の参照データを前記制約または参照データとして形式仕様表現の仕様情報に変換する、
請求項9に記載の仕様作成支援方法。
【請求項1】
XMI形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援装置であって、
XMI形式の仕様情報を読み込む読込手段と、
XMI形式の仕様情報における、属性情報と子要素の関係に基づいて、XMI形式における構造を保ったまま前記形式仕様表現に変換した表現である機械的変換仕様情報に変換するXMI変換手段と、
前記形式仕様表現の仕様情報のテンプレートと、前記機械的変換仕様情報におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとを記憶した記憶する記憶手段と、
前記仕様情報のテンプレートと前記変換ルールとに基づいて、前記機械的変換仕様情報を形式仕様表現の仕様情報に変換するモデル図変換手段と、
を備える仕様作成支援装置。
【請求項2】
前記テンプレートおよび前記変換ルールのいずれもが、前記形式仕様表現の仕様情報として記述されている、
請求項1に記載の仕様作成支援装置。
【請求項3】
前記XMI変換手段は、
XMI形式の仕様情報におけるタグ要素の属性情報を、タグ要素を表すデータに対する制約「属性」の参照データに変換し、
XMI形式の仕様情報におけるタグ要素の子要素を、タグ要素を表すデータに対する制約「構成」の参照データに変換し、
各タグ要素について再帰的に、属性情報と子要素の変換を実行する、
請求項1または2に記載の仕様作成支援装置。
【請求項4】
前記仕様情報のテンプレートは、データ毎に取り得る制約の候補および、制約毎に取り得る参照データの候補を記述したものである、
請求項1〜3のいずれかに記載の仕様作成支援装置。
【請求項5】
前記変換ルールは、変換対象とする機械的変換仕様情報におけるデータを、前記テンプレートにおける制約の候補または参照データの候補のいずれに対応付けるかを記述しており、
前記モデル図変換手段は、前記変換ルールにおいて変換対象として記述された前記機械的変換仕様情報におけるデータの制約「値」の参照データが、前記テンプレートにおける制約の候補または参照データの候補と一致する場合に、前記制約「値」の参照データを前記制約または参照データとして形式仕様表現の仕様情報に変換する、
請求項4に記載の仕様作成支援装置。
【請求項6】
XMI形式で表現された仕様情報を、データと、そのデータが受ける制約の名称と、その制約の内容を表す参照データとの関連づけによって記述する形式仕様表現の仕様情報に変換する仕様作成支援方法であって、
変換の最終結果である前記形式仕様表現の仕様情報のテンプレートと、変換の途中結果である機械的変換仕様情報におけるデータの値を前記テンプレートのいずれの部分に代入するかを記述した変換ルールとを記憶した記憶する記憶手段を有するコンピュータが、
XMI形式の仕様情報を読み込む読込工程と、
XMI形式の仕様情報における、属性情報と子要素の関係に基づいて、XMI形式における構造を保ったまま前記形式仕様表現に変換した表現である機械的変換仕様情報に変換
するXMI変換工程と、
前記仕様情報のテンプレートと前記変換ルールとに基づいて、前記機械的変換仕様情報を形式仕様表現の仕様情報に変換するモデル図変換工程と、
を実行する、仕様作成支援方法。
【請求項7】
前記テンプレートおよび前記変換ルールのいずれもが、前記形式仕様表現の仕様情報として記述されている、
請求項6に記載の仕様作成支援方法。
【請求項8】
前記XMI変換工程では、
XMI形式の仕様情報におけるタグ要素の属性情報を、タグ要素を表すデータに対する制約「属性」の参照データに変換し、
XMI形式の採用上におけるタグ要素の子要素を、タグ要素を表すデータに対する制約「構成」の参照データに変換し、
各タグ要素について再帰的に、属性情報と子要素の変換を実行する、
請求項6または7に記載の仕様作成支援方法。
【請求項9】
前記仕様情報のテンプレートは、データ毎に取り得る制約の候補および、制約毎に取り得る参照データの候補を記述したものである、
請求項6〜8のいずれかに記載の仕様作成支援方法。
【請求項10】
前記変換ルールは、変換対象とする機械的変換仕様情報におけるデータを、前記テンプレートにおける制約の候補または参照データの候補のいずれに対応付けるかを記述しており、
前記モデル図変換工程では、前記変換ルールにおいて変換対象として記述された機械的変換仕様情報におけるデータの制約「値」の参照データが、前記テンプレートにおける制約の候補または参照データの候補と一致する場合に、前記制約「値」の参照データを前記制約または参照データとして形式仕様表現の仕様情報に変換する、
請求項9に記載の仕様作成支援方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【公開番号】特開2012−185533(P2012−185533A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願番号】特願2011−46261(P2011−46261)
【出願日】平成23年3月3日(2011.3.3)
【出願人】(502087460)株式会社トヨタIT開発センター (232)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願日】平成23年3月3日(2011.3.3)
【出願人】(502087460)株式会社トヨタIT開発センター (232)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
[ Back to top ]