(57)【要約】【課題】ソフトウェア部品構造図上における個々の部品の配置を、そのソフトウェア部品の特性によって分類して決定することによって、読み手にとって理解し易いソフトウェア部品構造図を容易に作成すること。【解決手段】部品情報入力部１０１から入力されたソフトウェア部品情報１１０を部品情報解析部１０６で解析し、部品配置場所情報入力部１０２から入力されたソフトウェア部品配置場所情報１１１を元に、部品配置場所判定部１０７でソフトウェア部品の配置場所を決定することにより、読み手に対して理解し易いソフトウェア構造図がソフトウェア部品構造図作図部１０９で作成される。【選択図】図１
2005196434.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア部品情報入力手段と、ソフトウェア部品情報取得手段と、ソフトウェア部品構造図作図手段と、ソフトウェア部品構造図出力手段とを備えたソフトウェア部品構造図作成装置。
【請求項２】
請求項１に記載のソフトウェア部品構造図作成装置において、ソフトウェア部品配置場所判定手段を備え、個々のソフトウェア部品をソフトウェア部品構造図上に自動的に整理して配置可能なソフトウェア部品構造図作成装置。
【請求項３】
請求項２に記載のソフトウェア部品構造図作成装置において、ソフトウェア部品配置場所基準情報入力手段を備え、大まかなソフトウェア部品の分類を装置利用者が指定することにより、個々のソフトウェア部品を分類に従って自動的に整理した上で配置可能なソフトウェア部品構造図作成装置。
【請求項４】
請求項３に記載のソフトウェア部品構造図作成装置において、ソフトウェア部品配置場所指定入力手段を備え、個々のソフトウェア部品の配置位置を装置利用者が指定することにより、利用者の指示通りに整理して配置可能なソフトウェア部品構造図作成装置。
【請求項５】
請求項４に記載のソフトウェア部品構造図作成装置において、配置場所履歴保持手段を備え、過去のソフトウェア部品構造図作成の過程での同種なソフトウェア部品の配置結果を元に配置場所の判定が可能なソフトウェア部品構造図作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェア開発において、ソフトウェア部品構造図の作成を支援するソフトウェア部品構造図作成装置に関するものである。
【背景技術】
【０００２】
ソフトウェア開発において、具体的なソフトウェア構造の設計を行う際に、ソフトウェア全体がどのようなソフトウェア部品によって構成されて、それぞれの部品間にどのような関係があるかを示すためにソフトウェア部品構造図を作成する。このソフトウェア部品構造図は開発に用いている設計手法によって名称が異なり、構造化設計手法ではモジュール構造図と呼ばれ、オブジェクト指向設計手法においてはクラス図と呼ばれる。
【０００３】
ソフトウェア部品構造図では、各ソフトウェア部品の図面上での配置場所の規定は特にない。しかし、ソフトウェア部品の種類によってある程度配置場所を決定した方が、ソフトウェア部品構造図としての理解が深まる場合がある。例えば、組込機器向けの制御ソフトウェアを開発においては、ソフトウェアを構成する各部品について、ユーザが直接的に接する部品については構造図の上部に、逆にユーザとは直接的に接することのないハードウェアに関する部品については構造部の下部にといった形で階層的に部品配置をすることが一般的であり、この形で記述する方がソフトウェア部品構造図の読み手にとっても理解が深まる。
【０００４】
ソフトウェア部品構造図の作成で、部品の配置場所を整理して表示する機構については、従来には例えば特許文献１のような装置があった。特許文献１では、オブジェクト指向設計において、ユースケース毎に作成された複数のクラス図で参照されるクラスについて、各図間での配置場所の整合性を取ることによって、理解し易いクラス図の作成を行っている。
【特許文献１】特開平１１−３３８４７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記従来の構成では、複数のクラス図間にて参照されているクラスの配置場所について、全てのクラス図上で同じ位置に配置されるように整理することに重点がおかれてクラス図の作成が行われていた。ソフトウェアの全体構造を視覚的に捉えやすくするためには、ソフトウェア全体を表すクラス図が最も有用であるが、ソフトウェア全体を表すクラス図における各クラスの配置場所については特に利用者が整理を行って希望通りに配置することはできなかった。
【０００６】
また、前記従来の構成では、オブジェクト指向開発によるソフトウェア部品であるクラスとクラス図を対象としており、オブジェクト指向開発以外の開発手法を選択した場合、前記従来の構成は利用することができないという課題を有していた。
【０００７】
本発明は、前記従来の課題を解決するもので、オブジェクト指向開発のみでなく、構造化設計手法をはじめとした他のソフトウェア開発手法にも適用可能であり、対象となるソフトウェア部品を利用者の希望通りの位置へ配置可能なソフトウェア部品構造図を自動的に作成する装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記従来の課題を解決するために、本発明のソフトウェア部品構造図作成装置は、ソフトウェア部品の情報を受け付けるソフトウェア部品情報入力手段から得た情報を元にして、作図するソフトウェア構造図上のどの位置に該当部品を配置するかを判定するソフトウェア部品配置場所判定手段と、判定結果を元にして作図を行うソフトウェア部品構造図作図手段と、作図結果を描画するソフトウェア部品構造図出力手段を有し、対象となるソフトウェア部品が、利用者が希望する図面上の位置に整理された形で配置されたソフトウェア構造図の作図を自動的に行う。また、対象をオブジェクト指向におけるクラスとクラス図に限定せず、ソフトウェア部品とソフトウェア部品構造図とする。
【０００９】
本構成によって、利用者が希望する図面上の位置に部品を配置することが可能となり、読み手が視覚的に捉えやすいソフトウェア部品構造図を容易に作成することができる。また、オブジェクト指向開発以外の開発手法においても適用が可能となる。
【発明の効果】
【００１０】
本発明のソフトウェア部品構造図作成装置によれば、ソフトウェア設計者は分類別に配置されたソフトウェア部品構造図を見ることにより、ソフトウェア構造をより容易に理解することができる。したがって、ソフトウェア設計者は効率的にソフトウェア開発を進めることが可能となり、ソフトウェア開発における誤りが減少する。また、オブジェクト指向開発に特化しないため、多岐にわたった開発手法に対して適用が可能となる。
【発明を実施するための最良の形態】
【００１１】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００１２】
（実施の形態１）
図１は、本発明の実施の形態におけるソフトウェア部品構造図作成装置の一実施形態を示す図であり、部品情報入力部１０１と、部品配置場所情報入力部１０２と、配置場所指定入力部１０３と、ソフトウェア部品構造図出力部１０４と、ソフトウェア部品構造図作成部１０５とで構成される。
【００１３】
部品情報入力部１０１は、ソフトウェア開発者が作成しようとしているソフトウェア部品構造図の構成要素となる各ソフトウェア部品に関するソフトウェア部品情報１１０を、ソフトウェア部品構造図作成部１０５への入力として与える機構を提供する。
【００１４】
配置場所情報入力部１０２は、ソフトウェア部品構造図上でのソフトウェア部品の配置場所を決定する基準となるソフトウェア部品配置場所情報１１１を、ソフトウェア部品構造図作成部１０５への入力として与える機構を提供する。
【００１５】
配置場所指定入力部１０３は、ソフトウェア部品構造図を作成するにあたり、対象となる部品の配置場所をソフトウェア開発者が直接的に指定したい場合の入力機構として利用される。また、部品の配置場所を決定する際の補足的な情報をソフトウェア部品構造図作成図１０５に対して与える場合の入力機構としても利用される。
【００１６】
ソフトウェア部品構造図出力部１０４は、ソフトウェア部品構造図作成部１０５にて作成されたソフトウェア部品構造図をソフトウェア開発者に対して出力する機構を提供する。
【００１７】
ソフトウェア部品構造図作成部１０５は、具体的にはコンピュータで構成され、部品情報解析部１０６と部品配置場所判定部１０７と、配置場所履歴保持部１０８とソフトウェア部品構造図作図部１０９とで構成される。
【００１８】
部品情報解析部１０６は、ソフトウェア開発者から与えられたソフトウェア部品情報１１０の中から、ソフトウェア部品構造図上の配置場所を決定するにあたって必要となるキーワードや単語、文章等を抽出する。
【００１９】
部品配置場所判定部１０７は、ソフトウェア部品構造図を作成するにあたり、部品情報解析部１０６や配置場所履歴保持部１０８や部品配置場所情報入力部１０２から得られた、部品の配置場所を決定する基準となる情報を元にして、対象としているソフトウェア部品をソフトウェア構造図上のどの位置に配置するかを判定する。
【００２０】
配置場所履歴保持部１０８は、過去に実行されたソフトウェア部品構造図の作成において、どのようなキーワードを持つソフトウェア部品がどのような場所に配置されたかを履歴として保持しておくための機構で、その情報はソフトウェア部品の配置場所判定の際に利用される。
【００２１】
ソフトウェア部品構造図作図部１０９は、部品配置場所判定部１０７で決定されたソフトウェア部品の配置場所に基づいて、実際にソフトウェア部品構造図を作成する。
【００２２】
以上のような実施形態において、ソフトウェアを構成するソフトウェア部品群からソフトウェア構造図を作成するフローを図２に示す。尚、本フローを説明するにあたって、カーオーディオシステム制御ソフトウェア開発を例にとって説明する。本事例ではソフトウェア開発手法として構造化設計手法を採用しているものとする。したがって、ソフトウェア部品についてはモジュールと表現され、ソフトウェア部品構造図についてはモジュール構造図と表現される。本事例において取り扱うカーオーディオシステム制御ソフトウェアを構成する部品をソフトウェア部品構造図として表したものを図３に示す。本事例において、カーオーディオシステム制御ソフトウェアはＣＤドライブモジュール３０１と、ＭＤドライブモジュール３０２と、ボタンモジュール３０３と、カーオーディオシステム統括モジュール３０４とで構成され、各モジュール間とカーオーディオシステム統括モジュール３０４の間はそれぞれ関連で結ばれている。尚、本発明の実施を行うにあたり、必ずしも図３のようなソフトウェア部品構造図を事前に用意しておく必要はない。
【００２３】
はじめに、装置使用者（ソフトウェア開発者）は、部品配置場所情報入力部１０２よりソフトウェア部品配置場所情報１１１を入力する（ステップ２０１）。ソフトウェア部品配置場所情報の一例を図４に示す。ここには、部品配置の分類を示す分類項４０１と分類の判断基準となるキーワード項４０２とポイント項４０３と、最終的な配置場所を指定する配置場所項４０４が記述されている。本例は、ソフトウェア部品のうちハードウェア部品に関係するソフトウェア部品を抽出するための情報として、キーワードとポイントを設定したものである。ポイントは、対応するキーワードがその分類に対してどの程度関係があるかを示した「重み」に相当し、装置使用者が適切に設定したものである。配置場所は、（水平方向、垂直方向）の座標で表現されている。各座標と配置場所の対応関係についての一例を図５に示す。これは、配置場所を縦３行横３列の９分割した際の各配置場所を示す座標の例である。
【００２４】
続いて、部品情報入力部１０１よりソフトウェア部品情報１１０を入力する（ステップ２０２）。ソフトウェア部品情報の一例を図６に示す。この情報は、各ソフトウェア部品について図３のように構造図で表現されているものを文字データとして表現したものであり、部品の名称を示す名称項６０１と、部品の分類の判断基準となる分類項６０２と、関連のある他部品の情報である関連項６０３が記述されている。
【００２５】
尚、本実施の形態において、部品配置場所情報入力部１０２と部品情報入力部１０１を個別に設けているが、両者を兼ねるような情報入力手段を設けても構わない。
【００２６】
これらの情報を元にして、本装置は部品の配置場所を決定する。まず、部品情報の分類項と部品配置場所情報の分類項の比較を行う（ステップ２０３）。もし一致すれば、当該部品の配置場所は決定される。一致しない場合は、各部品配置場所情報に記述されている各キーワード項と部品情報の分類項の比較を行い、一致するものがある場合には、キーワードに対応する得点を加算することによって、各部品配置場所情報に対する得点を算出し、累計が最高となる部品配置場所情報を選択する（ステップ２０４）。ここで選択された部品配置場所情報が唯一つであった場合は部品の配置場所は決定されるが、複数存在する場合は、装置使用者に対して選択された候補を提示し、装置使用者が配置場所を選択する（ステップ２０５）。選択された部品配置場所情報が存在しなかった場合は、キーワードと部品情報の分類項が一致するものが無かったことを意味する。そこで、配置場所履歴保持部１０８から過去の配置履歴に関する情報を取得し（ステップ２０６）、当該部品の部品情報の分類項との比較を行う（ステップ２０７）。ここで一致するものがあった場合には部品の配置場所は決定されるが、一致するものがなかった場合は、配置場所指定入力部１０３より、装置利用者が配置場所情報を指定する（ステップ２０８）。このように過去の履歴情報を利用して部品配置を行った場合は、配置結果の情報を部品配置場所情報に追加することによって、次回以降の配置場所判定で利用できるようにする（ステップ２０９）。
【００２７】
尚、本事例では部品情報入力部１０１と部品配置場所情報入力部１０２と配置場所指定入力部１０３を個別に設けているが、全てを兼ねるような情報入力部や複数の組み合わせで兼ねられた情報入力部として設けても構わない。
【００２８】
以上により、当該部品の配置場所が決定されるので、今後の配置場所判定で利用できるように、部品情報の分類項と部品配置場所情報の分類項を配置場所履歴保持部１０８に格納する（ステップ２１０）。
【００２９】
上記のステップ２０３〜２１０について、対象とするすべてのソフトウェア部品に対して行うことにより、すべてのソフトウェア部品の配置場所が決定されるので、ソフトウェア部品構造図作図部１０９にてソフトウェア構造図を作成し（ステップ２１１）、ソフトウェア部品構造図出力部１０４に、完成したソフトウェア構造図を出力する（ステップ２１２）。
【００３０】
本事例において作成されたソフトウェア部品構造図をソフトウェア構造図出力部１０４に出力した結果の一例を図７に示す。本事例では、カーオーディオシステムのユーザインタフェースであるボタンモジュール７０１が構造図上の上部（座標（１，１）に相当する部分）に表示され、カーオーディオシステムのハードウェアにあたるＣＤドライブモジュール７０２とＭＤドライブモジュール７０３が構造図上の下部（座標（１，３）に相当する部分）に表示され、カーオーディオシステムの全体管理を行うカーオーディオシステム統括モジュール７０４が構造図上の中部（座標（１，２）に相当する部分）に表示され、それに伴い、各モジュール間の関連の位置も適切に変更されている。
【産業上の利用可能性】
【００３１】
本発明は、ソフトウェア開発者が開発を行っているソフトウェアに対するソフトウェア部品構造図を容易に作成することが可能であり、さらに整理された形でソフトウェア部品構造図が作成され、構造図の読み手にとってもソフトウェア構造に対する理解容易性が高まり有用である。
【図面の簡単な説明】
【００３２】
【図１】本発明のソフトウェア部品構造図作成装置の構成を示すブロック図
【図２】本発明の実施形態におけるソフトウェア部品構造図作成の流れを示すフローチャート
【図３】本発明の実施形態において整理する前のソフトウェア構造図の一例を示す図
【図４】本発明の実施形態におけるソフトウェア部品配置場所情報の一例を示す図
【図５】本発明の実施形態における配置場所項と実際の配置場所の対応を示す図
【図６】本発明の実施形態におけるソフトウェア部品情報の一例を示す図
【図７】本発明の実施形態においてソフトウェア部品構造図作成装置にて作成されたソフトウェア構造図の一例を示す図
【符号の説明】
【００３３】
１０１    部品情報入力部
１０２    部品配置場所情報入力部
１０３    配置場所指定入力部
１０４    ソフトウェア部品構造図出力部
１０５    ソフトウェア部品構造図作成部
１０６    部品情報解析部
１０７    部品配置場所判定部
１０８    配置場所履歴保持部
１０９    ソフトウェア部品構造図作図部
１１０    ソフトウェア部品情報
１１１    ソフトウェア部品配置場所情報
３０１    ＣＤドライブモジュール
３０２    ＭＤドライブモジュール
３０３    ボタンモジュール
３０４    カーオーディオシステム統括モジュール
４０１    分類項
４０２    キーワード項
４０３    ポイント項
４０４    配置場所項
６０１    名称項
６０２    分類項
６０３    関連項
７０１    ボタンモジュール
７０２    ＣＤドライブモジュール
７０３    ＭＤドライブモジュール
７０４    カーオーディオシステム統括モジュール
【図１】
2005196434.tif 000003
【図２】
2005196434.tif 000004
【図３】
2005196434.tif 000005
【図４】
2005196434.tif 000006
【図５】
2005196434.tif 000007
【図６】
2005196434.tif 000008
【図７】
2005196434.tif 000009