2015年事例3 XupperとGeneXusの連携

事例カテゴリー

2015年事例3 XupperとGeneXusの連携

XupperとGeneXusの連携により開発/保守の品質およびスピードを大幅に向上
xupperjirei19_3_1.png

「超高速開発ツール」と呼ばれる製品は多数存在するが、どのようなツールを選べばよいのか?
また、プログラム自動生成に至るまでの上流工程における設計情報の管理や整合性担保はどう対処すべきか? JBCCが見出した最適解は、自社製品「Xupper」とアルテッチ社のツール「GeneXus」の連携だ。同社・佐藤氏が、それぞれの特徴および両ツールを連携させた開発のポイントについて、デモを交えて解説した。

"コミュニケーション変革ツール"としてのXupperの真価 

Xupper II(以下、Xupper)は、純国産の上流設計ツールとして20 年以上の歴史を持つ。最初のバージョンがリリースされたのは、1994年。当時はいわゆるCASE ツールのブーム末期で、さまざまなツールが存在した。しかし、現在はそのほとんどが姿を消している。こうしたなかで、Xupper が今日まで長年にわたって多くのユーザや開発者に支持されてきたのはなぜだろうか?


 その理由の1 つとして、Xupper が単に設計だけではなく、ユーザと開発者のコミュニケーション促進を重視したツールであることが挙げられるだろう。佐藤氏によれば、JBCC ではXupper を「利用部門と開発部門を結びつけるコミュニケーション変革ツール」と位置付けているという。Xupper のわかりやすいインターフェースと強力な情報連携機能により、利用部門/ユーザと開発部門/ベンダーが共同して、もしくはユーザ自身が要件定義やシステム設計を進めることができる。たとえば、要件定義で確認したビジネスフローやビジネスルールから、外部・内部設計情報にスムーズにアクセス可能だ(図1)。この仕組みにより、利用部門/ ユーザと開発部門/ ベンダー間で認識齟齬などのない適切なコミュニケーションが行えるようになる。

リポジトリがコミュニケーションを支える ~情報へのアクセス性確保~
*図1リポジトリがコミュニケーションを支える ~情報へのアクセス性確保~

 また、Xupper の代表的な特徴であるリポジトリによる設計情報の一元管理は、開発フェーズはもちろん、保守フェーズにおいても多大なメリットを提供する。リポジトリの役割は、各工程内で機能(画面・帳票等)と「データ項目定義」を統一すること。そして、要件定義、基本設計、詳細設計さらには製造工程、テスト工程に至るまで「データ項目定義」を一貫性を持って管理することだ。その効果として、開発成果物の整合性確保による開発品質の向上および、業務変更時のデータ項目による影響調査が容易に行えることによる保守性の向上などが見込める。


 続いて佐藤氏は、上流工程での重要な設計ポイントについて紹介。業務上何が行われるかを示す「ビジネスフロー図」を中心に、業務上の取り決めである「ビジネスルール」、画面設計というインターフェースを介して得られる「データ項目辞書(ディクショナリ)」の3つが、Xupperの設計情報を支える基盤となっていることを説明した。

超高速開発ツールとして国内でも存在感を高めるGeneXus

 GeneXus はウルグアイのITベンダーであるアルテッチ社が開発・販売するアプリケーション自動生成ツールで、バージョン1は1989 年に登場。25 年以上の実績を持ち、すでに世界45か国で8,500 社以上(※ 2014 年5月時点)に導入されている。日本においてもこの10 年ほどで存在感を高めており、JBCC では2014 年よりGeneXusの販売を開始。2015 年9 月にウルグアイで開催されたGeneXusインターナショナルミーティングにはJBCC から東上社長らが参加し、基調講演の中でパートナーとして壇上で紹介されるなど、開発元のアルテッチ社と良好なパートナーシップを築いているそうだ。


 また、製品としてGeneXus を販売するだけでなく、JBCC 川上氏の講演でも紹介されたように、自社が手がけるアジャイル開発・超高速開発プロジェクトの標準ツールとしてもフルに活用している。JBCC のこれまでの実績ベースで見ても、GeneXusを用いた開発では、従来の手組み開発に比べて開発期間を約40%短縮できているという。開発スピード向上だけではなく、GeneXusの活用によって物理バグの発生がゼロになるといった、開発品質面でのメリットも大きい。


 対応プラットフォームの幅広さも特徴として挙げられる。言語は、Java、C#、Ruby をはじめ、iOSやAndroidにも対応。データベースも、Oracle、SQL Server、DB2、PostgreSQL、MySQL など、オープンソース/商用を問わず代表的な製品を網羅。これにより、たとえば将来的にプラットフォームが変わるようなことがあっても、GeneXusはそのまま変わらずに使い続けることが可能となる。

多くの共通点があるXupperとGeneXusの設計思想

 上流工程ではXupperを活用して業務モデル作成やデータ項目整理、設計情報の一元管理を行い、その設計情報を利用して下流工程ではGeneXusによりプログラムを自動生成─XupperとGeneXusの組み合わせは、確かに理に適っているように思える。しかし、これら出自の異なるツール同士が、問題なくスムーズに連携できるものだろうか?


 佐藤氏の説明によれば、Xupper とGeneXus の設計思想には多くの共通点があり、その点も心配ないようだ。たとえば、Xupper はDOA(データ中心アプローチ)の概念に基づいたツールであることはおなじみだが、GeneXus も中身は完全に、データディクショナリを中心としたDOA ベースのツールだという。


 Xupper とGeneXus の連携において特に重要となるのがディクショナリであり、両ツールとも「One Fact in One Place(1 つの事実は、1 つの場所も)」という考え方が根底にある。お互いのツールが実直にそれを実行しているために、連携時も整合性が取れるというわけだ(図2)

XupperIIとGeneXus連携イメージ

図2:XupperIIとGeneXus連携イメージ

 佐藤氏はこうしたポイント解説とともに、Xupper とGeneXus を連携させた開発の流れを簡単に紹介するデモを実施。Xupper でビジネスフロー図やビジネスルールの登録、画面設計などを行いながら、サンプルとして受注管理システムの設計情報を登録、それらをGeneXus で使用して注文登録の実行画面を自動生成する様子など見せた。


 超高速開発の手法はまだまだ発展途上であり、「設計と実装をできるだけ近づけることが望ましい」と佐藤氏は最後に補足。究極的には、GeneXus のようなツールが設計機能を強化して、業務を細かく見れるようになっていくのかもしれない。あるいは、Xupperが実装まで完全にカバーするというのも、1つの究極的なあり方だろう。


 とはいえ、現段階ではやはり「Xupper とGeneXus の連携による開発」が最適解ということになるようだ。

jirei_download.png