超高速開発事例セミナーレポート 2015/10/21

公開日 : 2016年08月10日
更新日 : 2021年12月28日

上流ツールXupper事例とアジャイル開発ツールGeneXus事例

JBCCが主催する「超高速開発事例セミナー」が2015年10月21日、都内にて開催された。本セミナーは昨年まで、JBCCの上流分析・設計ツール「Xupper」のユーザ事例紹介セミナーとして開催されてきたもので、通算19回目を迎える。今回より、開発・保守の品質およびスピード向上、コスト削減を実現する手法として近年注目を集めている「超高速開発」をテーマに掲げ、新たなスタートを切ることとなった。セミナーではまず、JALインフォテックの高信二氏が自社で展開しているXupper導入推進の取り組みについて紹介。続いて、JBCCの川上明治氏は「GeneXus」を活用したアジャイル開発、同社・佐藤秀憲氏はXupperとGeneXusの連携による超高速開発をテーマに、それぞれ講演を行った。

2015年事例1 株式会社JALインフォテック

Xupperの本格導入成功に向けて入念な準備と推進活動を展開

JALインフォテックの外販向けシステム開発を担当する事業部では、品質向上のための開発手法標準化の一環としてXupperの導入を決定。本格導入を成功させるべく、パイロットプロジェクトの実施や評価、課題整理などに取り組んでいる。Xupper導入推進タスクのリーダーを務める同社・高氏が、標準ツールの候補としてXupperを選択した理由、これまで実施してきた活動内容や今後の展開などについて発表した。

2015年事例1 株式会社JALインフォテック

成果物の標準化を支えるツールとしてXupperに着目

 JALインフォテックでJALグループ以外のシステム開発(外販)を手がけるソリューション事業部では、2012年頃から赤字プロジェクトが増加。上流工程の要件定義や外部設計の甘さ、作成する成果物にバラつきがあり品質低下を招いていることなどが問題点として浮上した。


 赤字プロジェクト撲滅に向け、同事業部ではまず、品質向上の前提として「成果物の標準化」に着手。各種成果物間の整合性を担保し、記載レベルの統一を図る上ではツールの活用が効果的と判断し、上流だけでなく開発まで一気通貫で使える製品の導入を検討することとなった。


 高氏によれば、そのような目的に合致するツールは当時、XupperとIBM Rational 製品くらいしか存在しなかったという。JAL インフォテックは、かつて日本IBMグループの一員であった経緯もあり、Rational 製品の利用経験は豊富。しかし、オブジェクト指向のRational よりも、DOA(データ中心アプローチ)のXupper のほうが、同事業部の開発スタイルや設計思想にマッチしていた。また、リポジトリによる設計情報の整合性確保や、ビジネスフロー図、画面・帳票設計、エンティティ関連図がすべて一元管理できるといった特徴も高く評価。最終的にXupper の採用に至った(図1)。

成果物の標準化を支えるツールとしてXupperに着目

※画像をクリックすると拡大します

図1:Xupper導入経緯 工程ごとの他社製品比較

導入推進タスクを立ち上げ、パイロットプロジェクト実施

 Xupper の導入を適切に推進するために、JAL インフォテックでは高氏が中心となって「導入推進タスク」を発足した。

「試行錯誤でどんどん使っていく」のではなく、導入前の準備から入念に進めるために、導入推進タスクチームではJBCCに協力依頼して他社事例を研究。過去のXupperユーザ事例紹介セミナーにも登壇しているNTT データ東海およびジュピターショップチャンネルへのヒアリングも実施した。こうしたなかで、日次バックアップなどの運用方法の整理、社内教育、ツール習熟者の育成といった準備作業の重要性を認識できたという。


また、要件定義でXupper を利用する場合のインプット、アウトプット、プロセスを整理した「標準化ガイド」も作成。ただし、要件定義を試すのに適切なプロジェクトがなく、まずは外部設計フェーズでXupperを使用できるある会社の案件(以下、X 社案件)にて、パイロットプロジェクトを実施する運びとなった。導入対象機能(作成ドキュメント)は、データディクショナリ、エンティティ関連図、ビジネスフロー図、画面設計、IPO 管理、クエリーAPI(印刷)。2014 年9 月から2015 年3月にかけて、X社案件の外部設計でXupper を実際に利用するなかで、ツール活用のメリット/ デメリットの評価を行っていった。

