(57)【要約】【課題】モデルベース開発のための従来のモデリング装置は、同一機能を異なった詳細度・記述内容のモデルとして記述し、その関連を規定することができない。【解決手段】モデリング装置に、モデル情報に該当するモデルの記述レベルを規定する記述レベル情報を付加する記述レベル制御手段と記述レベル情報に応じたモデル表示をおこなう記述レベル対応表示データ生成手段を設けた。また、２つ以上の記述レベル情報を付加した該モデル情報の構成要素の関係を規定する情報である関連要素情報を付加する記述レベル制御手段を設けた。【選択図】  図８
2010134809.tif 000002
【特許請求の範囲】
【請求項１】
モデル記述言語でソフトウェアの構造、または動作を記述するシステム構築方法において、
ソフトウェアの構造、または動作を記述したモデル情報を表示するモデル表示手段と、
モデル情報を作成、編集するモデルデータ編集手段と、
モデル情報の記述レベルを規定する情報である記述レベル情報をモデル情報に付加する記述レベル制御手段と、
記述レベル情報に対応したモデル情報の表示を行う表示データを生成する記述レベル対応表示データ生成手段と
を設けたことを特徴とするシステム構築方法
【請求項２】
請求項１記載のシステム構築方法であって、
２つ以上の異なる記述レベル情報を付加したモデル情報の関係を規定する情報である関連要素情報を付加する記述レベル制御手段を設けた
ことを特徴とするシステム構築方法
【請求項３】
モデル記述言語でソフトウェアの構造、または動作を記述し、システムを構築するモデリング装置において、
ソフトウェアの構造、または動作を記述したモデル情報を表示するモデル表示手段と、
モデル情報を作成・編集するモデルデータ編集手段と、
モデル情報の記述レベルを規定する記述レベル情報をモデル情報に付加する記述レベル制御手段と、
記述レベル情報に対応したモデル情報の表示を行う表示データを生成する記述レベル対応表示データ生成手段と
を設けたことを特徴とするモデリング装置
【請求項４】
請求項３記載のモデリング装置であって、
２つ以上の異なる記述レベル情報を付加したモデル情報の関係を規定する情報である関連要素情報を付加する記述レベル制御手段を設けた
ことを特徴とするモデリング装置
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェアを構築する方法に関するものである。
【背景技術】
【０００２】
従来から、Ｕｎｉｆｉｅｄ  Ｍｏｄeｌｉｎｇ  Ｌａｎｇｕａｇｅ（ＵＭＬ）(商標)などのモデル記述言語を用いたモデルベース開発手法によるソフトウェアの仕様・方式設計がソフトウェアの開発に利用されている。また、このようなモデリング手法を用いたソフトウェア開発をおこなうためのＵＭＬツールなどのモデリング装置（開発ツール）が広く提供されている。
【０００３】
また同じ機能を複数のモデルを用いて記述することも多い。例えばデータ送受信機能の構造に関してクラス図を用いて記述し、データの送受信処理の動きに関してシーケンス図を用いて記述するようなケースである。このような用途において、同一機能の複数のモデル表現の管理を支援する機能が提案されている。
【０００４】
【特許文献１】特開２００６−２３５８９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
モデルベース開発では、設計対象機能をＵＭＬなどのモデル記述言語で記述したモデル情報として表現する。モデル記述言語では複数モジュールのモデル情報間の関係を記述することが可能である。たとえばＵＭＬのクラス図を用いることで、単一のクラスに関するクラス名・提供するメソッド名などのモデル情報を記述することが可能であるのに加えて、参照・継承など複数クラスのモデル情報相互の関係を記述することも可能である。
【０００６】
上記従来方法は、ある機能を複数のモデル（上記例ではクラス）で記述し、それぞれのモデル間の関係を記述するために有効である。
【０００７】
一方モデル記述言語で記述されるモデルは、ソフトウェアの機能・利用方法などを規定する外部仕様、外部仕様で規定された機能を実現するためのアルゴリズムやデータ構造などを規定する詳細仕様、詳細仕様で規定されたアルゴリズムやデータ構造をプログラミング言語でどのように実装するかを規定した実装仕様など多岐に渡る。またそれぞれの仕様の目的が異なるため、同じモデル記述言語を用いた同じ機能に関するモデル情報を記述する場合でも、作成されるモデルの詳細度・記述内容が異なる。
【０００８】
例えばデータ送受信機能の構造モデルは、外部仕様では単一の「データ送受信クラス」という名称をもつクラスとしてクラス図を用いて記述されるが、詳細仕様では「データ受信クラス」と「データ送信クラス」の２つのクラスとして記述され、更に実装仕様では「データ受信クラス」と「データ送信クラス」の各クラスがそれぞれデータ送受信用の「バッファクラス」をもつ構成として記述される。
【０００９】
従来の技術では、このように同じ機能を目的の異なる複数種類の仕様のなかで異なった詳細度や異なった記述内容のモデルとして記述し、同一機能に対応するモデルの間の関係を、異なる仕様間で規定することができない。一般的に、モデル記述言語はモデル間の関係を記述する機能を提供するが、同一機能を異なった詳細度・記述内容のモデルとして記述し、その関連を規定することができない。つまりあるモデルを、異なった詳細度・記述内容の同一モデルと関連付けて記述することができないことが課題となる。
【課題を解決するための手段】
【００１０】
ソフトウェアモジュールの構造や動作を記述するモデル記述言語を用いたモデル情報を表示するモデル表示手段、モデル表示手段の表示するモデル情報を作成・編集するモデルデータ編集手段、モデルデータ編集手段が生成するモデル情報をソースコードに変換するモデルコンパイル手段をもつモデリング装置において、
モデル情報に該当するモデルの記述レベルを規定する記述レベル情報を付加する記述レベル制御手段を設けた。
【００１１】
さらに、記述レベル情報に対応したモデル情報の表示を行う表示データを生成する記述レベル対応表示データ生成手段を設けた。
【００１２】
また、２つ以上の記述レベル情報を付加した該モデル情報の構成要素の関係を規定する情報である関連要素情報を付加する記述レベル制御手段を設けた。
【発明の効果】
【００１３】
異なる目的の仕様にそれぞれ対応する記述レベルを定義する。例えば外部仕様の記述レベルを「レベル０」、詳細仕様の記述レベルを「レベル１」、実装仕様の記述レベルを「レベル２」とする。
【００１４】
本発明のモデリング装置により、記述レベル制御手段を用いてモデル情報で記述するモデル要素に記述レベル情報を付加することが可能となる。例えば、詳細仕様の「データ受信クラス」と「データ送信クラス」の２つのモデル要素の記述レベル情報として「「レベル１」を、実装仕様の「データ受信クラス」と「データ送信クラス」の２つもモデル要素がもつデータ送受信用の「バッファクラス」を規定するモデル要素の記述レベル情報として「「レベル２」を付加することが可能となる。
【００１５】
次に記述レベル対応表示データ生成手段を用いて、モデル要素を表示する場合に特定の記述レベル情報をもつモデルを表示あるいは非表示とすることが可能となる。例えば、上記データ送受信機能の例では、表示される記述レベルを「レベル２」とした場合には、「データ受信クラス」と「データ送信クラス」の２つもモデル要素がデータ送受信用の「バッファクラス」のモデル要素と合わせて、表示用データとして生成され表示される。また表示される記述レベルを「レベル１」とした場合には、「データ受信クラス」と「データ送信クラス」の２つもモデル要素だけが、表示用データとして生成され表示され、データ送受信用の「バッファクラス」を規定するモデル要素は表示されない、といった記述レベルの応じたモデル要素の表示が可能となる。
【００１６】
さらに、該モデル情報の構成要素の関係を規定する関連要素情報を付加する記述レベル制御手段を用いて、異なる記述レベルのモデル要素間の関係を規定することが可能となる。例えば、外部仕様で記述された、記述レベルが「レベル０」の「データ送受信クラス」のモデル要素と、詳細仕様で記述された、記述レベルが「レベル１」の「データ受信クラス」と「データ送信クラス」の２つのモデル要素の関連を関連要素情報として規定することで、外部仕様における「データ送受信クラス」と詳細仕様における「データ受信クラス」と「データ送信クラス」が同じデータ送受信機能を実現するモデル要素であることが規定可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施例を図１、図２、図３、図８を用いて説明する。
【実施例１】
【００１８】
図１はモデル情報の表示例、図２は記述レベル情報をもつモデル情報の例、図３は記述レベル情報をもつモデル情報の表示例、図８はシステム構成図である。
【００１９】
図８において、８００１はモデル記述言語で記述されたモデル情報（以下、モデルデータ）、８００２はモデルデータ８００１の記録・読み出しを管理するモデルデータ管理手段、８００３はモデルデータ管理手段の管理するモデルデータを文字・図形などの形式で表示するモデル表示手段、８００４はモデルデータに付加された記述レベル情報に応じたモデル表示データを生成する記述レベル対応表示データ生成手段、８００５はモデルの新規作成・修正・削除などのモデル編集をおこなうモデル編集手段、８００６はモデル編集時に記述レベル情報や関連要素情報を付加・修正・削除する記述レベル制御手段、８００７は本モデリング装置のユーザからの操作入力や結果出力をグラフィカルにおこなうグラフィックユーザインターフェース手段、８００８はモデルデータ管理手段の管理するモデル情報をコンパイルし、C++言語(登録商標)などのプログラム言語形式に変換するモデルコンパイル手段である。
【００２０】
図１において、１００１はUMLをモデル記述言語として利用したモデルであるクラス図、１００２・１００８・１０１３は個々のモデル要素であるクラスを示す。
【００２１】
図２は図１のクラス図のモデル情報である。
【００２２】
以下、本発明に基づく実施例の動作を、図８を用いて説明する。モデル編集手段８００５は、モデル表示手段８００３を介して、ユーザにモデルデータの編集機能を提供する。
【００２３】
ユーザはモデル表示手段を用いて、図１に記載のモデルデータの図表現（以下、モデル図）を作成し、モデル編集手段８００５は作成されたモデル図をモデルデータAに変換し、モデルデータ管理手段８００２に記録する。
【００２４】
記録されたモデルデータ８００１はモデルデータ管理手段を介して、モデルコンパイル手段８００８でコンパイルされ実行可能なプログラミング言語形式に変換される。
【００２５】
記述レベル制御手段８００６は、上記図１に記載のモデル図から生成されたモデルデータAに記述レベル情報を付加し（モデルデータB）、更にユーザによる記述レベル情報の変更に対応した記述レベル情報の修正をおこなう（モデルデータC）。
【００２６】
図２はモデルデータCの構成を示す図である。なおモデルデータBに関しては、特に図示しないが記述レベル属性に設定されている記述レベル情報がすべて「L１」であること以外は、図２に記載のモデルデータCと同様である。
【００２７】
図２の表記は以下のとおりである。各行は要素を示す。例えば２００２は「モデル要素名称」というタグをもつ要素であり、「モデル要素名称」の値は「ClassDiagramA」となる。要素名と値は「：」で区切られる。要素は属性を持つことができる。２００１において、「モデル要素」がタグ、「記述レベル属性」が属性の名称、「L1」が属性の値となる。属性名称は先頭が「：：」となり、属性の名称と値は「：」で区切る。
【００２８】
要素は木構造となっており、木構造の親子関係をインデント（行頭のスペース）でしめす。同じ量のインデントをもつ要素は木構造における同じ親子レベルを示す。
【００２９】
例えば図２においては、行２００１の要素の子要素は２００２・２００３であり、２００３要素はさらに子要素として２００４・２０１３・２０１７・２０２４・２０２７をもつ。
【００３０】
以下、モデル編集手段８００５による、図１のモデル図から図２のモデルデータへの変換処理を説明する。
【００３１】
ユーザがグラフィックユーザインターフェース手段８００７を用いて図１のモデル図を作成する。作成された図１のモデル図において、クラス図１００１はモデル要素２００１に変換される。また記述レベル制御手段８００６によって、予め設定されていたデフォルトの記述レベル「L１」と「L2」が設定される。
【００３２】
記述レベル情報は２００１の「記述レベル属性」なる属性の名称をもつ「モデル要素」要素の属性の情報「L1,L2」として設定する。また合せて２００２で「モデル要素名称」要素にクラス図の名称である「ClassDiagramA」が、２００３で「モデル要素種別」要素に「クラス図」が設定される。
【００３３】
以下、同様の変換により、クラス１００２が２００４から２０１２の要素に、クラス１００８が２０１７から２０２３の要素に、クラス１０１３が２０２４から２０２６の要素に変換される。
【００３４】
また、クラス間の関係を表す１００７に関しては２０１３から２０１６の要素に変換される。同様にクラス間の関係を表す１０１２に関しては２０２７から２０３０の要素に変換される。
【００３５】
図２のモデルデータを構成する要素に付加された記述レベル情報である、２００１・２００４・２０１３などの属性の値に関しては、記述レベル対応表示データ生成手段８００４において、予め設定されている表示記述レベル情報(図示していない)に応じて、表示データ生成の要否が判定され、表示要のデータがモデル表示手段により表示される。
【００３６】
例えば記述レベルを「L0」・「L1」・「L2」とした場合、前記表示記述レベル情報が「L1」であれば、記述レベルが「L1」の要素のみの表示データが生成され、表示される。
【００３７】
ユーザがグラフィックユーザインターフェース手段８００７を用いて、記述レベル情報を変更すると、記述レベル変更手段８００６によって対応する記述レベル情報が変更される。
【００３８】
例えば、クラス１０１３と関係１０１２の記述レベルをユーザが「L2」に変更した場合には、記述レベル変更手段８００６が図２のモデルデータの対応する要素である２０２４と２０２７の記述レベルを「L2」に変更する。図２は変更後のモデルデータを示し、要素２０２４・２０２７の記述レベル情報が「L1,L2」から「L2」に変更された後のものを示している。
【００３９】
記述レベル情報を変更した後のモデルデータは、記述レベル対応表示データ生成手段８００４で、予め設定されている表示記述レベル情報(図示していない)である「L1」と図２のモデルデータの記述レベル情報の比較判定をおこない、記述レベル情報が「L1」であるものの表示データの生成をおこなう。
【００４０】
一方、記述レベル情報が「L2」である、２０２４から２０２６の要素、２０２７から２０３０の要素に関しては、対応する表示データの生成をおこなわない。
【００４１】
図３は、この結果表示されるモデル図を示している。２０２４から２０２６の要素、２０２７から２０３０の要素の表示データが生成されないため、対応するクラス１０１３と関係１０１２が表示されない。
【００４２】
一方、他のクラス図１００１、クラス１００２・１００８、関係１００７に関しては、記述レベル情報が「L1」であるので表示される。
【００４３】
以上、本実施例によれば、特定の記述レベル情報をもつモデルを表示、あるいは非表示とすることが可能となる。例えば詳細仕様の記述レベルを「レベル１（本実施例表記では「L１」）」、実装仕様の記述レベルを「レベル２（本実施例表記では「L２」）」とすることで、異なる目的の仕様のそれぞれに対応するモデル情報の作成・表示が可能となる。
【００４４】
なお、本実施例において、予め設定されているデフォルトの記述レベル情報の設定・選択方法に関しては、特にこれを限定しないが、例えば各モデル図に対して、ユーザが記述レベルを指定可能とし、これを予め設定されているデフォルトの記述レベルとすることなどが可能である。
【００４５】
また、本実施例においては、表示記述レベル情報の設定方法に関しては、特にこれを規定していないが、例えばユーザがグラフィックユーザインターフェース手段８００７を用いて、表示記述レベル情報を設定する構成などが可能である。
【００４６】
また、本実施例においては、各要素の記述レベル情報のユーザ変更方法に関しては特にこれを特定していないが、例えばモデル情報を直接編集して記述レベルを変更する方法や、グラフィックユーザインターフェース手段８００７を用いて、モデル表示手段８００３が表示するモデル要素を指定して記述レベル情報を変更する方法などが可能である。
【００４７】
また、本実施例においては、記述レベル情報の設定方法として、記述レベルが「L1」の場合には、対応する記述レベル情報として「L1、L2」を設定し、記述レベルが「L２」の場合には対応する記述レベル情報として「L２」を設定する構成としたが、記述レベルと、設定する記述レベル情報との対応関係に関しては、特にこれを限定しない。
【００４８】
なお、本実施例においてはモデリング装置の実現方法に関しては、特に規定していないが、モデリング装置をハードウェアで実現する方法、あるいはソフトウェア機能として実現する方法などが可能である。
【実施例２】
【００４９】
以下、本発明の他の実施例を図４、図５を用いて説明する。図４はモデル情報の表示例、図５は記述レベル情報をもつモデル情報の例である。
【００５０】
本実施例において、図４は前記実施例のモデルデータBの記述レベル情報をユーザが変更する別の例である。クラス１００２のアトリビュート１００４・１００５とメソッド１００６の記述レベル情報をユーザが「L2」に変更すると、記述レベル制御手段８００６により、対応するモデルデータの要素の記述レベル情報が変更される。アトリビュート１００４の記述レベル情報変更は要素４００７に反映、アトリビュート１００５の記述レベル情報変更は要素４００９に反映、メソッド１００６の記述レベル情報変更は要素４０１１に反映される。
【００５１】
さらにクラス１００８のアトリビュート１０１０とメソッド１０１１の記述レベル情報をユーザが「L2」に変更すると、同様の処理により要素４０２０と要素４０２２の記述レベル情報が「L２」に変更される。
【００５２】
以上、図４に示した、ユーザが前述のモデルデータBの記述レベル情報を変更した後のモデルデータは、記述レベル対応表示データ生成手段により表示記述レベル情報と比較され、所定の表示データが生成される。表示記述レベル情報が「L2」である場合に生成される表示データを図５に示す。
【００５３】
以上、本実施例によれば、特定の記述レベル情報をもつモデルを表示あるいは非表示とすることが可能となるのに加えて、特定のモデルの構成要素（本実施例ではアトリビュートとメソッド）を表示あるいは非表示とすることが可能となる。
【実施例３】
【００５４】
以下、本発明の他の実施例を図６、図７、図９を用いて説明する。図６はモデル情報の表示例、図７は記述レベル情報をもつモデル情報の例、図９は記述レベル制御手段のフローチャートである。
【００５５】
本実施例は記述レベル制御手段８００６が、２つ以上の記述レベル情報を付加したモデル情報の構成要素の関係を規定する関連要素情報を付加する動作を示す例である。
【００５６】
ユーザは図７のモデル情報７００１を予め設定された記述レベルを「L１」として作成する（操作１）。その後ユーザはクラス７００２、クラス７００８と関係７００７を選択し、記述レベルを「L0」に変更することを指示する（操作２）。この指示によりクラス図７００１において、クラス７００２、クラス７００３と関係７００７は非表示となり、ユーザは新たにクラス７０５１を同じ名称のクラス図７０５０に作成する（操作３）。
【００５７】
以上の操作を実現する記述レベル制御手段８００６の処理を、図９を用いて説明する。操作１により処理９００１が実行され、次に処理９００２が実行される。処理９００２の判定において、操作１では記述レベル指定の変更指示はないので、処理９００４において、記述レベルを「L1」としてクラス７００２、クラス７００８と関係７００７の作成をおこない、処理９００５で関係要素情報の変更の有無を判定し、変更がないので処理を終了する（以上を処理Aとする）。
【００５８】
次に、操作２において、処理９００１、９００２が実行され、処理９００２の判定で操作２では記述レベル指定の変更を指示しているので、処理９００３が実行され、クラス７００２、クラス７００３と関係７００７は非表示となり、予め設定されている記述レベルを「L0」とし、クラス図７０５０に作成する。次に処理９００５で関係要素情報の変更の有無を判定し、変更があるので処理９００６でモデルデータに関係要素情報を追記し、処理終了する（以上を処理Bとする）。
【００５９】
次に、操作３において、処理９００１、９００２が実行され、処理９００２の判定で操作２では記述レベル指定の変更指示をしていないので、処理９００４が実行される。処理９００４において、記述レベルを「L０」としてクラス７０５１の作成をおこなう。次に処理９００５で関係要素情報の変更の有無を判定し、変更があるので処理９００６でモデルデータに関係要素情報を追記し、処理終了する（以上を処理Cとする）。
【００６０】
以上示した記述レベル制御手段８００６の動作により、図６のモデルデータが生成される。処理Aにより６００１から６０２３の要素が生成される。ただしこの時点では図６の最終的に生成されるモデルデータに対して以下の相違がある。（１）要素６００１のモデル記述情報が「L1、L2」であること。（２）要素６００４・要素６０１７の関連要素属性がないこと。
【００６１】
次に、処理Bにより、要素６００１の記述レベル情報に「L0」が追加され「L0,L1,L2」となる。更に要素６０２４の関連要素情報として関連要素属性に「ClassA,ClassB」が追加される。
【００６２】
次に、処理Cにより、６０２４から６０２８の要素が追加される。更に要素６００４・６０１７の関連要素情報として関連要素属性に「ClassD」が追加される。
【００６３】
図６のモデルデータにおいて、６００４・６０１７・６０２４の関連要素情報を記述レベル制御手段８００６が図９に示した処理による付加することで、クラス７００２・クラス７００８・関係７００７の３つのモデル要素とクラス７０５１が記述レベル情報の異なる同一モデルの情報であることをモデルデータとして設定・利用可能となる。
【００６４】
例えば外部仕様の記述レベルを「レベル０（本実施例表記では「L０」）」、詳細仕様の記述レベルを「レベル１（本実施例表記では「L１」）」とすることで、異なる目的の仕様のそれぞれ対応するモデル情報の作成・表示が可能となるのに加えて、記述レベルによって異なるモデル構成となる同一も機能をモデルデータとして生成・利用可能となる。
【００６５】
なお、本実施例においては記述レベル情報の設定方法として、記述レベルが「L０」の場合には対応する記述レベル情報として「L０」を設定、記述レベルが「L1」の場合には対応する記述レベル情報として「L1、L2」を設定、記述レベルが「L２」の場合には対応する記述レベル情報として「L２」を設定する構成としたが、記述レベルと設定する記述レベル情報の対応関係に関しては特にこれを限定しない。
【００６６】
また本実施例においては、関連要素情報をモデル要素種別が「クラス」であるモデル要素に付加する構成としたが、関連要素情報を他のモデル要素に付加する構成も可能であり、関連要素情報の付加方法や付加箇所に関しては、特にこれを限定しない。
【００６７】
上述の本発明に基づく実施例の記述レベル制御手段により、モデル情報で記述するモデル要素に記述レベル情報を付加することが可能となる。
【００６８】
さらに、記述レベル対応表示データ生成手段により、特定の記述レベル情報をもつモデルを表示あるいは非表示とすることが可能となる。
【００６９】
また、２つ以上の記述レベル情報を付加した構成要素の関係を規定する関連要素情報を付加する記述レベル制御手段により、特定の記述レベル情報をもつモデルを表示あるいは非表示とすることが可能となる。
【００７０】
以上、本発明により、同一機能を異なった詳細度・記述内容のモデルとして記述し、その関連を規定することが可能となる。また、あるモデルを異なった詳細度・記述内容の他のモデルと関連付けて記述することが可能となる。
【図面の簡単な説明】
【００７１】
【図１】モデル情報の表示例
【図２】記述レベル情報をもつモデル情報の例
【図３】記述レベル情報をもつモデル情報の表示例
【図４】記述レベル情報をもつモデル情報の例
【図５】記述レベル情報をもつモデル情報の表示例
【図６】関連要素情報をもつモデル情報の例
【図７】関連要素情報をもつモデル情報の表示例
【図８】システム構成図
【図９】記述レベル制御手段のフローチャート
【符号の説明】
【００７２】
８００１：モデルデータ
８００２：モデルデータ管理手段
８００３：モデル表示手段
８００４：記述レベル対応表示データ生成手段
８００５：モデル編集手段
８００６：記述レベル制御手段
【図１】
2010134809.tif 000003
【図２】
2010134809.tif 000004
【図３】
2010134809.tif 000005
【図４】
2010134809.tif 000006
【図５】
2010134809.tif 000007
【図６】
2010134809.tif 000008
【図７】
2010134809.tif 000009
【図８】
2010134809.tif 000010
【図９】
2010134809.tif 000011