JP5189880B2 - クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置 - Google Patents
クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置 Download PDFInfo
- Publication number
- JP5189880B2 JP5189880B2 JP2008096647A JP2008096647A JP5189880B2 JP 5189880 B2 JP5189880 B2 JP 5189880B2 JP 2008096647 A JP2008096647 A JP 2008096647A JP 2008096647 A JP2008096647 A JP 2008096647A JP 5189880 B2 JP5189880 B2 JP 5189880B2
- Authority
- JP
- Japan
- Prior art keywords
- class
- information
- input
- service interface
- relationship
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
コンポーネント分割の指針としては、同一の機能を1つのコンポーネントに集約し、その機能の変更によって起こる変更箇所を最小限に抑えるというものや、コンポーネント間の関係を疎にすることで、コンポーネント内部の変更の影響が他のコンポーネントに波及することを抑え、また、コンポーネントの独立性を高めて再利用を可能にするといったものがある。
図1に示すように、本実施形態に係るクラス構造生成装置1は、情報の処理を行う処理部10、情報を記憶する記憶部20、情報の入力を行う入力部30および情報の表示を行う表示部40を有してなる。処理部10は、入力部30から情報を取得し、記憶部20に情報を記憶したり、記憶部20から情報を取得する。また、処理部10は、表示部40に情報を表示させる。
処理部10は、コンポーネント体系定義編集部11、サービス責務定義編集部12、クラス構造テンプレート適用部13、重複クラス構造検出部14、クラス構造調整部15およびクラス構造表示処理部16を有してなる。各部11〜16の機能については、図31から図39を参照して後記する。記憶部20は、コンポーネント体系定義記憶部21、サービス責務定義記憶部22、クラス構造テンプレート記憶部23、クラス構造記憶部24および重複クラス構造記憶部25を有する。各記憶部21〜25の詳細は、図2を参照して後記する。なお、入力部30、コンポーネント体系定義編集部11およびサービス責務定義編集部12が、請求項における入力部に該当する。また、重複クラス構造検出部14およびクラス構造調整部15が請求項におけるクラス構造調整部に該当する。
コンポーネント体系定義記憶部21は、入力部30から入力された情報を基に、コンポーネント体系定義部編集部11(図1参照)によって、作成・編集されたコンポーネント体系に関する情報を格納している。図3に示すように、コンポーネント体系定義記憶部21は、コンポーネント定義表211、サービスインタフェース定義表212、テーブル定義表213、サービスインタフェース間依存関係定義表214、サービスインタフェース・テーブル間依存関係定義表215を有する。
クラス構造生成装置1は、プロセッサ51、主記憶装置53、補助記憶装置52、キーボードやマウスなどの入力装置54、およびディスプレイなどの表示装置55を有する。
図1における各部11〜16は、補助記憶装置52に記憶されているクラス構成生成プログラムが主記憶装置53に展開され、プロセッサ51によって実行されることによって具現化する。
図4は、本実施形態に係るコンポーネント体系表示画面の例を示す図である。
図4のコンポーネント表示画面300は、図2を参照して前記した表211〜215,221,222,231〜235が入力部を介して入力されたときのコンポーネント体系を模式的に表示したものである。
図4において、設計したいソフトウェアは、「コンポーネント1」、「コンポーネント2」および「コンポーネント3」からなる。「コンポーネント1」は、外部からの入出力を受け付ける「サービスインタフェース1」を備え、そしてこの「サービスインタフェース1」が参照する「テーブル1」を有する。「コンポーネント2」は、「サービスインタフェース1」から入力を受け付ける「サービスインタフェース2」を有し、「コンポーネント3」は、「サービスインタフェース1」から入力を受け付ける「サービスインタフェース3」を有する。
図5のクラス構造表示画面400では、「コンポーネント1」〜「コンポーネント3」を構成するクラスである「クラス1」〜「クラス7」と「テーブル1」との関係が表示されている。なお、図5における「コンポーネント体系表示」ボタン420が選択入力されると、図4に示す画面へ戻る。
図6は、金融商品契約ソフトウェアにおける表示コンポーネント体系の例を示す図である。
図6に示す表示コンポーネント体系540は、表示部40(図1)のコンポーネント体系表示画面に表示される。
図6に示す表示コンポーネント体系40は、「保全異動コンポーネント」、「契約情報管理コンポーネント」および「共通機能コンポーネント」からなる。
「保全異動コンポーネント」は、サービスインタフェースとして「契約変更」サービスインタフェースおよび「異動請求進捗照会」サービスインタフェースを含み、テーブルとして「異動請求進捗管理情報」が含まれている。
また、「契約情報管理コンポーネント」には、「契約情報取得」サービスインタフェースおよび「契約情報更新」サービスインタフェースが含まれる。
そして、「共通機能コンポーネント」には、「帳票作成」サービスインタフェースが含まれる。
図7は、金融商品契約ソフトウェアにおける表示クラス構造の例を示す図である。
図7では、各コンポーネントにおけるクラスとテーブルとの関係が表示されている。各クラスに関する詳細な説明は省略するが、符号551に示す「画面入力情報チェック」を示すクラスと、符号552に示す「画面入力情報チェック」を示すクラスとは、同一の機能を有するクラスである。
また、符号553に示す「契約変更画面入力情報取得」を示すクラスと、符号554に示す「異動請求進捗管理情報取得」を示すクラスとは、画面入力情報の機能を共通に有する。
図8では、図7において同一の機能を有していたクラス551,552が、1つのクラス561(「画面入力情報チェック」クラス)に集約されている。このように同一の機能を有する複数のクラスを1つのクラスに集約することを本実施形態では「統合」と記載する)。
また、図8では、図7において共通の機能を有していたクラス553,554から、共通の機能であるクラス564(「画面入力情報取得」クラス)が抽出され、図7のクラス553,クラス554から「画面入力情報取得」の機能が抽出された後の機能を有するクラス562(「契約変更画面入力情報取得」クラス)およびクラス563(「異動請求進捗照会画面入力情報取得」クラス)は、新たに生成されたクラス564(画面入力情報取得)クラス)へ接続されている。クラス564は、図7のクラス553,554における共通の機能を抽出したクラスである。このように共通の機能を有する複数のクラスから、共通部分を抜き出したクラスを生成することを本実施形態では「抽出」と記載する。
図9は、コンポーネント定義表の例を示す図である。
コンポーネント定義表211は、コンポーネントに関する情報を格納するための表であり、入力部30(図1)およびコンポーネント体系定義編集部11(図1)を介してユーザが作成・編集する表である。
コンポーネント定義表211は、コンポーネントを一意に識別するための「コンポーネントID」と、コンポーネントの名称を表す「コンポーネント名」とをフィールドとして有する。
図10は、サービスインタフェース定義表の例を示す図である。
サービスインタフェース定義表212は、サービスインタフェースに関する情報を格納するための表であり、入力部30(図1)およびコンポーネント体系定義編集部11(図1)を介してユーザが作成・編集する表である。
サービスインタフェース定義表212は、サービスインタフェースを一意に識別するための「サービスインタフェースID」と、サービスインタフェースの名称を表す「サービスインタフェース名」と、サービスインタフェースが所属するコンポーネントを指定するための「所属コンポーネントID」とをフィールドとして有する。
図11は、テーブル定義表の例を示す図である。
テーブル定義表213は、テーブルに関する情報を格納するための表であり、入力部30(図1)およびコンポーネント体系定義編集部11(図1)を介してユーザが作成・編集する表である。
テーブル定義表213は、テーブルを一意に識別するための「テーブルID」と、テーブルの名称を表す「テーブル名」と、テーブルが所属するコンポーネントを指定するための「所属コンポーネントID」とをフィールドとして有する。
図12は、サービスインタフェース間依存関係定義表の例を示す図である。
サービスインタフェース間の依存関係とは、サービスインタフェースを公開している機能が他の機能を呼び出すために、他の機能が有するサービスインタフェースを参照することを意味する。すなわち、サービスインタフェース間依存関係定義表214は、サービスインタフェース間の依存関係に関する情報を格納する表であり、入力部30(図1)およびコンポーネント体系定義編集部11(図1)を介してユーザが作成・編集する表である。
サービスインタフェース間依存関係定義表214は、サービスインタフェース間の関係を一意に識別するための「サービスインタフェース間依存関係ID」と、サービスインタフェース間依存関係元のサービスインタフェースIDである「関係元サービスインタフェースID」と、サービスインタフェース間依存関係の関係先のサービスインタフェースIDである「関係先サービスインタフェースID」とをフィールドとして有する。
図13は、サービスインタフェース・テーブル間依存関係定義表の例を示す図である。
サービスインタフェースとテーブルの間の依存関係とは、サービスインタフェースを公開している機能がテーブルを使用することを意味する。すなわち、サービスインタフェース・テーブル間依存関係定義表215は、サービスインタフェースとテーブルとの間の依存関係に関する情報を格納する表であり、入力部30(図1)およびコンポーネント体系定義編集部11(図1)を介してユーザが作成・編集する表である。
サービスインタフェース・テーブル間依存関係定義表215は、サービスインタフェース・テーブル間依存関係を一意に識別するための「サービスインタフェース・テーブル間依存関係ID」と、サービスインタフェース・テーブル間依存関係の関係元のサービスインタフェースIDである「関係元サービスインタフェースID」と、サービスインタフェース・テーブル間依存関係の関係先のテーブルIDである「関係先テーブルID」を有する。
図14は、サービス入出力定義表の例を示す図である。
図14に示すように、サービス入出力定義表221は、サービスインタフェースの機能を定義するための表である。すなわち、サービス入出力定義表221は、該当するサービスインタフェースにおける情報の入出力方法を特定するための表であり、入力部30(図1)およびサービス責務定義編集部12(図1)を介してユーザが作成・編集する表である。
サービス入出力定義表221は、「サービスインタフェースID(Identification)」、「画面入力」、「XML(Extensible Markup Language)ファイル入力」、「テキストファイル入力」、「画面出力」、「帳票出力」、「CSV(Comma Separated Values)ファイル出力」、「XMLファイル出力」などをフィールドとして有している。これらの各フィールドに相当する欄には、該当するサービスインタフェースが有する機能を「TRUE」または「FALSE」で規定している。例えば、図14の1行目の「S001」をサービスインタフェースIDに有するサービスインタフェースは、「画面入力」および「画面出力」を行うサービスインタフェースである。
テーブル使用方法定義表222は、サービスインタフェースがテーブルを使用するときの使用方法を定義するための表である。すなわち、テーブル使用方法定義表222は、サービスインタフェースがテーブルを参照する際の処理内容を特定するための表であり、入力部30(図1)およびサービス責務定義編集処理部12(図1)を介してユーザが作成・編集する表である。
テーブル使用方法定義表222は、「サービスインタフェース・テーブル間依存関係ID」、「テーブルデータ作成」、「テーブルデータ参照」、「テーブルデータ検索参照」、「テーブルデータ更新」、「テーブルデータ削除」などをフィールドとして有している。これらの各フィールドに相当する欄には、該当するサービスインタフェースがテーブルを使用する際の機能を「TRUE」または「FALSE」で規定している。例えば、図15の1行目の「STR001」をサービスインタフェース・テーブル間依存関係IDに該当するサービスインタフェース・テーブル間依存関係は、「テーブルデータ作成」である。
図16は、クラス構造テンプレート定義表の例を示す図である。
クラス構造テンプレート定義表231は、クラス設計を行うためのクラス構造のテンプレートを定義するためのテーブルであり、入力部30(図1)およびコンポーネント体系定義編集部11(図1)を介してユーザが作成・編集する表である。クラス構造のテンプレートは、図17〜図20で後記するクラステンプレート定義表232、クラス間依存関係テンプレート定義表233、クラス・テーブル間依存関係テンプレート定義表234、クラス構造テンプレート・クラステンプレート間依存関係定義表235などのテンプレートと組み合わせて使用される。
図17は、クラステンプレート定義表の例を示す図である。
クラステンプレート定義表232は、クラスに用いられる情報を機能毎に定めたテンプレート(クラステンプレートと記載)を格納する表であり、入力部30(図1)およびコンポーネント体系定義編集部11(図1)を介してユーザが作成・編集する表である。
クラステンプレート定義表232は、以下の各情報などをフィールドとして有する。「クラステンプレートID」は、クラステンプレートを一意に識別するための情報である。「生成クラス名」は、クラステンプレートを用いて定義されたクラスの名称である。「名称取得対象」は、クラステンプレート適用の対象となるサービスインタフェース名や、テーブル名などが格納されており、サービスインタフェース名や、テーブル名が複数(サービス11,サービス12,などのように)格納されている。「統合」は、クラス構造の調整(前記した統合および抽出)において、統合の対象となるか否かを「TRUE」および「FALSE」で指定する情報である(統合可能情報)。「抽出」は、クラス構造の調整で抽出の対象とするか否かを「TRUE」または「FALSE」で指定する情報である(抽出可能情報)。なお、符号2321,2322については後記する。
図18は、クラス間依存関係テンプレート定義表の例を示す図である。
クラス間依存関係テンプレート定義表233は、図16で定義されたクラステンプレート間の依存関係を示す表であり、入力部30(図1)およびコンポーネント体系定義編集部11(図1)を介してユーザが作成・編集する表である。クラス間依存関係テンプレート定義表233は、クラス間の依存関係に関するテンプレートを一意に識別するための「クラス間依存関係テンプレートID」と、対象となるクラス間依存関係テンプレートの関係元となるクラステンプレートIDである「関係元クラステンプレートID」、対象となるクラス間依存関係の関係先となるクラステンプレートIDである「関係先クラステンプレートID」、対象となるテンプレートIDである「テンプレートID」を有する。
図19は、クラス・テーブル間依存関係テンプレート定義表の例を示す図である。
クラス・テーブル間依存関係テンプレート定義表234は、クラステンプレートと、テーブルとの間の依存関係を示す表であり、入力部30(図1)およびコンポーネント体系定義編集部11(図1)を介してユーザが作成・編集する表である。クラス・テーブル間依存関係テンプレート定義表234は、以下の各情報をフィールドとして有する。「クラス・テーブル間依存関係テンプレートID」は、クラステンプレート・テーブル間依存関係に関するテンプレートを一意に識別するための情報である。「関係元クラステンプレートID」は、クラステンプレート・テーブル間依存関係の関係元となるクラステンプレートIDである。「テンプレートID」は、図16におけるクラステンプレートと同様である。
図20は、クラス構造テンプレート・クラステンプレート間依存関係定義表の例を示す図である。
クラス構造テンプレート・クラステンプレート間依存関係定義表235は、図16の「テンプレートID」と、図17の「クラステンプレートID」とを関係付けるための表であり、入力部30(図1)およびコンポーネント体系定義編集部11(図1)を介してユーザが作成・編集する表である。クラス構造テンプレート・クラステンプレート間依存関係定義表235は、図16における「テンプレートID」と、図17における「クラステンプレートID」とが対応付けられて格納されている。
図21は、クラス定義表の例を示す図である。
クラス定義表241は、クラスに関する情報を格納するための表である。
クラス定義表241は、クラスを一意に識別するための「クラスID」と、クラスの名称を表す「クラス名」と、クラスが所属するコンポーネントのコンポーネントID(図9)である「所属コンポーネントID」と、対象となるクラステンプレートを示す「テンプレートクラスID」とをフィールドとして有する。
図22は、クラス間依存関係定義表の例を示す図である。
クラス間依存関係定義表242は、任意の2つクラス間の依存関係に関する情報を格納する表である。クラス間の依存関係とは、クラスの中で他のクラスを利用していることを意味する。クラス間依存関係定義表242は、以下の情報をフィールドとして有する。「クラス間依存関係ID」は、クラス間の依存関係を一意に識別するための情報である。「関係元クラスID」は、当該クラス間依存関係の関係元のクラスIDである。「関係先クラスID」は、、当該クラス間依存関係の関係先のクラスIDである。「抽出関係」は、関係元のクラスから関係先のクラスへの抽出関係の有無を「TRUE」および「FALSE」で示す。
図23は、クラス・テーブル間依存関係定義表の例を示す図である。
クラス・テーブル間依存関係定義表243は、クラスと、テーブルとの依存関係に関する情報を格納する表である。クラス・テーブル間の依存関係とは、クラスの中でテーブルの利用があることを意味する。クラス・テーブル間依存関係定義表243は、以下の情報をフィールドとして有する。「クラス・テーブル間依存関係ID」は、クラスと、テーブル間の依存関係を一意に識別するため情報である。「関係元クラスID」は、当該依存関係における関係元のクラスIDである。「関係先テーブルID」は、当該依存関係の関係先のテーブルIDである。
図24は、クラス・サービスインタフェース間依存関係定義表の例を示す図である。
クラス・サービスインタフェース間依存関係定義表244は、クラスと、サービスインタフェースとの依存関係に関する情報を格納する表である。クラス・サービスインタフェース間の依存関係とは、クラスはサービスインタフェースが提供する機能の1つであることを意味し、クラスが1つのサービスインタフェースのみの機能である場合にクラス・サービスインタフェース間の依存関係を定義する。クラス・サービスインタフェース間依存関係定義表244は、以下の情報をフィールドとして有する。「クラス・サービスインタフェース間依存関係ID」は、クラスと、サービスインタフェースとの間の依存関係を一意に識別するための情報である。「関係元クラスID」は、当該依存関係における関係元のクラスIDである。「関係先サービスインタフェースID」は、当該依存関係における関係先のサービスインタフェースIDである。
図25は、重複クラスグループ表の例を示す図である。
重複クラスグループ表251は、前記した統合や、抽出といったクラス調整の際に用いられる表であり、後記する重複クラス構造検出処理(図31参照)で生成される表である。
重複クラスグループ情報370は、以下の情報をフィールドとして有する。「重複クラスグループID」は、重複クラス検出部127において、重複(クラスの機能が同一もしくは共通の機能を含む)クラスとして検出されたクラスが属するグループ(重複クラスグループ)を一意に識別するための情報である。重複クラスグループは、重複クラス検出部において付されるグループであり、機能が重複しているクラスが属するグループである。クラスと重複クラスグループとは、図26で後記する重複クラス表252において管理されている。「所属コンポーネントID」は、重複クラスグループでまとめられたクラスが所属するコンポーネントIDである。「クラステンプレートID」は、重複クラスグループでまとめられたクラスを定義したクラステンプレートIDを表す。「調整方法」は、「統合」、「抽出」などのクラスの調整方法に関する情報が格納される。
図26は、重複クラス表の例を示す図である。
重複クラス表252は、図25で説明した重複クラスグループに属するクラスが示されるための表である。
重複クラス情報372は、「重複クラスグループID」と、当該「重複クラスグループID」に属するクラスIDとが対応付けられて格納されている。
図27は、重複関係元クラス表の例を示す図である。
重複関係元クラス表253では、重複クラス検出部において検出された重複クラスの関係元のクラスに関する情報を格納するための表である。
重複関係元クラス表253は、重複クラスを呼び出しているクラスIDである「重複クラス関係元クラスID」と、「重複クラスグループID」とをフィールドとして有する。
図28は、重複関係先クラス表の例を示す図である。
重複関係先クラス表254では、重複クラス検出部において検出された重複クラスの関係先のクラスに関する情報を格納するための表である。
重複関係先クラス表254は、重複クラスが呼び出されているクラスのID(図23)である「重複クラス関係先クラスID」と、「重複クラスグループID」とをフィールドとして有する。
図29は、重複関係先テーブル表の例を示す図である。
重複関係先テーブル表255は、重複クラスに含まれたクラスの関係先テーブルを格納するための表である。重複関係先テーブル表255は、重複クラスの含まれたクラスの関係先であったテーブルIDである「重複クラス関係先テーブルID」と、当該重複クラスが属する重複クラスグループIDである「重複クラスグループID」とをフィールドとして有する。
図30は、統合クラス表の例を示す図である。
統合クラス表256は、「重複クラスグルーブID」に示される重複クラスグループを、新たなクラスとしたときのクラスIDが「統合クラスID」として格納されている。
図31は、本実施形態に係るクラス構造生成処理の全体的な流れを示すフローチャートである。
クラス構造生成処理が起動されると、処理部10は、表示部40に編集メニュー画面(図41で後記)を表示させ、入力部30を介して情報が入力されることによって、コンポーネント体系定義編集処理部11およびサービス責務定義編集処理部12が、定義編集処理を行う(S101)。
そして、重複クラス構造検出部14が、重複クラス構造検出処理を行う(S103)。ステップS103の処理は、図37および図38を参照して後記する。
続いて、クラス構造調整部15が、クラス構造調整処理を行う(S104)。ステップS104の処理は、図39を参照して後記する。
そして、クラス構造表示処理部16は、生成されたクラス構造を表示部40に表示させる(S105)。クラス構造表示画面の例は、図5、図7および図8で前記した通りである。
次に、図31のステップS102であるクラス構造テンプレート適用処理を説明する。
図32は、クラス構造テンプレート適用処理の全体的な流れを示すフローチャートである。
まず、クラス構造テンプレート適用部13は、サービスインタフェースの存在に基づくテンプレート適用処理を行う(S201)。これにより、サービスインタフェースに対応するクラスに関する情報が生成される。ステップS201の処理は、図33を参照して後記する。
そして、クラス構造テンプレート適用部13は、サービスインタフェース・テーブル間依存関係に基づくテンプレート適用処理を行う(S202)。ステップS202の処理は、図34を参照して後記する。これにより、テーブル参照のためのクラスに関する情報が生成される。
続いて、クラス構造テンプレート適用部13は、サービスインタフェース間依存関係に基づくテンプレート適用処理を行う(S203)。ステップS203の処理は、図35を参照して後記する。これにより、サービスインタフェース間を仲介するクラスに関する情報が生成される。
そして、クラス構造テンプレート適用部13は、サービスインタフェースに基づくテンプレート適用処理を行う(S204)。ステップS204の処理は、図36を参照して後記する。これにより、サービスインタフェースの入出力を実際に行うクラスに関する情報が生成される。
図33は、本実施形態に係るサービスインタフェースの存在に基づくテンプレート適用処理(図32のステップS201)の流れを示すフローチャートである。
まず、クラス構造テンプレート適用部13は、サービスインタフェース定義表212(図10)を参照して、サービスインタフェースIDを1つ選択する(S301)。
続いて、クラス構造テンプレート適用部13は、ステップS301で選択したサービスインタフェースIDに対応するサービスインタフェース名と、所属コンポーネントIDをサービスインタフェース定義表212から取得する(S302)
ステップS302の次に、クラス構造テンプレート適用部13は、コンポーネント定義表211(図9)を参照して、取得した所属コンポーネントIDに対応するコンポーネント名を取得する。
さらに、クラス構造テンプレート適用部13は、取得したサービスインタフェース名をキーとして、クラステンプレート定義表232(図17)の「名称取得対象」を検索し、「生成クラス名」に格納されている文字列(ここでは、「サービス」)と、対応しているクラステンプレートIDとを取得する。さらに、クラス構造テンプレート適用部13は、取得した「生成クラス名」の文字列の前に、ステップS302で取得したサービスインタフェース名を付したクラス名(例えば、サービスインタフェース名が「サービス11」であれば、「サービス11サービス」)を生成する。つまり、クラス構造テンプレート適用部13は、サービスインタフェース名を基に、クラス名を生成する(S303)。
以上で、本処理におけるクラスに関する情報の生成・格納が終了する。
ステップS304の次に、クラス構造テンプレート適用部13は、クラス・サービスインタフェース間の依存関係に関する情報を生成し、生成した情報をクラス・サービスインタフェース間依存関係定義表244(図24)に格納する(S305)。具体的には、クラス構造テンプレート適用部は、ステップS301で取得したサービスインタフェースIDと、ステップS304の段階で発行したクラスIDとに対して、クラス・サービスインタフェース間依存関係IDを発行し、これら3つのデータを組としてクラス・サービスインタフェース間依存関係定義表244に格納する。格納は、クラス構造テンプレート適用部13が、発行したクラス・サービスインタフェース依存関係IDを、「クラス・サービスインタフェース依存関係ID」に格納し、ステップS305で発行したクラスIDを「関係元クラスID」に格納し、ステップS302で取得したサービスインタフェースIDを「関係先サービスインタフェースID」に格納する。
以上で、本処理における生成したクラスと、生成元であるサービスインタフェースとの関係を格納する処理が終了する。
ステップS306の結果、存在する場合(S306→Yes)、クラス構造テンプレート適用部13は、ステップS303へ処理を戻し、当該名称取得対象に対応する生成クラス名に関しステップS303〜S305の処理を行う。なお、図17の例に従えば、次の生成クラス名は、「コントローラ」となり、生成されるクラス名は、「サービス11コントローラ」となる。
このような処理により、サービスインタフェースに係り、機能の異なる(「サービス」と「コントローラ」)クラスを生成することができる。
ステップS306の結果、存在しない場合(S306→No)、クラス構造テンプレート適用部13は、以下の手順で、生成したクラス間の依存関係に関する情報の生成・格納を行う。
まず、クラス構造テンプレート適用部は、ステップS304の段階で発行したクラスIDのうち、クラス定義表241(図21)において同一の所属コンポーネントIDを有するクラスIDの対に対し、クラス間依存関係IDを発行すると、これら3つのデータを組としてクラス間依存関係定義表242(図22)の該当する項目へ格納する。具体的には、クラス構造テンプレート適用部13は、発行したクラス間依存関係IDを、クラス間依存関係定義表242の「クラス間依存関係ID」に格納し、ステップS305の段階で発行したクラスIDを「関係元クラスID」に格納し、ステップS305の段階で発行したもう一方のクラスIDを「関係先クラスID」に格納する。なお、このとき、クラス構造テンプレート適用部13は、「抽出関係」には、「FALSE」を格納する。また、ステップS303〜ステップS305の処理を一回しか行わなかった場合(つまり、サービスインタフェースに関するクラスを1つしか生成しなかった場合)は、ステップS307の処理は省略される。
以上で、生成したクラス間の依存関係に関する情報の生成・格納が終了する。
ステップS308の結果、存在する場合(S308→Yes)、クラス構造テンプレート適用部13は、ステップS301の処理へ戻って、次のサービスインタフェースIDを選択する。
ステップS308の結果、存在しない場合(S308→No)、クラス構造テンプレート適用部13は、図32のステップS202へ進む。
図34は、本実施形態に係るサービスインタフェース・テーブル間依存関係に基づくテンプレート適用処理(図32のステップS202)の流れを示すフローチャートである。
次に、クラス構造テンプレート適用部13は、サービスインタフェース・テーブル間依存関係定義表215(図13)を参照して、サービスインタフェース・テーブル間依存関係IDを1つ選択する(S401)。同時に、サービスインタフェース・テーブル間依存関係IDに対応している、関係元サービスインタフェースIDおよび関係先テーブルIDをも取得する(S402)。
続いて、クラス構造テンプレート適用部13は、取得したサービスインタフェース・テーブル間依存関係IDをキーとして、テーブル使用方法定義表222(図15)を参照して、「テーブルデータ作成」、「テーブルデータ参照」、「テーブルデータ検索参照」、「テーブルデータ更新」および「テーブルデータ削除」に格納されている各データ(テーブル使用方法データ)を参照する(S403)。
そして、クラス構造テンプレート適用部13は、以下の手順でクラスに関する情報を生成し、生成した情報をクラス定義表241(図21)に格納する(S405)。
まず、クラス構造テンプレート適用部13は、ステップS404で取得したクラス構造テンプレートレコードに含まれるテンプレートIDを取得する。
そして、クラス構造テンプレート適用部13は、取得したテンプレートIDをキーとして、クラス構造テンプレート・クラステンプレート間依存関係定義表235(図20)を参照して、対応するクラステンプレートIDをすべて取得する。続いて、クラス構造テンプレート適用部13は、取得したクラステンプレートIDをキーとして、クラステンプレート定義表232(図17)の「クラステンプレートID」を検索し、対応する「生成クラス名」に格納されている文字列を取得する。
そして、クラス構造テンプレート適用部13は、取得したテーブル名の後に、クラステンプレート定義表232(図17)の「生成クラス」から取得した文字列を付して、テーブルデータ参照に関するクラス名を生成する(例えば、「テーブル11テーブルデータ取得」など)。
次に、クラス構造テンプレート適用部13は、まだ選択されていないクラステンプレートIDがあれば、ステップS405の処理を繰り返し、選択されていないクラステンプレートがなければ、処理をステップS406に処理を進める。
以上で、本処理におけるクラスに関する情報の生成・格納が終了する。
ステップS405の後、クラス構造テンプレート適用部13は、以下の手順でクラス間の依存関係に関する情報を生成し、生成した情報をクラス間依存関係定義表242(図2
2)に格納する(S406)。
まず、クラス構造テンプレート適用部13は、ステップS404で取得したクラス構造テンプレートレコードに含まれるテンプレートIDを取得する。
そして、クラス構造テンプレート適用部13は、当該取得したテンプレートIDをキーとして、クラス間依存関係テンプレート定義表233(図18)の「テンプレートID」のフィールドを検索し、対応する行であるクラス間依存関係テンプレートレコードを取得する。ここで、取得されるクラス間依存関係テンプレートレコードは、1つしかないときもあるし、複数あるときもある。次に、クラス構造テンプレート適用部13は、取得したクラス間依存関係テンプレートレコードのうち、1つを選択する。
ここで取得した関係元クラステンプレートIDおよびステップS405の段階で発行したクラスの所属コンポーネントIDをキーとしてクラス定義表241(図21)の「クラステンプレートID」のフィールドと「所属コンポーネント」のフィールドを検索してクラスIDをすべて取得し、このクラスIDをクラス間依存関係定義表242の「関係元クラスID」に格納する。
それぞれの「関係先クラスID」には、ステップS405で生成したクラスのクラスIDを格納する。
さらに、クラス構造テンプレート適用部13は、クラス間依存関係IDを新たに発行すると、格納した「関係元クラスID」および「関係先クラスID」に対応するように、クラス間依存関係定義表242(図22)の該当する項目に格納する。
そして、クラス構造テンプレート適用部13は、取得したクラス間依存関係テンプレートレコードのうち、未選択のクラス間依存関係テンプレートレコードがあれば、ステップS406を繰り返し、未選択のクラス間依存関係テンプレートレコードがなければ、ステップS407の処理へ進む。
以上で、本処理におけるクラス間の依存関係に関する情報の生成・格納が終了する。
ステップS406の後、クラス構造テンプレート適用部13は、以下の手順でクラス・テーブル間の依存関係に関する情報を生成し、生成した情報をクラス・テーブル間依存関係定義表243(図23)に格納する(S407)。
まず、クラス構造テンプレート適用部13は、ステップS404で取得したクラス構造テンプレートレコードに含まれるテンプレートIDを取得する。
次に、クラス構造テンプレート適用部13は、取得したテンプレートIDをキーとして、クラス・テーブル間依存関係テンプレート定義表234(図19)の「テンプレートID」を検索し、対応する行であるクラス・テーブル間依存関係テンプレートレコードを取得する。ここで、取得されるレコードは、1つしかない場合もあるし、複数取得される場合もある。
次に、クラス構造テンプレート適用部13は、取得されたクラス・テーブル間依存関係テンプレートレコードのうち、1つを選択する。
取得した関係元クラステンプレートIDが、ステップS405の段階で取得したクラステンプレートIDと等しい場合には、このクラスIDをクラス間依存関係定義表242の「関係元クラスID」に格納する。
さらに、クラス構造テンプレート適用部13は、ステップS402で取得した関係先テーブルIDをクラス・テーブル間依存関係定義表243(図23)の「関係先テーブルID」に追加格納し、取得した関係元クラステンプレートIDを「関係元クラスID」に格納し、さらに新たなクラス・テーブル間依存関係IDを発行すると、当該格納したデータに対応する「クラス・テーブル間依存関係ID」の項目に格納する。
以上で、本処理におけるクラス・テーブル間の依存関係に関する情報の生成・格納が終了する。
ステップS408の結果、存在する場合(S408→Yes)、クラス構造テンプレート適用部13は、ステップS405へ処理を戻し、次のクラス構造テンプレートレコードについて処理を行う。
ステップS408の結果、存在しない場合(S408→No)、クラス構造テンプレート適用部13は、ステップS401で取得したサービスインタフェース・テーブル間依存関係IDのうち、未選択のサービスインタフェース・テーブル間依存関係IDが存在するか否かを判定する(S409)。
ステップS409の結果、存在する場合(S409→Yes)、クラス構造テンプレート適用部13は、ステップS401へ処理を戻し、次のサービスインタフェース・テーブル間依存関係IDについて処理を行う。
ステップS409の結果、存在しない場合(S409→No)、クラス構造テンプレート適用部13は、図32のステップS203へ処理を進める。
図35は、本実施形態に係るサービスインタフェース間依存関係に基づくテンプレート適用処理(図32のステップS203)の流れを示すフローチャートである。
続いて、クラス構造テンプレート適用部13は、サービスインタフェース間依存関係定義表214(図12)からサービスインタフェース間依存関係IDを1つ選択する(S501)。
そして、クラス構造テンプレート適用部13は、ステップS501で選択したサービスインタフェース間依存関係からステップS501で取得したサービスインタフェース間依存関係IDに対応する関係元サービスインタフェースIDおよび関係元サービスインタフェースIDを取得する(S502)。
次に、クラス構造テンプレート適用部13は、以下の手順でサービス呼出のためのクラスに関する情報を生成し、クラス定義表241(図23)に格納する(S503)。なお、本実施形態では、「サービスの呼出」のクラスを生成しているが、サービスインタフェースとサービスインタフェースとを仲介する機能であれば、他のクラスに関する情報を生成してもよい。
まず、クラス構造テンプレート適用部13は、ステップS502で取得した関係先サービスインタフェースIDをキーとして、サービスインタフェース定義表212(図10)を検索して、サービスインタフェース名と所属コンポーネントIDとを取得する。次に、クラス構造テンプレート適用部13は、取得したサービスインタフェース名に、例えば「関係先」の文字列を付したものを、関係先サービスインタフェース名とする。これにより、一般的なサービスインタフェース名と、関係先のサービスインタフェース名とを区別することができる。
以上で、本処理におけるサービス呼出のためのクラスに関する情報の生成・格納が終了する。
含まれていなければ、クラス構造テンプレート適用部13は、取得したクラスIDをキーとして、クラス間依存関係定義表242(図22)の「関係元クラスID」を検索し、対応する関係先クラスIDを取得する。そして、クラス構造テンプレート適用部13は、当該取得した関係先クラスIDをキーとして、クラス定義表241(図21)の「クラスID」を検索し、対応するクラス名に「コントローラ」の文字列が含まれているか否かを判定する。以下、同様にしてクラス名に「コントローラ」の文字列が含まれているクラスのクラスIDを取得するまで、この処理を繰り返す。なお、本実施形態では、「コントローラ」の文字列を検索したが、ソフトウェアの構造により、検索する文字列が変わることは当然である。
そして、クラス構造テンプレート適用部13は、以下の手順により、ステップS503で生成したクラスに関する情報と、ステップS502で取得した関係先および関係元のサービスインタフェースに関する依存関係に関する情報を生成し、クラス間依存関係定義表242(図22)に追加格納する(S505)
まず、クラス構造テンプレート適用部13は、ステップS503の段階で発行したクラスIDを、クラス間依存関係定義表242の「関係先クラスID」に格納し、ステップS505で関係元サービスインタフェースIDをキーとして、最終的に取得した関係元クラスIDを、「関係元クラスID」として追加格納する。さらに、クラス構造テンプレート適用部13は、この2つのクラスIDに対し、クラス間依存関係IDを発行し、クラス間依存関係定義表242の「クラス間依存関係ID」に格納する。
以上で、本処理における生成したクラスと、関係先および関係元のクラス間の依存関係に関する情報の生成・格納を終了する。
ステップS506の結果、存在する場合(S506→Yes)、クラス構造テンプレート適用部13は、ステップS501の処理へ戻って、次のサービスインタフェース間依存関係IDを選択する。
ステップS506の結果、存在しない場合(S506→No)、クラス構造テンプレート適用部13は、ステップS204の処理へ進む。
図36は、本実施形態に係るサービスインタフェースに基づくテンプレート適用処理(図32のステップS204)の流れを示すフローチャートである。
次に、クラス構造テンプレート適用部13は、取得したサービスインタフェース定義表212からサービスインタフェースIDを1つ選択する(S601)。同時に、クラス構造テンプレート適用部13は、対応するサービスインタフェース名および所属コンポーネントIDを取得する(S602)。
そして、クラス構造テンプレート適用部13は、取得したサービスインタフェースIDをキーとして、サービス入出力定義表221(図14)を参照して「画面入力」、「XMLファイル入力」、などの各フィールドを検索する(S603)。
クラス構造テンプレート適用部13は、取得したクラス構造テンプレートレコードのうち、一つを選択する。
クラス構造テンプレート適用部13は、以下に示す手順で画面入力のクラスに関する情報を生成し、クラス定義表241(図21)に格納する(S605)。
まず、クラス構造テンプレート適用部13は、クラステンプレート定義表232(図17)を検索して、「適用判断基準」が「サービス入出力」であり、かつ選択したクラス構造テンプレートレコードについて「適用判断基準項目」がステップS604で「TRUE」を検出した項目(この例の場合は、「画面入力」)の文字列が含まれているクラステンプレートIDを取得する。(図17の例では、この例の場合に使用するクラステンプレートIDは、符号2321,2322の行に対応するクラステンプレートIDである)。
そして、ステップS602で取得したサービスインタフェース名の文字列の後に、先に取得した生成クラス名の文字列(ここでは、「画面入力情報取得」)を付け加えた文字列(例えば、「サービス11画面入力情報取得」)を画面入力情報取得のためのクラス名として生成する。
以上で、本処理におけるクラスに関する情報の生成・格納を終了する。
ステップS605の後、クラス構造テンプレート適用部13は、以下の手順でクラス間の依存関係に関する情報を生成し、生成した情報をクラス間依存関係定義表242(図2
2)に格納する(S606)。
まず、クラス構造テンプレート適用部13は、ステップS604で選択したクラス構造テンプレートレコードに含まれるテンプレートIDを取得する。
そして、クラス構造テンプレート適用部13は、当該取得したテンプレートIDをキーとして、クラス間依存関係テンプレート定義表233(図18)の「テンプレートID」のフィールドを検索し、対応する行であるクラス間依存関係テンプレートレコードを取得する。ここで、取得されるクラス間依存関係テンプレートレコードは、1つしかないときもあるし、複数あるときもある。次に、クラス構造テンプレート適用部13は、取得したクラス間依存関係テンプレートレコードのうち、1つを選択する。
関係元クラステンプレートIDがS605のクラステンプレートIDと一致する場合、クラス構造テンプレート適用部13は、関係先クラステンプレートIDおよびステップS405の段階で発行したクラスの所属コンポーネントIDをキーとしてクラス定義表241(図21)の「クラステンプレートID」のフィールドと「所属コンポーネントID」フィールドを検索してクラスIDをすべて取得し、このクラスIDをクラス間依存関係定義表242の「関係先クラスID」に格納する。
また、関係先クラステンプレートIDがS605のクラステンプレートIDと一致する場合、クラス構造テンプレート適用部13は、関係元クラステンプレートIDおよびステップS605の段階で発行したクラスの所属コンポーネントIDをキーとしてクラス定義表241(図21)の「クラステンプレートID」のフィールドと「所属コンポーネントID」フィールドを検索してクラスIDをすべて取得し、このクラスIDをクラス間依存関係定義表242の「関係元クラスID」に格納する。
それぞれの「関係先クラスID」には、ステップS605で生成したクラスのクラスIDを格納する。
例えば、関係元クラステンプレートが「コントローラ」型、関係先クラステンプレートが「画面入力」型であった場合には後者である。
そして、クラス構造テンプレート適用部13は、取得したクラス間依存関係テンプレートレコードのうち、未選択のクラス間依存関係テンプレートレコードがあれば、ステップS606を繰り返し、未選択のクラス間依存関係テンプレートレコードがなければ、ステップS607の処理へ進む。
ステップS607の結果、存在する場合(S607→Yes)、クラス構造テンプレート適用部13は、ステップS604へ処理を戻し、次のクラス構造テンプレートレコードについて処理を行う。
ステップS607の結果、存在しない場合(S607→No)、クラス構造テンプレート適用部13は、ステップS601で取得したサービスインタフェースIDのうち、未選択のサービスインタフェースIDが存在するか否かを判定する(S608)。
ステップS608の結果、存在する場合(S608→Yes)、クラス構造テンプレート適用部13は、ステップS601へ処理を戻し、次のサービスインタフェースIDについて処理を行う。
ステップS608の結果、存在しない場合(S608→No)、クラス構造テンプレート適用部13は、図31のステップS103の重複クラス構造検出処理へ進む。
図37は、本実施形態に係る重複クラス検出処理(図31のステップS103)の流れを示すフローチャートである。
なお、図37中に記載の「クラスA」は重複を調べるクラスを表し、「クラスB」は「クラスA」との比較対象のクラスを表すこととする。
まず、重複クラス構造検出部14は、クラス定義表241を仮リストにコピーして、仮リストを作成する(S701)。
次に、重複クラス構造検出部14は、仮リストの1番上のクラスIDを選択する(これをクラスAのIDとする)(S702)。
続いて、重複クラス構造検出部14は、仮リストからクラスAのIDに対応する(クラスAの)所属コンポーネントIDと、クラステンプレートIDとを取得する(S703)。
続いて、重複クラス構造検出部14は、仮リストからクラスBのIDに対応する(クラスBの)所属コンポーネントIDと、クラステンプレートIDとを取得する(S705)。
そして、重複クラス構造検出部14は、当該比較の結果、クラスAの所属コンポーネントIDおよびクラステンプレートIDと、クラスBの所属コンポーネントIDおよびクラステンプレートIDとが共に等しいか否かを判定する(S707)。つまり、重複クラス構造検出部14は、クラスAの所属コンポーネントと、クラスBの所属コンポーネントIDとが等しく、かつクラスAのクラステンプレートIDと、クラスBのクラステンプレートIDとが等しいか否かを判定する。
ステップS707の結果、共に等しくない場合(S707→No)、すなわち、重複クラス構造検出部14は、クラスAの所属コンポーネントと、クラスBの所属コンポーネントIDとが等しくない、またはクラスAのクラステンプレートIDと、クラスBのクラステンプレートIDとが等しくない場合、重複クラス構造検出部14は、ステップS709へ処理を進める。
ステップS707の結果、共に等しい場合(S707→Yes)、重複クラス構造検出部14は、重複クラスグループの定義処理を行う(S708)。ステップS708の処理は、図38を参照して後記する。
ステップS710の結果、クラスBのIDとして選択されていないクラスIDが存在する場合(S710→Yes)、重複クラス構造検出部14は、ステップS704の処理へ戻って、仮リストから次のクラスBのIDを選択する。
ステップS710の結果、クラスBのIDとして選択されていないクラスIDが存在しない場合(S710→Yes)、重複クラス構造検出部14は、仮リストを参照して、クラスAのIDとして選択されていないクラスIDが存在するか否かを判定する(S711)。
ステップS711の結果、クラスAのIDとして選択されていないクラスIDが存在する場合(S711→Yes)、重複クラス構造検出部14は、ステップS702の処理へ戻って、仮リストから次のクラスAのIDを選択する。
ステップS711の結果、クラスAのIDとして選択されていないクラスIDが存在しない場合(S711→No)、処理部10は、図31のステップS104のクラス構造調整処理へ進む。
図38は、本実施形態に係る重複クラスグループの定義処理(図37のステップS708)の処理である。
まず、重複クラス構造検出部14は、図37のステップS707の比較で等しいと判定した所属コンポーネントIDとクラステンプレートIDを取得する(S801)。
次に、重複クラスグループ表251(図27)の「所属コンポーネントID」と「クラステンプレートID」のフィールドを検索し、ステップS801で取得した所属コンポーネントIDとクラステンプレートIDと同じIDが存在するか否かを判定する(S802)。
ステップS802の結果、存在する場合(S802→Yes)、処理部10は、図37のステップS709へ処理を進める。
ステップS803の結果、統合が可能である場合(S803→Yes)、すなわち、クラステンプレート定義表232(図17)の該当する「統合」の項目が「TRUE」である場合、重複クラス構造検出部14は、他の重複クラスグループIDと重複しない重複クラスグループIDを発行し、「調整方法」を統合として重複クラスグループ表251(図25)にデータを登録する(S804)。具体的には、重複クラス構造検出部14は、発行した重複クラスグループIDを重複クラスグループ表251の「重複クラスグループID」の項目に格納し、ステップS801で取得した所属コンポーネントIDおよびクラステンプレートIDを、「所属コンポーネントID」および「クラステンプレートID」にそれぞれ格納する。さらに、重複クラス構造検出部14は、重複クラスグループ表251の「調整方法」に「統合」を格納する。そして、処理部10は、図37のステップS709へ処理を進める。
ステップS805の結果、抽出が可能である場合(S805→Yes)、すなわち、クラステンプレート定義表232(図19)の該当する「抽出」の項目が「TRUE」である場合、重複クラス構造検出部14は、他の重複クラスグループIDと重複しない重複クラスグループIDを発行し、「調整方法」を抽出として重複クラスグループ表251(図25)にデータを登録する(S806)。具体的には、重複クラス構造検出部14は、発行した重複クラスグループIDを重複クラスグループ表251の「重複クラスグループID」の項目に格納し、ステップS801で取得した所属コンポーネントIDおよびクラステンプレートIDを、「所属コンポーネントID」および「クラステンプレートID」にそれぞれ格納する。さらに、重複クラス構造検出部14は、重複クラスグループ表251の「調整方法」に「抽出」を格納する。そして、処理部10は、図37のステップS709へ処理を進める。
図39は、本実施形態に係るクラス構造調整処理(図31のステップS104)の流れを示すフローチャートである。
まず、クラス構造調整部15は、重複クラスグループ表251(図25)を参照し、重複クラスグループIDを1つ選択する(S901)。
次に、クラス構造調整部15は、ステップS901で取得した重複クラスグループIDに対応する重複クラスグループ表251(図25)の「調整方法」を参照し、該当するデータが「統合」であるか否かを判定する(S902)。
ステップS902の結果、「統合」ではない場合(S902→No)、クラス構造調整部15は、ステップS901で取得した重複クラスグループIDに対応する重複クラスグループ表251(図25)の「調整方法」を参照し、該当するデータが「抽出」であるか否かを判定する(S903)。なお、ステップS903の処理は、省略してもよい。
ステップS903の結果、「抽出」ではない場合(S903→No)、クラス構造調整部15は、ステップS911へ処理を進める。つまり、「調整方法」が「統合」でも「抽出」でもない場合、クラス構造調整部15は、対象となるクラスに対し統合も抽出もしない。
ステップS903の結果、「抽出」である場合(S903→Yes)、クラス構造調整部15は、以下の手順によって、複数のクラスに共通の機能を抽出した抽出クラス(図8におけるクラス564)に関する情報を生成し、クラス定義表241(図21)に格納する(S904)。
以上で、本処理における抽出クラスに関する情報の生成・格納を終了する。
ステップS904の次に、クラス構造調整部15は、以下に示す手順で、抽出クラスと、抽出元クラスとの間の関係情報を生成し、生成した情報をクラス間依存関係定義表242(図24)に格納する(S905)。
ステップS904の処理が終了すると、クラス構造調整部15は、重複クラスグループ表251(図25)において、ステップS901で選択した重複クラスグループIDをキーとして、重複クラス表252(図26)を参照し、対応する重複クラスIDをすべて取得する。
次に、クラス構造調整部15は、取得した重複クラスIDそれぞれをキーとして、クラス間依存関係定義表242(図22)の「関係元クラスID」を検索し、取得した重複クラスIDが存在するか否かを判定する。
存在する場合、対応する関係先クラスIDを取得した後、関係先クラスIDをステップS904で抽出クラスに対して発行したクラスIDに置換し、対応する「抽出関係」を「TRUE」にする。
次に、クラス構造調整部15は、新たなクラス間依存関係IDを発行すると、発行したクラス間依存関係IDをクラス間依存関係定義表242(図22)の「クラス間依存関係ID」に格納し、「関係元クラスID」にステップS904で抽出クラスに対して発行したクラスIDを格納し、「関係先クラスID」に取得しておいた関係先クラスIDを格納し、「抽出関係」を「TRUE」にする。
次に、クラス構造調整部15は、以下の手順で、重複クラスグループと、関係先クラスとの関係を重複関係先クラス表254(図28)に登録する(S907)。
次に、クラス構造調整部15は、ステップS906で取得した重複クラスの重複クラスIDをキーとして、クラス間依存関係定義表242(図22)の「関係先クラスID」を検索し対応する関係先クラスIDを取得した後、クラス間依存関係定義表242の該当する行を削除する。
以上で、本処理における重複クラスグループと、関係先クラスとの関係の登録の処理を終了する。
次に、クラス構造調整部15は、以下の手順で、重複クラスグループと、関係元クラスとの関係を重複関係元クラス表253(図27)に登録する(S908)。
次に、クラス構造調整部15は、ステップS906で取得した重複クラスの重複クラスIDをキーとして、クラス間依存関係定義表242(図22)の「関係先クラスID」を検索し対応する関係元クラスIDを取得した後、クラス間依存関係定義表242の該当する行を削除する。
以上で、本処理における重複クラスグループと、関係元クラスとの関係の登録を終了する。
すなわち、クラス構造調整部15は、ステップS906で取得した重複クラスIDのそれぞれをキーとして、クラス・テーブル間依存関係定義表243(図23)の「関係元クラスID」を検索し、対応する関係先テーブルIDを取得すると、重複関係先テーブル表255(図29)の「重複クラス関係先テーブルID」に取得した関係先テーブルIDを格納し、ステップS901で取得した重複クラスグループIDを「重複クラスグループID」に格納してもよい。このとき、該当するクラス・テーブル間依存関係定義表243(図23)のの行を削除してもよい。
ステップS908の次に、クラス構造調整部15は、以下の手順により、統合クラスに関する情報を生成し、生成した統合クラス表256(図30)に格納する(S909)。
クラス構造調整部15は、ステップS901で選択した重複クラスグループIDに対応するクラスID(統合クラスID)を発行し、発行した統合クラスIDと、重複クラスグループIDとを統合クラス表256(図30)の該当する項目に格納する。
以上で、本処理における統合クラスに関する情報の生成・格納が終了する。
ステップS910の結果、存在する場合(S910→Yes)、クラス構造調整部15は、処理をステップS906へ戻し、次の重複クラスIDを選択する。
ステップS911の結果、存在する場合(S911→Yes)、クラス構造調整部15は、ステップS901へ処理を戻し、次の重複クラスグループIDを選択する。
ステップS911の結果、存在しない場合(S911→No)、クラス構造調整部15は、以下の手順で、統合クラスに関する情報を、クラス定義表241(図21)、クラス間依存関係定義表242(図22)およびクラス・テーブル間依存関係定義表243(図23)に反映する(S912)
クラス構造調整部15は、統合クラス表256(図30)の統合クラスIDを1つ選択する。
次に、クラス構造調整部15は、クラス定義表241(図21)に、統合クラスIDを「クラスID」として有する行を新たに生成する。そして、クラス構造調整部15は、統合クラス表256(図30)で統合クラスIDに対応している重複クラスグループIDを取得すると、重複クラス表252から重複クラスグループIDに対応している重複クラスIDを取得する。さらに、クラス構造調整部15は、重複クラスIDをキーとして、クラス定義表241(図21)を参照して、対応するクラス名を取得する。そして、クラス構造調整部15は、取得したクラス名を、新たな統合クラス名として、クラス定義表241(図21)における新たに生成した行の「クラス名」に該当する項目に格納する。そして、クラス構造調整部15は、取得した重複クラスIDのそれぞれをキーとして、クラス定義表241(図21)の「クラスID」を検索し、対応する所属コンポーネントおよびクラステンプレートを新たに生成した行の対応する項目へ追加格納する。
以上で、本処理におけるクラス定義表への反映を終了する。
次に、クラス構造調整部15は、クラス定義表への反映の段階で取得した重複クラスグループIDをキーとして、重複関係元クラス表253(図27)の「重複クラスグループID」のフィールドを検索し、対応する重複クラスの関係元クラスIDをすべて取得する。次に、クラス構造調整部15は、取得した重複クラスの関係元クラスIDのそれぞれをキーとして、クラス間依存関係定義表242(図22)の「関係元クラスID」を検索し、対応する「関係先クラスID」に格納されているクラスIDを統合クラスIDに置換する。
以上で、本処理におけるクラス間依存関係定義表への反映を終了する。
さらに、クラス構造調整部15は、クラス定義表への反映の段階で取得した重複クラスIDのそれぞれをキーとして、クラス・テーブル間依存関係定義表243(図23)の「関係元クラスID」を検索し、対応する「関係元クラスID」に格納されているクラスIDを統合クラスIDに置換する。
存在する場合、クラス構造調整部15は、クラス定義表への反映の初めの処理へ戻り、次の統合クラスIDに関する処理を行う。
存在しない場合、処理部10は、図31のステップS105へ処理を進める。
図40は、本実施形態に係る編集メニュー画面の例を示す図である。
編集メニュー画面5001は、コンポーネント定義編集ボタン5002、サービスインタフェース定義編集ボタン5003、テーブル編集ボタン5004、サービスインタフェース間依存関係定義編集ボタン5005、サービスインタフェース・テーブル間依存関係定義編集ボタン5006、サービス入出力定義編集ボタン5007、テーブル使用方法定義編集ボタン5008、クラス構造テンプレート適用ボタン5009および処理を終了するための終了ボタン5010を有する。各ボタンが入力部30を介して選択入力されることによって、図41から図47を参照して後記する各画面が表示される。ユーザは、この画面を介して図9から図15に示す各表の作成・編集が可能となる。また、本実施形態では図示しないクラス構造テンプレート定義編集画面、クラステンプレート定義編集画面、クラス間依存関係テンプレート定義編集画面、クラス・テーブル間依存関係テンプレート定義編集画面、クラス構造テンプレート・クラステンプレート間依存関係定義変種画面によって、図16から図20に示す表も作成される。
コンポーネント定義編集画面5100において、入力部30を介してコンポーネント名入力エリア5101にコンポーネント名が入力され登録ボタン5103が選択入力されると、コンポーネントIDが発行され、コンポーネントID表示エリア5102に表示される。そして、その時点でのコンポーネント定義表211が表表示エリア5108に表示される。また、入力部30を介して、新規ボタン5104が選択入力されると、新規のコンポーネント定義表211が作成され、編集ボタン5105が選択入力されると、コンポーネント定義表211の編集が行われ、削除ボタン5106が押下されると、コンポーネント定義表211の選択した行が削除され、終了ボタン5107が選択入力されるとコンポーネント定義編集処理(図31のステップS111)が終了する。
サービスインタフェース定義編集画面5200において、入力部30を介してサービスインタフェース名入力エリア5201にコンポーネント名が入力され、所属コンポーネント名入力エリア5202に所属コンポーネント名が入力され、登録ボタン5103が選択入力されると、サービスインタフェースIDが発行され、サービスインタフェースID表示エリア5203に表示される。そして、その時点でのサービスインタフェース定義表212が表表示エリア5204に表示される。また、入力部30を介して、新規ボタン5104が選択入力されると、新規のサービスインタフェース定義表212が作成され、編集ボタン5105が選択入力されると、サービスインタフェース定義表212の編集が行われ、削除ボタン5106が押下されると、サービスインタフェース定義表212の選択した行が削除され、終了ボタン5107が選択入力されるとサービスインタフェース定義編集処理(図31のステップS112)が終了する。
テーブル定義編集画面5300において、入力部30を介してテーブル名入力エリア5301にテーブル名が入力され、所属コンポーネント名入力エリア5302に所属コンポーネント名が入力され、登録ボタン5103が選択入力されると、テーブルIDが発行され、テーブルID表示エリア5303に表示される。そして、その時点でのサービスインタフェース定義表212が表表示エリア5304に表示される。また、入力部30を介して、新規ボタン5104が選択入力されると、新規のテーブル定義表213が作成され、編集ボタン5105が選択入力されると、テーブル定義表213の編集が行われ、削除ボタン5106が押下されると、テーブル定義表213の選択した行が削除され、終了ボタン5107が選択入力されるとテーブル定義編集処理(図31のステップS113)が終了する。
サービスインタフェース間依存関係定義編集画面5400において、入力部30を介して関係元サービスインタフェース名入力エリア5401に関係元サービスインタフェース名が入力され、関係先サービスインタフェース名入力エリア5402に関係先サービスインタフェース名が入力され、関係登録ボタン5405が選択入力される。すると、サービスインタフェース間依存関係表示エリア5404に、入力されたサービスインタフェースが関係付けられたことを示す「×」の印が表示される。また、関係削除ボタン5406が入力部30を介して選択入力されると、入力されたサービスインタフェース間の関係が削除される。また、関係登録ボタンが選択入力されると、サービスインタフェース間依存関係IDが発行され、サービスインタフェース間依存関係ID表示エリア5403に表示される。サービスインタフェース間依存関係定義編集画面5400にて入力された情報は、サービスインタフェース間依存関係定義表214(図12)に格納される。なお、終了ボタン5407が選択入力されると、サービスインタフェース間依存関係定義編集処理(図31のステップS114)が終了する。
サービスインタフェース・テーブル間依存関係定義編集画面5500において、入力部30を介して関係元サービスインタフェース名入力エリア5501に関係元サービスインタフェース名が入力され、関係先テーブル名入力エリア5502に関係先テーブル名が入力され、関係登録ボタン5405が選択入力される。すると、サービスインタフェース・テーブル間依存関係表示エリア5504に、入力されたサービスインタフェースとテーブルとが関係付けられたことを示す「×」の印が表示される。また、関係削除ボタン5406が入力部30を介して選択入力されると、入力されたサービスインタフェースと、テーブルとの関係が削除される。また、関係登録ボタンが選択入力されると、サービスインタフェース・テーブル間依存関係IDが発行され、サービスインタフェース・テーブル間依存関係ID表示エリア5503に表示される。サービスインタフェース間依存関係定義編集画面5500にて入力された情報は、サービスインタフェース・テーブル間依存関係定義表215(図13)に格納される。なお、終了ボタン5407が選択入力されると、サービスインタフェース・テーブル間依存関係定義編集処理(図31のステップS115)が終了する。
サービス入出力定義編集画面5600には、画面入力選択プルダウンメニュー5601、XMLファイルプルダウンメニュー5602、テキストファイル入力プルダウンメニュー5603、画面出力プルダウンメニュー5605、帳票出力プルダウンメニュー5606、CSVファイル出力プルダウンメニュー5607、XMLファイルプルダウンメニュー5608などが表示されている。各プルダウンメニュー5601〜5608において、選択された情報(該当する機能を有するか否かに関する情報)は、登録ボタン5613が入力部30を介して選択入力されることによって、サービス入出力定義表221(図14)に格納される。サービス入出力定義表221において、格納されるレコードは、行選択ボタン5616で選択されている行に相当するレコードである。なお、行選択ボタン5616で選択されている行に関する情報は、サービスインタフェースID表示エリア5609、サービスインタフェース名表示エリア5610および所属コンポーネント名表示エリア5611において表示されている。なお、編集ボタン5614が入力部30を介して選択入力されると、行選択ボタン5616で選択されている行(レコード)の編集を行うことが可能であり、終了ボタン5612が選択入力されると、サービス入出力定義編集(図31のステップS116)が終了する。
サービス入出力定義編集画面5700には、テーブルデータ作成プルダウンメニュー5701、テーブルデータ参照プルダウンメニュー5702、テーブルデータ検索参照プルダウンメニュー5703、テーブルデータ更新プルダウンメニュー5704、テーブルデータ削除プルダウンメニュー5705などが表示されている。各プルダウンメニュー5701〜5705において、選択された情報(該当する機能を有するか否かに関する情報)は、登録ボタン5613が入力部30を介して選択入力されることによって、テーブル使用方法定義表222(図15)に格納される。テーブル使用方法定義表222において、格納されるレコードは、行選択ボタン5616で選択されている行に相当するレコードである。なお、行選択ボタン5616で選択されている行に関する情報は、サービスインタフェース・テーブル間依存関係ID表示エリア5706、関係元サービスインタフェース名表示エリア5707および関係先テーブル名表示エリア5708において表示されている。なお、編集ボタン5614が入力部30を介して選択入力されると、行選択ボタン5616で選択されている行(レコード)の編集を行うことが可能であり、終了ボタン5612が選択入力されると、テーブル使用方法定義編集(図31のステップS117)が終了する。
本実施形態によれば、サービスインタフェースの機能に関する情報や、サービスインタフェース間の関係や、サービスインタフェース・テーブル間の関係や、クラスの機能に関するテンプレートなどを入力することによって、コンポーネントを構成するクラスの構造を出力することができる。この結果、設計者の意図に左右されず、所定の制約に従ったクラス構造を容易に生成することができる。また、クラス構造を生成する際に、ユースケースのような文章による記述を必要としない。
10 処理部
11 コンポーネント体系定義編集部(入力部)
12 サービス責務定義編集部(入力部)
13 クラス構造テンプレート適用部
14 重複クラス構造検出部(クラス構造調整部)
15 クラス構造調整部
16 クラス構造表示処理部
20 記憶部
30 入力部
40 表示部
211 コンポーネント定義表
212 サービスインタフェース定義表(入出力情報)
213 テーブル定義表(入出力情報)
214 サービスインタフェース間依存関係定義表(入出力情報、サービスインタフェース間関係情報)
215 サービスインタフェース・テーブル間依存関係定義表(入出力情報、サービスインタフェース・テーブル間関係情報)
221 サービス入出力定義表
222 テーブル使用方法定義表
231 クラス構造テンプレート定義表(機能情報)
232 クラステンプレート定義表(機能情報)
233 クラス間依存関係テンプレート定義表(関係情報)
234 クラス・テーブル間依存関係テンプレート定義表(関係情報)
235 クラス構造テンプレート・クラステンプレート依存関係定義表
241 クラス定義表(クラス情報)
242 クラス間依存関係定義表(クラス間依存関係情報)
243 クラス・テーブル間依存関係定義表
244 クラス・サービスインタフェース依存関係定義表
251 重複クラスグループ表
252 重複クラス表
253 重複関係元クラス表
254 重複関係先クラス表
255 重複関係先テーブル表
256 統合クラス表
Claims (18)
- ソフトウェアの機能単位の部品であるコンポーネントを構成するクラス間の関係構造を生成するクラス構造生成装置におけるクラス構造生成方法であって、
前記クラス構造生成装置の処理部には、
前記コンポーネントで処理されまたは処理された処理情報の入出力に関する情報である入出力情報、
前記コンポーネントを構成するクラスの機能に関する情報である機能情報、
および前記クラスの機能間の関係に関する情報である関係情報
が入力部を介して入力され、
前記処理部は、
前記入力した入出力情報および機能情報を基に、前記処理情報の入出力に関連するクラスに関する情報であるクラス情報を生成し、
前記入力した関係情報を基に、前記生成したクラス情報同士を関連付けるクラス間関係情報を生成し、
前記生成したクラス間関係情報に基づいて、複数の前記クラス情報を関連付けて表示部に表示することを特徴とするクラス構造生成方法。 - 前記処理部には、
前記入力部を介して当該情報が所属するコンポーネントの情報である所属コンポーネント情報が、前記入出力情報と対応付けられて入力され、
前記生成したクラス情報は、前記所属コンポーネント情報と対応付けられ、
前記処理部は、
前記表示部に前記クラス情報を表示する際に、前記所属コンポーネント情報も表示することを特徴とする請求項1に記載のクラス構造生成方法。 - 前記機能情報は、同一の機能を有する前記クラス情報が複数生成されたとき、当該クラス情報を1つにまとめる統合が可能であるか否かに関する統合情報を有しており、
前記処理部は、
同一の機能を有する前記クラス情報が複数生成された場合、前記クラス情報の生成元となった前記機能情報の前記統合情報を参照し、統合が可能であった場合、前記同一の機能を有するクラス情報を1つにまとめたクラス情報を新たに生成し、
前記まとめる前のクラス情報に関連のあったクラス情報と、前記新たに生成したクラス情報とを関連付けて、前記クラス間関係情報に格納することを特徴とする請求項1に記載のクラス構造生成方法。 - 前記機能情報は、共通の機能を有する前記クラス情報が複数生成されたとき、当該クラス情報から、共通の機能を抽出したクラスを生成する抽出が可能であるか否かに関する抽出情報を有しており、
前記処理部は、
共通の機能を有する前記クラス情報が複数生成された場合、前記クラス情報の生成元となった前記機能情報の前記抽出情報を参照し、抽出が可能であった場合、共通の機能を有するクラス情報を新たに生成し、
当該生成したクラス情報を、前記新たに生成したクラス情報に関連付けて、前記クラス間関係情報に格納することを特徴とする請求項1に記載のクラス構造生成方法。 - 前記入出力情報は、前記処理情報の入出力の機能を有するサービスインタフェースの名称であるサービスインタフェース名を有し、
前記処理部は、
前記サービスインタフェース名を含んだクラス名を有する前記クラス情報を生成することを特徴とする請求項1に記載のクラス構造生成方法。 - 前記機能情報は、前記サービスインタフェースに関し、少なくとも2つの機能に関する文字列を有しており、
前記処理部は、
前記機能情報を基に、前記サービスインタフェースに関し、異なる機能に関する文字列を含んだクラス名を有するクラス情報を生成し、
前記関係情報を基に、当該生成したクラス情報同士を関連付けて、前記クラス間関係情報に格納することを特徴とする請求項5に記載のクラス構造生成方法。 - 前記機能情報は、前記サービスインタフェース間を仲介する機能に関する情報を有しており、
前記入出力情報は、第1のサービスインタフェースと、第2のサービスインタフェース間の関係に関する情報であるサービスインタフェース間関係情報を有し、
前記処理部は、
前記機能情報を基に、前記サービスインタフェース間を仲介する機能を有するクラスのクラス情報を生成し、
前記サービスインタフェース間関係情報に従って、前記生成したクラス情報を、前記第1のサービスインタフェースの名称をクラス名に有するクラス情報と、前記第2のサービスインタフェースの名称を含んだクラス名に有するクラス情報とに関連付けて、前記クラス間関係情報に格納することを特徴とする請求項5に記載のクラス構造生成方法。 - 前記第1のサービスインタフェースおよび前記第2のサービスインタフェースは、異なるコンポーネントに所属することを特徴とする請求項7に記載のクラス構造生成方法。
- 前記機能情報は、前記処理情報の入出力方法に関する情報を有しており、
前記入出力情報は、前記処理情報の入出力方法の名称を有し、
前記処理部は、
前記クラス名に前記入出力方法の名称を有する前記クラス情報を生成し、
前記機能情報および関係情報を基に、当該生成したクラス情報を、前記サービスインタフェース名を含んだクラス名を有する前記クラス情報に関連付けて、前記クラス間関係情報に格納することを特徴とする請求項5に記載のクラス構造生成方法。 - 前記サービスインタフェースに関する入出力種類とは、画面入力、画面出力、XMLファイル入力、XMLファイル出力、テキストファイル入力、テキストファイル出力およびCSVファイル出力のうち、少なくとも1つが含まれることを特徴とする請求項8に記載のクラス構造生成方法。
- 前記機能情報は、前記クラス構造生成装置が有するテーブルを参照する機能に関する情報が格納されており、
前記入出力情報は、前記処理情報の入出力の機能を有するサービスインタフェースと、前記サービスインタフェースが参照するテーブルとの関係に関する情報であるサービスインタフェース・テーブル間関係情報を有し、
前記処理部は、
前記機能情報を基に、前記テーブルを参照する機能を有するクラス情報を生成し、
前記生成したクラス情報を、前記サービスインタフェース・テーブル間関係情報に従って前記テーブルに関連付け、
さらに前記生成したクラス情報を、前記入力されたサービスインタフェース・テーブル間関係情報に従って前記サービスインタフェースに関するクラス情報に関連付けて前記クラス間関係情報に格納することを特徴とする請求項1に記載のクラス構造生成方法。 - 前記入出力情報は、前記サービスインタフェースによるテーブル参照方法の名称を含み、
前記処理部は、
前記テーブル参照方法の名称を含んだクラス名を有する前記テーブルを参照する機能を有する前記クラス情報を生成することを特徴とする請求項11に記載のクラス構造生成方法。 - 前記テーブル参照方法の名称とは、データ作成、データ参照、データ検索、データ更新およびデータ削除のいずれか一つが含まれていることを特徴とする請求項12に記載のクラス構造生成方法。
- ソフトウェアの機能単位の部品であるコンポーネントを構成するクラス間の関係構造を生成するクラス構造生成方法をクラス構造生成装置に実行させるクラス構造生成プログラムであって、
前記クラス構造生成装置の処理部には、
前記コンポーネントで処理されまたは処理された処理情報の入出力に関する情報である入出力情報、
前記コンポーネントを構成するクラスの機能に関する情報である機能情報、
および前記クラスの機能間の関係に関する情報である関係情報
が入力部を介して入力され、
前記処理部に、
前記入力した入出力情報および機能情報を基に、前記処理情報の入出力に関連するクラスに関する情報であるクラス情報を生成し、
前記入力した関係情報を基に、前記生成したクラス情報同士を関連付けるクラス間関係情報を生成し、
前記生成したクラス間関係情報に基づいて、複数の前記クラス情報を関連付けて表示部に表示する処理を実行させることを特徴とするクラス構造生成プログラム。 - ソフトウェアの機能単位の部品であるコンポーネントを構成するクラス間の関係構造を生成するクラス構造生成装置であって、
前記コンポーネントで処理されまたは処理された処理情報の入出力に関する情報である入出力情報、
前記コンポーネントを構成するクラスの機能に関する情報である機能情報、
および前記クラスの機能間の関係に関する情報である関係情報を入力する入力部、
前記入力した入出力情報および機能情報を基に、前記処理情報の入出力に関連するクラスに関する情報であるクラス情報を生成し、前記入力した関係情報を基に、前記生成したクラス情報同士を関連付けるクラス間関係情報を生成するクラス構造テンプレート適用部、
前記生成したクラス間関係情報に基づいて、複数の前記クラス情報を関連付けて表示部に表示させるクラス構造表示処理部を有することを特徴とするクラス構造生成装置。 - 前記クラス構造テンプレート適用部は、
前記入力部を介して当該情報が所属するコンポーネントの情報である所属コンポーネント情報を、前記入出力情報と対応付けて入力し、前記生成したクラス情報を、前記所属コンポーネント情報と対応付ける機能をさらに有し、
前記クラス構造表示処理部は、
前記表示部に前記クラス情報を表示する際に、前記所属コンポーネント情報も表示する機能をさらに有することを特徴とする請求項15に記載のクラス構造生成装置。 - 前記機能情報は、同一の機能を有する前記クラス情報が複数生成されたとき、当該クラス情報を1つにまとめる統合が可能であるか否かに関する統合情報を有しており、
前記クラス構造生成装置は、
同一の機能を有する前記クラス情報が複数生成された場合、前記クラス情報の生成元となった前記機能情報の前記統合情報を参照し、統合が可能であった場合、前記同一の機能を有するクラス情報を1つにまとめたクラス情報を新たに生成し、前記まとめる前のクラス情報に関連のあったクラス情報と、前記新たに生成したクラス情報とを関連付けて、前記クラス間関係情報に格納するクラス構造調整部を有することを特徴とする請求項15に記載のクラス構造生成装置。 - 前記機能情報は、共通の機能を有する前記クラス情報が複数生成されたとき、当該クラス情報から、共通の機能を抽出したクラスを生成する抽出が可能であるか否かに関する抽出情報を有しており、
前記クラス構造生成装置は、
共通の機能を有する前記クラス情報が複数生成された場合、前記クラス情報の生成元となった前記機能情報の前記抽出情報を参照し、抽出が可能であった場合、共通の機能を有するクラス情報を新たに生成し、当該生成したクラス情報を、前記新たに生成したクラス情報に関連付けて、前記クラス間関係情報に格納するクラス構造調整部を有することを特徴とする請求項15に記載のクラス構造生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008096647A JP5189880B2 (ja) | 2008-04-02 | 2008-04-02 | クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008096647A JP5189880B2 (ja) | 2008-04-02 | 2008-04-02 | クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009251769A JP2009251769A (ja) | 2009-10-29 |
JP5189880B2 true JP5189880B2 (ja) | 2013-04-24 |
Family
ID=41312447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008096647A Expired - Fee Related JP5189880B2 (ja) | 2008-04-02 | 2008-04-02 | クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5189880B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914768B2 (en) * | 2012-03-28 | 2014-12-16 | Bmc Software, Inc. | Automated blueprint assembly for assembling an application |
JP2015184824A (ja) | 2014-03-20 | 2015-10-22 | 富士通株式会社 | 情報処理プログラム、情報処理方法および情報処理装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1195990A (ja) * | 1997-09-22 | 1999-04-09 | Nippon Telegr & Teleph Corp <Ntt> | プログラム構造表示方法および装置 |
JP2002222082A (ja) * | 2000-11-24 | 2002-08-09 | Fujitsu Ltd | 記録媒体およびプログラム |
JP5057539B2 (ja) * | 2006-11-13 | 2012-10-24 | 日本証券テクノロジー株式会社 | Java(登録商標)言語プログラムを用いた大規模業務系の影響分析を行うプログラム |
-
2008
- 2008-04-02 JP JP2008096647A patent/JP5189880B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009251769A (ja) | 2009-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106104592B (zh) | 映射带键实体的属性 | |
CN105849725B (zh) | 构造用于针对多维数据结构执行的查询 | |
CN107111639B (zh) | 构建报表 | |
US20170329786A1 (en) | Data flow design with static and dynamic elements | |
JP5601066B2 (ja) | 情報統合プログラム、装置及び方法 | |
CN106469116B (zh) | 测试场景生成辅助装置以及测试场景生成辅助方法 | |
JPWO2008093569A1 (ja) | 情報抽出規則作成支援システム、情報抽出規則作成支援方法及び情報抽出規則作成支援プログラム | |
KR101877828B1 (ko) | 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템 | |
KR102639897B1 (ko) | 데이터 아키텍쳐 관리 시스템 | |
CN102222110A (zh) | 数据处理装置和数据处理方法 | |
JP2008052312A (ja) | 業務仕様抽出支援システム | |
JP2002099561A (ja) | データ変換方法およびデータ変換システム並びに記憶媒体 | |
CN111078094A (zh) | 分布式机器学习可视化装置 | |
JP6268435B2 (ja) | データベースの再構成方法、データベースの再構成プログラム、及び、データベースの再構成装置 | |
JP2009116638A (ja) | 業務仕様理解支援システム及び方法 | |
JP2010015458A (ja) | プログラム修正支援システム、プログラム修正支援方法、およびプログラム修正支援プログラム | |
JP5189880B2 (ja) | クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置 | |
US20140136152A1 (en) | Analyzing hardware designs based on component re-use | |
KR102153259B1 (ko) | 데이터 도메인 추천 방법 및 추천된 도메인을 이용하여 통합 데이터 저장소 관리 시스템을 구축하는 방법 | |
JP7279524B2 (ja) | データ管理プログラム、データ管理方法およびデータ管理システム | |
JP2009123114A (ja) | 情報処理装置及び情報処理方法 | |
GB2493963A (en) | Database record repair | |
JP6710881B1 (ja) | ドキュメント作成支援システム | |
JP6775740B1 (ja) | 設計支援装置、設計支援方法及び設計支援プログラム | |
JP6336922B2 (ja) | 業務バリエーションに基づく業務影響箇所抽出方法および業務影響箇所抽出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100714 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121009 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121207 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130125 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160201 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5189880 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |