第12回 日本電気株式会社 様

事例カテゴリー

日本電気株式会社

第2MC システム事業部 事業部長 大場彰夫氏
Xupper と各種ツール連携で自動化促進知識集約型開発への転換を目指す

オフショア開発がますます進展する中で、従来のような労働集約型の開発スタイルのままでは価格競争に陥り、海外の安価な労働力に太刀打ちできない。こうした状況を見極め、日本電気では知識集約型開発への転換を図るべく、新たな開発手法の確立に取り組んでいる。
Xupperのリポジトリによる設計情報の一元管理やMDFrame/Xのプログラム自動生成は、その中で不可欠の要素として位置付けられている。

NECが目指す「TCO削減指向AP開発手法」とは?

 昨今のアプリケーション開発では、以前に比べて全体の開発期間や開発費が縮小傾向にある一方で、基本設計や機能設計といった上流工程に関しては、より多くの時間・コストが必要とされるようになっている。

 また、開発コストに対するユーザの要求も変わりつつあり、従来のように新規開発時だけでなく、追加開発も含めたシステムのライフサイクル全体を通じてのコスト低減が強く求められるようになった。


 もう1つ、最近の傾向として挙げられるのが、開発リソースの問題だ。いまやSE は「新3K」と呼ばれるほど人気が低迷しており、優秀なSE の確保が非常に難しい。加えて離職率も比較的高いことから、熟練者の育成も困難な状況となっている。


 こうした環境の中で、より早く、コストを抑えながら、品質の高いアプリケーションを開発していくために、日本電気(以下NEC)では開発スタイルの変革に着手。その狙いは、従来の労働集約型から知識集約型開発への転換だ。

 具体的なポイントとしては、開発要員の労力を上流工程の設計や評価試験の設計に注力させること。そして、ツールを活用した自動化によって中下流工程を効率化すること。

 維持フェーズにおける効率化のためには、設計情報を一元管理することでメンテナンス性を向上し、デグレードを抑止することも重要となる。

 この知識集約型開発への転換に向けて、NEC では上流設計工程、中流・下流工程、開発リソースのそれぞれにおける課題に対して「あるべき姿」である目標を設定。

 それらを実現するために、さまざまなアプリケーション開発技術や開発手法、さらにはプロジェクトマネジメントの要素を連携した「TCO 削減指向AP 開発手法」の確立に取り組んでいる。

Xupperを用いたアドバンスドDOA上流設計

 上流設計工程では、仕様のゆらぎを防ぎ、もし仕様変更が発生しても容易に追加変更できることが目標となる。その実現手段として、TCO 削減指向AP 開発手法では、アドバンスドDOA 上流設計、業務モデル化、リポジトリ一元管理、イテレーション開発といった要素を採り入れた。


 アドバンスドDOA とは、IF ?THEN 形式のルールで問題解決をするプログラミング技法である「ルールベース」の考え方と、従来のDOA(Data Oriented Approach)を組み合わせたアプローチだ。

 アドバンスドDOA では、まずユーザの視点に立ち、ユーザの理解しやすい業務フローを主体に、業務知識(ビジネスルール)をルールベース化。それらをXupperのリポジトリで一元管理する。

 同時にデータ分析を行い、従来のDOA と同様にビジネスルールとエンティティの関係を分析して、アプリケーション構造を確定していく。


 プログラムの自動生成は、MDFrame/X のアクションダイヤグラムから行うが、将来的にはルールベースシステムとして、ロジックを解析できるものについてはルールエンジンによりプログラムを自動生成することを目指している。


 業務モデル化では、業務フローによって業務をモデル化することで、人や組織、IO、データ項目などの管理対象を明確化し、業務モデルからフレームワークと部品化すべきモデルの独立性を重視しながら抽出。データ分析からオブジェクト候補を洗い出す。

 こうしてフレームワークや部品を効率的に活用していくことで、作り込む部分を減らしたり、作る場合でも均質なものができるようになる。


 こうした上流設計工程を支える基盤となるのが、Xupperによる設計情報の一元管理(リポジトリ化)だ。業務フロー図を中心に、さまざまな情報を関連づけて管理できるので、仕様のゆらぎや追加が発生した際も、リポジトリ情報からIO やデータ項目などの影響ポイントを抽出し、影響のあるビジネスルールやエンティティを検索できる。


 また、基本設計の確定後にイテレーション開発によって業務要件の成熟度を段階的に上げ、業務フローの要件やアプリケーション構造の確定を実施することで、仕様要件のゆらぎを抑えることが可能となる。

各種ツールの活用でプログラム作成やテストも自動化

 中流から下流工程の目標は、上流設計終了後のプログラム開発の効率化と開発期間短縮だ。ここでは、各種ツールの活用による開発の自動化が鍵となる。


 画面設計に関しては、コンポーネントエディタやAdobe のFlex Builder 2 を利用する。Flex Builder 2は、実際に動く画面( モックアップ)を生成して、仕様を確認することができるツールだが、そのUI 定義をMXML 化しておけば、モックアップの画面設計情報をそのままXupperのリポジトリへ取り込むことができる。


 データベースのアクセス部品(SQL)は、MDFrame/X の機能によって自動生成。プログラムについても基本的に、業務ロジックをMDFrame/X でアクションダイヤグラムとして登録し、Java のプログラムを自動生成する。これにより、中流工程以降の開発の効率化および期間短縮が期待できる。

このアクションダイヤグラムからの自動生成に加え、今後、ルールエンジンによるプログラム自動生成が実現すれば、さらに生産性が向上するはずだ。

 また、TCO 削減指向AP 開発手法には、テストケースの自動生成も含まれている。たとえば、試験漏れ防止のためにXupperのリポジトリからテストすべきケースを自動抽出したり、業務フロー図を分析してすべての業務の流れをテストケースとして抽出することが可能だ。

 テストケース(詳細)として、テストで使用する画面やテーブルなどのデータと確認すべき情報をリポジトリ上で連携し、試験仕様書を容易に作成することもできる。


 今後はテスト工程の効率化をさらに推進すべく、テスト管理ツールのHP QualityCenter や自動テスト実行ツールのHP QuickTest Professional などと連携させ、テストケースの作成から実行、管理まで自動化するための検証を進めているという。


アドバンスドDOA上流設計とAP開発ツール連携

自動生成したテストケースを自動実行できるテストツールとの連携も今後予定されている。

スモールチーム開発で知識の集約化を図る

 開発リソースの課題に対しては、スペシャリスト集団による知識集約型開発という目標が掲げられた。TCO 削減指向AP 開発手法においては、これを実現するためにスモールチーム開発やディレクタ組織といったプロジェクト体制が組まれる。


 知識の集約化を図るには、少数精鋭のスモールチームのほうが望ましい。また、優秀なSE を育成するには、できるだけ多くの場数を踏ませる必要があるが、その点でもスモールチーム開発は有効だ。

 大規模開発においても開発部隊を10~30 人までのスモールチームに分け、すべてのローテーションをチーム単位で行うことで、チームメンバーの連携が強固になり、結果的に生産性を向上させることができるという。


  なお、スモールチーム開発を有効に機能させるためには、各チームのリーダーと仕様管理者から構成されるディレクタ組織というものも必要だ。TCP 削減指向AP 開発手法では、このディレクタ組織が仕様管理を一元的に実施し、業務間相互レビューによって仕様齟齬などを防止する役割を担うことになる。


 NEC のTCO 削減指向AP 開発手法は完成形ではなく、まだ進化の途上にある。今後、日本のソフトウェア開発のあり方を変革する新たな指標となることを、大いに期待したい。

jirei_download.png