...

メインフレーム環境でモデル駆動型開発 (MDD) 手法を使用する

by user

on
Category: Documents
31

views

Report

Comments

Transcript

メインフレーム環境でモデル駆動型開発 (MDD) 手法を使用する
メインフレーム環境でモデル駆動型開発 (MDD) 手法を使用する
レベル: 中級
Laurence England ([email protected]), Senior Technical Staff Member, IBM, Intel, Microsoft, HP
Michael D Connor ([email protected]), Enterprise Tooling Market Manager, IBM
2007 年 8 月 1 日
IBM のツールは、全部または一部が z/OS 上で実行されるアプリケーションのためのコードをモ
デリングし、生成するのに役立ちます。この記事では、アプリケーションのモデリング、UML、およ
びモデル変換の概要について説明します。モデル駆動型開発 (MDD) は、多くの場合、オブジェ
クト指向プログラミングに関連付けられますが、ここでは、COBOL アプリケーションを生成するモ
デルからコードへの変換機能について順を追って説明しながら、メインフレーム・アプリケーション
のために MDD を使用する方法を紹介します。
原文 URL:
http://www.ibm.com/developerworks/websphere/library/techarticles/0708_england/0708_england.ht
ml?ca=drs-
はじめに
アプリケーション・モデルの作成および詳細化という作業によって、問題領域への洞察を得られる
ことがあります。開発チームはこの実践経験を、問題領域の詳細の伝達、および利害関係者間で
の共通言語の確立に役立てることができます。この記事では、アプリケーションのモデリングに関
する概念を紹介し、アプリケーションのモデリングに使用できるツールについて説明し、モデル変
換の概要を説明します。データベース・モデル構造がスケルトン COBOL アプリケーションを生成
する、モデル変換の 1 つのフォームを紹介します。
対象読者は、モデリング、統一モデリング言語 (UML)、オブジェクト指向プログラミング、またはモ
デル駆動型アーキテクチャー (MDA) や モデル駆動型開発 (MDD) の関連領域における専門家
である必要はありません。もちろん、これらの概念に関する知識が多少でもあれば、理解に役立
ちます。関連のトピックについて理解を深めるのに役立つ参考資料については、「参考文献」セク
ションを参照してください。DDL、テーブル、カラムといったリレーショナル・データベースの概念に
ついての基本的な理解、および z/OS における COBOL についての理解は必要です。最終的
には、生成された COBOL ソース・コードを更新する必要があるからです。
モデルとは何か
モデルとは、物理的なシステムを抽象化したものです。モデルは、システムに関する重要な事実を
際立たせ、特定の問題の解決にとって必須でない詳細については無視するか、目立たせないよう
にします。モデルを使用することによって、エンジニアは、問題を解決するために、システムのさま
ざまな面について論理的に考え、コミュニケーションを行い、議論することができます。多くのエン
ジニアリング規律では、複雑な環境を理解し、最終結果を視覚化するために、モデルが使用され
ています。
ビジュアル表示は、1024 単語ほどの言語による説明にも匹敵する価値があり、実際のエンティテ
ィーを構築するのに比べてより低コストでより容易に変更が可能です。例えば、吊り橋を建設する
際には、青写真や縮尺模型といった複数のモデルを作成します。実際のシステムを構築する前に
モデルを作成し、橋を建設するコストが発生する前に、モデルを使用して潜在的な問題を克服しま
す。
モデルを使用して、システムのさまざまな特性を予測し、これから構築するシステムの動作、およ
び現行システムへの潜在的な影響を理解するのに役立てることができます。設計者は、モデルを
使用して、抽象的な概念図では明確にわからない可能性のあるパターンや傾向の発見に役立て
ることができます。
モデルは、具体的なものを提示して、複数の利害関係者がこれを批評し検証して、各々が設計に
対する批評的なフィードバックを提供できるようにすることにより、強力なコミュニケーション手段と
して機能します。モデルによって、構造と形状を伝達するだけでなく、構成員、当事者、および利害
関係者の間に一貫性のある共通の言語を導入することもできます。共通の言語を持つことにより
、コミュニケーションを簡素化および促進し、一定水準の理解を確立することができます。
モデル変換とは何か
しかし、モデルはそれ自体が目的なのではありません。モデルはあくまで、最終目的に向けた手
段です。例えば、ゴールデン・ゲート・ブリッジの模型を持っているからといって、マリン郡の通勤者
がサンフランシスコに通じる海を渡ることができるわけではありません。しかし、ゴールデン・ゲート
・ブリッジの物理的な縮尺模型を持つことは確かに、その橋の美しい外観を形作るのに役立ち、橋
の上に歩行者用通路を設置する成果ももたらしました。
同様に、アプリケーションのモデルを持つことは、それ自体がアプリケーションの実行を可能にす
ることはなくても、アプリケーションのさまざまな面を考えるのに役立ちます。
プログラムを実行するためには、モデルをコードに変換する必要があります。
変換作業とは、1 つのモデルまたは抽象レイヤーを変換して、新しいモデル (おそらく、より詳細
な情報または新たに強調された面を含む別の形式のもの) を生み出す手順です。ゴールデン・ゲ
ート・ブリッジの例でいえば、橋の青写真を縮尺模型に作り替えるような機能です。
あるアプリケーション・モデルを別のモデル、またはコードに変換するには、変換ツールを使用しま
す。モデルとともに使用される追加情報が、あるモデルから別のモデルへの変換の指針となりま
す。変換の指針となるこの情報、すなわちメタデータが、最終的に実行可能コードへの変換の指
針として使用されます。
この記事では、データのモデルをスケルトン COBOL アプリケーションに変換する方法について
解説します。
UML とは何か
統一モデリング言語 (UML) は、OMG (オブジェクト管理グループ、http://www.omg.org を参照)
による、ソフトウェア・システムを視覚化および文書化するための標準モデリング言語です。
UML は、ユース・ケース・ダイアグラム、クラス・ダイアグラム、対話ダイアグラム、状態ダイアグラ
ム、アクティビティー・ダイアグラム、デプロイメント・ダイアグラム、およびコンポーネント・ダイアグ
ラムのためのビジュアル表示、すなわちダイアグラムを備えた、グラフィカルなモデリング言語です
。
ユース・ケースとは、ユーザー (アクターともいう) とシステムの間の対話を示すシナリオです。そ
してこれらのシナリオは、アクターが特定タスクの達成を目指す目標指向です。ユース・ケースの
一例は、オンラインで買い物をする顧客です。
クラス・ダイアグラムとは、システム内のオブジェクト、およびオブジェクト間の静的な関係を記述す
るものです。オブジェクト間の関係には、包含、関連、継承、多重などがあります。オンライン・ショ
ッピングのユース・ケースをサポートするオブジェクトのクラス・ダイアグラムの構成要素としては、
OrderInfo、CustomerDetail、Payment、DeliveryMechanism、InventoryItem などが考えられます。
そしてこれらのさまざまなオブジェクトの間にいくつか明らかな関係があることにお気付きになると
思います。これらの要素を含むダイアグラムを作成することは、関係の視覚化に役立ちます。ダイ
アグラムにより、関係について質問を投げかけ、欠落している関係を見出す機会が得られます。
モデルについて徹底的な質問を投げかけることを、「モデルのエクササイズを行う」と表現すること
があります。あらゆる合理的な質問に対する回答が可能となる程度までモデルのエクササイズを
行った後は、指定のユース・ケースの特定の目的についてモデルが「完成した」と宣言することが
できます。クラス・ダイアグラムと関係を定義したら、生成段階に移行することができます。
UML について書かれた本は多数出版されています。筆者らが推薦するのは、Martin Fowler
と
Kendall Scott の 共 著 に よ る 「 UML Distilled – A Brief Guide to the Standard
Modeling Language」(Addison-Wesley、1999 年) です。IBM UML Resource Center も、UML に関
する優れた情報源を提供しています。
UML から COBOL コードを生成する
IBM Rational Software Architect は、UML モデル・ダイアグラムを作成するために使用する開発
ツールで、Rational Developer for System z V7 を通じて使用することができます。その後
、Rational Developer を使用して UML ダイアグラムをコードに変換することができます。この変換
は、モデルからコードへの変換として知られています。
Rational Developer for System z を直接 Rational Software Architect の上にインストールして、
たった一つのツールで UML モデルを作成するタスクと、モデルをコードに変換するタスクを完了
できるようになります。
Rational Developer を使用すると、UML クラス・ダイアグラムを、CICS 3.1 (またはそれ以上) に準
拠した CICS Web サービスとしてアクセスできる COBOL アプリケーションに変換することができ
ます。変換によって生成される COBOL アプリケーションは、テーブル内の行に対して以下の操
作を行うことができる CRUD アプリケーションとしての基本構造を持っています。
•
作成 (Create) – テーブル内に行を作成する。
•
読み取り (Read) – テーブル内の行を読み取る。
•
更新 (Update) – テーブル内の行を更新する。
•
削除 (Delete) – テーブル内の行を削除する。
UML クラス・ダイアグラムは、リレーショナル・テーブルとして取り扱われ、クラス・プロパティーは
リレーショナル・カラム定義として取り扱われます。クラス・ダイアグラム内のオペレーションとメソッ
ドは無視されます。さらに、UML モデル内で定義された抽象クラス、クラスの関係、およびインタ
ーフェースも無視されます。アプリケーション・プログラマーは、COBOL CRUD アプリケーションの
詳細なロジックを完成させる必要があります。
生成された COBOL アプリケーションは、以下のソース・ファイルで構成されます。
DB2 データベース・テーブル定義から COBOL コードを生成する
スケルトン COBOL CRUD アプリケーションは、DB2 z/OS データベースからも生成することがで
きます。生成されるアプリケーションは、UML から COBOL CRUD アプリケーションを生成した場
合 と 同 様 で す 。 そ の 生 成 手 順 を 以 下 に 説 明 し ま す 。 以 下 の 例 で は
、Rational Developer for System のデータ・パースペクティブを使用して、リレーショナル・データベ
ースに対する閲覧、接続、およびオペレーションの実行を行います。
プロジェクトの作成
この演習では、データベース・アプリケーション・プロジェクトというプロジェクト・タイプを使用します
。これを Rational Software Architect で作成するには、「File」、「New」、「Project」のカスケードを
使用します。ウィザードから、情報を入力するようプロンプトが出されます。
DB2 データベースの選択
新規データベース接続を作成するか、ワークスペース内で定義済みの接続を使用することができ
ます。
図 1. Rational Software Architect のデータベース接続ページ
テーブルの選択
データベースを選択したら、テーブルのセットが表示され、ここから必要なテーブルを選択すること
ができます(選択したデータベース内に利用可能なテーブルが多数ある場合には、テーブル・リス
トが表示されるまでに少し時間がかかることがあります)。
図 2. 取得されたテーブル・リスト
変換プロセスの実行
この時点で、図 3 のような画面が表示されます。これで、変換を実行する準備ができました。ここ
で「Run Transformations」ボタンをクリックします。設定された内容から検出されたメタデータを指
針として、変換プロセスが実行されます。設定内容を確認するには、「Window」から「Preferences」
を選択し、ツリー・ノード「z/OS DatabaseApplication」を展開します。
図 3. 選択したテーブルに対する変換の実行
生成された CRUD ファイルを使用する
これで、生成された COBOL CRUD アプリケーションにアプリケーション開発者が必要なロジック
を追加できるようになりました。Rational Developer for System z を使用して、UML クラス・ダイア
グラムから生成した場合でも、DB2 データベースから生成した場合でも、同じ作成物のセットが生
成されます。
結論
ソフトウェア開発のためのモデリングは、ますます広く使用されるようになり重要度も増しており、
設計ツールとして、そしてコミュニケーション手段として、高い価値を提供しています。UML 変換機
能を使用すると、モデルを別のモデル (よりプラットフォーム固有のもの、もしくはより詳細なもの)
またはコードに変換することが可能です。モデルを使用するのは、Java プログラマーに限られた
ことではありません。COBOL でコーディングを行うアプリケーション・プログラマーも、モデルを使
用するメリットを享受し、CRUD アプリケーションの作成においてモデルからコードへの変換を活
用することができます。
Fly UP