NIIオープンハウス2015 レポート

基調講演

「見えざるシステムの伸びゆく手:ソフトウェア工学の方向」

中島 震(国立情報学研究所 アーキテクチャ科学研究系 教授)

講義資料ダウンロードはこちら

ソフトウェアによるイノベーションの時代、industrie 4.0というものがあります。第4次産業革命(IoT+AI=考える工場?)といわれるくらい大きな動きになろうとしています。第1次経済革命は狩猟から農耕へ、第2次経済革命は歴史で習ういわゆる産業革命、自然法則を使った新たな経済の革命を起こした技術革新でした。産業の技術革新の裏には、それをドライブしていった社会の仕組みがあります。占有権=知財権を整備することで発明家が集まり、活動が進んでいきました。流れはCyber Physical Systemsからindustrie 4.0へと移っていきます。

 

今が第3次経済革命にあたるのではといわれています。ソフトウェアが価値創造を主導し、グローバルにものごとが動いていく。そこでどうやってビジネスとして勝っていくのかというと、オープン&クローズ戦略が重要であるといわれています。自分がやることとほかの人に任せる部分を区別する必要があり、適切なルールを設計し、マーケットをコントロールする。ある部分をオープンにし、ある部分をクローズにするというものです。具体的には、知財権と標準化の独占的な改版権で、標準化をどのようにコントロールしていくかが課題です。本講演では、ソフトウェアによるイノベーション、多様な論理体系、システム・リスクの低減を考えたいと思います。

「教育ある人のうち、どれだけがソフトウェアについての知識を持っているだろうか?」(C. P. Snow)。ソフトウェア工学は、1968年に始まっています。プログラミング技術だけでは不十分であり、工学的アプローチをプログラム作りに導入しました。出発は「発想」から始まっています。しかしエンジニアリングとソフトウェアの性質の違いをどう乗り越えるのか。ソフトウェア工学という分野は、コンピュータサイエンスの一部で複雑さに支配されます。進化発展する人工物です。ジャンボジェット機の部品点数は約600万、スマホは約2000万行のプログラム行数。大規模ソフトウェア開発の例として大手銀行勘定系システムは1億行といわれます。1億行は1000人が10年かけて生産される。このような規模の複雑さもあります。「いかなるコンピュータシステムも、有用であるからには、外部世界との相互作用を持つ」(M. Jackson, 1999)。しかし複雑なものはリスクが大きい。「複雑かつ大規模なシステムが構築可能だがそのシステムの信頼性を怪しくし、社会に大きなリスクをもたらす可能性が増えてしまう」(ACM, 1982)→「リスク低減する技術は一歩出遅れてしまう」(P. Newman, 2008)

 

リスクを低減できるということをディペンダブルという言い方をします。期待されている振る舞いを示す=信頼性、外界に期待と異なる結果を生じない=安全性。リスクを前提にした対策、適用限界が明らかな科学的な方法が必要です。「正しさの基準」とは何か。機械的に決まる「正しさ」は単純なものだけで、その「正しさ」の基準は相対的で脆弱です。2000年問題を例にみると正しさは変化してしまうことがあります。

プログラムにも経年変化があります。バナナが黒くなるように目では劣化が見えないので厄介ですが、ソフトウェアには長期間のメンテが必要で、これによりソフトウェアはより複雑になってしまいます。ソフトウェアの安全性は「要求」の問題であり、要求に対してシステムは作られます。ソフトウェアの外に要求があるため、要求が時代や状況により変化するとソフトウェアの安全性は開発時と異なってきます。

 

何をつくるか。要件定義をどう作るかが難しいといわれます。変化する要求、信頼性、安全性。アプリケーション・ドメイン(外部世界)の要素として、要求は達成するゴールであり外部に存在します。サービスイン後に外部変化を検知し自己適応するというような研究も出てきています。

システムは多数の構成要素からなる全体です。たとえばシステム工学の中で重要なドメインは宇宙ロケットです。「失敗は必然、成功は偶然」なものですが、安全性が強く求められるので予測できる限りの「要求」=条件を分析します。

 

industrie 4.0再考。ソフトウェアによるイノベーションは生産の全体最適化、コネクティビリティ中心CPSの具体的な応用、ディペンダビリティやリスク低減の技術が課題です。第3次経済革命として、グローバルなビジネス・エコシステム、オープン&クローズ戦略。制度設計=新しい形の「独占」がポイントであるといえます。

 

2つのソフトウェア工学があると思います。現在のプログラムづくりのためのEngineering with Software or Programming Technologies(開発生産性、高信頼性の達成)かソフトウェアのイノベーション、要求の作り方という観点からはEngineering for Software Enabling Eco-Systems(リスク低減、社会との関わり、文理融合の分野)。こういうような考え方でソフトウェアそのものをもう一度見直すということも必要かと思います。

お問い合わせ

公式アカウント

ページのトップへ戻る

〒101-8430 東京都千代田区一ツ橋2-1-2

国立情報学研究所 オープンハウス事務局

COPYRIGHT National Institute of Informatics, 2015