レポート

モデリングを核としたプロセス改善でソフトウェア設計・開発の現場が抱える品質・コストにかかわる課題を解消

この記事を読むのに必要な時間:およそ 3 分

ますます大規模化,複雑化を遂げるソフトウェア開発。その一方で,開発現場に対する品質やコスト,納期にかかわる要求は高度化するばかりだ。そうした課題を解消するアプローチとして,UMLモデリングをコアとする開発アプローチがあらためて脚光を浴びている。

そうした中,去る2017年2月10日,東京国際フォーラムにおいてUMLモデリングツール「Enterprise Architect」の提供元として知られるスパークスシステムズ ジャパン主催による「Enterprise Architect 事例紹介セミナー」が実施された。ここでは,国立研究開発法人 宇宙航空研究開発機構(JAXA)による基調講演を中心に,当日の模様をレポートしたい。

基調講演のもよう

基調講演のもよう

衛星にかかわる事故・不具合の3割強は,ソフトウェアやその運用の問題に起因

我が国の航空宇宙開発政策を担う研究・開発機関である宇宙航空研究開発機構(JAXA)⁠政府の宇宙開発利用を技術で支える中核的実施機関と位置付けられ,同分野にかかわる基礎研究から開発・利用に至るまでを一貫して行っている。そうしたJAXAの活動を情報・計算工学技術の研究・開発・利用により支えているのが,同機構の第三研究ユニット(通称:JEDI)内のソフトウェアエンジニアリングチームである。

この日の基調講演には,JAXA 第三研究ユニットのソフトウェアエンジニアリングチームに所属する舟生豊朗氏が登壇。現在,JAXAが進めているモデルベース開発の取り組みについて紹介した。

国立研究開発法人 宇宙航空研究開発機構(JAXA)研究開発部門 第三研究ユニット 舟生(ふにゅう)豊朗氏

国立研究開発法人 宇宙航空研究開発機構(JAXA)研究開発部門 第三研究ユニット 舟生(ふにゅう)豊朗氏

「今日,JAXAが打ち上げる衛星については,国をはじめとするユーザによって多種多様なコンテンツやプロダクツを得るための手段として活用されていますが,衛星システムが一時的にでも機能を停止するような事故や不具合があると,それらユーザ,ひいては我々の社会にも多大な悪影響が及んでしまうことになります」と舟生氏は語る。

衛星システム自体は,衛星自体に組み込まれるソフトウェア,および地上側で衛星を管制するためのソフトウェアなどで構成されているが,衛星にかかわる事故や不具合の約6割がハードウェアに起因するものであるのに対し,3割強はソフトウェアやその運用にまつわる問題によるものだという。

「衛星は長時間宇宙環境に置かれるため,宇宙線などによる経年劣化が避けられず,ハードウェア障害の発生をゼロにすることはできません。つまり事故や不具合を低減するためにはソフトウェアや運用の品質をいかに高めるかが重要なカギを握ることになるわけです」と舟生氏は説明する。

深く階層化された設計・開発体制が“伝言ゲーム”的あいまいさを生む

そうしたソフトウェアの品質向上に向けた取り組みとして,これまでJAXAでは,事故発生時の原因究明を厳密に行い,そこで問題が明らかになれば,その再発防止のためのチェック項目を試験,審査工程において追加していくという方法で臨んできた。⁠もちろんそれ自体,必要な取り組みではあるのですが,さらなる品質向上に向けては,不具合を発生させている設計プロセスそのものに目を向け,必要な改善を施して行く必要があると考えました」と舟生氏は言う。

JAXAがそうした課題感を強く抱く背景には,衛星システムに特有の設計・開発体制の問題がある。具体的には,まず国などのユーザから衛星打ち上げの要請を受けたJAXAでは,どんな衛星を作るべきかというプランを策定し,プロジェクトを立ち上げる。そして,要求仕様や開発仕様を固めて,衛星のメーカにRFP等を出して,製造作業を委託するわけだが,メーカ側ではシステムを統括する担当者が,衛星システム,地上システムといったサブシステムへと機能や役割を振り分けたのち,各サブシステムの担当へと設計作業を依頼する。それを受けて,さらにサブシステムの担当者は,サブシステムを構成するコンポーネントの単位で,ソフトウェアの設計・開発に当たる現場へと作業を委託していくことになる。こうしたかたちで,深く階層化された体制によって設計・開発が行われているというのが,衛星システムにおける大きな特徴となっているわけだ。

「このような開発体制にあって,これまで作業委託のベースとなる仕様書を各レイヤの担当者が自然言語で記述してきたわけですが,階層間で⁠伝言ゲーム⁠的な情報伝達を繰り返すなかで,工程が下流に行けば行くほど,システムの全体像がぼやけていってしまうことが避けられません。結果,仕様に合致した成果物は上がってくるものの,実のところそれは本当に実現したかったのとは少々異なるものになってしまっているというケースが生じてしまうわけです」と舟生氏は語る。

モデリングによる設計情報の伝達でビューを固定して解釈齟齬を低減

こうした問題を解決するためのアプローチとして,JAXAが現在その導入に向けた試行を進めているのが,モデルベースシステムエンジニアリング(MBSE)である。モデルの記述により,ビューや観点を固定し,解釈齟齬が生じにくいシンプルな設計と仕様伝達を実現しようというのがそのねらいだ。⁠したがって,我々のMBSEの定義は,あくまでも『システム開発における要求分析や機能設計にかかわるモデル化をベースとした開発』であり,シミュレーションによる制御系設計に用いられるモデルベース開発とは異なります」と舟生氏は説明する。

利用するモデルの代表的なものとしては,運用設計に関してはアクティビティ図,機能設計ではブロック図や状態遷移図などがあげられるが,これらのダイアグラムは自然言語のように1つの文章で複数の要件をまとめて記載するような要約性には乏しいものの,観点を固定して,アクションや機能の連携性を可視化し,読み手による解釈のばらつきを低減させることができる。

一方,運用設計についても,これまでJAXAでは機能設計が確定した時点で行うという方法が一般的だったことから,設計時には具体的な運用手順が明確化されていないという問題を抱えていた。そうすると実際には運用に供されていない機能が実装されてしまっているという問題にも気づきにくく,またある機能の設計変更の影響範囲を適正に把握することも困難になる。

「これに対し,物事にかかわる観点の固定を旨とするモデル開発では,1つの物事を表すために複合的にモデルを使用することが必要。要求・運用・機能の間のリンクを明確に意識しながら,機能設計と運用設計を並行的に進めていくことになるため,そうした問題を解消することができます」と舟生氏は語る。

コメント

コメントの記入