ソフトウェア技術者協会(SEA、代表幹事:中野秀男氏)主催による「ソフトウェア・シンポジウム(SS)2013 in 岐阜」のオープニングキーノートは、北陸先端科学技術大学院大学 副学長 高信頼組込みシステム教育研究センター長 落水 浩一郎氏の「産学連携によるイノベーション人材の育成とソフトウェア技術者協会の役割」。落水氏はソフトウェア工学、中でもソフトウェアプロセスモデル、オブジェクト指向ソフトウェア開発方法論、ソフトウェア分散共同開発支援システム、ソフトウェア開発方法論とプロジェクト管理技術の融合、組込みシステムのテスト環境、ソフトウェアカウンタビリティなどを専門としている。落水氏の講演内容を紹介する。
■21世紀を支える人材にはどんなスキル、能力が求められるのか?
現在、大学では人材育成が大はやりしている。これまで大学でのキャリアというと、研究的に優れた業績を上げる、論文を書くことに主眼が置かれていた。これからは学生が自分の研究テーマが世の中の社会的課題にどうつながるのか、そしてその中で学生自身が何を実現していくまで考えられるよう、大学がサポートしていかねばならない。それが将来、社会的課題を解決する、新産業を創出するという「21世紀を支える人材」へとつながっていくからだ。
そこで大学で取り組まなければならないことをまとめてみた。
まずはキャリアプランの立案のサポートをすること。自己表明書を作成し、目標と現状を理解するのである。例えば博士研究において課題、目標と達成点、予想される成果について記述する際も、その成果が学問的、社会的にどういう意義があるのか、研究と連動させて考えさせることにしている。また主な業績についても、成果がどういう風に世の中にインパクトを与えるかということを常日頃から考えることをさせている。こういうことをすることで、学生はなかなか少しずつ、変わっていくのである。
世の中では確かな専門力と広い視野、フレキシビリティのある人材(基礎力、問題発見および問題経穴能力、イノベーション力を有する人材)、グローバル人材(多様性を許容でき、アウェイ力を有する)人材が求められている。そのような人材をどうやって育ていけばよいのか。中でもアウェー力や社会人基礎力は座学では身につかない。
アウェー力は産業能率大学の豊田貞光氏の「ASEANで活躍する人材に求められる能力」によると、次のように分解できる。
◆大局的な見地と異なる意見を受け入れる「リーダーのマインド」
◆文化や価値観を乗り越える「高い常識」
◆あらゆる意見に耳を傾け論理的に分析できる「問題解決能力」
◆言葉が通じない現地でも意志を伝えることができる「意思疎通力」
◆異なる食文化にも耐えうる胃袋を持つ「フィジカル」
このような能力を身につけるには、外の世界に送り出すことだ。広く世界を知るチャンスを作ること。大学では今、企業やアカデミーとの交流、海外研修などに積極的に取り組んでいる。それだけではなく大学・大学院という枠を離れて、外の世界に出て行かなければ本物のアウェー力は身につかない。
■ソフトウェア工学は40年前から同じ課題を追求し続けている?
では21世紀を支えるIT関係人材を育成していくために、ソフトウェア工学はどのような発展をしていくべきなのか。
そこで過去を振り返ってみたい。歴史的なIT関係ニーズの変化においてソフトウェア工学はどのような位置づけになっているのか。
1960年〜70年まで、「コンピュータを学んでいる」と言うとコンピュータ(ハードウェア)を作る(電子工学)、ソフトを書く(計算機科学)、ビジネスアプリケーションを作る(情報システム技術)、という3分野で活躍するしかなかった。70年代になると分化し、計算機科学からソフトウェア工学が、また電子工学からは計算機技術(組み込みシステム)が精通する技術者が求められるようになった、情報システム技術は守備範囲を拡大すると共に、組織を支える情報基盤を提供する情報技術(IT)分野が出現した。
本来ならここでソフトウェア工学が今後、何をなすべかを話題にするのが本論だが、私がソフトウェア工学に関心を持った頃(今から40年ぐらい前)から、同学問では追求し続けている課題がある。人間は年をとると共に創造力が落ち、抽象力が上がる。私も多分に漏れず、抽象力が上がっている。そこで古くからの共通課題を次のような図(写真)としてまとめてみた。
組み込みシステムもエンタープライズ系システムもさまざまな条件に適合するため、制約を受け、複雑性、不可視性を増し、進化していくのが難しくなっている。そして我々、古くからソフトウェア工学に携わってきたものは、こういう問題を解決したいと思い、ひたすらに頑張ってきた。
ソフトウェア特有の性質である「複雑性」「適合性」「変更容易性」「不可視性」という4つの問題に対して、ソフトウェア工学では「関心の分離」「モジュラリティ」「抽象」「変更の予期」「汎用性」「インクリメンタリティ」「厳密性と形式性」という制御する原理を考え、さらにそれを実現する技術を開発してきた。例えば関心の分離を実現する技術としては、アスペクト指向が挙げられる。またアスペクト指向を補完するオブジェクト指向、コンポーネント指向、サービス指向は、モジュラリティや変更の予期を実現する技術でもある。その他にもフィーチャー指向、プロダクトライン、抽象化を実現するUML、アジャイルなどさまざまな技術を開発してきた。
■ソフトウェア工学を取り巻く環境は大きく変化している
では今後もこの4つの問題を解決するための原理だけでよいのだろうか。否、ソフトウェア工学の新たな挑戦を必要としているほど、今、世の中は大きく変化している。コンピューティング環境もその一つだ。クラウドコンピューティングの登場により、ソフトウェアの利用形態を変化させるだけでなく、例えば、センサーネットワークと結合することにより、農業クラウドや在宅看護/診療などの新しいシステムを生み出した。私自身も農業クラウドには大きな関心を寄せている。
組み込みシステムが増大化し、その位置づけも大きく変わってきた。例えば自動車では車両1台当たり約1000万行のプログラムが書かれている。そんな状況の中で、万一、システムに欠陥があると、重大な事故を起こしてしまう可能性があるというわけだ。つまり組み込みシステムは信頼性、安全性の問題がますます重要になる。高信頼組込みシステムの製造技術、複雑性の管理、高信頼・高品質な組込みシステム技術に、ソフトウェア工学の技術が適用できるターゲットがあると考えている。
これだけではない。次なるインフラについても考えておかねばならない。インフラはオープンイノベーションの土台だからだ。ちなみにオープンイノベーションとは自社の技術に外部の技術力やアイデアを組み合わせることで、革新的なビジネスモデルを生み出すことである。
次の時代インフラの情報を得るため、2013年6月4日に在日フランス大使館、日仏工業技術会、慶應義塾大学SFC研究所、WIDEプロジェクトが共同で開催した日仏ワークショップ「インターネットの未来社会に向けた挑戦」に参加した。インターネット時代のイノベーションを考えるためには、インターネット系の人々が何を考えているかを把握することが必須だと考えたからだ。
同会ではさまざまなキーワードは出ていた。中でも驚いたのは「Dynamic Network」。Edge of the Internetで膨大な潜在的コミュニケーションがあるということ。2013年には70億のモバイルデバイス、2020年には500億の「結合されたスマートオブジェクト」が利用されるという。つまりこのような世界では、これまでのソフトウェア工学で取り組んでいた単一のアプリケーションを作る、具体的なオペレーションを作ると言う発想では想像しきれないような問題が発生してくるのである。
■「オープンシステムディペンダビリティ」が重要になる
またIPAの立石譲二氏も「統合系プロジェクト設置の狙いと取組について」(SEC journal 第7巻第2号)で、「システムの利用者層・利用形態については、対象の飛躍的な拡大に伴い、システムの品質に大きな影響を与える利用状況を設計段階で想定し尽くすことが事実上不可能になるという深刻な問題がある」と書いている。つまりこれまでのように仕様が決まらない時代が来ると言うのだ。
このようなシステムが抱える仕様/実装の不完全さ、システムの完全理解の困難さ、使用環境の変化に伴う困難さにどのように対応するか。その一つとして今、所眞理雄先生を中心に研究が進められているのが「オープンシステムディペンダビリティ」という概念である。オープンシステムディペンダビリティとは、不完全さと不確実さに起因する、未来に障害となりうる要因を顕在化する前に、できる限り取り除くなど、影響を最少にするように管理し、利用者が期待する便益をできる限り安全かつ継続的に提供できることである。
DEOSプロセスはその実装例だ。図を見ればわかるとおり、外側の開発サイクルの中に障害対応サイクルが用意されており、この2つのサイクルを結合されている。運用の際に障害が発生したり、その予兆を検地すると障害対応サイクルで原因を究明して迅速に対応したりするだけではなく、要求としてステークホルダーに提出される。また障害対応の内容についてはD-Case(システムの安全性、ディペンダビリティなどを、エビデンスを元に議論するための手法とツール)で作成し、合意記述データベースに蓄積、知見として再利用されていくというわけだ。
■これからのソフトウェア工学が挑戦すべきこととは
ITの世界ではビジネスモデルも変遷している。これまでは垂直統合と水平分業を繰り返してきた。マルチデバイスの時代になり、iPhoneの垂直統合に対し、Android端末は水平分業を余儀なくされてきたが、Googleも垂直統合に挑戦し始めている。これからもソフトウェア工学の発展するためには、このようなビジネスモデルについても考慮しなければならない。
ソフトウェア技術者の役割も変化している。ソフトウェア・シンポジウム2011のクロージングキーノートスピーチ「ソフトウェアが担う日本の信頼」で、檜原弘樹氏は「小惑星探査機はやぶさプロジェクトで、ソフトウェア技術者が大活躍した」という話をした。なぜ活躍できたかというと、ソフトウェア技術者がつくるソフトは形あるものではない。したがって日ごろから見えない世界、触れない世界を想像してトラブル対応できることに慣れているからだ。
これらの変化している状況を踏まえて、ソフトウェア工学が次に挑戦すべきことはなにか。それは新しいコンピューティング環境を実現・活用していくときに遭遇する、さまざまの問題現象を抽象することにより課題を設定することである。そしてその手段として重要になるのが、産学連携によるインクリメンタル・イノベーション(今ある技術を改良し、それを積み重ねて技術革新を進めること)だ。
◆インクリメンタル・イノベーションでは次のようなプロセスを繰り返すことで技術革新を導く。
1.生産の場におけるさまざまな問題現象のうち、「自身の関心」を一口で言い切る。
2.「問題」とその「効果」を抽象する。
3.「問題の抽象」と「効果の抽象」に対して名前を与える。
4.上記ステップを経て、実世界の問題を理論の世界に移すことができ、式、アルゴリズム、言語、ツール等による問題解決に思考を集中できる。
5.抽象化された世界における解を実世界にフィードバックし、その効果を評価する
6.ここでワンサイクル完成。新しく得られた問題をさらに追及することで、過去の成果を踏まえた新しい成果が得られる。
■産学連携でインクリメンタル・イノベーションを起こす
なぜインクリメンタル・イノベーションを産学連携で行うのか。それはソフトウェア工学の発展にとって現場における問題解決が欠かせないからだ。九州大学の荒木啓二郎氏とソニーの栗田太郎氏によるFeliCa カード開発はその好例だろう。
私もこれまで20回ぐらい産学連携の共同研究に取り組んできた。しかし成功に近いものは3つぐらいしかない。それほど難しい。
ある共同研究の例を紹介する。研究の発端は、ある組み込みコンシューマー製品の開発現場で起こっている問題を解決する手法がないか相談されたこと。この開発現場では機種展開をするため、複数のプロジェクトが並行に走っている。そのため単一プロジェクト体制からマトリクス型組織体制への移行。それに伴って組織管理、プロジェクト管理に問題が発生するようになったという。そのタイミングが、第三の開発が始まったとき。ここに問題があると考えた。
またスケジューリングするときのステークホルダーの関心ごとは異なることにも問題があった。
●部門長は
・組織全体のリソースの過不足状況の管理
・複数プロジェクト間のリソース調整
●プロジェクトマネジャーは
・納期の遵守
●機能チームリーダーは
・リソースの秋状況の把握
・公平な仕事の分担
負荷を生み出す構造を明らかにすると共に、チームごとに容量という概念を入れて、スケジューリングすることを考えた。それが負荷容量参照モデルという概念である。チームの容量を生み出す要素は人数だけではない。スキルやノウハウ、既存スケジュール、上下関係、コミュニケーション、育成状況、外部委託関係などがある。
プロジェクトにおける負荷と容量という制約条件と各ステークホルダーの関心ごとに対応できる作業スケジュール案を生成するために適用したのが、整数計画法である。これを活用すれば制約条件と目的関数を変えるだけで、容易に最適解を出力できる。この手法の採用を教えてくれたのは、数学が得意な博士課程の学生だった。
いくらこの方法を使おうとも、すべてのステークホルダーの関心を満たす最適解を得ることは難しい。そこで最終的なスケジュールは負荷容量図を基に、ステークホルダーたちに判断してもらうこととなった。
産学連携事例を通して学んだことは、成功するには写真のようなキーパーソンとの連携が非常に重要になるということでる。これが産学連携の必要十分条件かは明らかではないが、私が成功した3つの事例はこの条件が満たされていた。
■SEAは時代の流れを変える視野を持った人材を発掘する場に
ソフトウェア工学の課題は依然として山積みである。それを解決できるようなイノベーションを起こすには、時代の流れを変える視野を持った人材を発掘していかねばならない。そこでソフトウェア技術者協会には、そういう人材を発掘する場となってほしい。つまり、
・大学の先生が現場の問題を知る場
・企業の方が大学の基礎研究の成果について情報を収集する場
・産学連携によるインクリメンタル・イノベーションのきっかけをつくる場
・上記のような活動に若者を巻き込み、活躍してもらう場
SEAエコシステムを作れるか。これからの活動に期待している。
落水氏の講演後、行われたのは質疑応答というよりは、意見交換会のようなもの。「若い人がSEAで知識やスキルを習得しても、会社に持ち帰ってその成果を披露できないことが多い」という意見に対しては「SEAで実践できるような機会をつくりたい」と司会者の声も。また学生は大学が人材育成に力を入れても、簡単には乗ってこないという話も落水氏からあった。
もちろん、講演内容に対する鋭い質問も飛び出し、オープニングキーノートは盛況のうちに幕を下ろした。