(57)【要約】【課題】業務コンポーネントの開発には、オブジェクトやメソッドの作成単位といったものは確立されていない。また作成方法も開発者まかせである。この事から、品質を確保することが難しく、開発効率の低下を招いていた。【解決手段】設計を「データベースアクセス」「業務要件」という２局面から行い、過不足なくクラスを抽出する。より具体的には、データベースアクセス面からのアプローチでは、テーブルの親子関係に着目しレベルを設け、レベルに応じたオブジェクトとメソッドを抽出する。これにより、本来ならば設計者のスキルに依存するクラス抽出を行う。【選択図】  図１
2005018505.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション開発の設計フェーズにおいて、
データベースアクセスコンポーネント設計部と業務コンポーネント設計部の２段階に分け、
前記データベースアクセスコンポーネント設計部および前記業務コンポーネント設計部とを連携させインタフェース抽出を行うことを特徴とするクラス設計方法。
【請求項２】
請求項１で記載のクラス設計方法において、
データベースアクセスコンポーネント設計部では、アクセスするテーブルにレベルを設定し、アプリケーションに必要なオブジェクト候補を抽出することを特徴とするクラス設計方法
【請求項３】
請求項２に記載のクラス設計方法において、
データベースのテーブルレベルをｊｏｉｎ前の全テーブル、コードテーブルに着目し、関連テーブルとコードテーブルとのｊｏｉｎ後に作成されるテーブルおよび子テーブルに着目し、親子関係にあるテーブルとのｊｏｉｎ後に作成されるテーブルに設定し、
設定されたテーブルレベルに応じてメソッド抽出基準を設けて、データベースアクセスコンポーネントのインタフェースを抽出することを特徴とするクラス設計方法
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーション開発におけるコンポーネント設計フェーズにおいて、機械的にクラスを抽出する技術に関する。
【０００２】
【従来の技術】
アプリケーション開発のプロセスは、業務分析（概要定義）、基本設計（詳細定義）、詳細設計（設計、プログラム設計）、コーディング（プログラム作成）、テスト（結合テスト、総合テスト）、運用（導入）という作業工程に分類される。これは、国際規格である「ソフトウェアライフサイクルプロセス規格ＩＳＯ／ＩＥＣ１２２０７：１９９５（ＪＩＳ  Ｘ  ０１６０−１９９６）」に、日本のソフトウェア産業の特性を加味して作成された「１９９８版  共通フレーム９８  ＳＬＣＰ−ＪＣＦ９８」で定義されている。この「１９９８版  共通フレーム９８  ＳＬＣＰ−ＪＣＦ９８」については、非特許文献１に記載されている。
【０００３】
また、アプリケーション開発の作業工程のうち、業務分析、コーディング、テストの手順はすでに確立しており、サポートするツールも数多く存在する。しかし、設計工程においては、設計情報を共有するための記法ＵＭＬとそのＵＭＬをサポートしたツールは存在するが、特に決まった手順は確立されていない。また現在のアプリケーション開発の設計では、実装する機能をＰ（Ｐｒｅｓｅｎｔａｔｉｏｎ）層、Ｆ（Ｆｕｎｃｔｉｏｎ）層、Ｄ（Ｄａｔａ）層に分けて考える、三層アーキテクチャの採択が主流になりつつある。Ｐ層は画面に関する処理、Ｆ層は業務処理、Ｄ層は主にデータベースアクセス処理のことである。この「三層アーキテクチャ」については、非特許文献２に記載されている。
【０００４】
また、システム開発のための方法論として、ＤＯＡ（Ｄａｔａ  Ｏｒｉｅｎｔｅｄ  Ａｐｐｒｏａｃｈ）が現在主流となっている。ＤＯＡは、企業情報システム・業務アプリケーションの分野で、発展してきた方法論であり、データ処理中心の業務システムに適している特徴がある。この「ＤＯＡ（Ｄａｔａ  Ｏｒｉｅｎｔｅｄ  Ａｐｐｒｏａｃｈ）」については、非特許文献３に記載されている。
【０００５】
【非特許文献１】「データ中心システム分析と設計」の「３章  開発プロセスの作業」（編集：ＩＲＭ研究会、出版社：オーム社、監修：東京国際大学  堀内一）
【非特許文献２】「Ｍｉｃｒｏｓｏｆｔ  単語帳：３  層アーキテクチャ  【  ＝  Ｔｈｒｅｅ  Ｔｉｅｒｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ  】」（ｈｔｔｐ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／Ｊａｐａｎ／Ｔｅｒｍｉｎｏｌｏｇｙ／ｑｕｅｒｙ．ａｓｐ？ＩＤ＝３１３２＆ｑ＝Ｔｈｒｅｅ％２０Ｔｉｅｒｅｄ％２０Ａｒｃｈｉｔｅｃｔｕｒｅ）
【非特許文献３】「システム開発の体系  ＪＩＳ  Ｘ０１６０・共通フレーム９８対応」（編集：日本ユニシス情報技術研究会、出版社：東京電機大学出版局）
【０００６】
【発明が解決しようとする課題】
性能、品質という点を考慮して行われるべき設計工程において設計手順が確立されていない。そのため設計成果物は設計者のスキルに依存し、その品質にはばらつきが発生する。設計品質が低いと、問題がある。
・パフォーマンス劣化の原因となるメソッド、実装ミスを起こしやすいメソッドの散在。
・同様の機能を持ったメソッドが複数作成されることによるアプリケーションの肥大化。
【０００７】
【課題を解決しようとするための手段】
上記の課題を解決するために、本発明では、設計を「データベースアクセス」「業務要件」という２局面から行う。このことにより、過不足なくクラスを抽出することも可能になる。
【０００８】
データベースアクセス面からのアプローチでは、テーブルの親子関係に着目しレベルを設け、レベルに応じたオブジェクトとメソッドを抽出する。これにより、本来ならば設計者のスキルに依存するクラス抽出を半機械的に行うことが可能となる。
【０００９】
業務要件からのアプローチでは、業務分析フェーズで情報システムとユーザのやりとりを最小業務単位でまとめたユースケースシナリオに、データアクセスからのアプローチで得たＤ層インタフェースで各作業が実現可能であるか検証しつつ、新機能の洗い出しを行う。これにより不足分のインタフェース抽出と各コンポーネントのやりとりを整理することができる。
【００１０】
【発明の実施の形態】
以下、本発明の実施例を図面を用いて説明する。
なお、以後本文中では、以下のように各用語を用いる。
Ｄ層に属するデータベースアクセスコンポーネント…Ｄ層コンポーネント
Ｄ層コンポーネントのインタフェース…Ｄ層インタフェース
Ｄ層インタフェースを構成するメソッド…Ｄ層メソッド
Ｄ層コンポーネントの設計者…Ｄ層設計者
Ｆ層に属する業務コンポーネント…Ｆ層コンポーネント
Ｆ層コンポーネントのインタフェース…Ｆ層インタフェース
Ｆ層インタフェースを構成するメソッド…Ｆ層メソッド
Ｆ層コンポーネントの設計者…Ｆ層設計者
またＦ層メソッドに関しては、Ｆ層コンポーネント外から呼び出されるメソッドをＦ層公開メソッド、Ｆ層コンポーネント内で呼び出されるメソッドをＦ層内部メソッドと呼ぶ。
【００１１】
実施例は、アプリケーション開発におけるコンポーネント設計フェーズにおいて、ＤＢ設計者が作成するデータベースのテーブル情報、業務設計者が作成する情報システムとユーザのやり取りをまとめたユースケースシナリオ、画面・帳票設計者が作成する画面・帳票一覧表、を用い、Ｄ層およびＦ層のクラスを半機械的に抽出する方法である。
【００１２】
Ｄ層クラス設計では、まずデータベースのテーブル情報をもとに、テーブル間の関係に着目し、テーブルレベルを設定する。次にそのレベルに応じたオブジェクトとメソッドの抽出基準を設けることにより、設計者のスキルに依存することなくＤ層コンポーネントのインタフェース抽出を可能にする。
【００１３】
Ｆ層クラス設計では、データ中心アプローチから得たＤ層コンポーネントのインタフェースと画面・帳票一覧表を用いてユースケースシナリオの各作業が実現可能であるか検証する。検証した結果をユースケースシナリオと組み合わせて表示することにより、新機能の洗い出しと、Ｆ層コンポーネントのインタフェース抽出作業の促進を図ることが可能になる。
【００１４】
また同じ実施例を用いて、設計工程をＤ層コンポーネント設計部４とＦ層コンポーネント設計部５の２段階に分け、各々設計終了時に設計終了通知６，７を自動送信することによる、開発者間連携の簡易化、またＦ層設計者がＤ層インタフェースを参照する際には、毎回Ｄ層コンポーネント設計部４が管理するメソッド情報ＤＢ４５にアクセスすることにより、コンポーネント間インタフェース参照における人為的ミスによる不整合を減らす方法についても説明する。
【００１５】
図１は、本発明を含んだアプリケーション開発の上流フェーズにおけるシステム構成図である。図１では本発明のメインである、Ｄ層クラスを定義するＤ層コンポーネント設計部４、Ｆ層クラスを定義するＦ層コンポーネント設計部５がアプリケーション開発の設計フェーズにおいてどのような位置付けであるかを示している。
【００１６】
図２は、図１におけるＤ層設計者から見たＤ層クラス抽出処理手順を示す基本フローチャートである。以後、図面内で用いる実線は制御の流れを、波線はデータの読み書き関係を示す。図３は図１におけるＬｖ１，２，３メソッド定義部４２の処理手順を、図４は図１におけるＤ層インタフェース表示部４３の処理手順を、図５は図１における仕様書生成部４４の処理手順を示すフローチャートである。図３に記載のＬｖ１メソッド定義部４２１、Ｌｖ２メソッド定義部４２２、Ｌｖ３メソッド定義部４２３に関しては、図６〜図８で詳細に説明する。Ｌｖ１メソッド定義部４２１、Ｌｖ２メソッド定義部４２２、Ｌｖ３メソッド定義部４２３は、図１のＬｖ１，２，３メソッド定義部４２に相当する。図９〜図１３は、Ｄ層インタフェース抽出処理を実現するために必要な画面の一例である。図１４は、図１におけるＤ層インタフェース表示部４において定義したメソッド情報４６をメソッド情報ＤＢ４５に格納した結果である。
【００１７】
図１５は、図１におけるＦ層設計者から見たＦ層クラス抽出処理手順を示す基本フローチャートである。図１６は図１におけるマッピング情報表示部５４の処理手順を、図１７は図１における仕様書生成部５６の処理手順を、図１８は、図１におけるマッピング部５３の処理手順を、図１９〜図２２はそれぞれ図１８におけるＤ層メソッドマッピング部５３１、Ｄ層新規メソッド定義部５３２、Ｆ層内部メソッド定義部５３３、Ｐ層追加部５３４の処理手順を、図２３〜図２４は、図２２におけるＰ層画面追加部５３４１、Ｐ層処理追加部５３４２の処理手順を、図２５は、図１におけるＦ層公開メソッド定義部５５の処理手順を示すフローチャートである。Ｄ層メソッドマッピング部５３１、Ｐ層画面追加部５３４１は図１のマッピング部５３に、Ｄ層新規メソッド定義部５３２、Ｆ層内部メソッド定義部５３３、Ｐ層処理追加部５３４２は図１の新規作成部５２にそれぞれ相当する。図２６〜図３３は、Ｆ層インタフェース抽出処理を実現するために必要な画面の一例である。図３４は、図１における新規作成部５２、Ｆ層公開メソッド定義部５５において定義した新規メソッド情報５ａ／５ｂを新規メソッド情報ＤＢ５８に格納した結果である。３５は、図１におけるマッピング部５３において定義したメソッドマッピング情報５９をメソッドマッピング情報ＤＢ５７に格納した結果である。
【００１８】
図３６〜図３９は、実施例で本発明を説明する「教育申込＆資格認定システム」で用いるＤＢのテーブル例である。
【００１９】
図４０〜図４４は、Ｆ層コンポーネントのインタフェース抽出の課程を示す。
【００２０】
図１に示すようにアプリケーション開発の設計工程では、ＤＢ設計部１、画面・帳票設計部２、業務設計部３、Ｄ層コンポーネント設計部４、Ｆ層コンポーネント設計部５という各設計部に別れ、並行して作業が行われる。これら設計部はネットワークで物理的に接続されている。Ｄ層コンポーネント設計部４では、ＤＢ設計部１の成果物であるＥＲ図１２を入力として、Ｄ層インタフェースを定義し、その結果をＤ層インタフェース仕様書として出力する。またＤ層コンポーネント設計部４は、Ｄ層インタフェース仕様書生成終了時にＦ層コンポーネント設計部５に対し、Ｆ層設計通知依頼６を送付する。Ｆ層コンポーネント設計部５はＦ層設計通知依頼６を受け取り、Ｄ層コンポーネント設計部４の成果物であるメソッド情報ＤＢ４５、画面・帳票設計部２の成果物である画面・帳票一覧表２２、業務設計部３の成果物であるユースケースシナリオ３２を入力としＤ層追加インタフェースとＦ層インタフェースを定義し、その結果をＦ層インタフェース仕様書、機能仕様書として出力する。またＦ層コンポーネント設計部５は、Ｆ層インタフェース仕様書生成終了時にＤ層コンポーネント設計部４に対しＤ層新規メソッド作成依頼通知７を送付する。Ｄ層コンポーネント設計部４は、Ｄ層新規メソッド作成依頼通知７を元に新規にＤ層インタフェースとなるメソッドの設計作業を行う。つまりＤ層コンポーネント設計部４とＦ層コンポーネント設計部５は相互に設計依頼の通知をやりとりしながら設計作業を行う。ＤＢ設計部１、画面・帳票設計部２、業務設計部３、Ｄ層コンポーネント設計部４、Ｆ層コンポーネント設計部５は、おのおの入出力装置１１，２１，３１，４１，５１を備える。
【００２１】
Ｄ層コンポーネント設計部４は、入出力装置４１、Ｌｖ１，２，３メソッド定義部４２、Ｄ層インタフェース表示部４３、仕様書生成部４４、メソッド情報ＤＢ４５から構成される。
【００２２】
Ｄ層インタフェース表示部４３は、Ｄ層コンポーネント設計部４のメイン処理部であり、ＤＢ設計部１の成果物であるＥＲ図１２からテーブル情報１３を、メソッド情報ＤＢ４５からＤ層インタフェースを、Ｄ層新規メソッド作成依頼通知７から追加作成するメソッド情報を読み込み、Ｄ層インタフェースの一覧を表示する。テーブル情報１３とは、テーブル名、テーブル属性、検索キー、カラム名からなる。
【００２３】
メソッド情報ＤＢ４５は、メソッド情報４６を格納する物である。メソッド情報４６とは、メソッドを一意に識別するメソッド番号、テーブルレベル、メソッドでアクセスするテーブル、テーブルの属性、テーブルに対する結合テーブル名、テーブルを検索するキー、テーブルを検索した結果をメソッド利用者に返す際に表示するカラム名、日本語メソッド名、メソッド説明からなる。
【００２４】
Ｌｖ１，２，３メソッド定義部４２は、入出力装置４１を介し、ＤＢ設計部１の成果物であるＥＲ図からアクセスするテーブル情報１３とメソッド情報ＤＢ４５に格納されているメソッド情報を用いて、Ｄ層インタフェースを構成するメソッド情報４６を定義する。
【００２５】
仕様書生成部４４は、メソッド情報ＤＢ４５に格納されているメソッド定義情報４６を用いて、Ｄ層インタフェース仕様書を生成する。また仕様書生成部４４は、Ｄ層インタフェース仕様書作成終了時に、Ｆ層コンポーネント設計部５に対し、Ｆ層設計依頼通知６を配信する。
【００２６】
Ｆ層コンポーネント設計部５は、入出力装置５１、新規作成部５２、マッピング部５３、マッピング情報表示部５４、Ｆ層公開メソッド定義部５５、仕様書生成部５６、メソッドマッピング情報ＤＢ５７、新規メソッド情報ＤＢ５８から構成される。
【００２７】
マッピング情報表示部５４は、メソッドマッピング情報ＤＢ５７に格納されているユースケースシナリオにＤ層インタフェース、Ｆ層インタフェース、Ｐ層処理、Ｐ層画面をマッピングした結果を表示する。
【００２８】
メソッドマッピング情報ＤＢ５７は、メソッドマッピング情報５９を格納するものである。メソッドマッピング情報５９とは、ユースケースシナリオの作業単位を一意に識別する番号、その番号に対応するユースケースシナリオ、メソッド呼び出しの階層構造を表す階層レベル、ユースケースシナリオの一作業における階層内のメソッド実行順、マッピング付けされたメソッド又は処理が属する層（Ｄ／Ｆ／Ｐ）、メソッドを識別するメソッド番号、日本語メソッド名または処理名、対応するＦ層公開メソッド番号、Ｆ層公開日本語メソッド名からなる。
【００２９】
マッピング部５３は、入出力装置５１を介しメソッドマッピング情報ＤＢ５７に格納したユースケースシナリオに、画面・帳票設計部２の成果物である画面一覧表２２と、Ｄ層コンポーネント設計部４の成果物であるメソッド情報ＤＢ４５に格納されている既存Ｄ層メソッド定義情報、そして新規メソッド情報ＤＢ５８に格納されているメソッド定義情報を対応付け、メソッドマッピング情報５９を定義し、メソッドマッピング情報ＤＢ５７に格納する。
【００３０】
新規作成部５２は、入出力装置５１を介しＤＢ１設計部１の成果物であるＥＲ図１２に格納されているテーブル情報１３を用いて、Ｄ層新規メソッド情報５ａおよびＦ層内部メソッド情報５ｂを定義する。Ｄ層新規メソッド情報５ａとは、メソッドを一意に識別するメソッド番号、メソッド又は処理が属する層（Ｄ／Ｆ／Ｐ）、メソッドレベル、メソッドでアクセスするテーブル、テーブルの属性、テーブルに結合するテーブル名、結合テーブルの属性、テーブルを検索するキー、テーブルを検索した結果をメソッド利用者に返す際に表示する項目、日本語メソッド名または処理名、メソッド説明または処理説明からなる。Ｆ層内部メソッド情報５ｂとは、メソッドを一意に識別するメソッド番号、メソッド又は処理が属する層（Ｄ／Ｆ／Ｐ）、日本語メソッド名または処理名、メソッド説明または処理説明、メソッドの引数の型、メソッドの返値の型からなる。
【００３１】
Ｆ層公開メソッド定義部５５は、入出力装置５１を介しＦ層内部メソッド情報５ｂと同じフォーマットである、公開メソッド情報５ｂを定義する。
【００３２】
仕様書生成部５６は、メソッドマッピング情報ＤＢ５７に格納されているメソッドマッピング情報５９を用いて機能仕様書を、新規メソッド情報ＤＢ５８に格納されているＦ層メソッド情報５ｂを用いてＦ層インタフェース仕様書を生成する。また仕様書生成部５７は、Ｆ層インタフェース仕様書、機能仕様書作成終了時に、Ｄ層コンポーネント設計部４に対し、新規メソッド情報ＤＢ５８に格納されているＤ層新規メソッドの情報をＤ層新規メソッド作成依頼通知７として配信する。
【００３３】
まず、入出力装置４１を介しＤ層設計者から（１）Ｄ層インタフェース表示、（２）Ｄ層メソッド定義、（３）Ｄ層インタフェース仕様書作成、という指示が出された場合におけるＤ層コンポーネント設計部４の基本動作を説明する。
【００３４】
Ｄ層コンポーネント設計部４では、テーブル間の関係に着目し、Ｌｖ１  …  全テーブル、Ｌｖ２  …  コードテーブルと関連テーブル、Ｌｖ３  …子テーブルと親テーブルというレベルを設け、アクセス対象のテーブル候補を洗い出す。
【００３５】
その後、レベルに応じた、Ｌｖ１  …  基本メソッド、自由検索・Ｌｖ２  …  関連テーブルのプライマリキーによる検索・Ｌｖ３  …  子テーブルのプライマリキーによる検索、親テーブルのプライマリキーによる検索を定義することにより、以下のものを得る。
（ａ）．  １  テーブルをアクセスするためのメソッド（プライマリキーでのｓｅｌｅｃｔ，  ｉｎｓｅｒｔ，  ｕｐｄａｔｅ，  ｄｅｌｅｔｅ）
（ｂ）．  コードテーブルとのｊｏｉｎ  アクセスメソッド（名称解決を目的）
（ｃ）．  親子関係にあるテーブルのｊｏｉｎ  アクセスメソッド（検索結果として、単レコード情報を取得）
（ｄ）．  親子関係にある親子情報一括取得メソッド（検索結果として、複数レコード情報を取得）
（ｅ）．  自由検索メソッド（ｗｈｅｒｅ  句の後ろがｓｔｒｉｎｇ  型の文字列指定）
具体的に（ａ）〜（ｅ）のメソッドを「教育申込＆資格認定システム」を例に説明する。「教育申込＆資格認定システム」では（１）ＸＸＸ技術者として認定されるためには、必須として指定されている教育を受講し、成績が資格基準に達しなければならない。（２）部署別資格保有者数を出力し、各部署に資格保持促進のため、教育受講を呼びかけるという業務要件があげられている。
【００３６】
図３６に「教育申込＆資格認定システム」で用いるＤＢのテーブル一覧例を示す。
（ａ）１テーブルをアクセスするための基本メソッド：「教育科目詳細」テーブルの場合、教育センタの科目担当者が、本テーブルにアクセスを行う、科目の状況閲覧（ｓｅｌｅｃｔ）、新規科目の登録（ｉｎｓｅｒｔ）、開催日時変更（ｕｐｄａｔｅ）、科目中止（ｄｅｌｅｔｅ）という操作が、基本メソッドとなる。
（ｂ）関連テーブルのプライマリーキーによる検索：「部署」コードテーブルの名称解決を行うため、関連テーブル「社員」とｊｏｉｎし、所属部署ごと（例えば、開発部）の社員名簿を表示する操作が、コードテーブルとのｊｏｉｎ  アクセスメソッドとなる。
【００３７】
図３７に、コードテーブルとのｊｏｉｎアクセス例を示す。
（ｃ）子テーブルのプライマリーキーによる検索：「受講履歴」＜子テーブル＞、「社員」「教育科目詳細」＜親テーブル＞、そして「教育科目」＜親の親のテーブル＞を結合し、所員が既に受講した教育の成績を確認する操作が、親子関係にあるテーブルのｊｏｉｎ  アクセスメソッドとなる。
【００３８】
図３８に親子関係にあるテーブルのｊｏｉｎ  アクセス例（子テーブルのキーによる検索）を示す。
（ｄ）親テーブルのプライマリーキーによる検索：「受講履歴」＜子テーブル＞と「社員」「教育科目詳細」＜親テーブル＞、そして「教育科目」＜親の親テーブル＞を結合し、所員が自分の所員番号をキーとして、今まで受講した科目の全成績を一覧する操作が、親子関係にある親子情報一括取得メソッドとなる。
【００３９】
図３９に、親子関係にあるテーブルのｊｏｉｎ  アクセス例（親テーブルのキーによる検索）を示す。
【００４０】
（ｃ）子テーブルのプライマリーキーによる検索メソッドでは、検索結果が単レコードに識別されるのに対し、（ｄ）親テーブルのプライマリーキーによる検索では、検索結果として複数レコードの情報を取得することができるという違いがある。
【００４１】
（ｅ）自由検索：（ａ）基本メソッドではサポートされないレベルの検索（ｓｅｌｅｃｔ）メソッドである。ｗｈｅｒｅ  句で指定されるデータ抽出条件式を一つの文字列として扱い、引数として渡す。
【００４２】
Ｄ層設計者はＤ層コンポーネント設計部４において、図２に示すフローチャートに従いＤ層クラス設計を行う。
（１）Ｄ層インタフェース表示：Ｄ層コンポーネント設計部４において、入出力装置４１からＤ層インタフェース表示の指示を受けた場合、Ｄ層インタフェース表示部４３では以下に示す処理を行う。Ｄ層インタフェース表示部４３は図４に示すフローチャートに従い動作する。
【００４３】
Ｄ層インタフェース表示部４３において、（Ａ）Ｄ層コンポーネント設計が、（１）初めてか、（２）ＤＢ設計部１からテーブル情報の変更を受けてのやり直しか、（３）Ｆ層コンポーネント設計部５からのＤ層新規メソッド作成依頼通知６を受けてかにより以下のテーブル情報読み込み処理を行う。
【００４４】
（１）初めてのＤ層コンポーネント設計：
ｉ）  ＤＢ設計部１の成果物であるＥＲ図１２から、テーブル情報１３を読み込む
ｉｉ）  （１）で読み込んだテーブル情報１３をもとに、Ｌｖ１メソッドである（ａ）基本メソッド、（ｅ）自由検索を自動設定する。
ｉｉｉ）  ｉ）で自動設定されたＬｖ１メソッド設定情報をメソッド情報ＤＢ４５に格納する。ここでメソッド情報ＤＢに格納する内容は図２６に示すメソッド情報格納テーブル内容になる。
【００４５】
（２）テーブル情報の変更をうけてのＤ層コンポーネント設計のやり直し
ｉ）Ｄ層設計者は入出力装置４１から読み込む必要のあるＥＲ図１２を指示し、変更があったテーブル情報のみを読み込む。
ｉｉ）（１）のｉｉ）と同様に、ｉ）で読み込んだテーブル情報をもとに、Ｌｖ１メソッドを自動設定する。
ｉｉｉ）  （１）のｉｉｉ）と同様に、ｉｉ）で内容変更されたＬｖ１メソッド設定情報をメソッド情報ＤＢ４５に反映する。
【００４６】
（３）  Ｄ層新規メソッド作成依頼通知７をうけてのＤ層コンポーネント設計
ｉ）メソッド情報格納ＤＢ４５より、既に格納されているＤ層インタフェースを読み込む
（Ｂ）メソッド情報ＤＢ４５に格納されているメソッド情報から、表示用データを作成し、出力装置４１に表示する。図９に表示例を示す。Ｄ層コンポーネント設計におけるＬｖ１メソッド定義部４２１は、デフォルトＬｖ１メソッドを全て作成する。
（２）各レベルのＤ層メソッド定義
Ｄ層新規メソッド作成依頼通知７が存在する場合（Ａ１）と存在しない場合（Ａ２）で動きが異なる。
【００４７】
（Ａ１）Ｄ層新規メソッド作成依頼通知７が存在する場合、
（１）Ｆ層コンポーネント設計部５の成果物であるＤ層新規メソッド依頼通知書から、Ｄ層新規メソッド情報を読み込み表示する。図１０に表示例を示す。
（２）Ｄ層設計者は入出力装置４１から、Ｄ層新規メソッドを選択し、
ａ）Ｌｖ１，２，３メソッド定義部４２による定義処理
ｂ）Ｄ層新規メソッド候補の削除、のどちらかの処理を行う。
【００４８】
ａ）Ｌｖ１，２，３メソッド定義部４２による定義処理を行う場合、Ｌｖ１，２，３メソッド定義部では以下に示す処理を行う。Ｌｖ１，２，３メソッド定義部４２は図３に示すフローチャートに従い動作する。
【００４９】
○Ｌｖ１メソッド定義部４２１による定義処理
Ｌｖ１メソッド定義部４２１は図６に示すフローチャートに従い動作する。
【００５０】
ｉ）Ｌｖ１メソッド定義部は、Ｄ層インタフェース表示部４３から設定済みのＬｖ１メソッド名とメソッド選択情報を取得、表示用データを作成し、出力装置４１に表示する。Ｌｖ１メソッド定義部の画面例を図１１に示す。
【００５１】
ｉｉ）Ｄ層設計者は、入出力装置４１に表示されているＬｖ１メソッド選択情報に対して、入出力装置４１よりメソッド要不要の変更を行う。
【００５２】
ｉｉｉ）修正結果を受け、メソッド情報格納ＤＢ４５に格納されているＬｖ１メソッド設定情報を変更する。
【００５３】
○Ｌｖ２メソッド定義部４２２による定義処理
Ｌｖ２メソッド定義部４２２は図７に示すフローチャートに従い動作する。Ｌｖ２メソッド定義部の画面表示例を図１２に示す。
【００５４】
ｉ）Ｌｖ２メソッド定義部４２２は、Ｄ層インタフェース表示部４３から選択したコードテーブル名を取得する。図１２の例では、コードテーブルとして“部署”テーブルが選択されている。
【００５５】
ｉｉ）Ｌｖ２メソッド定義部４２２は、コードテーブル名をキーとして関連するテーブル情報をＤＢ設計部１の成果物であるＥＲ図１２から読み込み、表示用データを作成し、入出力装置４１に表示する。ここでテーブル情報とは、テーブル属性、関連するテーブル一覧、各関連テーブルの検索キー、各関連テーブルのカラム名となる。図１２の例では、“部署”テーブルに関連するテーブルの候補として、“社員”テーブルが表示されている。
【００５６】
ｉｉｉ）Ｄ層設計者は、入出力装置４１を介し、関連テーブル一覧からコードテーブルに連結する関連テーブルを選択する。
【００５７】
ｉｖ）選択された関連テーブルの検索キーがＬｖ２メソッドの検索キーに自動設定される。図１２の例では、“部署”テーブルに連結するテーブルとして、“社員テーブル”が選択されており、これに伴い“社員”テーブルのキーである、所員番号が、検索キーとして自動設定されている。
【００５８】
ｖ）ｉｉｉ）で関連テーブルが選択されたのを受け、カラム一覧に、コードテーブルと選択された関連テーブルのカラム名をすべて表示する。
【００５９】
ｖｉ）Ｄ層設計者は入出力装置４１を介し、Ｌｖ２メソッドで参照したいカラム目を選択する。図８の例では、カラム一覧として“氏名”“所属コード”“成績”“科目名”が表示されており、“氏名”が選択されている。
【００６０】
続いてＤ層設計者はＬｖ２メソッドの日本語名、およびメソッド説明も入力する。図８の例では、メソッド日本語名に“社員名取得”、メソッド説明に“社員名を取得する”と入力している。
【００６１】
ｖｉｉ）Ｌｖ２メソッド定義部４２２で定義したメソッド情報４６をメソッド情報ＤＢ４５に格納する。
【００６２】
○Ｌｖ３メソッド設定部４２３による設定処理
Ｌｖ３メソッド設定部４２３は図８に示すフローチャートに従い動作する。Ｌｖ３メソッド定義部４２３の画面表示例を図１３に示す。
【００６３】
ｉ）Ｌｖ３メソッド設定部はＤ層インタフェース表示部４３から選択した子テーブル名を取得する。図１３の例では、子テーブルとして、“受講履歴”テーブルが選択されている。
【００６４】
ｉｉ）Ｌｖ３メソッド定義部４２３は子テーブル名をキーとして、子テーブルに関係する親テーブル情報をＤＢ設計部１の成果物であるＥＲ図１２から読み込み、表示用データを作成し、入出力装置４１に表示する。ここでテーブル情報とは、親テーブル一覧、各親テーブル検索キー、各親テーブルのカラム名となる。図１３の例では、“受講履歴”テーブルの親テーブルとして、“社員テーブル”“教育科目テーブル”が表示されている。
【００６５】
ｉｉｉ）Ｄ層設計者は入出力装置４１を介し、親テーブル一覧から子テーブルに連結する親テーブルを選択する。
【００６６】
ｉｖ）ｉｉｉ）で親テーブルが選択されたのを受け、子テーブルと選択した親テーブルの検索キーがすべて検索キー一覧に検索キー候補として表示される。図１３の例では、“受講履歴”テーブルに連結するテーブルとして“社員テーブル”“教育科目”テーブルを選択しており、これに伴い検索キー候補には、“所員番号：科目コード：サブコード”“所員番号”“科目コード”が表示されている。
【００６７】
ｖ）またｉｉｉ）で親テーブルが選択されたのを受け、表示項目一覧に、子テーブルと選択された親テーブルのカラム名を表示する。
【００６８】
ｖｉ）Ｄ層設計者は入出力装置を介し、検索キー一覧の中からＬｖ３メソッドの検索キーに設定するものを検索キー候補一覧から選択する。図１３の例では、検索キーとして“所員番号：科目コード：サブコード”を選択している。
【００６９】
続いてＤ層設計者はＬｖ３メソッドで取得したいカラム名をカラム候補一覧から選択する。図１３の例では、表示項目一覧として、“氏名”“所属コード”“成績”“科目名”が表示されており、“氏名”“所属コード”“成績”“科目名”が選択されている。
【００７０】
さらに、Ｄ層設計者は、Ｌｖ３メソッドの日本語名、およびメソッド説明も入力する。図１３の例では、メソッド日本語名に、“受講済科目取得”、メソッド説明に“受講済の科目を取得する”と入力している。
【００７１】
ｖｉｉ）Ｌｖ３メソッド定義部４２３で定義したメソッド情報４６をメソッド情報ＤＢ４５に格納する。
【００７２】
ｂ）Ｄ層新規メソッド候補の削除を行う場合、Ｄ層新規メソッド作成依頼通知７から選択したＤ層新規メソッドを選択する。
【００７３】
（Ａ２）Ｄ層新規メソッド作成依頼通知７が存在しない場合、Ｌｖ１，２，３メソッド定義部４２による定義処理を行う。
【００７４】
Ｄ層設計者は、Ｄ層インタフェース表示部４３に表示されているＬｖ１テーブル一覧の中から、定義を行いたいテーブルを選択し、作成したいレベルのメソッド定義部４２を呼び出す。Ｌｖ２メソッドを新規に定義する場合はＤ層インタフェース表示部４３に表示されているＬｖ１テーブル一覧からコードテーブルを選択しＬｖ２メソッド定義部４２２を呼び出す。Ｌｖ３メソッドを新規に定義する場合はＤ層インタフェース表示部４３に表示されているＬｖ１テーブル一覧から「子」又は「親でもあり子」でもあるテーブルを選択しＬｖ３メソッド定義部４２３を呼び出す。
【００７５】
（Ｂ）メソッド情報格納ＤＢ４５に格納されているメソッド情報を取得、表示用データを作成し、出力装置４１に表示する。表示例を図６に示す。
（３）仕様書生成
Ｄ層設計者は、Ｄ層メソッド定義終了後、Ｄ層インタフェース表示部４３に表示されているＬｖ１〜Ｌｖ３メソッド情報の内容を確認し、仕様書生成部４４にＤ層インタフェース仕様書作成の指示を出す。Ｄ層インタフェース仕様書作成の指示を受けた仕様書生成部４４は、メソッド情報ＤＢ４５からメソッド定義情報を読み込み、Ｄ層インタフェース仕様書を生成する。また仕様書生成部４４は、Ｄ層インタフェース仕様書作成終了後、Ｆ層設計依頼通知書６を作成し、コンポーネント設計部５に送付する。仕様書生成部４４は図５に示すフローチャートに従い動作する。
【００７６】
以上説明したようにＤ層コンポーネント設計部４では、データベースのテーブル情報をもとに、テーブルの結合関係に着目し、アクセス対象のテーブル候補を洗い出すためのレベル付けを行い、そのレベルに応じたオブジェクトとメソッドの抽出基準を設けることにより、設計者のスキルに依存することのないＤ層コンポーネントのクラス抽出が可能である。
【００７７】
次に入出力装置を５１を介し、Ｆ層設計者から（１）マッピング情報表示・（２）メソッドマッピング処理（メソッド定義（Ｄ層追加、Ｆ層内部、Ｐ層））・（３）Ｆ層公開メソッド定義・（４）Ｆ層インタフェース仕様書、機能仕様書作成という指示が出された場合におけるＦ層コンポーネント設計部５の基本動作を説明する。
【００７８】
Ｆ層コンポーネント設計部５では、以下のことを行う。
（１）Ｄ層コンポーネント設計部４が提供する基本機能を用いてユースケースシナリオにマッピングしていくことで、各作業が実現可能であるかを検証する。マッピング課程の例を図４０に示す。図４０に示すように、Ｄ層基本機能マッピング時には不足機能を洗い出すことが出来る。
（２）Ｄ層提供の基本機能だけでは補いきれない業務固有のＤＢ検索メソッドをＤ層追加機能として洗い出す。マッピング課程の例を図４１に示す。図４１では、図４０の時点で不足であった機能のうち、ＤＢアクセスに関するものを、Ｄ層新規メソッドとしてとして抽出している。
（３）Ｄ層提供機能で得られた結果を加工する処理と複数回のＤ層アクセスが行われている処理が、Ｆ層メソッド候補であると考え、日本語名を付けマッピングする。この際、Ｄ層提供機能をまとめＦ層メソッドに置き換える処理が発生する。つまり、Ｆ層メソッドを上位、Ｄ層メソッドを下位とする階層構造になる。マッピング課程の例を図４２に示す。
（４）ＤＢアクセスを伴わない、入力チェック、入出力編集といった処理は、Ｐ層処理としてユースケースシナリオにマッピングする。同時にＰ層画面のマッピング作業も行う。マッピング課程の例を図４３に示す。
（５）最後にユースケースシナリオ上のどの部分をＦ層の公開メソッドとするかを定義する。マッピング課程の例を図４４に示す。
という手順をふみ、Ｆ層クラスを抽出する。
【００７９】
Ｆ層コンポーネント設計部５におけるＦ層クラス抽出のフローチャートを図１５に示す。
（１）マッピング情報表示部５４
Ｆ層コンポーネント設計部５において、入出力装置５１からマッピング情報表示の指示を受けた場合、マッピング情報表示部表示部５４では以下に示す処理を行う。マッピング情報表示部５４は図１６に示すフローチャートに従い動作する。
【００８０】
マッピング情報表示部５４において（１）Ｆ層コンポーネント設計が、（Ａ）初めてか、（Ｂ）業務設計部２からユースケースシナリオ情報の変更を受けてのやり直しか、（Ｃ）２回目以降かにより以下ユースケースシナリオ読み込み処理を行う。
【００８１】
（Ａ）初めてのＦ層コンポーネント設計
業務設計部３の成果物であるユースケースシナリオ３２を読み込む。マッピング情報表示部の画面例を図２６に示す。図２６の例では、「教育受講申込（募集時期外、日付指定）」というユースケースシナリオが表示されている。
【００８２】
（Ｂ）ユースケースシナリオの変更をうけてのＤ層コンポーネント設計のやり直し業務設計部３の成果物であるユースケースシナリオ３２の変更部分のみを読み込む。
【００８３】
（Ｃ）２回目以降のＤ層コンポーネント設計
メソッドマッピング情報格納ＤＢ５７より、すでにマッピング済のユースケースシナリオを読み込む。
【００８４】
（２）読み込んだユースケースシナリオを元に、表示用データを作成し、入出力装置５１に表示する。
（２）マッピング処理
（１）マッピング情報表示部５４にて、マッピングを行いたいユースケースシナリオの行を選択し、マッピング部５３を呼び出す。マッピング部５３は図１８に示すフローチャートに従い動作する。マッピング部の表示例を図２７に示す。図２７の例では、「６．３  申込を行う場合には、科目表示行のチェック項目をチェックし、申込ボタンを押下」という行が選択されている。
【００８５】
（２）マッピング部で、（Ａ）  Ｄ層既存メソッドマッピング処理、（Ｂ）  Ｄ層新規メソッド定義部によるメソッド定義処理、（Ｃ）  Ｆ層内部メソッド定義部によるＦ層内部メソッド定義処理、（Ｄ）  Ｐ層追加部によるＰ層追加処理のいずれかの処理を行い、メソッドマッピング情報５９を作成する。
【００８６】
（Ａ）Ｄ層メソッドマッピング部５３１によるＤ層既存メソッドマッピング処理
Ｄ層メソッドマッピング部５３１は図１９に示すフローチャートに従い動作する。図２８にＤ層メソッドマッピング部の画面例を示す。
【００８７】
ｉ）Ｄ層コンポーネント設計部４のメソッド情報格納ＤＢ４５より、すでに作成済みのＤ層メソッド情報を読み込む。
【００８８】
ｉｉ）新規メソッド情報ＤＢ５８よりＤ層新規メソッド定義部５３２で新規に定義したＤ層メソッド情報を読み込む。
【００８９】
ｉｉｉ）入出力装置５１よりユースケースシナリオにマッピングしたいＤ層メソッドを選択する。
【００９０】
ｉｖ）メソッドマッピング情報５９を作成し、マッピング部５３に出力する。図２７の例では、ユースケースシナリオに対し「教育科目申込基準の取得」「申込者の教育履歴情報取得」メソッドがマッピングされている。
【００９１】
（Ｂ）Ｄ層新規メソッド定義部によるメソッド定義処理
Ｄ層新規メソッド定義部は図２０に示すフローチャートに従い動作する。図２９にＤ層新規メソッド定義部の画面例を示す。
【００９２】
ｉ）Ｄ層コンポーネント設計部４のメソッド情報格納ＤＢ４５より、すでに作成済みのＤ層メソッド情報を読み込む。
【００９３】
ｉｉ）Ｌｖ１メソッドの変更がある場合は、Ｌｖ１メソッド定義部４２１を呼び出す。Ｌｖ１メソッド定義部４２１は、Ｄ層コンポーネント設計部４のＬｖ１メソッド定義部と同じ動作をする。
【００９４】
Ｌｖ２メソッドを新規に定義する場合はＤ層新規メソッド定義部に表示されているＬｖ１テーブル一覧からコードテーブルを選択しＬｖ２メソッド定義部４２２を呼び出す。Ｌｖ２メソッド定義部４２２はＤ層コンポーネント設計部４のＬｖ２メソッド定義部を利用する。
【００９５】
Ｌｖ３メソッドを新規に定義する場合はＤ層新規メソッド定義部に表示されているＬｖ１テーブル一覧から子テーブルを選択しＬｖ３メソッド定義部４２３を呼び出す。Ｌｖ３メソッド定義部４２３はＤ層コンポーネント設計部４のＬｖ３メソッド定義部と同じ動作をする。
【００９６】
ｉｉｉ）ｉｉ）で新規に作成したＬｖ１，２，３メソッド情報５ａを新規メソッド情報ＤＢ５８に格納する。ここで新規メソッド情報ＤＢ５８に格納する内容は新規メソッド情報格納テーブル図３４の内容になる。
【００９７】
ｉｖ）メソッドマッピング情報５９を作成し、マッピング部５３に出力する。
【００９８】
（Ｃ）Ｆ層内部メソッド定義部５３３によるＦ層内部メソッド定義処理
Ｆ層内部メソッド定義部５３３は図２１に示すフローチャートに従い動作する。Ｆ層内部メソッド定義部の表示例を図３０に示す。
【００９９】
Ｆ層内部メソッド定義部５３３は、ｉ）マッピング画面上で選択したＤ層メソッド情報をマッピング画面より読み込む。Ｄ層メソッドが選択されていなければ、選択されていないという情報を読み込む。ｉｉ）Ｆ層内部メソッド定義画面において、メソッドの日本語名、引数の型、返値の型、メソッドの説明を入出力装置５１より入力する。図３０の例では、メソッドの日本語名に“教育申込不可判定”、引数の型に“Ｓｔｒｉｎｇ”、返値の型に“ｂｏｏｌｅａｎ”、メソッドの説明に“教育申込の不可を判定する”と入力している。ｉｉｉ）Ｆ層内部メソッドの作成は、ａ）Ｄ層メソッドをまとめるもの、ｂ）業務処理を行うもの、があり、どちらを作成するかは、Ｄ層メソッドが選択されているか、いないかで判断し、それぞれの処理を行う。
【０１００】
ａ）  Ｄ層メソッドをまとめるＦ層内部メソッド（Ｄ層メソッドが選択されている）選択したＤ層メソッドのメソッド階層レベルを１増やし、メソッドマッピング情報格納ＤＢの内容を更新する。
【０１０１】
ｂ）  業務処理を行うＦ層内部メソッド
特に何もしない。
【０１０２】
ｉｖ）ｉｉ）で作成したメソッド情報５ｂを新規メソッド情報ＤＢ５８に格納する。
ｖ）メソッドマッピング情報５９を作成し、マッピング部５３に出力する。
【０１０３】
（Ｄ）Ｐ層追加部５３４によるＰ層追加処理
Ｐ層追加部５３４は図２２に示すに示すフローチャートに従い動作する。
Ｐ層追加部５３４では、ユースケースシナリオに対して、Ｐ層画面をマッピングするか、Ｐ層処理を追加するかを選択し、選択に応じてＰ層画面追加部５３４１、Ｐ層処理追加部５３４２を呼び出す。
【０１０４】
ａ）Ｐ層画面追加部５３４１によるＰ層画面追加処理
Ｐ層画面追加部５３４１は図２３に示すフローチャートに従い動作する。Ｐ層画面追加部５３４１の表示例を図３１に示す。
【０１０５】
ｉ）画面・帳票設計部２の成果物である画面一覧表２２より、画面一覧情報を読み込む。図３１の例では、「申込受理画面」「教育案内画面」が表示されている。
【０１０６】
ｉｉ）Ｐ層画面追加画面において表示されている画面一覧の中から、ユースケースシナリオにマッピングしたい画面を選択する。図３１の例では、「教育案内画面」が選択されている。
【０１０７】
また、入出力装置５１より追加した画面に対する補足事項を入力する。図３１の例では、“必須教育科目に空きがない場合、満員である旨を知らせるメッセージを出力”と入力している。
【０１０８】
ｉｉｉ）メソッドマッピング情報５９を作成し出力する。
【０１０９】
ｂ）Ｐ層処理追加部５３４２によるＰ層処理追加処理
Ｐ層処理追加部５３４２は図２４に示すフローチャートに従い動作する。Ｐ層処理追加部５３４２の表示例を図２６に示す。
【０１１０】
ｉ）入出力装置５１よりＰ層で行いたい処理名と処理の説明を入力する。図３２の例では処理名に“開催期間内であるかチェック”、処理の説明に“教育開催期間内であるかをチェック”と入力している。
【０１１１】
ｉｉ）ｉ）で入力したＰ層処理情報５ｂを新規メソッド情報ＤＢ５８に格納する。
【０１１２】
ｉｉｉ）メソッドマッピング情報５９を作成し、マッピング部５３に出力する。
【０１１３】
（３）（２）で作成したメソッドマッピング情報５９をメソッドマッピングＤＢ５７に納する。ここでメソッドマッピングＤＢ５７に格納する内容はメソッドマッピング情報格納テーブル図３５の内容になる。
【０１１４】
（４）マッピングしたメソッドの実行順序を変更する場合には、メソッドマッピングＤＢ５７に格納されているメソッドマッピング情報５９の実行順の内容を変更する。
【０１１５】
（５）メソッドマッピングＤＢ５７に格納されているメソッドマッピング情報５９を元に、表示データを作成し、出力装置５１に表示する。
【０１１６】
（３）Ｆ層公開メソッド定義
マッピング情報表示部５４から、Ｆ層公開メソッドとして定義したいユースケースシナリオの範囲をマッピングしたメソッドや画面、処理も含め選択し、Ｆ層公開メソッド定義部５５を呼び出す。Ｆ層公開メソッド定義部は図２５に示すフローチャートに従い動作する。
【０１１７】
Ｆ層公開メソッド定義部５５は（２）の（３）Ｆ層内部メソッド定義部５３３と同じ画面を利用する。
【０１１８】
ｉ）メソッドの日本語名、引数の型、返値の型、メソッドの説明を入出力装置より入力する。
【０１１９】
ｉｉ）ｉ）で入力したＦ層公開メソッド設定情報５ｂを新規メソッド情報ＤＢ５８に格納する。
【０１２０】
ｉｉｉ）メソッドマッピング情報ＤＢ５７に格納されている選択されたユースケースシナリオに対応する範囲のメソッドマッピング情報５９に関して、Ｆ層公開メソッド識別子とＦ層公開メソッド名の内容を更新する。
【０１２１】
ｉｖ）メソッドマッピングＤＢ５７に格納されているメソッドマッピング情報５９をもとに表示データを作成し、出力装置５１に表示する。表示例を図３３に示す。
（４）仕様書生成
Ｆ層設計者はメソッドマッピング定義終了後、メソッドマッピング情報表示部５４に表示されているメソッドマッピング情報の内容を確認し、仕様書生成部５６にＦ層インタフェース仕様書、機能仕様書の作成指示を出す。Ｆ層インタフェース仕様書、機能仕様書の作成を受けた仕様書生成部５６は新規メソッド情報ＤＢ５８からメソッド定義情報５ａ／５ｂを、メソッドマッピング情報ＤＢ５７からメソッドマッピング情報５９を読み込み、各々からＦ層インタフェース仕様書、機能仕様書を生成する。また仕様書生成部５６は仕様書作成終了後、Ｄ層新規メソッド作成依頼通知書７を作成し、Ｄ層コンポーネント設計部４に送付する。
【０１２２】
このときに新規メソッド情報ＤＢ５８に格納されているＤ層新規メソッドに関するデータは削除する。
【０１２３】
仕様書生成部５４は図１７に示すフローチャートに従い動作する。
【０１２４】
以上説明したようにＦ層コンポーネント設計部５では、データ中心アプローチから得たＤ層コンポーネントのインタフェースと、画面・帳票一覧表を用いてユースケースシナリオの各作業が実現可能であるか検証する。検証した結果をユースケースシナリオと組み合わせて表示することにより、不足機能の洗い出しと、Ｆ層コンポーネントのクラス抽出を行うことができる。
【０１２５】
また、Ｄ層コンポーネント設計部、Ｆ層コンポーネント設計部では、それぞれ各々設計終了時に設計終了の通知を自動的に送信するしくみを備えている。このしくみにより、Ｄ層設計者、Ｆ層設計者間の連携の簡易化をはかり、人為的ミスによるコンポーネント間インタフェースの不整合といった問題の回避をはかることができる。
【０１２６】
【発明の効果】
本発明により次の利点を得る事ができる。
１．本設計手順を利用して開発を行うことで、開発者がとくに意識することなく、三層アーキテクチャを採択したアプリケーション開発を行うことができる。
２．コンポーネント設計の機械化を図ることで、オブジェクト、メソッドの粒度や品質のばらつきを防ぐことができる。
３．ＤＢのテーブル情報からＤ層クラスをボトムアップ的に定義することで、無駄な機能をもったメソッドの作成を防ぐことができる。
４．Ｄ層インタフェースとユースケースシナリオを付き合わせていくことで、不足機能の洗い出しを抜けなく行うことができる。
５．本設計手順、およびツールを利用することで、Ｄ層インタフェース仕様書や機能仕様書といった必要な設計成果物を、実際に設計を行いながら作成して行くことができる。
【図面の簡単な説明】
【図１】システム概要図
【図２】Ｄ層コンポーネント設計部におけるＤ層設計者基本フローチャート
【図３】Ｄ層コンポーネント設計部におけるＬｖ１，２，３メソッド定義部のフローチャート
【図４】Ｄ層コンポーネント設計部におけるＤ層インタフェース表示部のフローチャート
【図５】Ｄ層コンポーネント設計部におけるＬｖ１メソッド定義部のフローチャート
【図６】Ｄ層コンポーネント設計部におけるＬｖ２メソッド定義部のフローチャート
【図７】Ｌｖ２メソッド定義部４２２の処理を示すフローチャート
【図８】Ｄ層コンポーネント設計部におけるＬｖ３メソッド定義部のフローチャート
【図９】Ｄ層コンポーネント設計部におけるＤ層インタフェース表示部の画面例
【図１０】Ｄ層コンポーネント設計部における新規Ｄ層メソッド定義選択画面の画面例
【図１１】Ｄ層コンポーネント設計部におけるＬｖ１メソッド定義部の画面例
【図１２】Ｄ層コンポーネント設計部におけるＬｖ２メソッド定義部の画面例
【図１３】Ｄ層コンポーネント設計部におけるＬｖ３メソッド定義部の画面例
【図１４】Ｄ層コンポーネント設計部におけるメソッド情報ＤＢに格納するテーブル例
【図１５】Ｆ層コンポーネント設計部におけるＦ層設計者基本フローチャート
【図１６】Ｆ層コンポーネント設計部におけるマッピング情報表示部フローチャート
【図１７】Ｆ層コンポーネント設計部における仕様書生成部フローチャート
【図１８】Ｆ層コンポーネント設計部におけるマッピング部のフローチャート
【図１９】Ｆ層コンポーネント設計部におけるＤ層メソッドマッピング部のフローチャート
【図２０】Ｆ層コンポーネント設計部におけるＤ層新規メソッド定義部のフローチャート
【図２１】Ｆ層コンポーネント設計部におけるＦ層内部メソッド定義部のフローチャート
【図２２】Ｆ層コンポーネント設計部におけるＰ層追加部のフローチャート
【図２３】Ｆ層コンポーネント設計部におけるＰ層画面追加部のフローチャート
【図２４】Ｆ層コンポーネント設計部におけるＰ層処理追加部のフローチャート
【図２５】Ｆ層コンポーネント設計部におけるＦ層公開メソッド定義部のフローチャート
【図２６】Ｆ層コンポーネント設計部におけるマッピング情報表示部の画面例（初期状態）
【図２７】Ｆ層コンポーネント設計部におけるマッピング部の画面例
【図２８】Ｆ層コンポーネント設計部におけるＤ層メソッドマッピング部の画面例
【図２９】Ｆ層コンポーネント設計部におけるＤ層新規メソッド定義部の画面例
【図３０】Ｆ層コンポーネント設計部におけるＦ層内部メソッド定義部の画面例
【図３１】Ｆ層コンポーネント設計部におけるＰ層画面追加部の画面例
【図３２】Ｆ層コンポーネント設計部におけるＰ層処理追加部の画面例
【図３３】Ｆ層コンポーネント設計部におけるマッピング情報表示部の画面例（Ｆ層公開メソッド定義後）
【図３４】Ｆ層コンポーネント設計部における新規メソッド情報ＤＢに格納するテーブル例
【図３５】Ｆ層コンポーネント設計部におけるメソッドマッピング情報ＤＢに格納するテーブル例
【図３６】「教育申込＆資格認定システム」で用いるＤＢのテーブル一覧
【図３７】コードテーブルとのｊｏｉｎアクセス例
【図３８】親子関係にあるテーブルのｊｏｉｎアクセス例（子テーブルのキーによる検索）
【図３９】親子関係にあるテーブルのｊｏｉｎアクセス例（親テーブルのキーによる検索）
【図４０】Ｆ層コンポーネントのインタフェース抽出の流れ（Ｄ層基本機能のマッピング）
【図４１】Ｆ層コンポーネントのインタフェース抽出の流れ（Ｄ層追加機能の洗い出し）
【図４２】Ｆ層コンポーネントのインタフェース抽出の流れ（Ｆ層内部メソッドの洗い出し）
【図４３】Ｆ層コンポーネントのインタフェース抽出の流れ（Ｐ層処理の洗い出し  ＋  Ｐ層画面のマッピング）
【図４４】Ｆ層コンポーネントのインタフェース抽出の流れ（Ｆ層公開メソッドの定義）
【符号の説明】
１  ＤＢ設計部
１１  入出力装置
１２  ＥＲ図
１３  テーブル情報
２  画面・帳票設計部
２１  入出力装置
２２  画面・帳票一覧表
３  業務設計部
３１  入出力装置
３２  ユースケースシナリオ
４  データベースアクセス（Ｄ層）コンポーネント設計部
４１  入出力装置
４２  Ｌｖ１，２，３メソッド定義部
４２１  Ｌｖ１メソッド定義部
４２２  Ｌｖ２メソッド定義部
４２３  Ｌｖ３メソッド定義部
４３  Ｄ層インタフェース表示部
４４  仕様書生成部
４５  メソッド情報格納ＤＢ
４６  メソッド定義情報
５  機能（Ｆ層）設計部
５１  入出力装置
５２  新規作成部
５３  マッピング部
５４  マッピング情報表示部
５５  Ｆ層公開メソッド定義部
５６  仕様書生成部
５７  メソッドマッピング情報格納ＤＢ
５８  新規メソッド情報格納ＤＢ
５９  メソッドマッピング情報
５ａ  Ｄ層メソッド定義情報
５ｂ  Ｆ層メソッド定義情報
６  Ｆ層設計通知依頼
７  Ｄ層新規メソッド作成依頼通知
【図１】
2005018505.tif 000003
【図２】
2005018505.tif 000004
【図３】
2005018505.tif 000005
【図４】
2005018505.tif 000006
【図５】
2005018505.tif 000007
【図６】
2005018505.tif 000008
【図７】
2005018505.tif 000009
【図８】
2005018505.tif 000010
【図９】
2005018505.tif 000011
【図１０】
2005018505.tif 000012
【図１１】
2005018505.tif 000013
【図１２】
2005018505.tif 000014
【図１３】
2005018505.tif 000015
【図１４】
2005018505.tif 000016
【図１５】
2005018505.tif 000017
【図１６】
2005018505.tif 000018
【図１７】
2005018505.tif 000019
【図１８】
2005018505.tif 000020
【図１９】
2005018505.tif 000021
【図２０】
2005018505.tif 000022
【図２１】
2005018505.tif 000023
【図２２】
2005018505.tif 000024
【図２３】
2005018505.tif 000025
【図２４】
2005018505.tif 000026
【図２５】
2005018505.tif 000027
【図２６】
2005018505.tif 000028
【図２７】
2005018505.tif 000029
【図２８】
2005018505.tif 000030
【図２９】
2005018505.tif 000031
【図３０】
2005018505.tif 000032
【図３１】
2005018505.tif 000033
【図３２】
2005018505.tif 000034
【図３３】
2005018505.tif 000035
【図３４】
2005018505.tif 000036
【図３５】
2005018505.tif 000037
【図３６】
2005018505.tif 000038
【図３７】
2005018505.tif 000039
【図３８】
2005018505.tif 000040
【図３９】
2005018505.tif 000041
【図４０】
2005018505.tif 000042
【図４１】
2005018505.tif 000043
【図４２】
2005018505.tif 000044
【図４３】
2005018505.tif 000045
【図４４】
2005018505.tif 000046