(57)【特許請求の範囲】
【請求項１】
各ユースケース毎に作成したクラス図を格納した記憶手段を備えたオブジェクト指向開発支援装置において、
前記各ユースケース毎に作成したクラス図を前記記憶手段から読み出し、システム全体のクラス図を作成する全体クラス図作成手段と、
作成された全体クラス図を基に各ユースケースにおけるクラス図のクラスやクラス間の関係の表示位置を変更するクラス図整形手段と、
整形後のクラス図を表示する表示手段と
を具備したことを特徴とするオブジェクト指向開発支援装置。
【請求項２】
前記クラス図整形手段は、複数のユースケースにおけるクラス図において同一のクラスが同じ位置関係に表示されるように表示位置の情報を変更することを特徴とする請求項１記載のオブジェクト指向開発支援装置。
【請求項３】
全体クラス図中に表示された複数のクラスをユースケース別に識別可能な形式で表示させる手段をさらに備えたことを特徴とする請求項１または２記載のオブジェクト指向開発支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オブジェクト指向によるソフトウェアの開発を支援するオブジェクト指向開発支援装置に関する。
【０００２】
【従来の技術】
近年、ソフトウェア分析/設計手法の１つとしてオブジェクト指向分析/設計が普及している。ここで、オブジェクト指向とは、現実世界の実態をオブジェクトとして抽出し、このオブジェクトを単位としてソフトウェアを構成していく開発手法である。
オブジェクト指向開発では、オブジェクトを抽出し、抽出したオブジェクトのクラス化及びクラス間の静的な関係を洗い出すことは重要である。このオブジェクトのクラス化及びクラス間の関係整理に、国際標準化されているＵＭＬ（Unified Modeling Language)では、クラス図が用いられる。
【０００３】
クラス図は、システム全体やユースケースの単位で作成される。ユースケースとは、そのソフトウェアの持つ機能である。クラス図とは、クラスの持つ属性とメソッドを明記し、クラス間の静的な関係を表記した図である。図１３及び図１４に分析段階での２つのユースケースに対するクラス図の例を示す。なお、図１３、図１４及び以降に示すクラス図は、ＵＭＬの表記法に基づいている。
図１３におけるクラス図は、クラス名が「人間」、「顧客」、「本人」、「配偶者」、「子供」、「その他」、「保険会社」、「保険会社一覧」、「既加入情報」、「保険商品」、「保険商品一覧」というクラス１３０１〜１３１１から構成されている。これらの各クラス１３０１〜１３１１はクラス名称１３１２、クラス属性１３１３、クラスメソッド１３１４から構成されている。例えば、「顧客」クラス１３０２は、「顧客」というクラス名称１３１２、「血液型、自由設定区分、年収、趣味、…」などのクラス属性１３１３、「ツールの取得、指定の年収を得ているか？、…」などのクラスメソッド１３１４から構成されている。そして、各クラス１３０１〜１３１１は実線で示すような静的な関係で関係付けられており、その関係が関係名称で示されている。例えば、「顧客」クラス１３０２と「既加入情報」クラス１３０９とは、「保険契約者である」という関係名称１３１５が付された関連１３１６と、「被保険者である」という関係名称１３１７が付された関連１３１８によって関係付けられている。
【０００４】
図１４におけるクラス図は、クラス名が「人間」、「営業職員管理情報」、「本人」、「配偶者」、「子供」、「その他」、「保険設計書」、「顧客」、「ツール」、「既加入情報」というクラス１４０１〜１４１０から構成されている。これらの各クラス１４０１〜１４１０のうち、例えば「営業職員管理情報」クラス１４０２は、「営業職員管理情報」というクラス名称１４１１、「営業職員ＩＤ、パスワード」などのクラス属性１４１２、「新規の顧客を調べる、本人の登録、配偶者の登録、…」などのクラスメソッド１４１３から構成されている。そして、各クラス１４０１〜１４１０は図１３の場合と同様に、実線で示すような静的な関係で関係付けられており、その関係が関係名称で示されている。例えば、「営業職員管理情報」クラス１４０２と「顧客」クラス１４０８とは、「担当している」という関係名称１４１４が付された関連１４１５によって関係付けられている。
ここで、図１３のクラス図と図１４のクラス図とは、異なるユースケースのものであるが、クラス１３０１と１４０１、１３０２と１４０８、１３０３と１４０３、１３０４と１４０４、１３０５と１４０５、１３０６と１４０６、１３０９と１４１０とが共通している。
【０００５】
【発明が解決しようとする課題】
従来において、図１３及び図１４に示したように、共通する多くのクラスを持つクラス図を作成する場合であっても、ユースケースが異なる場合、各ユースケース単位毎に作成者自身が独自にクラスを配置し、ユースケース毎のクラス図を作成するようにしていた。このため、共通する多くのクラスを持つ類似のユースケースであっても、同じクラス名のクラスの配置位置や全体の配置構造が異なったものとなり、それぞれのクラス図がいずれのユースケースに該当するのか、或いはいずれのユースケースに類似するものなのか、あるいは類似のユースケースとどの部分が異なるのかを容易に見分けることができず、図形表現による識別機能が劣るという問題があった。
【０００６】
また、複数のユースケースのクラス図を結合してシステム全体のクラス図を作成する場合、その全体クラス図の作成画面上で、各ユースケースのクラス図の各クラスを貼り付ける形式の操作を行なうことによって作成していた。このため、クラスの数が多い場合、あるいはクラス図が複雑である場合には貼り付け漏れが発生し、その検証作業に手間がかかるという問題があった。
【０００７】
また、全体クラス図の中においてどの部分がどのユースケースに相当するものかは、ユースケース単位に作成したクラス図とを見比べることによって認識或いは識別するようにしていたため、全体クラス図の中におけるユースケースの識別作業が面倒であるという問題があった。
【０００８】
本発明の目的は、全体クラス図の中で共通するクラスの配置位置や配置構造に一貫性を持たせ、図形表現によるクラス図の識別機能が向上するように表示し、オブジェクト指向技術を用いたソフトウェア開発作業を効率良く支援することができるオブジェクト指向開発支援装置を提供することにある。
また、複数のユースケースのクラス図からシステム全体の全体クラス図を容易に作成し、検証作業を不要にすることができるオブジェクト指向開発支援装置を提供することにある。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本発明は、各ユースケース毎に作成したクラス図を記憶手段から読み出し、システム全体のクラス図を作成する全体クラス図作成手段と、作成された全体クラス図を基に各ユースケースにおけるクラス図のクラスやクラス間の関係の表示位置を変更するクラス図整形手段と、整形後のクラス図を表示する表示手段とを具備したことを特徴とする。
また、前記クラス図整形手段は、複数のユースケースにおけるクラス図において同一のクラスが同じ位置関係に表示されるように表示位置の情報を変更することを特徴とする。
また、全体クラス図中に表示された複数のクラスをユースケース別に識別可能な形式で表示させる手段をさらに備えることを特徴とする。
【００１０】
なお、同一のクラスが同じ位置関係とは、表示座標が完全に同一であることに限定されるものではなく、見た目でほぼ同じ位置であるような関係を含むものである。
【００１１】
【発明の実施の形態】
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
図１は、本発明によるオブジェクト指向開発支援装置の一実施の形態を示すブロック図であり、コマンドを入力したり、結果を出力する端末１０１と、クラス図の作成・管理等の処理を行う処理装置１０２と、クラス図などの情報を格納する外部記憶装置１０３とで構成されている。
処理装置１０２は、具体的にはコンピュータで構成されるものであり、クラス図作成手段１０４、クラス管理手段１０５、クラス図整形手段１０６、全体クラス図作成手段１０７、全体クラス図整形手段１０８、クラス図表示手段１０９、ユースケース識別手段１１０を具備している。これらの各手段は、具体的にはプログラムによって構成されるものである。
外部記憶装置１０３には、クラス図情報１１１、クラス情報１１２、全体クラス図情報１１３の格納領域を備えている。
【００１２】
クラス図作成手段１０４は、クラス図を作成し、クラス図情報１１１として外部記憶装置１０３に格納するものである。クラス管理手段１０５は、クラス図の作成時に新規に加えたクラスが重複していないかを監視し、重複していないクラスをクラス情報１１２に登録するものである。クラス図整形手段１０６は、全体クラス図情報１１３を作成し、その時に整形した図の配置を各ユースケース毎のクラス図情報１１１に反映させるものである。全体クラス図作成手段１０７は、ユースケース毎のクラス図情報１１１からシステム全体のクラス図情報１１３を作成するものである。全体クラス図整形手段１０８は、全体クラス図情報１１３の作成の際に、クラス図内の図形の配置を整形するものである。クラス図表示手段１０９は、クラス図情報１１１または全体クラス図情報１１３を端末１０１に表示させるものである。ユースケース識別手段１１０は、特に全体クラス図情報１１３の表示の際に、特定のユースケースを識別するものである。
【００１３】
図２は、ユースケース単位のクラス図情報１１１を作成してから全体クラス図情報１１３を表示するまでの処理の概要を示すフローチャートである。
まず、クラス図作成手段１０４を用いてユースケース毎にクラス図を作成し、クラス情報１１２とクラス図情報１１１の形式で外部記憶装置１０３に格納する（ステップ２０１)。クラス図の作成方法は従来と同様であり、端末１０１を用いてクラスを示す図形を画面上で貼り付け、その図形の中にクラス名称やクラス属性、クラスメソッドを入力し、さらにクラス間の関係を結ぶ実線を引き、関係を示す名称を入力する。さらに必要であれば操作の情報を入力する。図１３に示したクラス図におけるクラス名称＝人間のクラス１３０１対するクラス情報１１２の例を図３に、クラス図情報１１１の例を図４に示す。
【００１４】
クラス情報１１２は、システム全体で使用されているクラスの情報で、クラス管理手段１０５によって、システム全体で一元管理し、同一のクラスの重複登録を防止している。あるユースケース内で新規に作成されたクラスは、クラス情報１１２に登録され、他のユースケースに対するクラス図を作成するときに利用することができる。１つのクラスのクラス情報１１２は、図３に示すように、クラス名称３０１、クラス属性３０２、クラスメソッド３０３、利用先３０４の情報から構成されている。なお、利用先３０４には、あるクラスがどのユースケースのクラス図の作成に用いられたかの情報として、Ｕ３、Ｕ５のようなユースケース識別子が格納されるようになっている。
【００１５】
クラス図情報１１１は、図４に示すように、クラス図内に記述したクラス４０１及びクラス間の関係４０２とそれらの位置関係を示す物理情報４０３から構成されている。クラス４０１は、クラス情報１１２と連動して必要に応じてクラス情報の持つクラス属性３０２や、クラスメソッド３０３等を取得することができる。また、クラス間の関係４０２には、以下の２つの形式がある。
ｔｙｐｅ  Ａ
クラス１，クラス２：関係種類：ユースケース識別子
ｔｙｐｅ  Ｂ
クラス１，クラス２：関係種類：多重度１,多重度２,関係名:ユースケース識別子
ｔｙｐｅ  Ａは、継承関係を表す際の表記である。これに対してｔｙｐｅ  Ｂは、「通常の関係」及び「集約関係」を表す際に用いる。図１３示したクラス図との関係は、クラス１とクラス２との間に関係種類で示した関係がある。そして、関係の種類が「通常の関係」または「集約関係」の場合は、関係を表す矢印に関係名と多重度１と多重度２が付けられる。
【００１６】
例えば、図１３のクラス図において、「保険会社」のクラス１３０７と「保険会社一覧」のクラス１３０８、「既加入情報」のクラス１３０９について注目した場合、図５に拡大して示しているように、「集約関係」の関係があるクラス１３０７と１３０８のクラス１３０８には「◇」記号５０１が付けられ、さらにこれらを結ぶ実線の両端には多重度を示す「０．．．１」と「１」が付けられる。「０．．．１」が多重度１を表し、「１」が多重度２を表す。
また、クラス１３０７と１３０９については、「通常の関係」であり、これらを結ぶ実線の両端には多重度を示す「１」と「０．．．＊」が付けられる。なお、クラス１３０７と１３０９の関係は、保険会社と契約している既加入情報は無いか、複数ある、または既加入情報に対応する保険会社が１つあるということを意味している。また、図１３及び図１４においては、図面が複雑になるため、「０．．．＊」などの多重度の文字は省略している。
なお、Ｕ３等で示すユースケース識別子は、関係情報がどのユースケースのクラス図の作成で使用したかを表す。
【００１７】
次に、クラス図の作成が終了したならば、クラス図の整形を行なう必要があるかを調べる（ステップ２０２)。作成者自身がクラス図の整形を行なう必要があると判断した場合は、クラス図整形手段１０６を起動する。このクラス図整形手段１０６では、まず、クラス情報１１２とクラス図情報１１１から全体クラス図作成手段１０７を用いて全体クラス図情報１１３を作成する（ステップ２０３)。このシステム全体のクラス図の作成過程を図６にフローチャートで示す。
【００１８】
システム全体のクラス図の作成処理では、まず、各ユースケース毎のクラス図の参照をしたかを調べる（ステップ６０１)。全てのユースケースのクラス図を参照し終えたならば、システム全体のクラス図について整形を行なう（ステップ６１１)。
しかし、まだ全てのクラス図を参照していなかった場合は、各ユースケース毎のクラス図情報１１１において、全てのクラスを参照したかを調べる(ステップ６０２)。まだ全てのクラスを参照していないならば、クラスを取得して（ステップ６０３)、そのクラスがシステム全体のクラス図に登録されていなければ（ステップ６０４)、システム全体のクラス情報に対し、取得したクラスを登録する（ステップ６０５)。全てのクラスを参照し終えたならば、次に、全ての関係を参照したかを調べる（ステップ６０６)。まだ全ての関係の情報を参照していない場合は、関係の情報を取得し（ステップ６０７)、その関係がシステム全体のクラス図情報に登録されていなければ（ステップ６０８)、システム全体のクラス情報に取得した関係の情報を登録し（ステップ６０９)、登録した関係の情報に当該ユースケースを識別するためのユースケース識別子を付加する（ステップ６１０)。既に関係の情報が登録されていた場合は、ユースケース識別子のみ付加する（ステップ６１０）。
【００１９】
図１３に示したクラス図と、図１３とは異なるユースケースにおける図１４に示したクラス図とから作成したシステム全体のクラス図の例を図７に、またその全体クラス図情報１１３の例を図８に示す。
図７に示すように、図１３のクラス図に対し、図１４におけるクラス１４０２，１４０７，１４０９が新たに付加されることによって全体のクラス図が完成している。
【００２０】
図２に戻り、全体クラス図の作成が終了したならば、その全体クラス図情報１１３を基に、クラス図整形手段１０６を用いてユースケース毎のクラス図の整形を行い、整形結果をクラス図情報１１１に出力する（ステップ２０４)。
【００２１】
クラス図の整形処理では、図９に詳細なフローチャートを示すように、まず、全体クラス情報１１３の持つ物理情報を全て参照したかどうかを調べ、全てを参照していない場合（ステップ９０１)、物理情報を１つ取得する（ステップ９０２)。そして、その取得した物理情報から該当するクラス情報１１２またはクラス図情報１１１から利用先のユースケースを取得する（ステップ９０３)。次に、全ての利用先を見たかどうかを判定し、見ていない場合（ステップ９０４)、利用先のユースケースに対するクラス図情報１１１より、該当する物理情報を探す（ステップ９０５)。探した結果、取得した物理情報の持つ位置が全体クラス図内の物理情報と同一でない場合（ステップ９０６)、ユースケース単位に作成したクラス図情報内の該当する物理情報を書き換える（ステップ９０７)。この繰り返しにより、全体クラス図情報１１３の持つ物理情報を全て参照したならば、クラス図の整形を終了する。
【００２２】
図１０に、図１３のクラス図を図７に示したシステム全体のクラス図を使って整形した結果を示す。図１３との違いは、「保険会社」クラス１３０７と「保険会社一覧」クラス１３０８とが図７での配置に従って、「既加入情報」クラス１３０９の上から下に配置されたことと、「顧客」クラス１３０２が図の右側に移動したことである。
【００２３】
図２に戻り、クラス図の整形後、整形結果のクラス図を作成者自身が参照するかどうかを問い合わせ、参照希望の操作がなされた場合には（ステップ２０５)、クラス図表示手段１０９を用いて、整形後のクラス図情報１１１を読み出し、図９のようなクラス図を端末１０１上に表示する（ステップ２０６)。また、システム全体のクラス図を参照する旨の操作が行われた場合（ステップ２０７)、クラス図表示手段１０９を用いて、クラス図の整形の際に作成した全体クラス図情報１１３を読み出し、図７のような全体クラス図を表示する（ステップ２０８）。
【００２４】
次に、ユースケース識別のための機能について説明する。
これは、システム全体のクラス図の表示の際に、指定のユースケースと関係のあるクラスや、クラス間の関係を把握するのを支援する機能であり、クラス情報１１２のクラス及びクラス図情報１１１におけるクラス間の関係に付けられた利用先を表すユースケース識別子を利用し、各表記法を特化させて表示を行う。
特化の仕方としては、色の利用等が考えられる。例えば、選択したユースケース以外のユースケースとのみ関係のあるクラスまたはオブジェクトと関係の表記を点線で表示する。または、関係のないクラスやクラス間の関係の色を薄くする。または各ユースケース毎に特定の色を割り当てるなどの方法がある。
【００２５】
図１１にユースケース識別の過程をフローチャートで示す。まず、ユースケースの識別を行なうか否かをユーザに問い合わせ（ステップ１１０１)、行なわない旨の応答操作があった場合には、全体クラス図情報１１３を読み出し、図７のような全体クラス図を端末１０１上に表示する（ステップ１１０９)。
しかし、ユースケースの識別を行なう旨の応答操作があった場合には、クラス情報１１２の持つクラスを全て参照したどうかを調べ（ステップ１１０２）、参照していなければ、全体クラス図情報１１３中から未参照のクラスを取得する（ステップ１１０３)。そして、その取得したクラスに対する物理情報を取得し（ステップ１１０４)、取得した物理情報を書き換える（ステップ１１０５)。全てのクラスを参照した場合（ステップ１１０２)、クラス情報１１２の持つクラス間の関係を全て参照したかどうかを調べ（ステップ１１０６）、参照していなければ、全体クラス図情報１１３から未参照のクラス間の関係の情報を取得する（ステップ１１０７)。そして、取得したクラス間の関係に対する物理情報を取得し（ステップ１１０８)、取得した物理情報を書き換える（ステップ１１０５)。クラス間の関係の情報を全て参照し終えたならば（ステップ１１０６)、書き換えた物理情報を基に、全体クラス図を表示する（ステップ１１０９）。
【００２６】
図１２にユースケースの識別を行った例を示す。図１２では、図１４のユースケースにしかないクラス「営業職員管理情報」、「保険設計書」、「ツール」の各クラス１４０２、１４０７、１４０９は、２重枠線で表示している。また、他のユースケースと共通に使用しているクラス「人間」、「顧客」、「本人」、「既加入情報」、「配偶者」、「子供」、「その他」のクラス１３０１，１３０２，１３０３，１３０４，１３０５，１３０６，１３０９は点線で表示している。
【００２７】
なお、本発明は、上記実施形態に限定されるものではなく、実施に際しては一部を適宜に変更して実施することができる。
【００２８】
【発明の効果】
以上説明したように、本発明によれば、システム全体のクラス図内の図形の配置を活かして、各ユースケース単位のクラス図内の図形の配置を決めるため、システム全体及び各ユースケース単位のクラス図において、同じクラス及びクラス間の関係が等しい位置関係となるため、同一のクラス及びクラス間の関係を図の形で認識することができ、認識率を向上させることができる。
【００２９】
また、ユースケース単位に作成したクラス図を正確に結合し、システム全体のクラス図を自動的に作成するため、作成検証の手間を省くことができる。
【００３０】
さらに、システム全体のクラス図内で各ユースケースの識別が可能になるため、全体と部分の関係及び部分と部分の関係を容易に把握することができるなど、全体クラス図の中で共通するクラスの配置位置や配置構造に一貫性を持たせ、図形表現によるクラス図の識別機能が向上するように表示し、オブジェクト指向技術を用いたソフトウェア開発作業を効率良く支援することが可能になる。
【図面の簡単な説明】
【図１】本発明のオブジェクト指向開発支援装置の一実施の形態を示すブロック構成図である。
【図２】全体の処理の流れを示すフローチャートである。
【図３】クラス情報の一例を示す図である。
【図４】クラス図情報の一例を示す図である。
【図５】クラス間の関係を示す説明図である。
【図６】全体クラス図の作成過程を示すフローチャートである。
【図７】全体クラス図の例を示す図である。
【図８】全体クラス図情報の例を示す図である。
【図９】クラス図整形過程を示すフローチャートである。
【図１０】整形されたクラス図の例を示す図である。
【図１１】ユースケース識別過程を示すフローチャートである。
【図１２】ユースケース識別表示例を示す図である。
【図１３】あるユースケースのクラス図の例を示す図である。
【図１４】他のユースケースのクラス図の例を示す図である。
【符号の説明】
１０１…端末、１０２…処理装置、１０３…外部記憶装置、１０４…クラス図作成手段、１０５…クラス管理手段、１０６…クラス図整形手段、１０７…全体クラス図作成手段、１０８…全体クラス図整形手段、１０９…クラス図表示手段、１１０…ユースケース識別手段、１１１…クラス図情報、１１２…クラス情報、１１３…全体クラス図情報、１３０１〜１３１１…クラス、１３１２…クラス名称、１３１３…クラス属性、１３１４…クラスメソッド、１４０１〜１４１０…クラス。
【図１】
0003698247.tif 000002
【図２】
0003698247.tif 000003
【図３】
0003698247.tif 000004
【図４】
0003698247.tif 000005
【図５】
0003698247.tif 000006
【図６】
0003698247.tif 000007
【図７】
0003698247.tif 000008
【図８】
0003698247.tif 000009
【図９】
0003698247.tif 000010
【図１０】
0003698247.tif 000011
【図１１】
0003698247.tif 000012
【図１２】
0003698247.tif 000013
【図１３】
0003698247.tif 000014
【図１４】
0003698247.tif 000015