TOP設計・移行・活用> 開発生産性の工夫
Biz/Browser
Biz/Browserで経営の効率化を実現する

第2回:Biz/Browserの運用事例
著者:アクシスソフト  永井 一美   2005/10/5
前のページ  1  2  3  4
開発生産性の工夫

   CV.netはカスタマイズも可能な製品です。そのため、開発方法にもこだわりBiz/Browserの機能が利用されています。
クラスセレクタ

   CRS(Biz/Browserのコード単位)側では共通の機能はクラス化されています。開発ツールであるBiz/Designerでは、作成したクラスを「クラスセレクタ」というドッキングビューに登録することができます。また、クラスの簡易説明をのせることができます。CV.netでは利用していない機能として、F1キーからそのクラスのHELPを表示することも可能です。

Biz/Designer画面
図6:Biz/Designer画面
(画像をクリックすると別ウィンドウに拡大図を表示します)

   Biz/Designer上のクラスセレクタに登録することで、開発者全員がドラッグ&ドロップにより利用することが可能になります。

   部品化、共通化には3通りの方法があります。

1.Class
より独立性の高い共通部品を作る場合に使用
2.Getメソッド(サーバにリクエストを投げ、レスポンスを受け取るメソッド)を使い、CRS単位で部品化を行う方法
Biz/Browserの画面は複数のCRSで構成することが可能なため、Getメソッドにより組み合わせる方法です。この場合にはClassまでの独立性はありませんが、そのまま使いまわしが可能です
3.コピー&ペーストでソースを貼りつける方法
これは部品化とは呼べないやり方ですが、実際の開発現場ではよく利用されます

表3:部品化と共通化の方法

   JavaやC++などの静的な型システムを持った環境と比べ、簡単に2のようなしくみも利用できることで、より用途にかなった部品化が可能になっています。


クラスによる効率的な開発例

Biz/Browser画面(FlexView)
図7:Biz/Browser画面(FlexView)
(画像をクリックすると別ウィンドウに拡大図を表示します)

   例えば図7で、上はclass化したFlexView、下は標準のFlexViewですが、class化することにより、システムで共通に必要な機能を簡単に部品化することが可能です。

   まず、標準のFlexViewで行ごとのボタンに削除、挿入の機能を割り当てる場合の記述を見てください。

FlexView FlexView2 {
  X = 13;
  Y = 306;
  Width = 435;
  Height = 238;
  Border = $TRUE;
  number test1_row; ⁄* 行NOを覚えておくため *⁄
  number test2_flg; ⁄* 削除と追加を判断するため *⁄
  FlexRecord FlexRecord1 {
    FlexCheckButton FlexCheckButton1;
    FlexTextBox FlexTextBox1;
    FlexButton FlexButton1 {
      Width=40;
      Title="削除";
      Function OnPushed( e ) {
        FlexView2.MessageBox("削除しますか?","確認",$YESNO);
        FlexView2.test1_row = e.row.position;
        FlexView2.test2_flg = 0;
      }
    }
    FlexTextBox FlexTextBox2;
    FlexButton FlexButton2 {
      Width=40;
      Title="追加";
      Function OnPushed( e ) {
        FlexView2.MessageBox("追加しますか?","確認",$YESNO);
        FlexView2.test1_row = e.row.position;
        FlexView2.test2_flg = 1;
      }
    }
}
Function OnYesSelected(e){
  if (FlexView2.test2_flg==0){
    FlexView2.DeleteRow(test1_row);
  }
  if (FlexView2.test2_flg==1){
    FlexView2.InsertRow(1,test1_row);
  }
}
   次に、class化した同等の機能を持つソースです。

CvnetFlexView CvnetFlexView1 { ⁄* Class化されたFlexView *⁄
  X = 13;
  Y = 39;
  Width = 435;
  Height = 218;
  Border = $TRUE;
  CvnetFlexRecord FlexRecord1 {
    FlexCheckButton FlexCheckButton1;
    FlexTextBox FlexTextBox1;
    CvnetFlexBtIns CvnetFlexBtIns1;
    CvnetFlexBtDel CvnetFlexBtDel1;
    FlexTextBox FlexTextBox2;
  }
}
   classの機能を使えば、開発者は、本当に必要なロジック部分のみに集中して開発することができるようになります。


サーバアクセス

   リッチクライアントはWebでのフロントでプレゼンテーション層として独立しています。そのため、「サーバとどういう方法でやり取りをするのか」ここは技術者としての重要な記述部分になります。CV.netでは、この部分を最適化、共通化することで開発者の生産性と開発者による人為的な差をなくしています。

   サーバとのやり取りを以下の5パターンに分けています。

パターンA
プレゼンテーションレイヤ−とビジネスレイヤー間は1Sessionで、アプリケーションデータの1tableのみを照会、登録、更新、削除する場合
パターンB
1Sessionで、アプリケーションデータの複数tableを照会する場合
パターンC
1Sessionで、アプリケーションデータの複数tableを照会かつ、1SQL文で処理不能か処理が遅くなる場合
パターンD
ヘッダと明細があるような形式の入力処理(明細行が大量にある場合も含む)
パターンE
プレゼンテーションレイヤーからみた大量の帳票印刷処理(百p〜千p程度)およびパターンBかCの処理を含む

表3:サーバとのやり取り
出典:CV.net資料

   表3のパターンに集約することで、読みだすためのクラスを提供し、開発効率と応答性を上げています。

   CV.netはほかにも様々な工夫をしています。技術面においてJava、.NET、Oracle、そしてリッチクライアント製品をきちんと評価し採用、また使用方法についてもさらに検証を行った結果で方式を決定しており、非常に参考になることが多く、今回お話を聞かせていただいた佐藤氏には大変感謝しています。

   次回は2つ目の事例を紹介します。

取材協力
株式会社D・T・P
開発部 取締役部長 佐藤関也氏
前のページ  1  2  3  4


アクシスソフト 永井 一美
著者プロフィール
アクシスソフト株式会社  永井 一美
アクシスソフト株式会社 執行役員プロダクト事業部長
SI会社にてオフコンでのアプリケーション開発やメインフレームでのOS開発、PCでの開発、品質保証業務などを経験、SI事業部門の管理者を経てアクシスソフトに入社。入社時より一貫して製品事業に携わる。特にBiz/Browserにおいては、「確かなUIによりエンドユーザの生産性を高め業務に対するモチベーションを持っていただくことが、企業全体の生産性を押し上げる」との信念で推進している。


INDEX
第2回:Biz/Browserの運用事例
  「Biz/Browser」の事例紹介
  「Creative Vision.net」の全体構成
  アプリケーションサーバでの工夫
開発生産性の工夫