2011年08月31日
TISの生産性・品質向上への取り組み
~TISが独自開発したJava 開発基盤『Xenlon~神龍』のご紹介~
リーマンショック以降、システム開発への投資が抑制傾向にあり、各企業においては、システム投資に対する効果の評価が重要視されています。そして、お客様のこうした姿勢に対応し、多くのSIerがシステム開発の効率化を模索し、生産性と品質の向上へのチャレンジを繰り返しています。
今回のコラムでは、TISの『生産性と品質の向上』への取り組みや考え方と、その実現のために独自に開発したJava 開発基盤『Xenlon~神龍』について、ご紹介をさせていただきます。
システム開発における機械化(システム化)のポイント
システム開発を効率化させるために、過去CASEツール(※1)がもてはやされた時期がありました。その後、クライアント&サーバ型のアプリケーション開発により、ビジネスロジックが分散され、この種のツールが陽の目を見ない時期が続きました。しかし、Webシステムにより、ビジネスロジックはサーバサイドに集約され、過去の取り組みがオープンなシステム開発環境に活用できる可能性が出てきました。TISにおいても、蓄積してきたシステム開発のノウハウを適用し、「機械化(システム化)」による生産性と品質の向上に取り組んできました。
一般的にシステム開発は、以下のような工程から構成され、V字モデルとして表現されています。
<システム開発の工程>

1.~4.の工程を見ると、設計作業はシステムを実現するプログラムに集約されていきます。まず我々は、プログラムを作る(プログラミング)工程を効率化(機械化)することに着目しました。それはプログラムは、コンピュータが理解可能な構造をもった成果物であり、上流工程に分類される設計作業はヒアリング等を伴って作成していくため、その作業を「機械化」することが難しいからです。
プログラミング作業は大別すると、「非常に難易度の高く、人の英知が必要なもの」、「難易度はそれほど高くなく、注意力が必要とされる作業」の2つに分けられ、実際のタスクは、上記の分類のパーセンテージが違うと言えます。そして、特に後者の作業は単純だがミスができない、人にとっては苦痛となることが多いものです。この作業を人間がタイピングするのではなく、コンピュータに行わせるのです。
<作業の色分け図>

では、システム化が可能と思われる作業を一部洗い出してみます。
1) 日本語の項目名に対して、プログラミング用に英名を割付ける作業
2) 入力項目に対する単項目精査を実装する作業
(文字列長チェック、数字チェック、アルファベットチェック、等)
3) 設計書に記載された内容を機械的にプログラムへ変換する作業
この種のプログラミング作業を極力機械化することで、もっとユーザーが「やりたい!」と考えていた戦略的な機能の構築にリソースを当てることが可能になります。それが、最終的に構築されたシステムに対するお客様の満足度にも繋がります。
Java 開発基盤『Xenlon~神龍』のご紹介
この様な取組みを経て、生産性と品質の向上を目指してTISが独自に開発したのがJava 開発基盤『Xenlon~神龍』です。以降は、上記の課題を、『Xenlon』がどう解決したか?を、ご説明します。
1)に対しては、『辞書』を用意すると共に、『変換ロジック』を作成します。
辞書は、システム化する対象の企業文化を表しており、本来複数のシステムで使用される名称は会社の中で同じ意味を持つべきです。辞書をシステム開発に利用することでネーミングが統一され、システム稼動後も保守しやすいプログラムを作ることができます。下記の例にある様に、単語単位での辞書を複数回適用することによって、項目全体を英名に変換します。(最長一致ロジックを採用)
<項目名称の辞書による変換>

2)に対しては、『データモデリング』における『データドメイン』の概念を活用します。『データドメイン』とはデータ項目に対する型や長さを定義するもので、下図に示した様に、複数の項目をひとつのデータドメインに関連付けて管理します。これにより、単項目精査についてのロジック仕様を定義し、この定義に基づいてソースコードを生成します。その結果、画面で入力された項目に対して、自動で精査を行うことができます。加えて、データドメイン定義が変更されると、関連している全項目に対する精査条件を変更することが実現できます。
<データドメインの概念図>

3)については、設計内容をいかにプログラムへシームレスに繋ぐことができるかがポイントになります。多くの場合、設計内容は、エクセルの表形式で記述されます。この点に着目して、エクセルで書かれた設計書の記述内容をプログラムで抽出(*)し、Xenlonで定義した『設計リポジトリ』と呼ばれるデータベースに格納します。このリポジトリに設計書を投入し、それらの情報を前述の『辞書』および『データドメイン』等を活用して加工し、ソースコードを生成する仕組みを構築し課題を解決しました。
*エクセルで書かれた設計書から記述内容をプログラムで抽出する際には、オープンソースのApache POI というライブラリを使用しています。
<ソースコード自動生成の仕組みの概念図>
Java 開発基盤『Xenlon~神龍』の導入効果
この様な設計情報を加工して、プログラミング言語に変換していく方法を採用することにより、開発者が設計書を読み間違えるということはありません。正しい設計は、正しいコードを生み出します。また、このリポジトリの設計情報を更に活用することで、システム化が可能部分を増やし、生産性を向上させていきます。
また、『Xenlon』では、複数の開発者が作成したプログラムを製造の初期段階から頻繁に統合(ビルド・テスト)することで、問題を早期に発見しリスクを軽減しようという考えに基づく、「CI (継続的インテグレーション」環境を提供し、活用を推奨しています。これにより、『リアルタイムでの品質の見える化』を実現し、早期のバグ(不具合)の発見と品質の向上に貢献しています。
<CIの概念図>

この様なプラクティスの導入効果は、遠隔地での開発(オフショア開発)においても威力を発揮します。オフショア開発では、設計側の意図および指示内容が設計書という形で渡されます。しかし、そこには “仕様を誤って理解する”という課題がつきまといます。相互理解を推進するためには、共通の出発点が必要です。『Xenlon』を導入することで、開発をスタートするのに必要なコード(出発点)を自動生成して提供することが可能になり、“仕様を誤って理解する”ことを減らすことができ、設計側と開発側の相互理解が向上します。
今後の展望
今回は、Xenlonにおける『生産性と品質向上』のための機能の一部を紹介させて頂きました。
今後も開発現場にある課題を、ソフトウェアテクノロジーを活用することで解決し、その成果をより良いシステムという形で、お客様に、そして社会に還元していきたいと考えています。今後も、進化し続けていく『Xenlon』そして『TIS』には、「最高傑作は?」と聞かれた時のチャップリンの名言である『Next One.』がピッタリだと思う所です。
(※1) ソフトウエア開発用ツール。一般に、アプリケーション開発に必要な各種定義情報を入力すると、ソース・コードを自動生成する機能を持つ。
執筆者紹介
TIS 技術本部 生産技術部
熊谷 宏樹
現在は生産技術部に所属し、全社の生産性および品質向上のための推進施策のひとつである『Xenlon~神龍』のプロジェクト リーダー兼アーキテクトを務める。オブジェクト指向技術を駆使した大規模なビジネスアプリケーション開発のアーキテクトとして活躍。多数の大規模プロジェクトのソフトウェア基盤設計を経験。得意分野は『アーキテクチャ設計』『データモデリング』『性能改善』『トラブルシューティング』。
※記載されている会社名、製品名は、各社の登録商標または商標です。
※記載されている情報は、掲載時点のものです。
最新の情報とは異なる場合がありますのでご了承ください。





