Chinese | English

03-3510-1616 受付時間 9:00〜17:00(土日除く)

お問い合わせ 資料請求

 

  • HOME
  • コラム
  • 第6回 『XA FrameManager Platform の開発テンプレート』

コラム

XA FrameManager編

第6回 『XA FrameManager Platform の開発テンプレート』

XA FrameManager編

今回は「XA FrameManager Platform」の「開発テンプレート」を中心にご説明したいと思います。第2回のコラムでは、「開発テンプレート」は「プログラムのひな形」であり、業務アプリケーション寄りの良く使われる機能群と説明しました。この目的は、「開発フレームワーク」と同様で、業務アプリケーションの開発効率を向上させることにあります。

これまでにご説明してきた「開発フレームワーク」が、「国際化」、「DBコンテナ」、「項目メタ」などのシステム基盤的な共通機能を提供しているのに対し、「開発テンプレート」では業務アプリケーションの画面でよく使われる検索、登録、削除、画面起動時の処理、帳票印刷などの特定の処理フローを想定して用意した「定型処理」と、XA FrameManager Platformが提供する開発部品(コンボボックス、入力補助画面、検索・登録画面)を利用するときに、プログラム的な実装量を減らすことを目的に用意した「実装者用ユーティリティ」を提供しています。

例えば、一般的に数多くの処理を行う必要のある画面で「定型処理」を利用すると、定型処理に置き換えられる処理が設計・開発・テストを行う必要が無くなるだけでなく、その実装が設計・開発者に依存せずに共通化されるメリットがあります。このため、開発コストを抑制しつつ、開発物の品質を均質化することが可能となり、定型処理を利用しない場合に比べて、可読性が高く保守性に優れたシステムを構築できるというわけです。具体的には以下のような効果が期待できます。

  • 実装量が減る:定型処理として用意されている親クラスにはデフォルトの実装がされているため、定型処理を利用する各アプリケーションは、アプリケーション固有の実装のみを行うだけで良いので実装量を減らすことができます。
  • 実装に統一感が出る:各開発者が同じ定型処理を使うことにより、実装される処理のプログラム(メソッド)の名前が同じになります。これにより、各開発者が実装を開始する際に、実装箇所の検討から入る必要がなくなるので効率が良くなります。また、他の実装者のソースを参考にしたり、保守したりする場合でも、対象のソースを探す際に似かよったプログラム名(メソッド名)を探せばよくなるので効率が良くなります。
  • 統一感のあるアプリケーションが作れる:例えば、更新ボタンを押下した処理を個々の開発者に実装してもらうと、ある人は更新前チェックの前に「更新します。よろしいですか?」のダイアログを出しているのに対して、ある人は、更新チェックの後に同様のダイアログが出てしまうなどの問題が発生する可能性があります。定型処理では、このような手順を親クラスで決めているので統一感のあるアプリケーションを作ることができます。

もちろん、「開発テンプレート」を使わなくてもMCFrame XAの業務アプリケーションを開発することは技術的に可能です。しかしながら、定型処理に相当する処理が全く存在しない状態からシステムの設計・開発を始めたら、多くの手間や時間を要すことになり、結局は開発テンプレートに相当する機能を設計・開発することになります。従って、MCFrameが用意している定型処理と要求機能に大きなギャップがあるとか、その他の特別な理由などが無い限り、これを使わない理由は無いと言えます。

「定型処理」という名前だけでは、その機能や業務システム開発における便利さが実感できないかもしれません。(実際、パートナー様やユーザ様へのプレゼンテーションでも「定型処理」についてのご質問が多いです。)そこで、このコラムの後半では、「定型処理」の具体例などを交えて、機能・便利さを少しでもお伝えできるようご紹介したいと思います。

定型処理

定型処理をプログラム技術的に説明すると、「画面起動」や「検索ボタン押下」などの特定の処理の実装について、処理の基本の流れ(例えば、「検索前チェック」「検索ロジックの呼び出し」「検索結果の表示」)をメソッドとして定義し、それぞれにデフォルトの動きを実装した親クラスを提供したもの、ということになります。実際の実装の場面では定型処理が提供する親クラスを継承し、デフォルトの動きを変更したい場合に、親クラスの提供する適切なメソッドをオーバライドするという仕組みです。

これをもう少し柔らかく表現するとこうなります。XA FrameManager Platformが用意した「定型処理」には、よく使われる特定の動き(処理手順)が予め複数実装してあり、それらはそのまま使うことができます。もし、予め実装された処理を一部でも変えて使いたい場合には、定型処理の特性を引き継いだプログラムを新たに用意して、そこに固有の処理(差分)のみを実装すれば目的の処理が実現できる、ということです。

