できるだけコードを書かないという発想ソースコード自動生成技術の最新状況(3/3 ページ)

» 2005年10月05日 12時00分 公開
[贄良則(ジャスミンソフト),@IT]
前のページへ 1|2|3       

Web アプリケーション自動生成技術採用のポイント

 ここでは、Web アプリケーション自動生成技術を採用するときのポイントを紹介しておく。

・ソースコードの可読性、改変性

構築したいアプリケーションが完全に自動生成されるわけではない、ということを前提とした場合、生成されたソースコードを改変することは避けられない。従って、生成されたソースコードが読みやすいかどうか、また、改変しやすいかどうかは重要な指標である。実際に生成されたソースコードを入手して、理解できるかどうかを確認するとよいだろう。また改変についても、改変した後の再自動生成がスムーズに行えるかどうかといった点が重要となる。

・フレームワーク部分が公開されているかどうか

一般に、自動生成されたコードを動作させるためには、ベースとなるフレームワークが必要である。フレームワーク部が非公開の場合、カスタマイズ範囲が限定される。よって、採用しようとしているフレームワーク部の内容がどの程度まで公開されているのか、またカスタマイズ可能な範囲は限定されているのかは知っておいた方がよい。

・生成されたコードはMVCアーキテクチャに準拠しているか

大規模Webアプリケーションでは、MVCに準拠しているかどうかで、その後の保守性に影響がある。例えばデータベースアクセスや業務ロジック、画面生成までをすべて1つのJSPで実現するようなソースコードを出力されるのであれば、その保守は容易ではない。理想をいえば、JSP部はなるべくJavaコードが少なく、業務ロジックはサーバサイドで実現できていれば保守性は高まるといえる。

・セキュリティ対応

 Webアプリケーションの場合、ログオン認証を基本として、未ログオン時の不正アクセス防止、クロスサイトスクリプティング脆弱性、SQLインジェクションといったさまざまな攻撃に対応できるコードを生成できるかどうかが重要となる。大規模システムになればなるほど、全画面にわたって細部にテストするための工数は無視できないほど大きなものとなるため、この点をカバーするという意味で自動生成技術を使うというメリットはあるだろう。

・リッチクライアントへの適応性

 最近はAjaxなどの技術を用いて、Webアプリケーションの操作性を高める手法が提案されている。このような最新技術についての対応なども知っておきたい。

ソフトウェア開発作業への影響

 昨今のオフショア開発の潮流により、国内におけるSE/プログラマ単価の下落傾向はいっそう顕著になっている。そのうえ、Webアプリケーション開発は従来のクライアント・サーバ型システムに比較して、よりアーキテクチャが複雑になっており、セキュリティに対する要求も高い。このような高品質化要求や短納期要求により、現場レベルではもはや5%や10%の生産性向上策では負荷を吸収できずにいる。

 思い切って生産性を5倍、10倍へと上げる思考の転換を図るには「できるだけコードを書かない」という発想が必要となる。自動生成技術の活用は有効な手段の1つとなる。

 将来的にはUMLのような設計図から完全に動作するアプリケーションのソースコードが入手できるようになるかもしれない。すでに IBM やマイクロソフトといった大手は研究開発に着手しており、徐々にその輪郭が明らかになりつつある。一方、特定分野における完全自動生成を達成する技術は現時点でも入手可能となってきた。

 自動生成をうまく使うためには、構築したいアプリケーションを、自動生成可能なパターンに落とし込んでいくことが必要となる。なぜならば自動生成の適合率を高めるほど、生産性は飛躍的に向上するためである。

 これまでのアプリケーションはすべてオーダーメイド型の住宅設計、いわゆる「一品もの」であったため高コストとなるのはやむを得ない性格であった。2×4住宅の思想によるような、ユニットの組み合わせによってアプリケーションを動作させる仕組みをこの業界にも導入することで、下流工程を大きく削減し、生産性を高めることができるのではないだろうか。

人月制度を変えられるか

 現在の IT 業界は家内制手工業の延長である。人がプログラミングを行う以上、「工場」といえば大量のプログラマの入れ物となり、かつ人件費が安いところに移動することは避けられない。人月単価の安い方へと仕事が流れれば、いずれ国内のIT業界はかつて製造業がたどってきた空洞化へと向かうことであろう。

ALT 図4 ソフトウェアの工業化

 しかし自動生成技術が普及することで、下流工程の多くを「真に工業化」できる可能性が高まる。そのとき初めて、人月制度は見直しが図られるのではないか。その後には要求分析と上流設計を SE が行い、下流工程の大部分は自動化され、一部の業務ロジックの実装を、オブジェクト指向を理解した高度な SE/プログラマが担当するようになる。このように単純工程が自動化されたとき、オフショア開発の優位性そのものが見直されることにもつながるだろう。

 人月制度という積算方式では、人の稼働によって売り上げが決まる。従って自動生成技術による工数削減はもろ刃の剣でもある。しかし一方で、現状のままでは中国・インドといった国々との人件費単価競争に巻き込まれるわけで、現場のエンジニアの士気は上がらない。自動生成技術が提唱するのは、短納期かつ高品質で仕上げられる案件を数多くこなすことで、結果的に利益率が上がり、かつエンドユーザーと開発会社の双方にとってメリットをもたらすことができる、ということである。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