詳細を見る

ケーススタディ:LASP
宇宙機装置のリアルタイム運用をサポートするための
C++ コードの信頼性と安定性を確保
ウェブサイト:
規模:
創業:
業界:
LASP.COLORADO.EDU.COM
開発者 25 名
1948 年
大学宇宙研究
LASP におけるほぼリアルタイムの処理
コロラド大学の大気宇宙物理学研究所(LASP)では大気科学、宇宙物理学、太陽活動の影響、惑星科学に関す
る研究を駆動目標に掲げており、その活動はエンジニアリングおよびミッション運用部門の技術貢献によって支え
られています。
LASP は米国のみならず世界の大学宇宙研究の最高峰に位置する研究所です。コロラド大学の学術環境に独自の
方法で貢献しているほか、数十年前から惑星ミッションや宇宙船計画、気候変動調査など、さまざまな活動に参加
してきました。
科学データを効果的に収集・処理するために、多くの装置で LASP のデータ システム グループが設計した複雑な
ソフトウェアが用いられています。LASP のデータ システム マネージャ、クリス・パンクラッツ氏は次のように説明
します。「データ システム グループでは、約 15 人の専門家と 10 人の学生が、科学コミュニティや一般に提供さ
れる科学データ セットのデータ処理、データ解析、データ配信をサポートするソフトウェアとアプリケーションの開
発を担当しています」
これらのシステムのほとんどで適時性が求められ、ソフトウェア障害が生じれば、正確でタイムリーな科学データ
を届けるというミッションの機能に深刻な影響がおよぶ可能性があります。主要なデータ処理ソフトウェアの信頼
性を確保するために、パンクラッツ氏率いるチームでは、複数の重要プロジェクトで Klocwork Insight ™ 静的コー
ド解析(SCA)を採用することにしました。
GOES-R プロジェクト:高信頼ソフトウェアの要件
GOES-R 宇宙船ミッションでは地球の大気と天候を監視し、米国海洋大気庁(NOAA)にデータを送信していま
す。データ システム グループのプロフェッショナル リサーチ アシスタント、ドン・ウッドラスカ氏はこう説明します。
「LASP では、NOAA の厳しい性能要件を満たしつつ、LASP に設置した装置から送られるテレメトリ データを受
信し、それらのデータを有効な科学測定値に加工するための C++ コードベースを記述しました」
ウッドラスカ氏はさらにこう続けます。「もっとも重要なのは装置のキャリブレーションを正しく行うことですが、こ
れはオフラインとリアルタイムの両方のデータ解析が必要な緻密な処理です。実用宇宙船である GOES の装置と
ソフトウェアは、リアルタイムの実利用をサポートしています。処理結果はただちに NOAA に送る必要があり、デー
タ遅延要件は 1 秒となっています」
ウッドラスカ氏は GOES-R プロジェクトでの開発開始と同時に Klocwork Insight SCA を使い始めました。プロジェ
クトの夜間ビルドに Klocwork 解析が統合され、make ファイルを利用することで、毎晩 cron ジョブにより開発リ
ポジトリから自動でソースコードがチェックアウトされ、解析が実行されるようになっています。
Klocwork は配列範囲違反(ABR)の特定とわずかなメモリ リークの検出という、GOES-R プロジェクトの 2 つの
重要分野で目覚ましい成果をあげています。ウッドラスカ氏はこう話します。「この 2 つは高信頼システムに昔から
ある問題であり、安定性の確保という点では極めて重要な意味を持ちます。また他の方法ではなかなか検出する
ことはできません。静的解析は境界エラーのチェックに大変有効です。Klocwork のおかげで、従来のテスト環境
よりもはるかに広い範囲をカバーできるようになりました」
ウッドラスカ氏によると、Klocwork のツールを導入する以前、LASP のソフトウェア検証では、合否成績評価方式
でコードを判定する昔ながらのテスト方法が使われていました。「このアプローチの問題点は、テスト ケースの範
囲内のソフトウェア不具合しか発見できないことです。探し出すべき未知の不具合を検出することはできませんで
した」
ウッドラスカ氏は NASA Solar Dynamics Observatory EVE ベースなどの安定したコードに対しても Klocwork の静
的解析を実行しました。EVE は C で書かれたプログラム スイートであり、地球上の生命体と人間工学システムに
影響を与える太陽変動の予測機能の実現にフォーカスしています。「このコードの出来栄えには自信があったので
すが、Klocwork のツールにより、見過ごしていた境界エラーが検出されました。大規模なシステムでは全てをく
まなくテストすることは困難です。特に私達はこれまで新しい機能を次々に追加してきたため、Klocwork なしでは
保守が難しくなっています」とウッドラスカ氏は言います。
結果 – 生産性、信頼性、開発スキルが向上
学生インターンと共にコードベースの開発に取り組んでいるウッドラスカ氏はこう話します。「GOES-R プロジェ
クトでの開発作業に Klocwork を用いることによって、より良いテスト ケースを作成でき、カバー範囲も広がり
ます。繰り返しテストをやる必要がなく、時間の節約になっています。デバッグや再テストについても同様です」
さらにウッドラスカ氏は、Klocwork ツールの利用が生産性の向上にもつながっていると言います。「今
では学部の学生にコーディングをまかせても大丈夫です。彼は私に頼ることなく 1 人で作業をしていま
Klocwork が検出したものの中に本当にエラーかどうか疑わしいものがあると私のところに持っ
す。時々、
てくるのですが、それを 2 人で一緒に見て、話し合い、学習するようにしています。このような手順を
繰り返すことで彼は優れた開発者へと成長していっています。それに、最初から質の高いコードを記述
できるため、効率的に作業を進めることが可能です」
Klocwork との今後の連携
Klocwork に対する関心は、パンクラッツ氏のチームだけでなく、同じように宇宙船に搭載される科学機器や
関連ソフトウェアを開発している LASP の他の部門にも広がっています。「フライト ソフトウェア チームも、現
在立ち上げ段階にある GOES-R 開発で Klocwork を利用することを検討しています」とパンクラッツ氏は報告
してくれました。
パンクラッツ氏はこう話します。「LASP には、これまで自動 SCA ツールを使う機会のなかった成熟
システム関連のプロジェクトが他にも多数存在します。これからいくつかの成熟したコードベースで
Klocwork を使ってみて、どのような結果が得られるか見てみるつもりです」
LASP | Klocwork Case Study | 2
Klocwork について
Klocwork® はデベロッパーがより安全で信頼性の高いソフトウェアを作成するのに役立ちます。弊社
のツールはソースコードを オンザフライで解析し、ピアコードレビューを簡素化し、複雑なソフトウェ
アの寿命を延ばします。モバイル機器、家庭用電化製品、医療技術、通信、自動車、軍事、航空
宇宙部門の最大ブランドを含む 1100 社を超えるカスタマーが、既に Klocwork を自社のソフトウェ
ア開発プロセスの一部に組み込んでいます。数多くのソフトウェア開発者、設計者、そして開発マネー
ジャーが弊社ツールを日々活用して、生産性を高めると同時によりよいソフトウェアの開発を行って
います。詳細に関しては、www.klocwork.com または info@klocwork.com にて Klocwork までお
問い合わせください。
米国:
15 New England Executive Park
Burlington, MA 01803
© Klocwork Inc. All rights reserved.
カナダ:
30 Edgewater Street, Suite 114
Ottawa, ON K2L 1V8
t: 1.866.556.2967
f: 613.836.9088
WWW.KLOCWORK.COM