LiveSource機能を使った UMLモデリング - Delphi 2006

Delphi 2006の新機能のうちの一つである、LiveSource機能を使ってみます。  Win32アプリケーションを新規作成します。

新規作成でユニットを一つ追加します。

ユニットに名前をつけて保存します。ここでは、フォームのユニット名をUnit_main.pas に 新しく追加した空のユニットの名前を unit_calc.pas にして保存しました。この時の状態が下の図です。

プロジェクトマネージャーのタブの右側にある、モデルビュータブをクリックします。このとき、モデリング用に設定されていないため、モデリングサポートを適用するか問い合わせるダイアログが表示されます(下図)。「はい」をクリックしてモデリングをサポートさせます。

 モデルビューが構築されます。モデルビューのツリー構造をたどって Unit_calcのノードを選択し、ダブルクリックします。

 Unit_calcのモデルビューが開きます。空のユニットのため、Globalsしかありません。

[やりたいこと] LiveSource機能を用いて、UMLからプログラムを設計してみます。ここでは、Input1 Input2 の2つのプロパティに入力された値を足し、Resultプロパティに代入するクラスを作成します。計算は、Calcメソッドが呼び出された時点で実行される仕様にします。

 まず、クラスを作成してみましょう、右下のツールパレットから「クラス」を選択します。

 モデル図の部分にドラッグして、クラスを作成します。

作成したクラスを左クリックで選択し、右クリックを押しポップアップメニューを表示させます。次に、ポップアップメニューの「追加」「フィールド」をクリックします。

クラスの中にフィールドが追加されました。フィールドはいわゆる変数ですので、名前と型を設定する必要があります。ここではValue1:integer としました。


 同じ手順で Value2 も作成します。

 更に同じ手順で、計算結果を格納する ResultValueフィールドも作成しました。

 次に、メソッドを作成してみましょう。クラスを選択し、ポップアップメニューの「追加」「手続き」をクリックします。

 メソッドが追加されました。メソッド名をCalcにします。

 クラス名がClass1のままですので、クラス名も変更します。Class1の文字の部分で左クリックすると編集できるようになります。クラス名を TSimpleCalcに変えました。このときの状態が下の図です。

 続いてプロパティを作成します。ポップアップメニューの「追加」「プロパティ」をクリックします。

 Input1 Input2 Result プロパティを作成しました。

 Calcメソッドに説明をつけてみましょう。Calcメソッドを選択して、オブジェクトインスペクタのプロパティの「意味」の欄に説明を書いてみました。

 では、コード画面に移ってみましょう。Unit_Calcのコードを開きます。UMLのクラス図のとおりにコードが出来上がっています。また、Calcメソッドには、先ほど書き足した説明がコメントとして挿入されていることも確認できます。

 あとはメソッド内部を実装するだけです。Calcメソッドを実装します。

 各プロパティのGet Setメソッドを実装します。

 Resultプロパティは読み込み専用プロパティにしたいので、Setメソッドは取ってしまいます。

 Property 宣言側も修正します。

 以上でクラスが完成しました。モデル図は下図のとおりになります。

 メインフォーム側で、今作成したTSimpleCalcを呼び出すコードを書いてみます。

 アプリケーションを実行して、実際に動くか確認してみます。良いようです。

 簡単なクラス作成を例にしてLiveSource機能を使ってみましたが、よくできていると思いました。読み込み専用プロパティの設定がUML図側からできないことや、プロパティが常にGet Setメソッドを持ってしまうといった仕様はありますが、面白いように図とコードが連動してくれます。"先に設計をまとめてしてしまい、後から実装部分をコーディングする"といった場合や"クラス設計図だけ書いて実装を丸投げしたい"という場合には、かなり役に立つのではないでしょうか。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2006-01-01
iPentec all rights reserverd.