外部設計におけるXupper の評価と課題整理

 パイロットプロジェクト担当メンバーが実感できた効果として第一に挙げたのは、リポジトリによる一元管理で設計情報の不整合が一切なくなったことだ。従来どおりExcel を使って要件定義で" きっちり作ったつもり"でも、外部設計でXupper にディクショナリを作成して入れてみると、かなりの割合で設計書間の不整合を発見できたという。


 一方で、デメリットも少なくない。たとえば、エンティティ定義のなかで「繰り返し項目」の設定ができないため、Excel を併用する必要があった。また、対象システムがコンシューマ向けWeb クライアントということもあって長い画面定義が必要だったが、Xupper の画面設計(GUI 設計)では400 行以上の定義ができず、画面設計の代替機能としてデバイス設計を使わざるを得なかった。エンティティ定義書への項目追加やIPO の操作など、メンバーの体感として入力作業の負荷が大きい部分も少なからずあった。

今までの利用経験を活かし、次は要件定義からの利用も

 課題は多いが、あらためてJBCC に確認した他社でのXupper 活用事例の現状(図2)などを見ると、そもそもX 社案件が「Xupper適用対象として必ずしも適切ではなかった」一面もある。つまり、Xupper が得意とする領域はメインフレーム系やC / S(クライアントサーバ)系、Web 系でも社内向けであり、それ以外のコンシューマ向けWeb クライアントなどは、どうしても対応しきれない部分(画面設計など)が出てくるということだ。前者は条件が合えば全工程・全機能を利用できるが、後者では要件定義やデータモデル設計、画面項目・帳票項目設計などに限定したXupper の" 使い分け"が求められる。


 こうした考察を踏まえつつ、あらためてXupper の本格導入を推進していくために、高氏ら導入推進タスクチームでは今後、要件定義期間2 〜3 か月の小規模案件を対象とした「要件定義段階からのXupper の利用・評価」にも取り組む予定だという。

今までの利用経験を活かし、次は要件定義からの利用も

画像をクリックすると拡大します

図2:今後の進め方について

株式会社JALインフォテック様の事例PDFは下記よりダウンロードできます

事例PDFをダウンロードする

2015年事例2 GeneXusの活用

自動生成ツールGeneXusの活用で実現するアジャイル開発の真価とは

かつては「大規模プロジェクトには向かない」「小規模開発向けの手法」と言われていたアジャイル開発だが、最近では国内においても大規模プロジェクトへの適用が増えつつある。かねてより規模を問わず様々な案件でアジャイル開発に取り組んできたJBCCの川上氏が、アジャイル開発のメリットや具体的な事例とともに、同社のアジャイル開発を支えるアプリケーション自動生成ツール「GeneXus」を紹介した。

2015年事例2 GeneXusの活用

早期確認による品質向上や段階的な開発が可能に

 JBCCがアジャイル開発に取り組む最大の理由は「品質の向上」だという。従来のウォーターフォール型開発は、要件定義、外部設計、内部設計、プログラミング、テストと段階を経て開発していくため、ユーザが" 実物" を初めて確認できるのが要件定義から1 年以上経過後というケースも珍しくない。その段階で設計見直しが必要となった場合には本番稼働が大幅に遅延したり、修正・確認に十分な時間を確保できずに本番稼働後の大きなトラブル発生を招いたりすることにもなりかねない。


 これに対して、アジャイル開発は開発対象を細かい単位(ある程度の機能のかたまり)に分割し、そのかたまりごとに設計・実装・確認といったサイクルをごく短期間で回していく。ユーザは早い段階から" 動く実物" を何度も確認して判断できる。この開発初期からの繰り返しの確認により、大幅な品質向上が期待できるというわけだ(図1)。もちろん、ウォーターフォール型開発でしばしば問題になる、最終段階での「話していた(イメージしていた)ものと違う」といった事態も防ぐことができる。

早期確認による品質向上や段階的な開発が可能に

画像をクリックすると拡大します

