(57)【要約】【課題】ＵＭＬの形式上は正しいものの意味的には不適切であるようなモデルの問題点を機械的に検出することができるソフトウェア開発支援装置を得ること。【解決手段】用語の意味に基づいて用語の分類を定義した用語分類情報と、クラス間で形成される関係の意味に基づいて、その関係の両端のクラスが属する妥当な分類を定義した関係定義情報とを含む用語関係辞書格納部１３と、オブジェクト指向分析・設計モデルに含まれるクラス間の関係と該関係の両端にあるクラスを抽出するクラス関係抽出部１２と、関係の両端にあるクラスを、分類情報に基づいて分類する用語分類抽出部１４と、関係について分類されたクラスの分類が、関係定義情報に含まれる分類の定義に含まれるか否かを判定する関係妥当性判定部１５と、関係妥当性判定部１５による判定結果を出力する判定結果出力部１６と、を備える。【選択図】        図１
2006252314.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト指向を適用したソフトウェア開発で作成されるクラス間の関係を含むオブジェクト指向分析・設計モデルを読込んで、そのクラス間の関係の妥当性を判定するソフトウェア開発支援装置であって、
用語の意味に基づいて用語の分類を定義した用語分類情報と、クラス間で形成される関係の意味に基づいて、その関係の両端のクラスが属する妥当な分類を定義した関係定義情報とを含む用語関係辞書格納手段と、
前記オブジェクト指向分析・設計モデルに含まれるクラス間の関係と該関係の両端にあるクラスを抽出するクラス関係抽出手段と、
前記関係の両端にあるクラスを、前記用語分類情報に基づいて分類する用語分類抽出手段と、
前記関係について分類された前記クラスの分類が、前記関係定義情報に含まれる分類の定義に含まれるか否かを判定する関係妥当性判定手段と、
前記関係妥当性判定手段による判定結果を出力する判定結果出力手段と、
を備えることを特徴とするソフトウェア開発支援装置。
【請求項２】
前記関係抽出手段は、前記オブジェクト指向分析・設計モデルのクラス間の関係からＵＭＬで規定された関連を抽出することを特徴とする請求項１に記載のソフトウェア開発支援装置。
【請求項３】
前記関係抽出手段は、前記オブジェクト指向分析・設計モデルのクラス間の関係からＵＭＬで規定された集約を抽出することを特徴とする請求項１に記載のソフトウェア開発支援装置。
【請求項４】
前記関係抽出手段は、前記オブジェクト指向分析・設計モデルからクラス間の関係からＵＭＬで規定された汎化を抽出することを特徴とする請求項１に記載のソフトウェア開発支援装置。
【請求項５】
前記判定結果出力手段は、前記判定結果を当該装置の利用者が認識できる形で出力する機能を有することを特徴とする請求項１〜４のいずれか１つに記載のソフトウェア開発支援装置。
【請求項６】
オブジェクト指向を適用したソフトウェア開発で作成されるクラス間の関係を含むオブジェクト指向分析・設計モデルを取得するオブジェクト指向分析・設計モデル取得工程と、
前記オブジェクト指向分析・設計モデルに含まれるクラス間の関係と該関係の両端にあるクラスを抽出するクラス関係抽出工程と、
用語の意味に基づいて用語の分類を定義した用語分類情報を用いて、前記関係の両端にあるクラスを分類する用語分類抽出工程と、
前記関係の両端にあるクラスの分類が、クラス間の関係の意味に基づいた妥当なクラス間の分類か否かを判定する関係妥当性判定工程と、
前記関係妥当性判定工程による判定結果を出力する判定結果出力工程と、
を含むことを特徴とするソフトウェア開発支援方法。
【請求項７】
前記関係抽出工程では、前記オブジェクト指向分析・設計モデルのクラス間の関係からＵＭＬで規定された関連を抽出することを特徴とする請求項６に記載のソフトウェア開発支援方法。
【請求項８】
前記関係抽出工程では、前記オブジェクト指向分析・設計モデルのクラス間の関係からＵＭＬで規定された集約を抽出することを特徴とする請求項６に記載のソフトウェア開発支援方法。
【請求項９】
前記関係抽出工程では、前記オブジェクト指向分析・設計モデルのクラス間の関係からＵＭＬで規定された汎化を抽出することを特徴とする請求項６に記載のソフトウェア開発支援方法。
【請求項１０】
請求項６〜９のいずれか１つに記載された方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、オブジェクト指向を用いて開発したソフトウェアのテスト作業を支援するソフトウェア開発支援装置、ソフトウェア開発支援方法およびその方法をコンピュータに実行させるプログラムに関するものである。
【背景技術】
【０００２】
オブジェクト指向によるソフトウェア開発においては、ソフトウェアの仕様として求められている機能を実現するための分析や設計を、ＵＭＬ（Unified Modeling Language）を用いた分析・設計モデルとして記述し、その内容に基づいてプログラムを作成することが一般的に行なわれている。ＵＭＬはオブジェクト指向開発において標準的に利用されているモデルの表記法である。分析・設計モデルは、ソフトウェア全体をクラスという単位に分け、クラスとクラス間の関係からなる構造によってソフトウェアの機能を実現するという方法で構築される。クラスとクラス間の関係は多くの場合、ＵＭＬで規定されたクラス図の記法に従って表記される。このようなオブジェクト指向開発を進める方法の従来技術のひとつとしてＩＢＭ社の「ラショナル統一プロセス」がある。また、オブジェクト指向開発を支援するＣＡＳＥ（Computer Aided Software Engineering）ツールもいくつか製品化されており、そのひとつとしてＩＢＭ社のRational Rose（商品名）がある。この他にも、ＵＭＬに基づくものではないが、オブジェクト指向ソフトウェアの開発におけるクラス継承関係を自動的に導出するクラス継承関係導出システムが提案されている（たとえば、特許文献１参照）。
【０００３】
通常１つのソフトウェアを開発するにあたっては、数十個から数百個のクラスを作成し、これらのクラスの各々に適切な名前を付けて、クラス間を適切な関係で結ぶ必要がある。ＵＭＬで定義されているクラス間の関係には、関連、集約、汎化、依存がある。関連は２つのクラス間に意味的なつながりがあることを表す関係である。集約は２つのクラスが全体と部分という関係にあることを表す関係である。汎化は２つのクラスＡとＢが「クラスＡはクラスＢの一種である」という関係で、この関係においてクラスＡを子クラス、クラスＢを親クラスと呼ぶことがある。依存は２つのクラスの一方がもう一方の仕様変更の影響を受けるという関係である。このようなクラス図を用いたクラスとクラス間の関係によるソフトウェア構造の表現は、ソフトウェアの理解を容易にし、分析・設計といった開発作業を効率化する上で有用である。
【０００４】
【特許文献１】特開平７−１２１３７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、クラス図は記述の自由度が高いため、ＵＭＬの形式上は正しくても一般常識やソフトウェアが対象にしている業務分野の常識からすると意味的に正しくないモデルを作成することもできてしまう。このような意味的な誤りに対しては、ＣＡＳＥツールで機械的にチェックすることができないため、目視でクラス図をチェックして内容に誤りがないか否かを確かめる必要がある。そのため、作業効率の悪さや、見落とし、判断ミスといった作業の信頼性の面での問題がある。また、特許文献１には、階層関係を有するクラス間の関係を導出する技術については開示されているが、上記の意味的に正しくないモデルのチェックについては、何ら開示されていない。
【０００６】
この発明は、上記に鑑みてなされたもので、ＵＭＬの形式上は正しいものの意味的には不適切であるようなモデルの問題点を機械的に検出することができるソフトウェア開発支援装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、この発明にかかるソフトウェア開発支援装置は、オブジェクト指向を適用したソフトウェア開発で作成されるクラス間の関係を含むオブジェクト指向分析・設計モデルを読込んで、そのクラス間の関係の妥当性を判定するソフトウェア開発支援装置であって、用語の意味に基づいて用語の分類を定義した用語分類情報と、クラス間で形成される関係の意味に基づいて、その関係の両端のクラスが属する妥当な分類を定義した関係定義情報とを含む用語関係辞書格納手段と、前記オブジェクト指向分析・設計モデルに含まれるクラス間の関係と該関係の両端にあるクラスを抽出するクラス関係抽出手段と、前記関係の両端にあるクラスを、前記用語分類情報に基づいて分類する用語分類抽出手段と、前記関係について分類された前記クラスの分類が、前記関係定義情報に含まれる分類の定義に含まれるか否かを判定する関係妥当性判定手段と、前記関係妥当性判定手段による判定結果を出力する判定結果出力手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
この発明によれば、オブジェクト指向分析・設計モデルに含まれているクラスとクラス間の関係について、用語関係辞書で定義された用語の意味に基づいてモデルの問題点を検出するようにしたので、問題点を特定するための作業を効率化するとともに、作業の信頼性を向上させることができるという効果を有する。その結果、早期のソフトウェアの品質向上を可能にする。
【発明を実施するための最良の形態】
【０００９】
以下に添付図面を参照して、この発明にかかるソフトウェア開発支援装置、ソフトウェア開発支援方法およびその方法をコンピュータに実行させるプログラムの好適な実施の形態を詳細に説明する。なお、この発明がこの実施の形態に限定されるものではない。
【００１０】
図１は、この発明にかかるソフトウェア開発支援装置の機能構成を模式的に示すブロック図である。このソフトウェア開発支援装置１０は、当該装置の利用者からのオブジェクト指向分析・設計モデルを取得するオブジェクト指向分析・設計モデル取得部１１と、オブジェクト指向分析・設計モデルからクラス関係情報を抽出するクラス関係抽出部１２と、オブジェクト指向分析・設計モデルにおける用語の分類と関係の定義がなされた用語関係辞書格納部１３と、クラス関係情報から用語の分類を行ったクラス関係分類情報を抽出する用語分類抽出部１４と、クラス関係分類情報から関係の妥当性を判定する関係妥当性判定部１５と、判定結果を出力する判定結果出力部１６と、これらの各処理部を制御する制御部１７と、を備えて構成される。
【００１１】
オブジェクト指向分析・設計モデル取得部１１は、ソフトウェア開発支援装置１０の利用者によって作成されたオブジェクト指向分析・設計モデルを読込む機能を有する。読込まれるオブジェクト指向分析・設計モデルは、クラス定義やクラス間の関係を含めＵＭＬで規定される様々な情報を含むものである。
【００１２】
クラス関係抽出部１２は、オブジェクト指向分析・設計モデルからクラス関係を抽出する機能を有する。具体的には、オブジェクト指向分析・設計モデルの中からクラス間の関係とその関係の両端にあるクラスの名前を抽出して、クラス関係情報を作成する。抽出するクラス間の関係は、関連、集約および汎化の３種類である。ここで、関連は２つのクラスの間に意味的なつながりがあることを表すもので、関連Ｘとこの関連の両端のクラスＡとクラスＢがある場合に、「クラスＡはクラスＢに対してＸである」という意味を表す。また、集約は全体−部分の関係を表すもので、両端のクラスＡとクラスＢがある場合に、「クラスＡはクラスＢの一部である」という意味を表す。さらに、汎化は両端のクラスＡとクラスＢがある場合に、「クラスＡはクラスＢの一種である」という意味を表す。そこで、クラス関係抽出部１２では、クラス間の関係が持つ意味において、主語の役割を持つ「関係元クラス」と、目的語の役割を持つ「関係先クラス」と、それらの関係を表す「関係」とを抽出し、クラス関係情報を生成する。「関係」は、関連の場合には上記Ｘに相当する動詞とし、集約の場合には固定的に「部分である」とし、汎化の場合にも固定的に「一種である」とする。
【００１３】
用語関係辞書格納部１３は、用語分類抽出部１４によるクラス関係分類情報を作成する際に使用される用語分類情報と、関係妥当性判定部１５による判定結果情報を作成する際に使用される関係定義情報と、を含んで構成される。用語分類情報は、用語の意味に基づいてその用語がどのカテゴリに属するかを定義したものである。１つの用語に対して複数のカテゴリが存在する場合には、１つの用語に対して複数のカテゴリが定義されることになる。また、関係定義情報は、関係の意味に基づいて、その関係の関係元クラスのカテゴリと関係先クラスのカテゴリとして妥当な組合せを定義したものである。
【００１４】
用語分類抽出部１４は、クラス関係抽出部１２によって抽出されたクラス関係情報の個々の関係について、用語関係辞書格納部１３内の用語分類情報に基づいて関係の両端にあるクラスが属するカテゴリを抽出したクラス関係分類情報を生成する機能を有する。クラス関係分類情報は、用語の分類を行うクラス関係情報中の「関係」、その関係の関係元クラスが属するカテゴリを示す「関係元カテゴリ」およびその関係の関係先クラスが属するカテゴリを示す「関係先カテゴリ」を含んで構成される。一つのクラスが複数のカテゴリに属する場合には、全てのカテゴリが記載される。
【００１５】
関係妥当性判定部１５は、用語分類抽出部１４によって抽出されたクラス関係分類情報の個々の関係について、関係の両端にあるクラスのカテゴリの組（すなわち、関係元カテゴリと関係先カテゴリの組み合わせ）が、用語関係辞書格納部１３内の関係定義情報で定義された妥当なカテゴリの組合せに一致するか否かを判定し、個々の関係が適切か否かを示す判定結果情報を作成する機能を有する。具体的には、オブジェクト指向分析・設計モデルから抽出した関係元カテゴリと関係先カテゴリの関係が、関係定義情報に定義されていない場合には、その関係は不正と判定し、関係定義情報に定義されている場合には妥当と判定する。この判定結果情報は、クラス関係分類情報に、関係の両端のクラスのカテゴリの組合せが妥当か否かを示す「判定結果」をさらに含んで構成される。
【００１６】
判定結果出力部１６は、関係妥当性判定部１５によって作成された判定結果情報中に含まれる個々の関係について、その関係が妥当であるか否かの情報を、ソフトウェア開発支援装置１０の利用者が認識できる形で出力する機能を有する。具体的な出力方法はシステム環境に依存するものであり、任意の様式で出力することができる。たとえば、ＣＡＳＥツールが表示するクラス図上に判定結果をグラフィカルに重ねて表示するようにしてもよいし、クラス図とは別に文字や文章を用いた一覧表形式で出力してもよい。
【００１７】
つぎに、ソフトウェア開発支援方法の手順について図２のフローチャートを参照しながら説明する。また、ここでは動作処理の理解を容易にするために、利用者によって作成された図３に示されるオブジェクト指向分析・設計モデルが読込まれた場合を具体例に挙げて説明するものとする。
【００１８】
図３は、オブジェクト指向分析・設計モデルの一例を示す図である。この図３の例では「自動車」、「運転手」、「サル」、「バナナ」、「果物」および「タイヤ」の６個のクラスがある場合を示している。この図３に示されるオブジェクト指向分析・設計モデルにおいて、各クラス間の関係は、以下に示す規則によって作成されているものとする。「関連」は実線の矢印で表現され、関連を示す言葉で結ばれている。図３の例では、「運転手」と「自動車」が関連「運転する」で結ばれ、「サル」と「自動車」が関連「運転する」で結ばれ、「運転手」と「バナナ」が関連「食べる」で結ばれ、「サル」と「バナナ」が関連「食べる」で結ばれている。また、この関連の矢印は誘導可能性を表し、矢印の元にあるクラスのインスタンスから、矢印の先にあるクラスのインスタンスをアクセスできることを意味する。さらに、それぞれの関連に付加された黒い三角形は関連を読む方向を表す。たとえば「運転手」と「自動車」の間に結ばれた関連は、「運転手は自動車を運転する」という意味を表している。また、「集約」は菱形がついた実線矢印で表現される。図３の例では、「自動車」と「タイヤ」との間、および「サル」と「タイヤ」との間が集約で結ばれている。上述したように、集約は全体−部分の関係を表しているので、たとえば「自動車」と「タイヤ」の間に結ばれた集約は「タイヤは自動車の部分である」という意味を表している。さらに、「汎化」は白抜きの三角形がついた実線で表現される。図３の例では、「果物」と「運転手」との間および「果物」と「バナナ」との間が汎化で結ばれている。汎化は「〜の一種である」という関係を表し、たとえば「果物」と「バナナ」の間に結ばれた汎化は「バナナは果物の一種である」という意味を表している。
【００１９】
まず、オブジェクト指向分析・設計モデル取得部１１は、利用者から入力されるオブジェクト指向分析・設計モデルを取得する（ステップＳ１１）。ここでは、オブジェクト指向分析・設計モデル取得部１１は、図３に示されるオブジェクト指向分析・設計モデルを取得する。
【００２０】
ついで、クラス関係抽出部１２は、取得したオブジェクト指向分析・設計モデルからクラス間の関係を抽出し（ステップＳ１２）、クラス関係情報を作成する。ここでは、クラス関係抽出部１２は、図３から所定の規則にしたがって作成されたクラス間の関係を読取り、関係、関係元クラスおよび関係先クラスを有するクラス関係情報を作成する。
【００２１】
関連の場合には、クラス関係抽出部１２は、関連を読む順序で上位にあるクラスまたは誘導可能性の矢印が出る元のクラスを関係元クラスとして識別し、もう一方のクラスを関係先クラスとして識別し、クラス間に記載されている用語を「関係」として識別する。たとえば「運転手は自動車を運転する」という関連では、「運転する」を関係として識別し、「運転手」を関係元クラスとして識別し、「自動車」を関係先クラスとして識別する。このようにして図３における関連について作成したクラス関係情報を図４に示す。
【００２２】
また、集約の場合には、クラス関係抽出部１２は、全体側（菱形が付けられた側）のクラスを関係先クラスとして識別し、もう一方のクラスを関係元クラスとして識別する。ここで、集約は全体−部分という意味を持っているため、関係は固定で「部分である」とする。たとえば「タイヤは自動車の部分である」という集約では、「部分である」を関係として抽出し、「タイヤ」を関係元クラスとして識別し、「自動車」を関係先クラスとして識別する。このようにして図３における集約について作成したクラス関係情報を図５に示す。
【００２３】
さらに、汎化の場合には、クラス関係抽出部１２は、白抜き三角形が付けられた側のクラスを関係先クラスとし、もう一方のクラスを関係元クラスとして識別する。ここで、汎化は「〜の一種である」という意味を持っているため、関係は固定で「一種である」とする。たとえば「バナナは果物の一種である」という汎化では、「一種である」を関係として抽出し、「バナナ」を関係元クラスとして識別し、「果物」を関係先クラスとして識別する。このようにして図３における汎化について作成したクラス関係情報を図６に示す。
【００２４】
図７は、図３に示したオブジェクト指向分析・設計モデルから上記関連、集約および汎化の３種類すべての関係に注目してクラス間の関係を抽出した場合のクラス関係情報の一例を示す図である。このクラス関係情報は、図４〜図６を合わせたものである。この図７に示されるように、ＵＭＬのクラス図上では種類が異なる関係であっても、クラス関係情報の中では元になった関係の種類の違いに拘わらず同列に扱うようにしている。
【００２５】
ついで、用語分類抽出部１４は、クラス関係抽出部１２によって作成されたクラス関係情報中に含まれる個々の関係について、用語関係辞書格納部１３中の用語分類情報に基づいて関係元クラスと関係先クラスのそれぞれのカテゴリを抽出して（ステップＳ１３）、クラス関係分類情報を作成する。
【００２６】
図８は、用語関係辞書格納部中の用語分類情報の構成の一例を示す図である。この用語分類情報は、用語の意味に基づいてその用語がどのカテゴリに属するかを予め定義したものであり、「用語」と「カテゴリ」の項目を含んで構成される。たとえば、行８０１の「果物」と行８０２の「バナナ」はカテゴリ「食べ物」に属することを表している。また、行８０３，８０４の「運転手」は複数のカテゴリ「動物」と「人」に属することを表している。
【００２７】
図９は、用語分類抽出部によって作成されたクラス関係分類情報の一例を示す図である。たとえば、図７に示したクラス関係情報中の行７０１の「運転する」という関係に対応する関係元クラスは「運転手」である。そこで、「運転手」という用語に対するカテゴリを、図８の用語分類情報を用いて検索すると、「動物」と「人」が得られる。したがって、関係元クラス「運転手」に対応する関係元カテゴリは「動物、人」となる。この場合、１つの用語に対して複数のカテゴリが存在するので、関係元カテゴリには複数入力される。同様にクラス関係情報中の行７０１の「運転する」という関係に対応する関係先クラス「自動車」の関係先カテゴリは「乗り物」となる。以上の結果が図９の行９０１に示されている。このようにして、用語分類抽出部１４は、クラス関係情報１１２に含まれるすべての関係について、関係元カテゴリと関係先カテゴリを求めてクラス関係分類情報を作成する。
【００２８】
ついで、関係妥当性判定部１５は、用語分類抽出部１４によって作成されたクラス関係分類情報中に含まれる個々の関係について、用語関係辞書格納部１３中の関係定義情報に基づいて、関係元カテゴリおよび関係先カテゴリの組合せが妥当か否かを判定し（ステップＳ１４）、その結果である判定結果情報を作成する。つまり、クラス関係分類情報中の個々の関係についての関係元カテゴリと関係先カテゴリの組合せが、関係定義情報中に含まれる場合には、その関係は妥当であると判定し、関係定義情報中に含まれない場合は不正であると判定する。
【００２９】
図１０は、関係定義情報の構成の一例を示す図である。この関係定義情報は、関係の意味に基づいて、その関係の関係元クラスのカテゴリと関係先クラスのカテゴリとして妥当な組合せを定義したものである。たとえば、行１００１では、関係「運転する」に対して妥当な関係元カテゴリは「人」、関係先カテゴリは「乗り物」であることを表している。
【００３０】
図１１は、関係妥当性判定部によるクラス関係分類情報の判定を行う過程の一例を示す図であり、図１２は、関係妥当性判定部によって作成された判定結果情報の一例を示す図である。たとえば、図９の行９０１の関係「運転する」に対応する関係元カテゴリは「動物」または「人」であり、関係先カテゴリは「乗り物」である。一方、図１０に示した関係定義情報中の行１００１には、関係「運転する」、関係元カテゴリ「人」、関係先カテゴリ「乗り物」が存在する。つまり、図９の行９０１の関係は、関係定義情報中の行１００１の内容に一致する。したがって、関係妥当性判定部１５は、図９の行９０１の関係に対する検索結果を「該当あり（ａ）」とする。この結果が、図１１の行１１０１に示されている。
【００３１】
同様に図９の行９０２の関係「運転する」に対応する関係元カテゴリは「動物」であり、関係先カテゴリは「乗り物」であるが、図１０の関係定義情報中には、関係が「運転する」かつ関係元カテゴリが「動物」かつ関係先カテゴリが「乗り物」という組合せは存在しない。そのため、関係妥当性判定部１５は、図９の行９０２の関係に対する検索結果を「該当なし」とする。この結果が、図１１の行１１０２に示されている。
【００３２】
なお、関係妥当性判定部１５は、特別なケースとして、「一種である」という関係において関係元カテゴリと関係先カテゴリが一致する場合には、常に妥当であると判定し、用語関係辞書格納部１３の関係定義情報中の検索を行わせないようにすることもできる。このように設定することで、判定時間が短縮される。たとえば、図９の行９０７の関係「一種である」は、関係元カテゴリと関係先カテゴリがともに「食べ物」であるため、関係妥当性判定部１５は判定を行わず、「常に妥当」と判定する。この結果が、図１１の行１１０７に示されている。
【００３３】
関係妥当性判定部１５は、図９の全ての関係について、図１１に示されるように関係定義情報に含まれるか否かが検索されると、その結果を基に図１２に示されるような判定結果情報を作成する。関係妥当性判定部１５は、図１１の検索結果が「該当あり」または「常に妥当」の場合には判定結果を「妥当」とし、検索結果が「該当なし」の場合は判定結果を「不正」とする。たとえば、図１１の行１１０１の関係「運転する」の検索結果は「該当あり（ａ）」であるので、図１２の行１２０１に示されるように判定結果は「妥当」となる。また、行１１０６の関係「部分である」の検索結果は「該当なし」であるので、図１２の行１２０６に示されるように判定結果は「不正」となり、行１１０７の関係「一種である」の検索結果は「常に妥当」であるので、図１２の行１２０７に示されるように判定結果は「妥当」となる。
【００３４】
そして、判定結果出力部１６は、関係妥当性判定部１５によって作成された判定結果情報中に含まれる個々の関係について、その関係が妥当であるか否かの情報を、ソフトウェア開発支援装置１０の利用者が認識できる形で出力し（ステップＳ１５）、判定処理が終了する。
【００３５】
図１３は、判定結果出力部による判定結果の出力の一例を示す図である。この図１３では、図３のオブジェクト指向分析・設計モデルのクラス図に判定結果情報の内容を重ね合わせた場合を示している。つまり、クラス間の関係において、不当と判定された関係に対して、「×」印１３０１を付加している。このようにすることで、関係が不正であることが、利用者に対して容易に理解される。
【００３６】
なお、上述した実施の形態に示されるソフトウェア開発支援装置１０は、ハードディスクドライブなどの記憶手段やメモリ、ＣＰＵ（Central Processing Unit）を有するパーソナルコンピュータなどの情報処理装置によって構成することができる。この場合に、上述した実施の形態で示したソフトウェア開発支援方法をコンピュータに実行させるためのプログラムとして情報処理装置の記憶手段に格納させ、メモリ上に呼び出して実行させることによって、上記処理を実行させることが可能となる。このソフトウェア開発支援方法をコンピュータに実行させるためのプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、フレキシブルディスク、ＤＶＤ（Digital Versatile DiscまたはDigital Video Disc）、メモリカードなどのコンピュータで読み取り可能な記録媒体に記録されて提供される。また、実施の形態で示したソフトウェア開発支援方法をコンピュータに実行させるためのプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
【００３７】
この実施の形態によれば、利用者が作成したオブジェクト指向分析・設計モデルのクラス間のカテゴリの関係が、予め定めた関係を満たしているか否かを判定して、その結果を出力して利用者に提示するようにしたので、ＵＭＬの形式上は正しくても一般常識やソフトウェアが対象にしている業務分野の常識からすると意味的に正しくない誤りを検出することができるという効果を有する。これにより、上記のような誤りを特定するための作業が効率化されるとともに作業の信頼性が増し、早期のソフトウェアの品質向上を可能にするという効果を有する。
【産業上の利用可能性】
【００３８】
以上のように、この発明にかかるソフトウェア開発支援装置は、ＵＭＬに基づいて作成したオブジェクト指向分析・設計モデルのクラス間の関係が妥当か否かを判定する場合に有用である。
【図面の簡単な説明】
【００３９】
【図１】この発明によるソフトウェア開発支援装置の機能構成を模式的に示すブロック図である。
【図２】ソフトウェア開発支援装置の動作処理の手順を示すフローチャートである。
【図３】オブジェクト指向分析・設計モデルの一例を示す図である。
【図４】図３における関連についてのクラス関係情報を示す図である。
【図５】図３における集約についてのクラス関係情報を示す図である。
【図６】図３における汎化についてのクラス関係情報を示す図である。
【図７】図３におけるクラス関係情報の一例を示す図である。
【図８】用語関係辞書格納部中の用語分類情報の構成の一例を示す図である。
【図９】用語分類抽出部によって作成されたクラス関係分類情報の一例を示す図である。
【図１０】関係定義情報の構成の一例を示す図である。
【図１１】関係妥当性判定部によるクラス関係分類情報の判定を行う過程の一例を示す図である。
【図１２】関係妥当性判定部によって作成された判定結果情報の一例を示す図である。
【図１３】判定結果出力部による判定結果の出力の一例を示す図である。
【符号の説明】
【００４０】
１０  ソフトウェア開発支援装置
１１  オブジェクト指向分析・設計モデル取得部
１２  クラス関係抽出部
１３  用語関係辞書格納部
１４  用語分類抽出部
１５  関係妥当性判定部
１６  判定結果出力部
１７  制御部
【図１】
2006252314.tif 000003
【図２】
2006252314.tif 000004
【図３】
2006252314.tif 000005
【図４】
2006252314.tif 000006
【図５】
2006252314.tif 000007
【図６】
2006252314.tif 000008
【図７】
2006252314.tif 000009
【図８】
2006252314.tif 000010
【図９】
2006252314.tif 000011
【図１０】
2006252314.tif 000012
【図１１】
2006252314.tif 000013
【図１２】
2006252314.tif 000014
【図１３】
2006252314.tif 000015