医療機器ソフトウェア:#8 JIS T 2304(IEC 62304)のソフトウェア開発プロセス① ソフトウェア開発計画(2)
こんにちは、西です。
前回はJIS T 2304(IEC 62304)の中核ともいえる5章「ソフトウェア開発プロセス」の要求事項のうち、5.1「ソフトウェア開発計画」アクティビティに含まれ、ソフトウェア安全クラスA/B/Cの全ての場合で最初に実施する「ソフトウェア開発計画」タスクについて触れました。
今回も引き続き5.1「ソフトウェア開発計画」について見ていきます。
ソフトウェア開発計画
5.1.2「ソフトウェア開発計画の継続更新」タスクでは、開発の進捗に応じてソフトウェア開発計画書を適宜更新することが規定されています。
こちらもソフトウェア安全クラスA/B/Cの全ての場合で要求されています。
JIS T 2304(IEC 62304)に基づく医療機器ソフトウェア開発では、ソフトウェア開発計画書に従って各タスクを実施する必要があります。
そのため、要件定義や基本設計をやり直す場合等、当初作成したソフトウェア開発計画書の内容と異なるタスクを実施する必要が生じた場合等に、まずソフトウェア開発計画書の更新をする必要がある、ということです。
5.1.3「ソフトウェア開発計画におけるシステム設計及びシステム開発の引用」タスクでは、
a) ソフトウェア開発のインプットとなるシステム要求事項を、ソフトウェア開発計画書の中で引用すること
b) ソフトウェア開発とシステム開発の整合性を取るための手順を、ソフトウェア開発計画書の中で示すか引用すること
が規定されています。
こちらもソフトウェア安全クラスA/B/Cの全ての場合で要求されています。
5.1.4「ソフトウェア開発規格、方法及びツールの計画」タスクはソフトウェア安全クラスCにのみ要求される事項で、ソフトウェア開発に関連する規格、方法、ツールをソフトウェア開発計画書の中で引用することが規定されています。
5.1.5「ソフトウェア結合及び結合試験計画」タスクでは、ソフトウェアアイテムを結合して、結合時に試験を実施するための計画をソフトウェア開発計画書の中で示すか引用することが規定されています。
こちらはソフトウェア安全クラスB/Cで要求されています。
ここで重要なのは「ソフトウェア結合試験計画」についてもソフトウェア開発計画書の中で記載する必要があるという点です。
ソフトウェアの開発がある程度進んだ時点でそれに基づいて試験計画を立てるのではなく、実際の開発に着手する前のソフトウェア開発計画の時点で試験計画を立てておく必要があるということです。
ところで、JIS T 2304(IEC 62304)の3章「用語及び定義」ではソフトウェアの構造について以下の3つの用語が定義されています。
定義が少しややこしいため、ここでは私なりにその概要を記載します。
・ソフトウェアシステム:開発しようとしているソフトウェアそのもの(=最上位レベルのソフトウェア)
・ソフトウェアユニット:それ以上分解できないソフトウェアシステムの構成要素(=最下位レベルのソフトウェア)
・ソフトウェアアイテム:ソフトウェアシステムの全ての部分集合(=つまりソフトウェアシステムもソフトウェアユニットもソフトウェアアイテムの一種ということになります)
そして3章では同時に「製造業者は,ソフトウェアアイテム及びソフトウェアユニットの粒度(granularity)を提示する責任がある。」とも記載されています。
つまり、「それ以上分解できない」とするソフトウェアユニットをどの粒度と定義するか、またその集合であるソフトウェアアイテムをどの粒度と定義するかは、製造業者に委ねられているのです。
5.1.5「ソフトウェア結合及び結合試験計画」タスクでは、ソフトウェアアイテムの結合試験計画をソフトウェア開発計画書の中で記載することが要求されているため、ソフトウェア開発計画の時点でソフトウェアユニット及びソフトウェアアイテムをどのような粒度のものとするかを想定し定義しておく必要があります。
あまり小さい粒度で詳細に定義しすぎると設計文書やテスト文書、及びその関連を示すトレーサビリティマトリクスを非常に詳細に記載する必要が生じるため、バランスの取れた設計単位の定義をするのがポイントになります。
今回は以上です。
今回はソフトウェア開発計画の4つのタスクについて一息に見ていきましたが、特に
・ソフトウェア開発計画書は開発の進捗に応じて適宜更新し続ける必要があること(5.1.2)
・ソフトウェア開発計画書を最初に作成する時点で、ソフトウェア結合試験計画についても記載する必要があること(5.1.4)
について理解してもらえば良いかと思います。
0コメント