(57)【要約】【課題】未設定情報をもつ不完全なモデル情報からソースコードを生成する際のデータ補完を確実、容易にする。【解決手段】前記ソースコード生成部５でＵＭＬ図から生成した各種のソースコードについて、データ補完部６はコンパイル等で必要な情報が設定されていないモデル情報を特定し、必要な情報が設定されていないモデル情報を一覧表示し、必要な情報が設定されていない箇所を特定し、必要な情報が設定されていない箇所を強調表示する。  データ補完部は、必要な情報が設定されていない情報の特定と一覧表示を、クラス単位で行うことを含む。また、必要な情報が設定されていない箇所が他に存在するときに、その箇所にジャンプするためのボタンと、必要な情報が設定されていない箇所の全個数を表示する表示窓とを備える。【選択図】図１
2008269273.tif 000002
【特許請求の範囲】
【請求項１】
統一モデリング言語（ＵＭＬ）に定める画面部品と文字を組み合わせ、オブジェクト指向技術によるＵＭＬ図を作成し、このＵＭＬ図を基に開発対象となるシステムの仕様作成、設計、実装を支援するソフトウェア開発支援システムにおいて、
データベースに保存する各種のＵＭＬ図を選択し、これに記述されるクラスやオブジェクト間の操作内容、操作対象を基にソースコードを自動生成するソースコード生成部と、
前記ソースコード生成部で生成した各種のソースコードについて、コンパイル等で必要な情報が設定されていないモデル情報を特定し、必要な情報が設定されていないモデル情報を一覧表示し、必要な情報が設定されていない箇所を特定し、必要な情報が設定されていない箇所を強調表示するデータ補完部とを備えたことを特徴とするソフトウェア開発支援システム。
【請求項２】
前記データ補完部は、必要な情報が設定されていない情報の特定と一覧表示を、クラス単位で行うことを特徴とする請求項１に記載のソフトウェア開発支援システム。
【請求項３】
前記データ補完部は、必要な情報が設定されていない箇所が他に存在するときに、その箇所にジャンプするためのボタンと、必要な情報が設定されていない箇所の全個数を表示する表示窓とを備えたことを特徴とする請求項１または２に記載のソフトウェア開発支援システム。
【請求項４】
統一モデリング言語（ＵＭＬ）に定める画面部品と文字を組み合わせ、オブジェクト指向技術によるＵＭＬ図を作成し、このＵＭＬ図を基に開発対象となるシステムの仕様作成、設計、実装を支援するソフトウェア開発支援方法において、
データベースに保存する各種のＵＭＬ図を選択し、これに記述されるクラスやオブジェクト間の操作内容、操作対象を基にソースコードを自動生成するソースコード生成ステップと、
前記ソースコード生成ステップで生成した各種のソースコードについて、コンパイル等で必要な情報が設定されていないモデル情報を特定し、必要な情報が設定されていないモデル情報を一覧表示し、必要な情報が設定されていない箇所を特定し、必要な情報が設定されていない箇所を強調表示するデータ補完ステップとを有することを特徴とするソフトウェア開発支援方法。
【請求項５】
前記データ補完ステップは、必要な情報が設定されていない情報の特定と一覧表示を、クラス単位で行うことを特徴とする請求項４に記載のソフトウェア開発支援方法。
【請求項６】
前記データ補完ステップは、必要な情報が設定されていない箇所が他に存在するときに、その箇所にジャンプするためのボタンと、必要な情報が設定されていない箇所の全個数を表示する表示窓とを備えたことを特徴とする請求項４または５に記載のソフトウェア開発支援方法。
【請求項７】
請求項４〜６に記載のソフトウェア開発支援方法における処理手順を、コンピュータで実行可能に構成したことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、統一モデリング言語（ＵＭＬ）によるソフトウェア開発支援システム、および開発支援方法に係り、特にモデル情報からソースコードを生成するためのデータ補完に関する。
【背景技術】
【０００２】
ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）は、ソフトウェア開発のためのモデリング言語であり、開発対象のシステムの構造を表現するための表記法で、開発者同士の意思疎通を図ることができる。
【０００３】
ＵＭＬによるソフトウェア開発には、開発対象となるシステムの仕様作成、設計、実装を支援する表記物として、ユースケース図（システムの機能定義）、アクティビティ図（動作の流れ）、シーケンス図（オブジェクト間の相互作用）、オブジェクト図（インスタンスのスナップショット表記）などを作成する。ＵＭＬには上記のユースケース図やクラス図などの１０個の図が定義されているが、画面や画面遷移を表現する図を作成する機能を持たせたものもある（例えば、非特許文献１参照）。
【０００４】
また、作成されたＵＭＬ図（モデル情報）からスケルトンレベルのソースコードを生成する機能は、Ｒａｔｉｏｎａｌ  ＲｏｓｅやＥｌａｐｉｚなど様々なＵＭＬモデリングツールに組み込まれている。
【０００５】
また、ソースコードを自動生成する技術として、様々な提案がされている。例えば、システムソフトウェアの設計情報とテンプレートから、ソースコードを自動生成する（例えば、特許文献１参照）。また、バージョンの異なるソースコードの差分を抽出し、この差分と元のソースコードとから新しいソースコードを自動生成する（例えば、特許文献２参照）。
【非特許文献１】明電時報  ２００６  ９・１０月  通巻３１０号  Ｎｏ．５
【特許文献１】特開２００３−１４０８９３
【特許文献２】特開平５−２７４１２６
【発明の開示】
【発明が解決しようとする課題】
【０００６】
モデル情報からソースコードを生成する場合、モデル情報がもつクラスの名前が日本語のままである、フィールドの型が未設定である、メソッドの戻り値が未設定であるなど、分析段階のモデル情報のように、ソースコードを出力してコンパイルするとエラーになるような不完全なモデル情報でも、ソースコードを生成することはできる。
【０００７】
このとき、コンパイラを使用してソースコードをコンパイルするとエラーとなる。そのエラー箇所に該当するモデル情報を修正して、再度ソースコード出力を行う。再度コンパイルを行い、エラーとなると、そのエラー箇所に該当するモデル情報を修正して、再度ソースコード出力を行う。この作業を、コンパイルエラーがなくなるまで繰り返す必要があり、不完全なモデル情報はソースコードのコンパイルに手間取る。
【０００８】
また、分析段階のモデル情報を利用して設計段階のモデル情報を作成すると、上記の未設定箇所などの見落としにより、上記の「修正、出力、コンパイル」の作業を行わなければならない場合がある。
【０００９】
本発明の目的は、未設定情報をもつ不完全なモデル情報からソースコードを生成する際のデータ補完を確実、容易にしたソフトウェア開発支援システム、開発支援方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、前記の課題を解決するため、モデル情報からソースコードを出力する際に、未設定情報をもつモデル情報を特定し、このモデル情報を一覧表示し、未設定情報の箇所を特定し、この未設定箇所を強調表示するようにしたもので、以下のシステム構成、方法およびプログラムを特徴とする。
【００１１】
（１）統一モデリング言語（ＵＭＬ）に定める画面部品と文字を組み合わせ、オブジェクト指向技術によるＵＭＬ図を作成し、このＵＭＬ図を基に開発対象となるシステムの仕様作成、設計、実装を支援するソフトウェア開発支援システムにおいて、
データベースに保存する各種のＵＭＬ図を選択し、これに記述されるクラスやオブジェクト間の操作内容、操作対象を基にソースコードを自動生成するソースコード生成部と、
前記ソースコード生成部で生成した各種のソースコードについて、コンパイル等で必要な情報が設定されていないモデル情報を特定し、必要な情報が設定されていないモデル情報を一覧表示し、必要な情報が設定されていない箇所を特定し、必要な情報が設定されていない箇所を強調表示するデータ補完部とを備えたことを特徴とする。
【００１２】
（２）前記データ補完部は、必要な情報が設定されていない情報の特定と一覧表示を、クラス単位で行うことを特徴とする。
【００１３】
（３）前記データ補完部は、必要な情報が設定されていない箇所が他に存在するときに、その箇所にジャンプするためのボタンと、必要な情報が設定されていない箇所の全個数を表示する表示窓とを備えたことを特徴とする。
【００１４】
（４）統一モデリング言語（ＵＭＬ）に定める画面部品と文字を組み合わせ、オブジェクト指向技術によるＵＭＬ図を作成し、このＵＭＬ図を基に開発対象となるシステムの仕様作成、設計、実装を支援するソフトウェア開発支援方法において、
データベースに保存する各種のＵＭＬ図を選択し、これに記述されるクラスやオブジェクト間の操作内容、操作対象を基にソースコードを自動生成するソースコード生成ステップと、
前記ソースコード生成ステップで生成した各種のソースコードについて、コンパイル等で必要な情報が設定されていないモデル情報を特定し、必要な情報が設定されていないモデル情報を一覧表示し、必要な情報が設定されていない箇所を特定し、必要な情報が設定されていない箇所を強調表示するデータ補完ステップとを有することを特徴とする。
【００１５】
（５）前記データ補完ステップは、必要な情報が設定されていない情報の特定と一覧表示を、クラス単位で行うことを特徴とする。
【００１６】
（６）前記データ補完ステップは、必要な情報が設定されていない箇所が他に存在するときに、その箇所にジャンプするためのボタンと、必要な情報が設定されていない箇所の全個数を表示する表示窓とを備えたことを特徴とする。
【００１７】
（７）上記のソフトウェア開発支援方法における処理手順を、コンピュータで実行可能に構成したことを特徴とする。
【発明の効果】
【００１８】
以上のとおり、本発明によれば、モデル情報からソースコードを出力する際に、未設定情報をもつモデル情報を特定し、このモデル情報を一覧表示し、未設定情報の箇所を特定し、この未設定箇所を強調表示するようにしたため、未設定情報をもつ不完全なモデル情報からソースコードを生成する際のデータ補完が確実、容易になる。
【００１９】
具体的には、
（１）必要な情報が設定されていない箇所を開発者に提示することにより、「ソースコード出力、コンパイル、コンパイルエラー箇所のモデル情報の修正、ソースコード出力」という手戻りをなくすことができる。
【００２０】
（２）開発者が選択したクラスに着目することで情報をフィルタリングすることで、クラス単位の設定が容易になり、複数の開発者で共同開発しているときには作業の効率が上がる。
【発明を実施するための最良の形態】
【００２１】
図１は、本発明の実施形態を示すソフトウェア開発支援システムの構成図であり、主にソースコード生成に関連する機能ブロックのみを示す。図１中の各部は、コンピュータシステムのハードウェア資源とこれに搭載するソフトウェアによって機能構成される。
【００２２】
ＵＭＬ図作成部１は、開発対象となるシステムの仕様作成、設計、実装を支援する表記手段として、ユースケース図、アクティビティ図、シーケンス図、オブジェクト図、コラボレーション図、クラス図などの１０個の図をディスプレイ（表示媒体）２の画面上で作成する。さらに、上記１０個の図の他に、非特許文献１のように、画面や画面遷移を表現する図を作成する。
【００２３】
これらの図の作成に際して、ＵＭＬ共通の画面部品３に用意した矩形、アクター記号、コネクタ記号、ノートなどをディスプレイ２の画面上で作成中の図に適宜貼り付ける。さらに、ＵＭＬ図の図形情報に名称や属性情報などを設定する。
【００２４】
データベース４は、ＵＭＬ図作成部１によって作成されたＵＭＬ図の図形情報およびその名称や属性情報を関連付けて保存する。
【００２５】
以上の構成により作成されるＵＭＬ図において、本実施形態では、未設定情報をもつ不完全なモデル情報からソースコードを生成する際のデータ補完を確実、容易にしたソフトウェア開発支援システムを提案するものである。
【００２６】
本実施形態では、モデル情報からソースコードを出力するときに、必要な情報（データ）が設定されていないモデル情報、未設定箇所を検索して開発者に提示することでそのデータ補完を支援する機能を提案する。
【００２７】
このデータ補完の基本的な処理を説明する。まず、ソースコード生成部５は、データベース４に保存する各種のＵＭＬ図（モデル情報）を選択し、これに記述されるクラスやオブジェクト間の操作内容、操作対象を基にソースコードを自動生成する。データ補完部６は、ソースコード生成部５で生成した各種のソースコードについて、後のコンパイル等で必要な情報が設定されていない部分（例えば、クラス、フィールド、メソッドなど）を特定し、この部分をディスプレイ２に画面表示し、開発者によるデータ補完を促す。
【００２８】
データ補完部６は、データ補完に必要な機能として図２に示す機能Ａ〜Ｄを搭載する。Ａは必要な情報が設定されていないモデル情報を特定する機能、Ｂは必要な情報が設定されていないモデル情報を一覧表示する機能、Ｃは必要な情報が設定されていない箇所を特定する機能、Ｄは必要な情報が設定されていない箇所を強調表示する機能である。
【００２９】
これら機能により、必要な情報が設定されていないモデル（例えば、クラス、フィールド、メソッド）を特定し、この特定したモデル情報を一覧に表示し、一覧表示されているモデル情報に対して、特に必要な情報が設定されていない箇所を特定し、さらに特定した箇所を強調表示（例えば、必要な情報が設定されていない箇所の背景を赤く塗りつぶした表示）する。この強調表示は、開発者が情報を入力して設定すると解除する。
【００３０】
さらに、データ補完部６の機能として、必要な情報が設定されていない箇所が他に存在するときに、その箇所にジャンプするためのボタンを設ける。このボタンとしては、「次へジャンプ」ボタンは表形式に並んでいる次の未設定情報に移動し、「前へジャンプ」ボタンは表形式に並んでいる前の未設定情報に移動する。
【００３１】
また、データ補完部６は、必要な情報が設定されていない箇所の全個数を表示する表示窓を設ける。この個数が０になると、必要な情報がすべて設定されたことになる。
【００３２】
（具体例１）
図３は、必要な情報が設定されていないモデルを羅列表示した例を示す。同図では、必要な情報が設定されていないすべての箇所を表形式に並べて表示する。必要な情報とは、例えば、クラスの場合はクラスの英語名になる。フィールドの場合はフィールドの英語名、型の情報、アクセス修飾子などである。メソッドの場合は、メソッドの英語名、戻り値の情報、引数の英語名、引数の型の情報、アクセス修飾子など、となる。
【００３３】
なお、図３では、未設定箇所の強調表示は、背景を赤で表示する。また、未設定情報の個数（図示では４）を表示し、「前へ移動」ボタンと「次へ移動」ボタンを表示する。
【００３４】
これらの情報をすべて設定すると、ソースコードを出力することができるようになる。
【００３５】
図４〜図６は、上記の表示機能を実現する処理手順である。図４は、未設定情報を持つモデルを特定する手順であり、ソースコード出力に必要なすべてのモデル（仮にＡとする）を取得し（Ｓ１）、モデル（Ａ）に次のモデルがあるかを調べ（Ｓ２）、なければモデル（Ａ）のみが未設定箇所があるとして終了する。モデル（Ａ）に次のモデルがある場合、モデル（Ａ）から次のモデル（仮にＢとする）を取り出し（Ｓ３）、このモデル（Ｂ）に必要な情報（仮にＣとする）が設定されているかどうか調べ（Ｓ４）、情報（Ｃ）が設定されていないモデル（仮にＤとする）を集める（Ｓ５）。これら一連の処理をすべてのモデルについて行い、未設定情報をもつモデルを特定する。
【００３６】
図５は、未設定情報を持つモデルの未設定箇所を特定する手順であり、図４で未設定情報を持つモデル（Ｄ）のすべて（仮にＥとする）を取得し（Ｓ１１）、モデル（Ｅ）に次のモデルがあるか調べ（Ｓ１２）、なければ当該モデル（Ｅ）のみを未設定箇所として特定して終了する。モデル（Ｅ）からモデル（仮にＦとする）を取り出し（Ｓ１３）、モデル（Ｆ）から必要な情報（仮にＧとする）をすべて取得し（Ｓ１４）、情報（Ｇ）のそれぞれについて、必要な情報（仮にＨとする）が設定されているかどうか調べ（Ｓ１５）、情報（Ｈ）が設定されていない情報（仮にＩとする）を集める（Ｓ１６）。これら一連の処理をすべてのモデルについて行い、未設定箇所を特定する。
【００３７】
図６は、未設定情報を表示して、必要な情報を設定する手順であり、図４における「未設定情報を持つモデルを特定する」処理を行い（Ｓ２１）、未設定情報を持つモデルを一覧表示し（Ｓ２２）、図５における「未設定情報を持つモデルの未設定箇所を特定する」処理を行い（Ｓ２３）、未設定箇所を強調表示する（Ｓ２４）。この表示に対して、開発者が未設定箇所に情報を設定したとき（Ｓ２５）、当該未設定箇所の強調表示を解除し（Ｓ２６）、開発者が「次へ移動」ボタンを押したとき（Ｓ２７）、次の未設定箇所にフォーカスを移動する（Ｓ２８）。これら一連の処理は、未設定箇所が０個になるまで繰り返し、すべての未設定箇所に必要な情報を設定する。
【００３８】
（具体例２）
図７は、必要な情報が設定されていないモデルを羅列表示した例を示す。同図では、
未設定情報を持つすべてのモデルを表示する場合である。
【００３９】
開発対象のソフトウェアを複数の開発者で共同開発している場合、ある開発者の設計対象はすべてのクラスではなく、たいてい一部のクラスのみである。このとき、上記の具体例１ではすべての未設定情報を表示しているため、担当する箇所を探すのが非常に困難となる。
【００４０】
そこで、必要な情報が設定されていない箇所について、クラスごとに分けて表形式に並べて表示する。クラス一覧で選択したクラスについて、必要な情報が設定されていない箇所を表形式に並べて表示する。必要な情報は、上記具体例１と同じである。
【００４１】
なお、必要な情報が設定されていない箇所にジャンプする機能を持つボタンについては、クラス一覧で選択したクラスについての、未設定情報に対してのみ有効とし、クラス一覧で選択したクラス以外についての未設定情報にはジャンプしない。
【００４２】
また、必要な情報が設定されていない箇所の個数については、上記の全個数（図では８）を表示する機能に、さらにクラスごとの個数（図では４）を表示する機能を設ける。
【００４３】
なお、本発明は、上記の実施形態で示すソフトウェア開発支援システムの一部又は全部の処理手順を有する開発支援方法とすること、あるいはこの方法の処理手順をコンピュータで実行可能に構成したプログラムとして提供することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態を示すソフトウェア開発支援システムの構成図。
【図２】データ補完部の機能構成図。
【図３】未設定情報を持つすべてのモデルを表示する例。
【図４】未設定情報を持つモデルを特定する手順図。
【図５】未設定情報を持つモデルの未設定箇所を特定する手順図。
【図６】未設定情報を表示して、未設定情報を設定する手順図。
【図７】未設定情報を持つすべてのモデルを表示する例。
【符号の説明】
【００４５】
１  ＵＭＬ図作成部
２  ディスプレイ
３  ＵＭＬ図画面部品
４  ＵＭＬ図データベース
５  ソースコード生成部
６  データ補完部
【図１】
2008269273.tif 000003
【図２】
2008269273.tif 000004
【図３】
2008269273.tif 000005
【図４】
2008269273.tif 000006
【図５】
2008269273.tif 000007
【図６】
2008269273.tif 000008
【図７】
2008269273.tif 000009