図1:アジャイル開発とは

 なお、JBCC では、大きく次の3 つをアジャイル開発のメリットとして捉えている。

  • 予算に合わせた段階的な開発が行える
  • 設計の考慮漏れや認識違いが起こらない
  • 進捗状況が明確になり、問題に対し先手を打てる

より早い収益化を実現する段階的構築で経営層のニーズに応える

 アジャイル開発が多くの経営層のニーズに応える上で有効であることを示す事例として、国内最大手の予備校のシステム開発についても紹介した。このプロジェクトではまず、3 つに分かれているシステムの、連携する機能をそれぞれ並行してアジャイル開発し、1 年ごとに完成させて順次サービスインする「段階的構築案」を提案。投資効果がより早く得られることから経営層に評価され、受け入れられたが、現場の担当者はまったく逆の反応だった。スピードよりも「安全・安心」であることを重視し、時間がかかっても確実な全体再構築を希望したそうだ。最終的には、社内調整を経て経営層の推す段階的構築案が採用された。川上氏は、収益向上が見込めるのであれば「経営層は間違いなくこちらを選択する」ことを強調した。


 川上氏はほかにも、アジャイル開発のスピードの優位性を示すエピソードを紹介した。JBCC で通常のSI 開発を手がけるチームがウォーターフォール型開発を前提とした見積りとスケジュールを顧客に提案したところ、大幅なスケジュールの短縮を打診され、社内でアジャイル開発チームに相談。アジャイル開発ならスケジュールを約6 か月短縮できることを提案した結果、受注決定し、実際にアジャイル開発チーム担当のプロジェクトとしてスタートしているという。

アジャイル開発の要となるツール「GeneXus」

 こうしたJBCC のアジャイル開発を支えているツールが「GeneXus」だ。GeneXus は、設計情報からプログラム(アプリケーション)を自動生成するツール。たとえば画面作成では手入力が20 〜50%、バッチ作成の手入力も70%程度までに軽減され、あとはGeneXusが自動生成する。「自動生成ツール」は世の中に多数存在するが、GeneXusの場合は人間が手を加える必要のない最終的な完成品を生成できるのが大きな特徴だ。手組み開発のようにデータベースとのやりとりを意識する必要がなく、SQL のコーディングもすべてGeneXus に任せられる。


 スピード開発への対応としては、シンプルにスピードを追求した開発はもちろん、標準のスピードで手組みと同様にデザイン性や機能性も重視した開発、その中間でスピードと機能性を一定のレベルで両立する開発と、3種類の開発パターンを有している。

アジャイル開発の要となるツール「GeneXus」画像をクリックすると拡大します

図2:なぜスピード開発が可能なのか

 最大のメリットとも言えるのが、自動生成で人間がアドオンする余地がない結果、「物理バグが発生しない」ことだ。物理バグとは、アベンドやエクセプション(例外エラー)のことで、GeneXusでプログラムを作成する限り、基本的には一切発生しない。起こり得るバグは、「日にちに32 日以上を入力してもエラーにならない」「1 年が356 日になっている」といった「論理バグ」のみとなる。過去のプロジェクトを対象としたJBCC の障害分析結果によれば、手組みでプログラムを作った場合の物理バグ含有率は50%強。それがGeneXus を使うことでゼロになれば、テストは論理バグの検査のみに集中できる(図2)。結果的に論理バグも減少し、より高い品質の確保につながるだろう。

川上氏は最後に、保守性の高さについても言及。GeneXus の機能で変更範囲の把握や影響分析が簡単にできるため、アプリケーション維持(追加・変更)に手間がかからないこと、ツールの活用方法を習得すればユーザ自身での開発・保守が可能になること、それにより常にシステムの" ありたい姿" を維持し続けられることなどを訴求して、講演を締めくくった。

GeneXusの活用のPDFは下記よりダウンロードできます

PDFをダウンロードする

2015年事例3 XupperとGeneXusの連携

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

「超高速開発ツール」と呼ばれる製品は多数存在するが、どのようなツールを選べばよいのか?

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

2015年事例3 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)

多くの共通点があるXupperとGeneXusの設計思想画像をクリックすると拡大します

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

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


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


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

XupperとGeneXusの連携のPDFは下記よりダウンロードできます

PDFをダウンロードする