ソフトウェア生産技術

ソフトウェア生産技術革新

ソフトウェア開発自動化

レガシーシステム

大規模なシステム開発を支える
ソフトウェア生産技術
社会，産業を支える情報システムは，大規模なソフトウェアの存在なくしては成立し得ません．しかし，そのソフトウェアを開発するための生産技術は，過去数十年にわたって大きな進展はみられず，膨張する需要を人海戦術で凌いでいるのが現状です．本特集では踊り場に立つソフトウェア開発の課題を打破するソフトウェア生産技術革新について紹介します．

とみやす

ひろし

冨安

寛

NTTデータ

1995年以前の社会では官公庁や金融，超える性能向上が実現されました．ま通信，製造の大企業のみでシステムはた，同時に価格も低下し，コンピュー21世紀の現在，社会の発展はコン使われているにすぎず，システムの存

タとコンピュータシステムは個人でもピュータシステム（システム）ととも

在が一般社会で目に触れ，取り沙汰さ手軽に利用できるものになったのにあるといっても過言ではありませ

れることはありませんでした．
つまり，です．

ん．世界的な金融ネットワーク，交通

この10〜20年でシステムは一気にそインフラ，通信インフラから企業活動，の存在価値を増し，なくてはならない

そして個人の消費や交遊活動まで，社社会基盤となったのです．

社会を支えるコンピュータシステム

会のすべての領域においてその活動をシステムが支えています．
しかし，このようにシステムの重要ソフトウェアの役割と技術進化
一方，システムを構成する要素としこの変化を引き起こしたのはハードて，ハードウェアのほかにソフトウェウェアの技術進化によるコンピュータアがあります．システムが社会の要求パワーの増大です．にこたえるべく，この20年でソフト性が高まったのはそれほど遠い昔では

図 １ に示すようにCPU，ハードディウェアの開発規模は増大し，そして開ありません．
「2000年問題」の2000年

スク，ネットワークの三大要素技術は発期間は短縮されています．携帯電話や「インターネット元年」といわれる

この10年で １ 万倍，20年で10万倍をにおけるプログラムサイズと開発期間

CPU（bit/s）（Byte） （Hz）
10P

100T

100G
4.4 GHz（相当）

10G

9.0 GHz（相当）

18 GHz13 GHz （相当）（相当）

3.2 GHz
1.4 GHz1G

1T1Gハードディスク

1 TB

233 MHz

1.5 TB 2 TB

3 TB

4 TB

ネットワークFTTH（1 Gbit/s）

160 GB
12 GB
100M

10G

100M

2.1 GB

FTTH（100 Mbit/s）

FTTH（200 Mbit/s）

ADSL（24 Mbit/s）
10M

100M

10M

ADSL（1.5 Mbit/s）

指数関数的に進化

ISDN（64 kbit/s）

2000

2005

図110

NTT技術ジャーナル 2014.10

三大要素技術の進化

2010

