高度なソフトウェアシステム開発の新たなテクノロジやトレンド,エクスペリエンスを探求するSoftware-Centric Systems Conferenceが5月25日,オランダのアイントホーフェンにあるHigh Tech Campusで開催された。
InfoQでは,プログラム委員会のメンバであるRob Howe氏とMartijn Rutten氏に話を聞いた。
InfoQ: 現在のソフトウェア開発が直面する課題というのは,主にどのようなものだと思いますか?
Howe: メディアでは“スマート”や“インテリジェント”,“自律的(Autonomous)”といった言葉が頻繁に用いられています。あらゆるタイプの製品を表すのに,このような表現が使われているのです。これらの言葉は,実はソフトウェアと同じ意味です — システムをスマートに,インテリジェントに,あるいは自律的にするものがソフトウェアなのです。私たちの世界では,ますますソフトウェアが中心になってきています。それなのにソフトウェア開発は今でも,どちらかと言えば素朴で,費用の掛かる方法で行われているのです。ですから,ソフトウェア“開発”が直面する最大の課題は,決められた期間で,経済的に,信頼できる成果を提供することの可能な,真のエンジニアリング活動へと進化することです。“スマート”,“自律”といった言葉から連想されるような,高度に統合された複雑なシステムを実現する上では,このような能力が絶対的な鍵になります。
Rutten: 今日のソフトウェアはシステムそのものです。システムの重要な機能やメリットを決めるのはソフトウェアです。IoTやインダストリ4.0といったシステムがインターネット接続を実現したことによって,ソフトウェアコンテンツも急速に成長しています。1,000万ステップを越えるソフトウェアを抱えた組み込みデバイスが,ごく普通の存在になってきているのです。組込みデバイスが現実の世界への直接的な影響力を持つことで,その信頼性やセキュリティといったものは,人を傷つけないための鍵になります。従来型のOEMは今,自らが事実上ソフトウェア企業になっていることに気付いています。ハードウェアエンジニアリングをバックグラウンドに持つ企業にとっての課題は,信頼性と安全性を備えたソフトウェア開発,という極めて複雑な作業を管理することにあります。
InfoQ: 最近の技術開発で注目しているものは何でしょう,それは複雑なソフトウェア中心のシステムの開発にどのように影響するのでしょうか?
Rutten: 大規模なソフトウェア開発の複雑性を管理するための取り組みは,あらゆる角度から行われています。ソフトウェア検証のための静的ないし動的解析ツールから始まって,脆弱性を生み出すリスクが本質的に低い新言語,ハイレベルなモデルの修正と並行して(correct-by-construction)ソフトウェアを開発するモデル駆動開発まで,さまざまです。これまでソフトウェア開発チームは,カウボーイスタイルの開発で難を逃れることもできましたが,現在ではその複雑性を管理するために,開発プロセスやツールにもっと注意を払う必要があります。
Howe: 何年もの間,新技術の開発や採用,展開は,いわゆる“アーリーアダプタ”企業によって先導され,いくつかの成功を収めてきました。しかし,リソースに制限があり,それゆれにソフトウェアエンジニアリングに対してより現実的なアプローチを取る“アーリーマジョリティ”企業は,従来の開発手法を忠実に守り続けてきたのです。そのような企業も,昨年からは変化を初めています。MDSE(モデル駆動ソフトウェアエンジニアリング)などの技術に対する市場の信頼レベルが高まり,ソフトウェアエンジニアリングコミュニティに幅広く採用されるようになっているのです。
InfoQ: 新たなテクノロジを利用して革新を起こすにはどうすればよいのか,具体的な例をあげることはできますか?
Rutten: ソフトウェアを市場に送り出す前にバグやパフォーマンス上の問題を検出する手段として,多くの企業が継続的インテグレーションを展開しています。これにより,従来のような四半期リリースではなく,1日に何度もソフトウェアをリリースするような継続的デプロイメントが実現しました。この方法が組込みソフトウェアで可能になったのは,すべてのリリースをインスタンス静的解析ツールでチェックし,モデル駆動開発の仕組みを用意してリリースを生成するようになったからです。このような市場投入ペースの早さが,新機能が市場ですぐに試される状況を生み出し,それがイノベーションの原動力となっていることは間違いありません。
Howe: 新しいソフトウェアエンジニアリング技術の採用に対する信頼レベルが高まったことで,開発チームは,革新的なシステムアーキテクチャを試すことができるようになりました。例えば,形式的検証の構築にMDSEツールを採用したある企業では,自社製品のひとつに再設計の可能性を見出しました。PLCを使った時代遅れのセーフティコントローラを,メインアプリケーションソフトウェアの本体内に組み込んだ検証済みの分散型セーフティコントローラに置き換えたのです。
InfoQ: 今回のカンファレンスでは,主にどのような話題が取り上げられるのですか?
Rutten: カンファレンスの中心は“ソフトウェアの懺悔室”です。これは,大規模で高度なソフトウェア中心のシステムを開発する,という大きな課題に対処する方法を,お互いの経験から学ぼうというものです。信頼性やセキュリティ,プライバシ,保守性,パフォーマンスを確保するためにはどうすればよいか,などを学びます。
Howe: カンファレンスの大きな目標は,参加者同士が知識や経験を語り合い,交換し合う場を提供することにあります。一般的に,カンファレンスに参加する最も重要な意義は,講演者や他の参加者との会話を通じて得られる知識にあると,私たちは考えています。ですから,このカンファレンスでは,このような会話を最大限に可能にすることを考えています。また,講演者はすべて,彼らの現実的な経験から学ぶべきものがある,という点に基づいて選ばれています。
InfoQ: ソフトウェア開発プロセスの信頼性の向上と迅速な価値提供を両立させたいと願う企業は,アジャイルをどのように導入すればよいのでしょうか?
Rutten: 継続的インテグレーションと継続的デプロイメントは,アジャイルソフトウェア開発と密接な関係にあります。解決コストの低い早期に問題を見つけ出すためには,そのクラスで最高の環境とツールをセットアップする時間と予算を確保することが重要です。ドメインにモデル駆動アプローチを適用することで,高レベルのモデルから生成されるコードによって,信頼性と市場提供期間の両方を大幅に改善することができます。
自動車エンジンの制御のような特殊なドメインでは,事はこれほど簡単ではありません。既存の作業システムから新たなテクノロジへの移行を穏やかに実行するために,膨大なリソースを投入する必要があります。そうやって環境を整えることで初めて,漸進的なアジャイルの導入が意味のあるものになるのです。
InfoQではSoftware-Centric System Conferenceに関して,Q&Aや要約などの記事で取り上げている。
この記事を評価
- 編集者評
- 編集長対応