定型処理は、第3回のコラムでご説明した「開発部品」と同様に、「設計文書」に対して、利用する定型処理を記述して開発ツール(XA FrameManager Developer)で「自動生成」の処理を行うと、定義した条件に従った画面の処理(Javaプログラム)が自動的に出来上がります。

XA FrameManagerでは標準の定型処理として次の9つのパターンを用意しています。

XA FrameManager Platform 開発テンプレート:定型処理の種類

XA FrameManager編

これらはMCFrame XA 生産管理やMCFrame XA 販売物流で多用されているものですので、多くの場合には「標準の定型処理に仕様の不足がある」、「標準の定型処理ではパターンが足りない」ということもなく使っていただけると思います。

またMCFrame XA製品が提供しているアプリケーションとは対象業務の種類が違っているとか、異なったアプリケーション開発においてプロジェクト特有の統一感が求められる、などの理由で標準の定型処理の仕様とはギャップがある時にも、これらの9つのパターンをベースにして、これ以外の定型処理のパターンを作って利用することも可能です。

これらの標準の定型処理にはMCFrameのパッケージアプリケーション(MCFrame XA 生産管理やMCFrame XA 販売物流)の処理仕様のノウハウが詰まっており1つ1つについてご説明したいところですが、それでは紙面が全く足りなくなってしまいますので、代表的な「標準検索定型処理」について少しだけ詳しく説明したいと思います。

「標準検索定型処理」は、図のように「検索処理」として定型化した処理(ステップ)の組み合わせで構成されています(図中の標準検索定型処理クラス)。この定型処理のステップ構成をそのまま検索処理の動きとして適用してアプリケーションを作成する場合には、アプリケーションで定型処理のクラスを継承するだけで「標準検索定型処理」の動きを実現できます。

XA FrameManager編検索条件の入力のされ方によって動的に決まる入力必須項目に対してチェックを行ったり、画面に表示されない検索条件項目(ユーザ入力では設定されない項目)について画面のロジックでデータを設定したりするようなことがアプリケーション画面によって必要になりますが、その際には、「標準検索定型処理クラス」の所定のステップのメソッドをオーバライドし処理を追加実装します。

画面によって発生する「変更したい内容」に応じてオーバライドするメソッドが決められていますので、採用した定型処理に対して画面ごとに追加実装を行ってもアプリケーションは一定の構造を維持することになり、アプリケーション保守の際などのプログラム仕様の把握が容易になります。

すでに出来上がっているアプリケーションの統一処理仕様(この場合には「画面の検索処理時の動き」)をユーザの要望などにより仕様変更する場合にも、統一処理の実装が「定型処理クラス」に一括実装されているため、この「定型処理クラス」を修正するだけで「定型処理」を適用している全ての画面の動きを一括で変更することが可能です。

例えば「標準検索定型処理」の検索処理結果のソートを行わずに結果表示をする仕様に変更したり、検索結果表示後の完了メッセージの内容変更やメッセージを表示しなくするといった変更では、「標準検索定型処理クラス」の変更だけで対応することができます。このような「定型処理」の仕様変更は個々のアプリケーションの実装変更を伴う修正に比べると、修正確認のテストを不要にしたり大幅に簡略化したりすることが可能です。

今回のコラムは「開発テンプレート」の「定型処理」についてご紹介いたしました。この「定型処理」は、プログラムの共通の性質・振る舞いをまとめた親クラスを個々のプログラムで利用するというJavaのオブジェクト指向ならではの「継承」を利用して、業務システムの処理を共通化(「定型化」)した開発フレームワークと言うこともできます。これらが、MCFrame XAの開発効率向上に役立っていることがお分かりいただけたでしょうか。
次回は「XA FrameManager Platformのアプリケーション管理機能」について、ご説明したいと思います。

第7回コラム 『XA FrameManager Platformのアプリケーション管理機能』 に続く

新規CTA
樋口 亮平
樋口 亮平
プロダクト事業本部 コンサルティングサービス部 部長。 システム好きのプラントエンジニアが、インターネット黎明期のネットワーク技術に夢中になり、勢いでITの世界へ転身。これまでに、TRADEX、Oracle EBS、MCFrameなどのシステム導入プロジェクトに従事。最近はXA FrameManagerの伝道師になりつつある。
猪上太
猪上 太
新商品開発本部 商品開発本部 商品開発1部 システムスペシャリスト。malltalkがやりたくてBENG分社前のTECに入社して、MCFrame に触ってから早10年。今はJavaエンジニアですが、いつかは"Smalltalker"に戻る日を夢見て頑張ってます。 「健全なコードは健全な肉体に宿る」を信じて、毎日昼休みは会社の近所をジョギングしてます。