(年）

特 集の推移を図 ２ に示します．

ゲームまでさまざまなソフトウェアが無視することはできなくなりました．

携帯電話以外についても，汎用機上開発されるようになりました．今や社

しかし，この20年のソフトウェアので動作する金融システムから，UNIX会において何らかの営みを考えた場

技術進化は，ハードウェアのそれに比やWindowsなどのOS上で動作する合，その営みを実現または支援するシべて遅い，といえるでしょう．

eコマース，そしてスマートフォンのステムとして，ソフトウェアの存在をそもそもソフトウェアの技術進化とは何でしょうか．ソフトウェアの技術進化を図 ３ に示します．

2M

携帯電話のプログラムサイズの推移

ソフトウェアのサイズ︵ＬＯＣ︶

12 カ月

ソフトウェアの技術には，まず，ソ

2.2 M

フトウェアを開発するためのプログラ
開発期間

ミング言語の進化があります．コン

サイズ
1.5 M

ピュータ黎明期はマシン語やアセンブ
ラといったコンピュータでそのまま動1M

作可能な言語を使ってソフトウェアは

6 カ月

700 K開発されていました．しかし，これら500 Kの言語はあまりにも人間が理解しがた
4bit世代

8bit世代1989

1996

出典：平山： 組み込みソフトウェア開発技術,

図2

いため，その後高級言語と呼ばれる16bit世代

1999

COBOLやC言語，Javaなどが開発さ（年）れました．これらの言語は英語に似た

情報処理，Vol.45，No.7，p.679，2004．より作成

記法で記述することができるため人間

携帯電話のプログラムサイズと開発期間の推移が理解しやすく，広く普及して現在の1950年代1960年代COBOL

PL/I

1970年代1980年代1990年代C言語

2000年代Javaウォーターフォール型
スパイラル型
RAD型
アジャイル型1973
全国銀行データ
通信システム
1978

1981
ANSER

郵便貯金
オンライン

図3

1984
CAFIS

2003
iモード
ゲートウェイ
システム

ソフトウェアの技術進化

NTT技術ジャーナル 2014.10

11

ソフトウェア生産技術革新

プログラミング言語の主流になっています．
また，開発プロセスの進化もあります．ソフトウェアが大規模になり多人車の試作回数を大幅に減らして短期間はありませんでした．

大量のソフトウェア生産を支えるためのソフトウェア生産技術で量産工程に到達しているのです．もちろん量産時の工場でロボットによる自動製造が行われているのは言うまで数での開発になると，ソフトウェアの現在のソフトウェア開発の状況をこもありません．これと同じことをソフ設計からプログラミング，そしてテスれまで述べてきましたが，これからのトウェアの開発でも行うことで抜本的トの順序や必要なドキュメントの書式将来は現状のままでは乗り切れない可な生産性向上を図ることができます．

を定めて意識齟齬の発生を抑える必要能性が出てきました．社会におけるソNTTデータでは抜本的な生産性向が生じます．この開発プロセスも過去

フトウェアの重要性が増し，前述のと上を図るために，ソフトウェア生産技から数多く提案されていますが，現在おり，年々その開発量は増加してきて術革新と銘打っていくつかの活動をはウォーターフォール，アジャイルの＊います．また我が国では2015年問題行っています．本稿ではその概要を述

２ つに収れんしており，広く利用されと呼ばれる大規模な社会インフラシス

べ，各記事で詳細に解説します．ています．

テムの開発が向こう数年間予定されて（1） ソフトウェア開発自動化の促進

おり，ソフトウェア開発の需要が大幅人間がかかわらないことにより，従これらの技術進化により，1970年代から大規模なシステム開発が可能にに高まっています．

来のソフトウェア開発の各工程の自動なりました（図 ３ ）．
しかし，ソフトウェこの大量のソフトウェア開発の需要化を図っています．ソフトウェア開発

ア開発に絞って見た場合，開発の生産にどのようにこたえれば良いのでしょは大きく設計，製造（プログラミン性（ １ 人の人間が開発可能なソフトうか． １ つは開発者の数を増やすこと

グ），テストの工程で行われますが，ウェアの量）を考えると，これらの技です．これまでもオフショア開発と呼それぞれに自動化ツールを提供し，人術はこの20年間でほとんど生産性をばれる，中国やインドなど動員力が間の関与を最小限に抑えることを志向向上させることに寄与していません．

あって，かつ人件費の安価な地域にしています．人間がかかわらないこと

先にハードウェアの性能は20年間で開発を委託し，作成されたソフトウェで従来行われていた作業を削減し，生10万倍向上していることを述べまし

アを輸入することが行われてきまし

産性を向上させることがポイントになたが，残念ながらソフトウェアの技術た．しかし昨今は円安の影響もあり，ります．これらの自動化ツールはこれ

進化はソフトウェアの開発生産性を向

費用上のメリットを得にくくなってきまでも世界中で研究開発が行われ，製上させていないのです．

ました．

品も多数存在していますが，どれも大

この理由は，ソフトウェア開発にかそこで考えなくてはならないのは，きく普及することなく終わっていまかわるすべての作業を人間が行うこと

ソフトウェア開発の生産性を抜本的にす．NTTデータでは，ソフトウェアを前提に開発されてきたためです．複向上させることです．そのためには，開発の自動化を2010年から推し進め雑な開発の流れを理解しやすいようコンピュータパワーを活用して，「人ていますが，いかに普及展開を行い，な，人間にとって快適な状況をつくり間がかかわらない」もしくは「つくらデファクトスタンダードにしていくか出す技術開発は行われてきました．しない」ことを考える必要があります．

もポイントになります．

かし， １ 人の人間がどれだけ頑張ってそんなことが可能かどうかは意見が分（2） シミュレータの研究開発も作成できるドキュメントやプログラ

かれるところでしょうが，目を自動車

従来の人間が作業することを前提とミングできるソフトウェアの量は大き産業に転じてみると，1990〜2000年した各工程を自動化するのではなく，く変わるものではありません．その結代に同じ動きがあり成功しています．

果，複雑なソフトウェアをつくるうえ

すなわち自動車の設計において，デジで，戸惑い間違うことは少なくなりまタル化を進めてコンピュータシミュしたが，生産性の向上に結び付くことレーションで動作や性能を確認し，実12NTT技術ジャーナル 2014.10＊ 2015年問題：2015年を中心に，マイナンバー，電力自由化，かんぽ生命，みずほ銀行などの大型システムの開発需要が集中することによって引き起こされる，IT技術者が払底する問題．

特 集

デジタル化された設計情報を基に完成

ドウェアが経年劣化するのに対し，特フトウェア開発は，その限界が明らかしたソフトウェアの動作シミュレーに業務やサービスに大きな変化がないになってきました．
しかし，ソフトウェションを行い，製造以前にその良否を限りソフトウェアには変更の必要が生

ア開発にはリスクがあり，新しいソフ確認することを指向したシミュレータじません．そのため，ソフトウェアはトウェア開発方法を採用するのは心理の研究開発を行っています．前述の自社会の中で世代を超えて使い続けるこ的障壁を伴います．この状況を変革す

動車産業に範を取った活動になりまとが可能です．しかし，ハードウェアるには時間が必要です．従来のソフト

す．これまでのソフトウェア開発とはの構成が大きく変わるときに，そのウェア開発の常識を打破するために全く異なった工程となり，完成すれば影響をソフトウェアも受けてしまい

NTTデータでは，抜本的な生産性向大幅な生産性向上が見込めると期待します．

上を目指したツールの研究開発を進めています．

現在汎用機（メインフレーム）から，るとともに，粘り強くその普及展開に力を入れて取り組んでいきます．

（3） ソフトウェア再利用の研究開発

オープン系（Linux，UNIX，Windows）

次につくらないことを指向した取りOSを搭載したハードウェアにシステ組みです．NTTデータはソフトウェムが移行する大きな流れがあります．

アと設計書をはじめとする付帯ドキュ

その潮流を受けて，本来であれば変更メントを大量に保有しています．これの必要がなかったはずのソフトウェアらの資産を再利用することについても載せ替えるだけではなく大幅な変は，何度も挑戦し，そして失敗してき更，修正の必要が発生しています．汎ました．これはNTTデータだけの問用機で実現されているシステムは「レ題ではなく，ソフトウェア産業すべてガシーシステム」と呼ばれることも多で起きている現象です．そこで，何がく，そこでこの動きを「レガシーモダ再利用を妨げているのかを明らかにすナイゼーション」と呼んでいます．日るとともに，成功させるための条件を本には汎用機の経年劣化による期限切導出すべく研究開発を開始しました．

れを待つ超大規模システムが大量に存

また，ソフトウェアや設計書を直接再在しています．そして，それらのシス利用するだけではなく，その資産からテムの多くは数十年にわたって改変を抽出される情報を基に，他の活動を支加えながら成長しているため，その中援するような間接的な利用方法につい身がブラックボックス化してしまってても検討しています．

おり，誰も手を出せない状況に陥って（4） レガシーモダナイゼーションいます．この状況を改善するには，人最後に，既存のシステムをいかに再手による作業だけでは不可能であり，生するかについてです．これまでに述コンピュータパワーを使った解析と，べてきたことと趣旨が異なりますが，再生するためのソフトウェア開発の自我が国において，今後大変大きな問題動化が不可欠であり，その検討を行っになる可能性を秘めているため取り上ています．

ソフトウェア大量消費時代を迎え，ソフトウェア生産技術の革新は喫緊の課題です．
新しい開発方法を採用するのは心理的障壁を伴いますが，本記事をきっかけとして，少しでも生産性向上の取り組みを考え，行動に移してくれることを願っています．そして，業界全体が良い方向に向かうことを真に期待しています．

今後の展開◆問い合わせ先げました．
「もったいない」の言葉に代表されるように我が国では道具を長期間にわたって大切に使う文化が根付システムの大規模化と多様化によるいています．システム，ソフトウェアソフトウェア大量消費時代を迎えて，においても例外ではありません．ハー

人間が作業を行うことを前提にしたソ冨安

寛

NTTデータ
技術開発本部
ソフトウェア工学推進センタ
E-mail case-nttgjournal kits.nttdata.co.jp

NTT技術ジャーナル 2014.10

13