CORBAを使用したC/SシステムのサーバAPを作成する場合,システム化機能の詳細設計をします。システム化機能詳細設計では,処理フロー設計,内部インタフェース設計およびシステム化処理内容設計が必要です。ただし,これらを設計する場合,業務機能設計で業務処理概要図が作成されていること,およびユーザインタフェース基本設計で画面遷移図が作成されていることを確認し,作成されていない場合は,該当する工程に戻って作成してください。次にCORBAを使用したC/SシステムのサーバAP作成の流れを示します。
図7-6 CORBAを使用したサーバAP作成の作業の流れ
処理フロー設計では,ユーザインタフェース基本設計で作成した画面遷移図やシステム処理方式設計で検討した結果から,業務フロー図を作成します。業務フロー図では,システムに要求されている入出力情報と,入出力情報を必要とするイベントを明確にします。また,処理フロー設計では論理設計図を作成したり,どのテンプレートを適用するかを検討したりします。
業務フロー図では業務をモデル化して,システムに要求されている機能と,その機能で利用する画面や帳票などの入出力情報,およびそれらを使用する業務イベントを抽出します。業務フロー図を作成するときは,次の点を考慮してください。
次に業務フロー図を示します。なお,業務フロー図で抽出した情報は,業務イベントや実体ごとにさらに詳しく定義します。
図7-7 業務フロー図
業務フロー図で明確にしたシステム化したい業務と入出力情報を,オブジェクトとイベントによって表現します。サーバAPをオブジェクトで実装するには,オブジェクトのオペレーション(振る舞い)を定義して,インタフェースを設計する必要があります。SEWB+/CS-DESIGNでは,論理設計図を作成することでオブジェクト間の関連,役割,状態およびオブジェクトの振る舞いを定義できます。論理設計図を次に示します。
図7-8 論理設計図
SEWB+/CS-DESIGNで設計した論理設計図のオブジェクト定義から,CORBAのIDLを生成します。IDLは,クライアントが呼び出すオブジェクトのインタフェース(属性,型およびオペレーション)を定義する言語です。
新規のプログラムを作成する場合は,SEWB+で提供されているテンプレートや共通部品設計で作成したプロジェクト用のテンプレートを適用した方が,品質および保守性に優れたプログラムを作成できます。
テンプレートを適用すると,プログラムの本数は増えますが,1プログラムの規模は小さくなります。なお,論理設計図上のオブジェクトに適応するテンプレートがない場合は,必要に応じてオブジェクトを分割するか,共通部品設計に戻ってテンプレートをカスタマイズするかを検討してください。なお,SEWB+/CONSTRUCTIONでは,CORBA用のテンプレートファイルのサンプルを提供しています。
プログラム中で利用する内部テーブルなどの各仕様を作成します。SEWB+/CONSTRUCTIONを利用して仕様書を作成する場合,すでにリポジトリに登録されているドキュメントをチェックアウトして,設定します。
設定するレコード形式は,すでに「最上位結合項目」としてデータ項目辞書に登録されているか,またはSEWB+/RECORD DEFINERで定義されている必要があります。必要な最上位結合項目またはレコード定義ファイルがない場合は,データ項目管理者やシステム設計者に依頼して作成してください。
ファイルのレコード形式を設定します。なお,ファイルはER図のエンティティと対応します。そのため,ファイルに設定するレコード項目(最上位結合項目)は,ER図のエンティティを取り込んで作成された結合項目,またはレコード定義ファイルから選ばれます。
主記憶上の内部テーブルについて,仕様書を作成します。テーブル仕様には具体的な構成情報を含む結合項目またはレコード定義ファイルを設定します。
コンパイル時にレコードソースをCOPY文で取り込む場合は,SEWB+/CONSTRUCTIONのデータ定義機能またはSEWB+/RECORD DEFINERのレコード定義機能でレコードソースを生成しておきます。なお,テンプレート中に「@@expand文」を記述すると,展開時,レコード情報を自動的に取り込んでレコードソースを生成します。そのため,データ定義機能またはレコード定義機能でレコードソースを生成しておく必要はありません。
業務フロー図に記述した,業務イベントなどについて,入出力と処理の概要をまとめ,プログラム処理概要図を作成します。システム化処理内容設計書は,プログラム仕様設計で使用されます。
図7-9 プログラム処理概要図