ますます大規模化、複雑化を遂げるソフトウェア開発。その一方で、開発現場に対する品質やコスト、納期にかかわる要求は高度化するばかりだ。そうした課題を解消するアプローチとして、UMLモデリングをコアとする開発アプローチがあらためて脚光を浴びている。
そうした中、去る2017年2月10日、東京国際フォーラムにおいてUMLモデリングツール「Enterprise Architect」の提供元として知られるスパークスシステムズ ジャパン主催による「Enterprise Architect 事例紹介セミナー」が実施された。ここでは、国立研究開発法人 宇宙航空研究開発機構(JAXA)による基調講演を中心に、当日の模様をレポートしたい。
衛星にかかわる事故・不具合の3割強は、ソフトウェアやその運用の問題に起因
我が国の航空宇宙開発政策を担う研究・開発機関である宇宙航空研究開発機構(JAXA)。政府の宇宙開発利用を技術で支える中核的実施機関と位置付けられ、同分野にかかわる基礎研究から開発・利用に至るまでを一貫して行っている。そうしたJAXAの活動を情報・計算工学技術の研究・開発・利用により支えているのが、同機構の第三研究ユニット(通称:JEDI)内のソフトウェアエンジニアリングチームである。
この日の基調講演には、JAXA 第三研究ユニットのソフトウェアエンジニアリングチームに所属する舟生豊朗氏が登壇。現在、JAXAが進めているモデルベース開発の取り組みについて紹介した。
「今日、JAXAが打ち上げる衛星については、国をはじめとするユーザによって多種多様なコンテンツやプロダクツを得るための手段として活用されていますが、衛星システムが一時的にでも機能を停止するような事故や不具合があると、それらユーザ、ひいては我々の社会にも多大な悪影響が及んでしまうことになります」と舟生氏は語る。
衛星システム自体は、衛星自体に組み込まれるソフトウェア、および地上側で衛星を管制するためのソフトウェアなどで構成されているが、衛星にかかわる事故や不具合の約6割がハードウェアに起因するものであるのに対し、3割強はソフトウェアやその運用にまつわる問題によるものだという。
「衛星は長時間宇宙環境に置かれるため、宇宙線などによる経年劣化が避けられず、ハードウェア障害の発生をゼロにすることはできません。つまり事故や不具合を低減するためにはソフトウェアや運用の品質をいかに高めるかが重要なカギを握ることになるわけです」と舟生氏は説明する。
深く階層化された設計・開発体制が“伝言ゲーム”的あいまいさを生む
そうしたソフトウェアの品質向上に向けた取り組みとして、これまでJAXAでは、事故発生時の原因究明を厳密に行い、そこで問題が明らかになれば、その再発防止のためのチェック項目を試験、審査工程において追加していくという方法で臨んできた。「もちろんそれ自体、必要な取り組みではあるのですが、さらなる品質向上に向けては、不具合を発生させている設計プロセスそのものに目を向け、必要な改善を施して行く必要があると考えました」と舟生氏は言う。
JAXAがそうした課題感を強く抱く背景には、衛星システムに特有の設計・開発体制の問題がある。具体的には、まず国などのユーザから衛星打ち上げの要請を受けたJAXAでは、どんな衛星を作るべきかというプランを策定し、プロジェクトを立ち上げる。そして、要求仕様や開発仕様を固めて、衛星のメーカにRFP等を出して、製造作業を委託するわけだが、メーカ側ではシステムを統括する担当者が、衛星システム、地上システムといったサブシステムへと機能や役割を振り分けたのち、各サブシステムの担当へと設計作業を依頼する。それを受けて、さらにサブシステムの担当者は、サブシステムを構成するコンポーネントの単位で、ソフトウェアの設計・開発に当たる現場へと作業を委託していくことになる。こうしたかたちで、深く階層化された体制によって設計・開発が行われているというのが、衛星システムにおける大きな特徴となっているわけだ。
「このような開発体制にあって、これまで作業委託のベースとなる仕様書を各レイヤの担当者が自然言語で記述してきたわけですが、階層間で“伝言ゲーム”的な情報伝達を繰り返すなかで、工程が下流に行けば行くほど、システムの全体像がぼやけていってしまうことが避けられません。結果、仕様に合致した成果物は上がってくるものの、実のところそれは本当に実現したかったのとは少々異なるものになってしまっているというケースが生じてしまうわけです」と舟生氏は語る。
モデリングによる設計情報の伝達でビューを固定して解釈齟齬を低減
こうした問題を解決するためのアプローチとして、JAXAが現在その導入に向けた試行を進めているのが、モデルベースシステムエンジニアリング(MBSE)である。モデルの記述により、ビューや観点を固定し、解釈齟齬が生じにくいシンプルな設計と仕様伝達を実現しようというのがそのねらいだ。「したがって、我々のMBSEの定義は、あくまでも『システム開発における要求分析や機能設計にかかわるモデル化をベースとした開発』であり、シミュレーションによる制御系設計に用いられるモデルベース開発とは異なります」と舟生氏は説明する。
利用するモデルの代表的なものとしては、運用設計に関してはアクティビティ図、機能設計ではブロック図や状態遷移図などがあげられるが、これらのダイアグラムは自然言語のように1つの文章で複数の要件をまとめて記載するような要約性には乏しいものの、観点を固定して、アクションや機能の連携性を可視化し、読み手による解釈のばらつきを低減させることができる。
一方、運用設計についても、これまでJAXAでは機能設計が確定した時点で行うという方法が一般的だったことから、設計時には具体的な運用手順が明確化されていないという問題を抱えていた。そうすると実際には運用に供されていない機能が実装されてしまっているという問題にも気づきにくく、またある機能の設計変更の影響範囲を適正に把握することも困難になる。
「これに対し、物事にかかわる観点の固定を旨とするモデル開発では、1つの物事を表すために複合的にモデルを使用することが必要。要求・運用・機能の間のリンクを明確に意識しながら、機能設計と運用設計を並行的に進めていくことになるため、そうした問題を解消することができます」と舟生氏は語る。
設計の効率化を実現する工夫を各種支援ツールとして実装
今回の取り組みではこうしたMBSEを実践していくためのツールの1つとして、スパークスシステムズのUMLツール「Enterprise Architect」を試行的に活用している。
たとえば、アクティビティ図から、表形式のユースケースシナリオを自動生成するような仕組みをExcelのマクロで作成し、レビュアーが好みに応じて選択できるようにしていることもそうした工夫の1つだ。また、システムに配置された機能ブロック図において機能間のインタフェース情報をデータフロー的に表示し、運用ごとに利用される機能をシステム全体の流れのなかで把握できるようにするといった工夫も施している。さらには、作成したアクティビティ図と機能ブロック図からアクションと機能要素を抽出し、運用と機能の関連性を可視化するためのマトリクス表を作成するという仕掛けもEnterprise Architectのアドインとして実装した。
「設計者の作業負荷を軽減させることは、設計者の手間を減らし、やる気にさせるというのと同義だと考えます。そしてそれが、MBSEといった新しい手法を現場に円滑に導入させ、最終的なゴールであるソフトウェアの品質向上を実現するうえでの要諦であると捉えています」と舟生氏は強調する。
JAXAにおけるMBSEにかかわる取り組みのステータスだが、取り入れることができるところから取り入れ、また、現場の意見を取り入れながら、ツールやプロセスのさらなるブラッシュアップを図っているところだという。
最後に舟生氏は「自信を持って言えるのは『非常に効果がある』ということ。MBSEが我々のシステム開発に多大な成果をもたらしてくれることを大いに期待しています」と語った。
単なる製品の事例紹介にとどまらず、多様な“気づき”を得る場となった
引き続き行われた2つめの講演では、ベアリングやステアリングなどの自動車関連部品の開発・製造・販売で知られる日本精工株式会社の高橋寛之氏が、自社の目指す「プロダクトライン開発」の実現に向けたモデリングの実践にかかわる概要を紹介した。
日本精工では、複数の自動車メーカに向けて多種多様な製品を同時に提供しているが、従来の“一品一様”のソフトウェア開発では、製品のバリエーションの多さからどうしても開発工数が発散し、ソフトウェアの複雑化も止めることができない状況であるという。
こうした課題の解消に向けた打開策として、同社が取り組みを進めているのが「プロダクトライン開発」への変革だ。コア資産、つまり標準成果物の計画的な再利用に基づく開発により、工数削減、品質向上を目指していこうというのがそのねらいだ。そして、そうした取り組みを支えているのがソフトウェアモデリングの活用であり、そのための支援ツールとしてスパークスシステムズのEnterprise Architectを採用している。
高橋氏の講演では、日本精工の主要製品の1つである電動パワーステアリング(EPS)用のソフトウェア開発を具体例に取り上げ、プロダクトライン開発の実践を見据えて同社がどのような工夫を行っているかが紹介された。具体的には、共通性や可変性といった再利用の視点からソフトウェアアーキテクチャを導出・ブラッシュアップしていく様子や、モデルによってその視点を表現している事例が解説された。
その後、実施された講演では、神奈川県住宅供給公社の笹沼透氏による、氏自身が取り組んできた複数の開発手法の組み合わせ・カスタマイズによる戦略的なソフトウェア開発の解説、またオーストリアLieberLieber社のRoman Bretz氏からは、欧州の特に自動車業界におけるEnterprise Architectの利用状況や、同社が開発したEnterprise Architectのアドインについて紹介が行われた。
今回は「Enterprise Architect 事例紹介セミナー」と題されたイベントではあったが、単にEnterprise Architectという製品に閉じた話題にとどまることなく、参加者にとってはモデリングを活用したソフトウェア設計・開発全般にわたる、多様な“気づき”が得られる場となったはずだ。