(57)【特許請求の範囲】
【請求項１】
オブジェクト指向のソフトウェア開発で利用されるクラス図を構成する、複数のクラスおよび前記クラス間の相互関係を示す関連を表示装置に表示させるクラス図作成装置であって、
前記クラス間に設定される前記関連毎に、前記関連が上位クラスとその上位クラスの特性を引き継ぐ下位クラスとの関係であることを表す継承関係であるか否かを示す継承関係情報、および、前記関連を前記表示装置に表示させるか否かを示す表示／非表示情報が記憶される記憶手段と、
入力装置から利用者により入力された情報を取得する入力手段と、
前記入力手段を介して、前記継承関係以外の関連を表示させるか否かの情報、および、前記利用者により前記複数のクラスの中から選択されたクラスの情報を取得し、前記継承関係以外の関連を表示させるか否かの情報に基づき前記表示／非表示情報を設定し、前記継承関係情報を参照して、前記関連が継承関係でないとされた関連について、前記表示／非表示情報の前記設定に基づき、前記表示装置に表示または非表示とすると共に、前記選択されたクラスを前記下位クラスとし、当該下位クラスに対応する前記上位クラスで前記下位クラスを包含するように配置して、前記クラス図を作成する画面表示処理手段と、
を備えることを特徴とするクラス図作成装置。
【請求項２】
オブジェクト指向のソフトウェア開発で利用されるクラス図を構成する、複数のクラスおよび前記クラス間の相互関係を示す関連を表示装置に表示させるクラス図作成装置であって、
前記クラス間に設定される前記関連毎に、前記関連が上位クラスとその上位クラスの特性を引き継ぐ下位クラスとの関係であることを表す継承関係であるか否かを示す継承関係情報、および、前記関連を前記表示装置に表示させるか否かを示す表示／非表示情報が記憶される記憶手段と、
入力装置から利用者により入力された情報を取得する入力手段と、
前記入力手段を介して、前記継承関係以外の関連を表示させるか否かの情報、および、前記利用者により前記複数のクラスの中から選択されたクラスの情報を取得し、前記継承関係以外の関連を表示させるか否かの情報に基づき前記表示／非表示情報を設定し、前記継承関係情報を参照して、前記関連が継承関係でないとされた関連について、前記表示／非表示情報の前記設定に基づき、前記表示装置に表示または非表示とすると共に、前記選択されたクラスを前記下位クラスとし、当該下位クラスに対応する前記上位クラスを、当該下位クラスを中心として同心状に当該下位クラスを包含するように配置し、前記選択されたクラスおよび前記配置された上位クラスの前記継承関係でない関連を、前記同心状に配置した位置の周囲に配置し、前記クラス図を作成する画面表示処理手段と、
を備えることを特徴とするクラス図作成装置。
【請求項３】
コンピュータを、請求項１または請求項２に記載のクラス図作成装置を構成する各手段として機能させるためのクラス図作成プログラム。
【請求項４】
オブジェクト指向のソフトウェア開発で利用されるクラス図を構成する、複数のクラスおよび前記クラス間の相互関係を示す関連を表示装置に表示させるクラス図作成装置であって、
前記クラスが持つ前記関連の固有な番号である関連ＩＤおよび当該クラスの前記表示装置の画面上での形状、座標の情報を含むクラス情報が前記クラス毎に記憶されると共に、前記クラス間に設定される前記関連の前記関連ＩＤ毎に、前記関連が上位クラスとその上位クラスの特性を引き継ぐ下位クラスとの関係であることを表す継承関係であるか否かを示す継承関係情報、前記関連を前記表示装置に表示させるか否かを示す表示／非表示情報、前記関連の前記表示装置の画面上での形状、座標の情報、および、前記継承関係情報において前記継承関係であると設定された場合に、前記下位クラスに該当する前記クラスと前記上位クラスに該当する前記クラスとを対応付けた情報が格納される関連情報が記憶される記憶手段と、
入力装置から利用者により入力された情報を取得する入力手段と、
前記表示装置に表示させる前記クラスの前記クラス情報を取得し、前記クラス情報に記憶された前記クラスが持つ前記関連の前記関連ＩＤを用いて前記関連情報を取得し、前記クラス情報および前記関連情報に基づき、前記クラスおよび前記関連の形状と表示位置とを決定して前記クラス図を作成し、前記表示装置に表示させる画面表示処理手段と、を備え、
前記画面表示処理手段は、
前記入力手段を介して、前記継承関係以外の関連を表示させるか否かの情報、および、前記利用者により前記複数のクラスの中から選択されたクラスの情報を取得し、前記継承関係以外の関連を表示させるか否かの情報に基づき、前記関連情報の前記表示／非表示情報を設定し、前記継承関係情報を参照して、前記関連が継承関係でないとされた関連について、前記表示／非表示情報の前記設定に基づき、前記表示装置に表示または非表示とすると共に、前記選択されたクラスを前記下位クラスとし、前記関連情報を参照して、当該下位クラスに対応する前記上位クラスを特定し、前記特定した上位クラスで前記下位クラスを包含するように配置して、前記クラス図を作成すること
を特徴とするクラス図作成装置。
【請求項５】
オブジェクト指向のソフトウェア開発で利用されるクラス図を構成する、複数のクラスおよび前記クラス間の相互関係を示す関連を表示装置に表示させるクラス図作成装置であって、
前記クラスが持つ前記関連の固有な番号である関連ＩＤおよび当該クラスの前記表示装置の画面上での形状、座標の情報を含むクラス情報が前記クラス毎に記憶されると共に、前記クラス間に設定される前記関連の前記関連ＩＤ毎に、前記関連が上位クラスとその上位クラスの特性を引き継ぐ下位クラスとの関係であることを表す継承関係であるか否かを示す継承関係情報、前記関連を前記表示装置に表示させるか否かを示す表示／非表示情報、前記関連の前記表示装置の画面上での形状、座標の情報、および、前記継承関係情報において前記継承関係であると設定された場合に、前記下位クラスに該当する前記クラスと前記上位クラスに該当する前記クラスとを対応付けた情報が格納される関連情報が記憶される記憶手段と、
入力装置から利用者により入力された情報を取得する入力手段と、
前記表示装置に表示させる前記クラスの前記クラス情報を取得し、前記クラス情報に記憶された前記クラスが持つ前記関連の前記関連ＩＤを用いて前記関連情報を取得し、前記クラス情報および前記関連情報に基づき、前記クラスおよび前記関連の形状と表示位置とを決定して前記クラス図を作成し、前記表示装置に表示させる画面表示処理手段と、を備え、
前記画面表示処理手段は、
前記入力手段を介して、前記継承関係以外の関連を表示させるか否かの情報、および、前記利用者により前記複数のクラスの中から選択されたクラスの情報を取得し、前記継承関係以外の関連を表示させるか否かの情報に基づき、前記関連情報の前記表示／非表示情報を設定し、前記継承関係情報を参照して、前記関連が継承関係でないとされた関連について、前記表示／非表示情報の前記設定に基づき、前記表示装置に表示または非表示とすると共に、
前記選択されたクラスを前記下位クラスとし、前記関連情報を参照して、当該下位クラスに対応する前記上位クラスを特定し、さらに、特定された上位クラスについて、前記関連情報を参照して、当該上位クラスを下位クラスとする、さらに上位の前記上位クラスを特定する処理を、処理済みの前記継承関係がなくなるまで繰り返し、
前記選択されたクラスを前記特定した上位クラスで包含し、前記包含した上位クラスを前記特定したさらに上位の前記上位クラスで包含するようにして、順次前記選択されたクラスを中心として前記上位クラスを同心状に配置し、
前記選択されたクラスおよび前記配置された上位クラスの前記関連情報を参照し、前記継承関係情報において継承関係でないと設定された関連を、前記選択されたクラスおよび前記配置された上位クラスを前記同心状に配置した位置の周囲に配置し、当該関連と繋がる関係先となる前記クラスを配置して、前記クラス図を作成すること
を特徴とするクラス図作成装置。
【請求項６】
コンピュータを、請求項４または請求項５に記載のクラス図作成装置を構成する各手段として機能させるためのクラス図作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト指向のソフトウェア開発に利用されるクラス図を作成する技術に関する。
【背景技術】
【０００２】
近年のソフトウェア開発ではオブジェクト指向の開発手法が広く採用されており、特にＪａｖａ（登録商標）を用いた開発では、ＵＭＬ（Unified Modeling Language）（登録商標）によるクラス図を利用することが多い。このような動向の下、ソフトウェアの開発の効率化を実現する、具体的には、既存のソフトウェア資産を再利用するための手段として、既存のクラスを継承して開発することが多くなっている。この既存のクラスを継承して開発できることは、オブジェクト指向の開発を行うことで得られるメリットとして広く知られている。
【０００３】
なお、ここで「クラス」とは、オブジェクトの特性（属性、操作）を規定するものであり、ＵＭＬで規定されるクラス図において、四角形で表される。また、「継承」とは、あるクラスの特性（属性、操作）を関連するクラスが引き継ぐことを意味する。そして、クラス「Ａ」とクラス「Ｂ」との関係が、「『Ａ』is a 『Ｂ』」のとき、つまり、「『Ａ』は『Ｂ』である」といえる場合に、クラス「Ａ」がクラス「Ｂ」の下位クラス、クラス「Ｂ」がクラス「Ａ」の上位クラスとなる。なお、「下位クラス」のことを、以下、「サブクラス」または「子クラス」とよぶ場合があり、「上位クラス」のことを、以下、「スーパークラス」または「親クラス」とよぶ場合がある。また、継承関係（is a関係）は、従来のクラス図においては、原則として、白抜き三角（△）の矢印で示され、白抜き三角（△）の矢印の先端が上位クラスを示す。
【０００４】
図１６は、従来技術における、継承関係の関連をクラス図で表示する例を示した図である。図１６（ａ）は、基となる継承関係の関連を示し、図１６（ｂ）は、図１６（ａ）に示したクラスのうち、「LogicalResource」のクラスに着目し、ツリーメニューを用いて継承関係の関連を表示した例を示している。
図１６（ａ）の例では、継承関係のクラスを７つしか記載していないが、実際のソフトウェア開発においては、１画面（１頁）に表示しきれない多数のクラスの継承関係の表示を必要とすることも多い。さらに、クラス図においては、継承以外のクラス間の相互関係を示す関連（ＵＭＬにおける「関連（association）」,「集約（aggregation）」,「合成（composition）」等）も併せて表示されるためさらに複雑となる。よって、クラス図の利用者が着目するクラスの継承関係の追跡しようとする場合、継承関係の関連と継承以外の関連とを区別しながら、複数画面（複数頁）に亘って継承関係を辿る作業をしなければならず、利用者の負担となっていた。
【０００５】
この問題を解決するため、図１６（ｂ）に示したツリーメニューを用いた方法が提案されている（非特許文献１参照）。図１６（ｂ）は、「LogicalResource」のクラスが、どの上位クラス、さらにその上位クラス、また、どのサブクラス、さらにそのサブクラスと継承関係で繋がれているかを示している。
また、図１６（ｂ）において、「is a subclass of」は、「『Ａ』is a subclass of『Ｂ』」のとき、クラス「Ａ」がクラス「Ｂ」の下位（サブ）クラスとしての継承関係であることを意味する。また、「is a superclass of」は、「『Ａ』is a superclass of『Ｂ』」のとき、クラス「Ａ」がクラス「Ｂ」の上位（スーパー）クラスとしての継承関係であることを意味する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Sparx Systems Pty Ltd.，“Traceability inside Enterprise Architect,” ［online］，［平成24年3月14日検索］，インターネット<http://www.sparxsystems.com/resources/demos/Traceability/Traceability_Impact.htm>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、図１６（ｂ）に示したツリーメニューを用いたクラス図の表示では、継承関係の関連を表示画面上（視線）で追う場合、例えば、「LogicalResource」のクラスから、上位クラスを追う場合でも、ツリーに従って右下に視線が動き、下位クラスを追う場合でも、同様にツリーに従って右下に視線が動く。また、最下位の「TerminationPoint」から上位のクラスを順に見ていく場合、まず、ツリーに従って左上に視線が動き、そして、「LogicalResource」のクラスからは、ツリーに従って右下に視線が動く。つまり、上位クラスを追う場合でも右側に視線が動く場合と、左側に視線が動く場合がり、継承関係の上位下位がわかりにくい。
また、実際のクラス図を利用した開発においては、前記したように、クラス(ノード)数がより多くなり、継承以外のクラス間の相互関係を示す関連も併せて表示されるため、さらに複雑となり、継承関係の上位下位がわかりにくくなる。
なお、本実施形態において、クラス図上において、クラス間の相互関係を線形で表現したもの（クラス間を線形で結びつけたもの）を「関連」と記して説明する。
【０００８】
もちろん、既存クラスを作成した本人は、多数のクラスとそのクラス間の関連とで構成されるクラス図においても、そのクラス図で表現される、自らが考えたクラスの捉え方や関連を、たどる順序を含めて充分に理解しているため、何ら問題なくクラス図を読みこなすことができる。これに対し、そのクラス図を再利用する立場の者は、非常に複雑なクラスと関連をたどっていかなければならない。例えば、下位クラスのインスタンスを生成した場合に、そのインスタンスが一体どのような属性や操作や関連を持っているのかを知るためには、逐次上位クラスをたどって各上位クラスが持つ属性や操作や（線として繋がれている）関連をリストアップすることになる。これはクラス図の再利用者にとって直感的に非常にわかりにくい。
【０００９】
このような背景に鑑みて本発明がなされたのであり、本発明は、注目するクラスと継承関係にある上位クラスと、その上位クラスが持つ関連とを、簡略に表示して一瞥してわかるようにする、クラス図作成装置およびクラス図作成プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１０】
前記した課題を解決するため、請求項１に記載の発明は、オブジェクト指向のソフトウェア開発で利用されるクラス図を構成する、複数のクラスおよび前記クラス間の相互関係を示す関連を表示装置に表示させるクラス図作成装置であって、前記クラス間に設定される前記関連毎に、前記関連が上位クラスとその上位クラスの特性を引き継ぐ下位クラスとの関係であることを表す継承関係であるか否かを示す継承関係情報、および、前記関連を前記表示装置に表示させるか否かを示す表示／非表示情報が記憶される記憶手段と、入力装置から利用者により入力された情報を取得する入力手段と、前記入力手段を介して、前記継承関係以外の関連を表示させるか否かの情報、および、前記利用者により前記複数のクラスの中から選択されたクラスの情報を取得し、前記継承関係以外の関連を表示させるか否かの情報に基づき前記表示／非表示情報を設定し、前記継承関係情報を参照して、前記関連が継承関係でないとされた関連について、前記表示／非表示情報の前記設定に基づき、前記表示装置に表示または非表示とすると共に、前記選択されたクラスを前記下位クラスとし、当該下位クラスに対応する前記上位クラスで前記下位クラスを包含するように配置して、前記クラス図を作成する画面表示処理手段と、を備えることを特徴とするクラス図作成装置とした。
【００１１】
このようにすることで、クラス図作成装置は、継承関係の関連のみを残し、継承関係以外の関連を非表示とすることができる。よって、クラス図を再利用しようとする利用者が、継承関係を一瞥して把握できるようになる。
また、クラス図作成装置は、継承関係のある上位クラスについて順次、利用者により選択された下位クラスを上位クラスに包含させてクラス図を作成することができる。よって、下位クラスと継承関係にある上位クラスの内容が一瞥して把握できるように表示することができる。
【００１２】
請求項２に記載の発明は、オブジェクト指向のソフトウェア開発で利用されるクラス図を構成する、複数のクラスおよび前記クラス間の相互関係を示す関連を表示装置に表示させるクラス図作成装置であって、前記クラス間に設定される前記関連毎に、前記関連が上位クラスとその上位クラスの特性を引き継ぐ下位クラスとの関係であることを表す継承関係であるか否かを示す継承関係情報、および、前記関連を前記表示装置に表示させるか否かを示す表示／非表示情報が記憶される記憶手段と、入力装置から利用者により入力された情報を取得する入力手段と、前記入力手段を介して、前記継承関係以外の関連を表示させるか否かの情報、および、前記利用者により前記複数のクラスの中から選択されたクラスの情報を取得し、前記継承関係以外の関連を表示させるか否かの情報に基づき前記表示／非表示情報を設定し、前記継承関係情報を参照して、前記関連が継承関係でないとされた関連について、前記表示／非表示情報の前記設定に基づき、前記表示装置に表示または非表示とすると共に、前記選択されたクラスを前記下位クラスとし、当該下位クラスに対応する前記上位クラスを、当該下位クラスを中心として同心状に当該下位クラスを包含するように配置し、前記選択されたクラスおよび前記配置された上位クラスの前記継承関係でない関連を、前記同心状に配置した位置の周囲に配置し、前記クラス図を作成する画面表示処理手段と、を備えることを特徴とするクラス図作成装置とした。
【００１３】
このようにすることで、クラス図作成装置は、継承関係の関連のみを残し、継承関係以外の関連を非表示とすることができる。よって、クラス図を再利用しようとする利用者が、継承関係を一瞥して把握できるようになる。
また、クラス図作成装置は、利用者により選択されたクラスの上位クラスを順次同心状に包含させて表示させ、さらに、各クラスが持つ継承関係以外の関連をその周囲に配置して表示することができる。よって、継承関係にある上位クラスの内容が一瞥してわかるようにした上で、各クラスの継承関係でない関連も一瞥して把握できる。
【００１６】
請求項３に記載の発明は、コンピュータを、請求項１または請求項２に記載のクラス図作成装置を構成する各手段として機能させるためのクラス図作成プログラムとした。
【００１７】
このようにすることで、コンピュータを、請求項１または請求項２に記載のクラス図作成装置を構成する各手段として機能させることができる。
【発明の効果】
【００１８】
本発明によれば、注目するクラスと継承関係にある上位クラスと、その上位クラスが持つ関連とを、簡略に表示して一瞥してわかるようにする、クラス図作成装置およびクラス図作成プログラムを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態に係るクラス図作成装置の構成例を示す機能ブロック図である。
【図２】本実施形態に係るクラス情報のデータ構成の一例を示す図である。
【図３】本実施形態に係る関連データベースのデータ構成の一例を示す図である。
【図４】本実施形態に係るクラス図作成装置が、初期状態のクラス図を表示させた例を示す図である。
【図５】本実施形態に係る関連表示／非表示処理部が、ポップアップメニューを表示させた例を示す図である。
【図６】本実施形態に係る画面表示処理部（関連表示／非表示処理部）が継承関係の関連のみを表示させたクラス図の例である。
【図７】本実施形態に係る画面表示処理部が作成した継承関係のみの関連を表示した初期状態のクラス図である。
【図８】本実施形態に係る画面表示処理部（クラス包含表示処理部）が、ポップアップメニューを表示させた例を示す図である。
【図９】本実施形態に係る画面表示処理部が、利用者が注目するサブクラスを１つ上の上位クラスに包含させて、さらに、継承関係以外の関連を表示させクラス図を作成する例を示す図である。
【図１０】本実施形態に係る画面表示処理部（クラス包含表示処理部）が、継承関係のあるクラスのサブクラスを上位クラスに包含させ、継承関係以外の関連を非表示としたクラス図の例を示す図である。
【図１１】本実施形態に係る画面表示処理部（関連表示／非表示処理部）が、ポップアップメニューを表示させた例を示す図である。
【図１２】本実施形態に係る画面表示処理部が、利用者が注目するサブクラスを１つ上の上位クラスに包含させた後に、利用者に継承関係以外の関連を選択させてクラス図を作成した例を示す図である。
【図１３】本実施形態に係る画面表示処理部（関連表示／非表示処理部）が、ポップアップメニューを表示させた例を示す図である。
【図１４】本実施形態に係る画面表示処理部（関連放射状表示処理部）が、ポップアップメニューを表示装置に表示させた例を示す図である。
【図１５】本実施形態に係る画面表示処理部（関連放射状表示処理部）が、利用者が注目するクラスの上位クラスを順次同心状に包含させて表示させ、さらに、各クラスが持つ継承関係以外の関連を放射状に（周囲に）配置して関連するクラスを表示させたクラス図の例を示す図である。
【図１６】従来技術における、継承関係の関連をクラス図で表示する例を示した図である。
【発明を実施するための形態】
【００２０】
次に、本発明を実施するための形態（以下、「本実施形態」という）について、適宜図面を参照しながら詳細に説明する。
【００２１】
＜前提＞
まず、本実施形態に適用される前提について説明する。
本実施形態において実現されるクラス図作成装置１およびクラス図作成プログラムは、次に示す前提を満たす場合に、前記した本発明の効果を奏するものである。
【００２２】
〔前提１〕多重継承（子クラスが２つ以上の親クラスと継承関係であること）はない。
〔前提２〕再利用されるクラス図において、重要となる関連は、ルートクラス間の関連、または、ルートクラス直下等に位置する比較的上位のクラス間の関連が多い。
【００２３】
〔前提１〕は、サブ（子）クラスの上位（親）クラスは１つであることを意味する。実際のソフトウェア開発では複雑さを避けるため、一般的に多重継承しない場合が多いことに基づく。この〔前提１〕が成り立つ場合、１つクラスを決めれば、継承関係の先祖（最上位）となるクラス（ルートクラス）が１つ決まることが保証される。
【００２４】
〔前提２〕は、既存クラスの作成者が、既存クラスを継承してサブクラスに再利用させたい関連のうち、基本的で重要な関連を比較的上位のクラス間で定義することによって、繰り返しその関連を再利用することが可能となることに由来する。
【００２５】
この〔前提１〕および〔前提２〕を満たすようなクラス図の再利用を行う場合に、本実施形態に係るクラス図作成装置１およびクラス図作成プログラムによるクラス図作成処理が実現される。
【００２６】
＜概要＞
次に、本実施形態に係るクラス図作成装置１等により作成されたクラス図の概要について説明する。
【００２７】
クラス図作成装置１は、前記したように、注目するクラスと継承関係にある上位クラスと、その上位クラスが持つ関連（継承関係以外の関連）とを、簡略に表示して一瞥してわかるようにするため、（１）関連表示／非表示機能、（２）クラス包含表示機能、（３）関連放射状表示機能、の３つ表示機能のうちのいずれか１つを用いて、または、その組み合わせにより、画面表示させる。
【００２８】
（１）関連表示／非表示機能は、図４（詳細は後記）に示すような、継承関係と継承関係以外の関連が表示されているクラス図を、図６（詳細は後記）に示すように、継承関係以外の関連を非表示とし、継承関係のみを表示させる機能である。
（２）クラス包含表示機能は、クラス図に示される継承関係を、サブクラスを上位クラスに包含させて表示させる機能である（後記する図８（ｂ）参照）。
（３）関連放射状表示機能は、クラス図上で注目するクラスの上位クラスを順次同心状に包含させて表示させ、さらに、各クラスが持つ継承関係以外の関連を放射状に（周囲に）配置して関係するクラスを表示させる機能である（後記する図１５参照）。
以下、クラス図作成装置１の構成を具体的に説明する。
【００２９】
＜クラス図作成装置の構成＞
図１は、本実施形態に係るクラス図作成装置１の構成例を示す機能ブロック図である。
クラス図作成装置１は、入力装置３による利用者からの指示情報に基づき、表示装置２にクラス図を表示させる制御を行う装置である。
ここで、入力装置３は、例えば、マウスやキーボード、タッチパネル等から構成される。また、表示装置２は、液晶ディスプレイ等から構成される。
そして、このクラス図作成装置１は、制御部１０と、入出力部２０（入力手段）と、メモリ部３０と、記憶部４０（記憶手段）とを含んで構成される。
【００３０】
制御部１０は、入力装置３から入力された入力情報に基づき、表示装置２にクラス図を表示させる表示制御の全般を司り、画面表示処理部１１（画面表示処理手段）と、入出力情報処理部１２とを含んで構成される。
【００３１】
画面表示処理部１１（画面表示処理手段）は、クラス図の作成全般の制御を行い、関連表示／非表示処理部１１１と、クラス包含表示処理部１１２と、関連放射状表示処理部１１３とを含んで構成される。
画面表示処理部１１は、記憶部４０に記憶されたクラス情報１００（後記する図２参照）および関連データベース２００（後記する図３参照）に基づき、クラス図において、各クラスを表示させるためのクラス情報１００と、クラス間の関連を表示するための関連情報（関連データベース２００に記憶された関連ＩＤ２０１（図３参照）ごとの関連の情報（レコード情報））を読み込む。そして、画面表示処理部１１は、関連表示／非表示処理部１１１、クラス包含表示処理部１１２、関連放射状表示処理部１１３の少なくとも１つの処理部の制御により、クラス図を作成する。
【００３２】
図２は、本実施形態に係るクラス情報１００のデータ構成の一例を示す図である。
クラス情報１００は、クラス毎に記憶される情報であり、クラスＩＤ（Identification）１０１、クラス名称１０２、クラス関連情報１０３、および、その他の情報（表示位置情報等）１０４を含んで構成される。
【００３３】
クラスＩＤ１０１には、各クラスを識別するための固有な情報が格納される。例えばクラスＩＤ１０１として「Ａ」が記憶される。クラス名称１０２には、そのクラスの名称（クラス名）が格納される。クラス関連情報１０３には、そのクラスが持つ（線として繋がれている）関連の関連ＩＤ（図３の関連ＩＤ２０１）が格納される。その他の情報１０４には、そのクラスの画面上での形状（例えば、四角形等）や、画面上の位置情報（例えば、四角形であれば４点の座標情報）等が記憶される。
【００３４】
図３は、本実施形態に係る関連データベース２００のデータ構成の一例を示す図である。
この関連データベース２００には、関連ごとに付される固有な番号である関連ＩＤ２０１に対応づけて、ｆｒｏｍ２０２、ｔｏ２０３、継承関係２０４、表示／非表示２０５、および、その他の情報（表示位置情報等）２０６を含む情報が記憶される。なお、この関連ＩＤ２０１毎の１レコード分の情報を、関連情報とよぶ。
【００３５】
ｆｒｏｍ２０２、ｔｏ２０３には、その関連が継承関係である場合には、ｆｒｏｍ２０２に上位クラス（親クラス）のクラスＩＤ（図２のクラスＩＤ１０１）が格納され、ｔｏ２０３に下位クラス（子クラス）のクラスＩＤ１０１が格納される。また、その関連が、例えば、「集約（aggregation）」であれば、ｆｒｏｍ２０２に全体を表すクラスのクラスＩＤ１０１が格納され、ｔｏ２０３に部分を表すクラスのクラスＩＤ１０１が格納される。また、その関連が矢印で示されるような方向性がある場合には、ｆｒｏｍ２０２に関連元のクラスのクラスＩＤ１０１が格納され、ｔｏ２０３に関連先のクラスのクラスＩＤ１０１が格納される。また、その関連に方向性がない場合や、両方向に関連がある場合、方向性が不明な場合は、ｆｒｏｍ２０２、ｔｏ２０３に該当するクラスのクラスＩＤ１０１のどちらかをそれぞれ格納し、その方向性に関する情報（例えば、両方向に関連があること等）をその他の情報２０６に記憶する。
【００３６】
継承関係２０４には、その関連のクラス間に継承関係があるか否かが登録される。継承関係がある場合には「Ｙｅｓ」が格納され、継承関係がない場合、つまり継承以外の関連である場合には「Ｎｏ」が格納される。
【００３７】
表示／非表示２０５には、その関連を表示装置２の画面上に表示させるか否かが格納される。
【００３８】
その他の情報（表示位置情報等）２０６には、その関連の形状、例えば、「継承」であれば、白抜き三角（△）の矢印、「集約（aggregation）」であれば、全体を示すクラス側にひし形（◆）が付される線が登録される。また、その関連を表示する画面上の位置情報（例えば、関連を示す線とクラスとの接続点の座標情報）等が記憶される。さらに、関連が張られたクラス間の数的関係である多重度（ＵＭＬで規定される「多重度（multiplicity）」）を記憶させ、該当クラス間の関連と共に、表示させるようにしてもよい。
【００３９】
図１に戻り、関連表示／非表示処理部１１１は、継承関係と継承関係以外の関連とが表示されているクラス図（例えば、図４参照）を、継承関係以外の関連を非表示とし、継承関係の関連のみを表示させる（図６参照）。また、関連表示／非表示処理部１１１は、継承関係の関連のみを表示させた画面（図６）において、利用者により選択されたクラスの継承関係以外の関連を表示させる処理を行う（詳細は後記する図１２参照）。
【００４０】
クラス包含表示処理部１１２は、クラス図に示される継承関係を、サブクラスを上位クラスに包含して表示させる（図８（ｂ）参照）。つまり、クラス包含表示処理部１１２は、上位クラスがサブクラスを視覚上包含するように表示させる。
【００４１】
関連放射状表示処理部１１３は、クラス図上で注目するクラスの上位クラスを順次同心状に包含して表示させ、さらに、各クラスが持つ継承関係以外の関係を放射状に（周囲に）配置して関係するクラスを表示させる（図１５参照）。
【００４２】
入出力情報処理部１２は、入力装置３から入出力部２０を介して取得した入力情報を、画面表示処理部１１に引き渡し、画面表示処理部１１からの出力情報を、入出力部２０を介して表示装置２に送信する。
【００４３】
入出力部２０（入力手段）は、入力装置３であるマウスやキーボード、タッチパネル等から制御部１０の処理に関する指示情報（選択情報）を受け付ける。また、制御部１０が生成したクラス図に関する情報を表示装置２に出力する。なお、この入出力部２０は、入力インタフェースと出力インタフェースとから構成される。
【００４４】
メモリ部３０は、ＲＡＭ（Random Access Memory）等の記憶手段からなり、制御部１０の処理に必要な情報を一時的に記憶する。
【００４５】
記憶部４０（記憶手段）は、前記したクラス情報１００（図２参照）および関連データベース２００（図３参照）を記憶する。この記憶部４０は、ハードディスク、フラッシュメモリ等の記憶手段からなり、制御部１０の処理を行うためのプログラム（クラス図作成プログラム）等を記憶する。
なお、この制御部１０の機能は、例えばクラス図作成装置１の記憶部４０に記憶されたプログラム（クラス図作成プログラム）をＣＰＵ（Central Processing Unit）がメモリ部３０に展開し実行することで実現される。
【００４６】
＜クラス図表示＞
次に、本実施形態に係るクラス図作成装置１により作成され、表示装置２に表示されるクラス図について、詳細に説明する。
【００４７】
≪関連表示／非表示機能≫
まず、クラス図作成装置１の関連表示／非表示処理部１１１による、クラス図表示について、図４〜図６を参照して説明する。
【００４８】
クラス図作成装置１の画面表示処理部１１は、クラス図作成装置１が起動されると、クラス情報１００（図２）からクラス図において表示すべきすべてのクラスのクラス情報１００を読み込む。そして、画面表示処理部１１は、クラス情報１００のクラス関連情報１０３を参照し、クラス間に張られた関連の関連情報を関連データベース２００（図３）から取得し、クラス図を作成する。なお、関連データベース２００の表示／非表示２０５のデータは、初期値としてすべてが「表示」となっているものとする。
【００４９】
図４は、クラス図作成装置１が、初期状態のクラス図を表示装置２に表示させた例を示す図である。図４においては、白抜き三角（△）の矢印で示される継承関係と、継承関係以外の関連が併せて表示されている。
【００５０】
ここで、例えば、利用者により、画面上のクラスが表示された位置以外の場所で右クリック（マウス等による所定の操作）されると、クラス図作成装置１の画面表示処理部１１（関連表示／非表示処理部１１１）が、ポップアップメニューとして「継承関係以外の関連を表示しない」を表示させる（図５参照）。
【００５１】
そして、利用者により、ポップアップメニュー「継承関係以外の関連を表示しない」の画面がクリック等されることにより選択されると、画面表示処理部１１（関連表示／非表示処理部１１１）は、関連データベース２００の表示／非表示２０５のデータのうち、継承関係２０４が「Ｎｏ」のデータのすべてを「非表示」に変更する。
続いて、画面表示処理部１１（関連表示／非表示処理部１１１）は、変更した関連データベース２００に基づき、新たなクラス図（図６）を作成する。
【００５２】
図６は、クラス図作成装置１が、継承関係の関連だけを表示させてクラス図を作成した例を示す図である。
このように、継承関係の関連のみを残し、継承関係以外の関連を一斉に非表示とすることで、クラス図を再利用しようとする利用者は、継承関係を一瞥して把握できるようになる。
【００５３】
≪クラス包含表示機能≫
次に、クラス図作成装置１のクラス包含表示処理部１１２による、クラス図表示について、図７および図８を参照して説明する。
【００５４】
図７および図８は、クラス図作成装置１（クラス包含表示処理部１１２）が、継承関係のあるクラスについて順次、サブクラスを上位クラスに包含させてクラス図を作成し、表示装置２に表示させた例を示す図である。
【００５５】
まず、クラス図作成装置１の画面表示処理部１１は、クラス図作成装置１が起動されると、クラス情報１００（図２）からクラス図において表示すべきすべてのクラスのクラス情報１００を読み込む。そして、画面表示処理部１１は、クラス情報１００のクラス関連情報１０３を参照し、クラス間に張られた関連の関連情報を関連データベース２００（図３）から取得し、クラス図を作成する。なお、関連データベース２００の表示／非表示２０５のデータは、ここでは、継承関係２０４が「Ｎｏ」のデータのすべてが「非表示」であったものとする。このようにすることで、図７に示すような、継承関係の関連のみが表示されたクラス図が作成される。
【００５６】
ここで、例えば、利用者により、画面上の任意の１つのサブクラス（図７では、「サブサブクラスＸ」）が選択され、その選択されたサブクラスの表示された位置で右クリックされると、クラス図作成装置１の画面表示処理部１１（クラス包含表示処理部１１２）が、図８（ａ）に示すように、ポップアップメニューとして「サブクラスを上位クラスに包含させる」を表示させる。
【００５７】
そして、利用者により、ポップアップメニュー「サブクラスを上位クラスに包含させる」の画面がマウスにおけるクリック等の操作により選択されると、画面表示処理部１１（クラス包含表示処理部１１２）は、関連データベース２００を参照し、利用者により選択されたサブクラス（図８（ａ）の「サブサブクラスＸ」）のクラスが、ｔｏ２０３に格納された関連ＩＤ２０１のｆｒｏｍ２０２を参照して、そのサブクラスの１つ上の上位クラスのクラスＩＤ１０１を取得する。そして、画面表示処理部１１（クラス包含表示処理部１１２）は、取得したクラスＩＤ１０１が、ｔｏ２０３に格納された関連ＩＤ２０１のｆｒｏｍ２０２を参照して、さらにその上の上位クラスのクラスＩＤを取得する。この処理を繰り返すことで、画面表示処理部１１（クラス包含表示処理部１１２）は、利用者により選択されたサブクラスの上位のクラスを順次特定する。
【００５８】
続いて、画面表示処理部１１（クラス包含表示処理部１１２）は、利用者により選択されたサブクラスおよび特定した各上位クラスのクラス情報１００を参照し、その他の情報１０４に含まれる表示位置情報を、サブクラスが上位クラスに順次包含させるように再設定する。そして、画面表示処理部１１（クラス包含表示処理部１１２）は、図８（ｂ）に示すような、利用者により選択されたサブクラス（図８（ａ）の「サブサブクラスＸ」）を、上位クラスに順次包含させたクラス図として作成する。
【００５９】
図８（ｂ）のように、継承関係のあるクラスについて順次、利用者が注目するサブクラスを上位クラスに包含させてクラス図を作成することにより、クラス図作成装置１は、サブクラス（ここでは、「サブサブクラスＸ」）と継承関係にある上位クラスの内容が一瞥してわかるように表示することができる。
【００６０】
（関連表示／非表示機能とクラス包含表示機能とを組み合わせたクラス図作成処理）
ここで、クラス図作成装置１の関連表示／非表示機能（関連表示／非表示処理部１１１）とクラス包含表示機能（クラス包含表示処理部１１２）とを組み合わせて行うクラス図作成処理について説明する。
【００６１】
（第１例）
図９は、クラス図作成装置１（画面表示処理部１１）が、利用者が注目するサブクラスを１つ上の上位クラスに包含させて、さらに、継承関係以外の関連を表示させてクラス図を作成する例を示す図である。
【００６２】
まず、クラス図作成装置１の画面表示処理部１１は、クラス図作成装置１が起動されると、クラス情報１００（図２）からクラス図において表示すべきすべてのクラスのクラス情報１００を読み込む。そして、画面表示処理部１１は、クラス情報１００のクラス関連情報１０３を参照し、クラス間に張られた関連の関連情報を関連データベース２００（図３）から取得し、クラス図を作成する。なお、関連データベース２００の表示／非表示２０５のデータは、ここでは、継承関係２０４が「Ｎｏ」のデータのすべてが「非表示」であるものとする。このようにすることで、図９（ａ）に示すような、継承関係の関連のみが表示されたクラス図が作成される。なお、図９（ａ）では、継承関係の先祖（最上位）となるクラス（ルートクラス）が２つとなるクラス図の例を示している。ルートクラスが２つになること自体は、多重継承（子クラスが２つ以上の親クラスと継承関係にあること）ではないので、〔前提１〕を満たすものである。
【００６３】
ここで、例えば、利用者により、画面上の複数のサブクラスが選択され（図９（ａ）では、「サブサブクラスＬＸ」〜「サブサブクラスＬＵ」，「サブサブクラスＲＸ」〜「サブサブクラスＲＵ」）、その選択された複数のサブクラスのうちのいずれかが表示された位置で右クリックされると、クラス図作成装置１の画面表示処理部１１が、ポップアップメニューとして「サブクラスを１つ上の上位クラスに包含させ、その上位クラスの関連を表示させる」を表示させる。
【００６４】
そして、利用者により、ポップアップメニュー「サブクラスを１つ上の上位クラスに包含させ、その上位クラスの関連を表示させる」の画面がクリック等されることにより選択されると、画面表示処理部１１（クラス包含表示処理部１１２）は、関連データベース２００を参照し、利用者により選択されたサブクラス（図９（ａ）の「サブサブクラスＬＸ」〜「サブサブクラスＬＵ」，「サブサブクラスＲＸ」〜「サブサブクラスＲＵ」）のクラスがｔｏ２０３に格納された関連ＩＤ２０１のｆｒｏｍ２０２を参照して、そのサブクラスの１つ上の上位クラスのクラスＩＤ１０１を取得する。図９（ａ）においては、１つ上の上位クラスとして、サブクラスＬＡ，サブクラスＬＢ，サブクラスＲＡ，サブクラスＲＢが抽出される。
【００６５】
そして、画面表示処理部１１（クラス包含表示処理部１１２）は、利用者により選択されたサブクラスおよび特定した各上位クラスのクラス情報１００を参照し、その他の情報１０４に含まれる表示位置情報を、サブクラスが１つ上の上位クラスに包含させるように再設定する。
【００６６】
次に、画面表示処理部１１（関連表示／非表示処理部１１１）は、特定した各上位クラス間を繋ぐ関連（継承関係以外の関連）を、関連データベース２００のｆｒｏｍ２０２とｔｏ２０３とを参照することにより抽出する。ここでは、上位クラス間において、サブクラスＬＢとサブクラスＲＡとの間に、関連（継承関係以外の関連）が抽出されたものとする。
【００６７】
続いて、画面表示処理部１１（関連表示／非表示処理部１１１）は、抽出された関連の関連データベース２００の表示／非表示２０５を「表示」に変更する。
【００６８】
そして、画面表示処理部１１は、変更したクラス情報１００および関連データベース２００に基づき、図９（ｂ）に示すような、新たなクラス図を作成する。
【００６９】
このようにすることで、クラス図作成装置１は、利用者が注目するサブクラスを上位クラスに包含させて、継承関係にある上位クラスの内容が一瞥してわかるようにした上で、その上位クラスの関連（継承関係以外の関連）を表示させることができる。
【００７０】
（第２例）
ここで、第１例においては、クラス図作成装置１の画面表示処理部１１が、サブクラスを１つ上の上位のクラスに包含させる処理と、上位クラスの関連を表示させる処理との両方の処理を行った後に、新たなクラス図を作成するものとした。第２例においては、まず、１つ上の上位クラスに包含させる処理を行って、新たなクラス図を表示させた上で、上位クラスの関連（継承関係以外の関連）を表示させる処理を利用者の選択により実行するようにする。以下、具体的に説明する。
【００７１】
図１０は、クラス図作成装置１のクラス包含表示処理部１１２の処理により、継承関係のあるクラスのサブクラスを上位クラスに包含させ、継承関係以外の関連を非表示とするクラス図の例を示している。図１０の例では、２つの上位クラス（「UsageSpecification」，「Usage」）が表示されている。
【００７２】
この表示画面において、例えば、利用者により、画面上の複数の上位クラスのうちの１つ（例えば、「UsageSpecification」）が選択され、その選択された上位クラスが表示された位置で右クリックされると、クラス図作成装置１の画面表示処理部１１（関連表示／非表示処理部１１１）が、図１１に示すように、ポップアップメニューとして「関連を表示する」を表示させる。
【００７３】
そして、利用者により、ポップアップメニュー「関連を表示する」の画面がクリック等されることにより選択されると、画面表示処理部１１（関連表示／非表示処理部１１１）は、関連データベース２００を参照し、利用者により選択された上位クラス（図１１の「UsageSpecification」）のクラスがｆｒｏｍ２０２またはｔｏ２０３に格納された関連ＩＤ２０１を抽出する。
【００７４】
続いて、画面表示処理部１１（関連表示／非表示処理部１１１）は、抽出した関連ＩＤ２０１の関連データベース２００の表示／非表示２０５のデータを「表示」に変更する。
そして、画面表示処理部１１（関連表示／非表示処理部１１１）は、変更した関連データベース２００に基づき、図１２に示すような、新たなクラス図を作成する。
【００７５】
なお、画面表示処理部１１（関連表示／非表示処理部１１１）がポップアップメニューとして「関連を表示する」を表示させるときに、画面表示処理部１１が、関連データベース２００を参照し、利用者により選択された上位クラス（図１０の「UsageSpecification」）のクラスがｆｒｏｍ２０２またはｔｏ２０３に格納された関連ＩＤ２０１を抽出し、図１３に示すように、抽出された関連先（ここでは、「Usage」）を明示（複数抽出された場合は、複数のクラスを明示）して、表示する関連のあるクラスを利用者に選択させて、図１２に示すようなクラス図を表示させるようにしてもよい。
【００７６】
≪関連放射状表示機能≫
次に、図１４および図１５を参照して、クラス図作成装置１の関連放射状表示処理部１１３が作成するクラス図について説明する。クラス図作成装置１の関連放射状表示処理部１１３は、クラス図上で注目したクラスの上位クラスを順次同心状に包含させて表示し、さらに、各クラスが持つ継承関係以外の関連を放射状に（周囲に）配置して関係するクラスを表示させてクラス図を作成する。
【００７７】
画面表示処理部１１（関連放射状表示処理部１１３）は、前記した図７に示した継承関係のみが表示されたクラス図において、例えば、利用者により、画面上の任意の１つのサブクラス（ここでは、図７の「サブサブクラスＸ」）が選択され、その選択されたサブクラスの表示された位置で右クリックされると、図１４に示すように、ポップアップメニューとして「サブクラスを上位クラスに包含させて、すべての関連を表示する」を表示させる。
【００７８】
なお、画面表示処理部１１は、関連放射状表示処理部１１３とクラス包含表示処理部１１２による処理を並行処理し、利用者により、画面上の任意の１つのサブクラス（ここでは、図７の「サブサブクラスＸ」）が選択され、その選択されたサブクラスの表示された位置で右クリックされると、図８（ａ）に示す「サブクラスを上位クラスに包含させる」ポップアップメニューと、図１４に示す「サブクラスを上位クラスに包含させて、すべての関連を表示する」の両方を選択可能に表示させ、利用に選択させるようにしてもよい。
【００７９】
そして、利用者により、ポップアップメニュー「サブクラスを上位クラスに包含させて、すべての関連を表示する」の画面がクリック等されることにより選択されると、画面表示処理部１１（関連放射状表示処理部１１３）は、関連データベース２００を参照し、利用者により選択されたサブクラス（図１４の「サブサブクラスＸ」）のクラスがｔｏ２０３に格納された関連ＩＤ２０１のｆｒｏｍ２０２を参照して、そのサブクラスの１つ上の上位クラスのクラスＩＤ１０１を取得する。そして、画面表示処理部１１（関連放射状表示処理部１１３）は、取得したクラスＩＤ１０１がｔｏ２０３に格納された関連ＩＤ２０１のｆｒｏｍ２０２を参照して、さらにその上の上位クラスのクラスＩＤを取得する。この処理を繰り返すことで、画面表示処理部１１（関連放射状表示処理部１１３）は、利用者により選択されたサブクラスの上位クラスを順次特定する。ここで、画面表示処理部１１（関連放射状表示処理部１１３）は、上位クラスとしてサブクラスＡ、さらにその上位クラスとして上位クラスＪを特定する。
【００８０】
続いて、画面表示処理部１１（関連放射状表示処理部１１３）は、利用者により選択されたサブクラス（図１４の「サブサブクラスＸ」）および特定した各上位クラス（「サブクラスＡ」，「上位クラスＪ」）のクラス情報１００を参照し、その他の情報１０４に含まれる表示位置情報を、サブクラスが上位クラスを順次同心状に包含されるように再設定する。
【００８１】
次に、画面表示処理部１１（関連放射状表示処理部１１３）は、関連データベース２００を参照し、特定した上位クラス（「サブクラスＡ」，「上位クラスＪ」）がｆｒｏｍ２０２またはｔｏ２０３に格納された関連ＩＤ２０１を抽出する。そして、画面表示処理部１１（関連放射状表示処理部１１３）は、特定した上位クラスと、その抽出した関連ＩＤ２０１の関連（継承関係以外の関連）により繋がるクラスを抽出する。
【００８２】
続いて、画面表示処理部１１（関連放射状表示処理部１１３）は、抽出した関連ＩＤ２０１の関連データベース２００の表示／非表示２０５のデータを「表示」に変更する。
そして、画面表示処理部１１（関連放射状表示処理部１１３）は、関連データベース２００の該当する関連ＩＤ２０１のその他の情報２０６に含まれる関連の表示位置情報を、特定した上位クラス（「サブクラスＡ」，「上位クラスＪ」）と繋がるクラスが放射状に（周囲に）配置される位置に設定する。また、画面表示処理部１１（関連放射状表示処理部１１３）は、特定した上位クラスと関連（継承関係以外の関連）による繋がるクラスのクラス情報１００（図２）を参照し、その他の情報２０６に含まれる表示位置情報を放射状に（周囲に）配置された関連と接続される位置に設定する。
【００８３】
そして、画面表示処理部１１（関連放射状表示処理部１１３）は、変更したクラス情報１００および関連データベース２００に基づき、図１５に示すような、新たなクラス図を作成する。
【００８４】
このようにすることで、クラス図作成装置１は、クラス図上で注目するクラスの上位クラスを順次同心状に包含させて表示させ、さらに、各クラスが持つ継承関係以外の関連を放射状に（周囲に）配置して関連するクラスを表示させる。よって、利用者が注目するサブクラスを上位クラスに包含させて、継承関係にある上位クラスの内容が一瞥してわかるようにした上で、上位クラスの関連（継承関係以外の関連）も一瞥してわかるようにすることができる。
【００８５】
以上説明したように、本実施形態に係る、クラス図作成装置１およびクラス図作成プログラムによれば、注目するクラスと継承関係にある上位クラスと、その上位クラスが持つ関連（継承関係以外の関連）とを、簡略に表示して一瞥してわかるようにすることができる。よって、クラス図を再利用する立場の者にとって、複雑なクラスと関連をたどっていく必要をなくし、継承関係と、継承関係以外の関連とを直感的にわかりやすく認識させることができる。
【符号の説明】
【００８６】
１      クラス図作成装置
２      表示装置
３      入力装置（入力手段）
１０    制御部
１１    画面表示処理部（画面表示処理手段）
１２    入出力情報処理部
２０    入出力部
３０    メモリ部
４０    記憶部（記憶手段）
１１１  関連表示／非表示処理部
１１２  クラス包含表示処理部
１１３  関連放射状表示処理部
１００  クラス情報
２００  関連データベース
【図１】
0005636017.tif 000002
【図２】
0005636017.tif 000003
【図３】
0005636017.tif 000004
【図４】
0005636017.tif 000005
【図５】
0005636017.tif 000006
【図６】
0005636017.tif 000007
【図７】
0005636017.tif 000008
【図８】
0005636017.tif 000009
【図９】
0005636017.tif 000010
【図１０】
0005636017.tif 000011
【図１１】
0005636017.tif 000012
【図１２】
0005636017.tif 000013
【図１３】
0005636017.tif 000014
【図１４】
0005636017.tif 000015
【図１５】
0005636017.tif 000016
【図１６】
0005636017.tif 000017