CPSテクノロジー企業を目指す東芝、ソフトウェアはどのように開発しているのか製造ITニュース(2/3 ページ)

» 2020年10月29日 08時00分 公開
[朴尚洙MONOist]

「プロセス」「アーキテクチャ」「開発環境」は三位一体

 ソフトウェア開発を支える大きな要素となるのが「プロセス」「アーキテクチャ」「開発環境」の3つだ。これらは相互に関連し合っており、あるプロセスに適したアーキテクチャがあれば、アーキテクチャの特性を生かした開発環境などもあり、三位一体の存在になっている。今村氏は「モード1やモード2の使い分けを行うには、これら3つの組み合わせ方が重要になる」と説明する。

ソフトウェア開発を支える3つの要素 ソフトウェア開発を支える3つの要素(クリックで拡大) 出典:TDSL

 まずプロセスについては「ウオーターフォールモデル」と「アジャイルプロセス」が広く知られている。モード1のITシステムや組み込みソフトウェアなどの開発で用いられているウオーターフォールモデルは、成果物やタスクが上流から順番に滝(ウオーターフォール)のように流れてくることが特徴で、システムを完成させるまでの全体が計画されているのでコストやスケジュールを管理しやすい。その一方で、後半で変更が発生するそのインパクトが大きくなるという課題がある。

 モード2のソフトウェア開発に用いられるアジャイルプロセスは、プロダクトバックログという形式で開発の優先度付けがなされ、スプリントという短い期間で開発を行い、順次リリースしていくというスタイルをとる。このため比較的早い段階から実際に動くソフトウェアを扱うことができ、動くものを使って確認も進められるので、発注者であるシステムのオーナーの意図や環境の変化を反映しやすい。ただし、常に変化を許容するので、コストやスケジュールも変動しやすい。

2つのプロセスモデルを適材適所で活用 2つのプロセスモデルを適材適所で活用(クリックで拡大) 出典:TDSL

 CPSのサイバー空間を実現するソフトウェアは、仮説検証の繰り返しが重要なためアジャイルプロセスが向いていることになる。「しかし、東芝グループの関わるサービスが社会を支えるものが多いことを考えると、仮説検証の繰り返しや俊敏性を生かすだけでなく、一定以上の品質レベルも担保する必要がある」(今村氏)。

 そのため、アジャイルプロセスに品質を確保するためのノウハウを組み込んで運用しているという。例えば、CI/CD(Continuous Integration/Continuous Delivery:継続的インティグレーション/継続的デリバリー)ツールの徹底的活用や、プロジェクト立ち上げの準備作業の標準化、スプリント内におけるリリースの第三者による監査などだ。今村氏は「これらの結果として、IoTに関連するサービスを2週間のスパンでリリースできるようになった」と強調する。

 この他、CPSの特徴でもあるさまざまなシステム同士が相互につながるSoS(システム・オブ・システムズ)におけるサービス構築でも取り組みを進めていることを明らかにした。SoSにおいて、1つのシステムが他のシステムを利用する場合、それは相手をサービスとして利用するため、そのサービスの品質レベル(SLA)の設定が重要になる。この場合、システムを開発するだけでなく、SLAを守れるような運用も必要になってくる。TDSLは、SLAを運用するための国際標準であるISO/IEC 20000の認証を得ており、ISO/IEC 20000に基づくサービスレベル定義表を用いて「迷いなく、素早く、漏れなくSLAを検討できるようにしている」(今村氏)という。

SoS(システム・オブ・システムズ)におけるサービス構築で重要なSLAの設定も行いやすくしている SoS(システム・オブ・システムズ)におけるサービス構築で重要なSLAの設定も行いやすくしている(クリックで拡大) 出典:TDSL

開発環境は自社開発+OSSで構築

 アーキテクチャでは、比較的粒度の小さいソフトウェアであるマイクロサービスがAPIによって連携するとともに、柔軟な拡張が行えるコンテナなども利用可能なマイクロサービスアーキテクチャを採用している。TDSLは、マイクロサービスアーキテクチャにおけるソフトウェア開発の生産性を高めるためにアプリケーション基盤と開発ガイドラインを整備した。

アーキテクチャはモノリシックにはせずマイクロサービスを重視 アーキテクチャはモノリシックにはせずマイクロサービスを重視(クリックで拡大) 出典:TDSL

 アプリケーション基盤は、認証やREST APIの処理、ログ・稼働状況の出力といったマイクロサービスに必要な共通機能をまとめたもので、ソフトウェア開発の生産性向上に貢献する。開発ガイドラインでは、適切に行うのが難しいマイクロサービスの分割について、手順や考え方、運用・保守を含めたマネージドサービスに必要なポイントなどについてまとめているという。

TDSLのアプリケーション基盤のイメージ TDSLのアプリケーション基盤のイメージ(クリックで拡大) 出典:TDSL
マイクロサービスの分割の指針と手順運用・保守を含めた総合的なサービス 開発ガイドラインの例。マイクロサービスの分割の指針と手順(左)、運用・保守を含めた総合的なサービス(右)などを対象に整備している(クリックで拡大) 出典:TDSL

 開発環境については、モード1に対応するウオーターフォールモデルとモード2に対応するアジャイルプロセス、それぞれのソフトウェア開発に対応可能なツールを自社開発とOSS(オープンソースソフトウェア)を組み合わせて整備している。要求管理、設計情報管理、文章チェック、ソースコード解析、テスト管理は自社開発となっている。今村氏は「ウオーターフォールモデルでは要求管理、設計情報管理などを行う上流工程で、仕様や設計の品質を確保できる文書化を支援する仕組みを取り入れている。短いスプリントがベースとなるアジャイルプロセスは、マイクロサービス単位で素早くリリースできるようにしている」と述べる。

開発環境は自社開発とOSSを組み合わせて整備 開発環境は自社開発とOSSを組み合わせて整備(クリックで拡大) 出典:TDSL
ウオーターフォールモデルで利用する開発環境アジャイルプロセスで利用する開発環境 ウオーターフォールモデル(左)とアジャイルプロセス(右)で利用する開発環境は異なる(クリックで拡大) 出典:TDSL

Copyright © ITmedia, Inc. All Rights Reserved.