この規格ページの目次
79
C 0508-7 : 2017 (IEC 61508-7 : 2010)
ムシーケンス図,活動図などのより厳密なモデルを作成するための出発点とすることができる。
使用事例図は,システム及び使用事例アクターを図解的に表現するものであるが,厳密なものではなく,
使用事例のテキストだけが仕様にとって重要となる。
C.3.12.3 活動図
活動図は,順次及び反復の挙動を含むソフトウェア要素(オブジェクト指向設計では,オブジェクトの
ことが多い。)が実行する,意図した行動シーケンスを示す(部分的には,まるでフロー図のように見える
ことがある。)。活動図は,複数の要素の行動を並列的に記述することもでき,要素間の相互作用は図に矢
印で示す。ある活動が先に進む前に他の活動からの一つ又は複数の入力を待たなければならない同期点は,
ペトリネットのノードと同じ記号で表示する。
参考文献
: JIS X 4170 オープン分散処理−統一モデル化言語(UML)1.4.2版注記 対応国際規格 : ISO/IEC 19501:2005,Information technology−Open Distributed Processing−
Unified Modeling Language (UML) ersion 1.4.2
C.4 開発ツール及びプログラミング言語
C.4.1 厳密に型付けしたプログラミング言語
注記 この技術及び手法は,JIS C 0508-3の表A.3(ソフトウェア設計及び開発−支援ツール及びプロ
グラミング言語)で引用されている。
目的 : コンパイラによる高水準のチェックを可能とする言語を用いることによって,フォールトの確率を
下げる。
説明 : 厳密に型付けしたプログラミング言語でコンパイルする場合,例えば,手順の呼出し及び外部デー
タアクセスにおいて,変数型をどのように用いるかについて多くのチェックを行う。前もって定義
した規則に準拠しない使用法の場合,コンパイルは失敗し,エラーメッセージを生成する。
このような言語を用いることによって,通常,ユーザ定義データ型を基本言語データ型(例えば,
整数,実数)から定義することができる。これによって,ユーザ定義データ型は,その後,基本言
語データ型と全く同様に用いることができる。正しい型が用いられていることを確実にするために,
厳しいチェックが課せられる。これらのチェックは,プログラムが別々のコンパイル単位で作成し
た場合でも,プログラム全体にわたって課せられる。これらのチェックによって,プロシジャーの
引数の数及び型が,別々にコンパイルしたソフトウェアモジュールから参照された場合でも一致す
ることを確実にする。
厳密に型付けした言語は,通常,適切にプログラムを構造化するための容易に解析可能な制御構
造(例えば,“if.. then.. else”,“do.. while”など)などの良好なソフトウェアエンジニアリングの実
践規範の他の面も支援する。
厳密に型付けした言語の典型的な例には,Pascal,Ada及びModula 2がある。
参考文献
: Concepts in Programming Languages. J. C. Mitchell. Cambridge University Press, 2003, ISBN 0521780985,9780521780988
――――― [JIS C 0508-7 pdf 81] ―――――
80
C 0508-7 : 2017 (IEC 61508-7 : 2010)
C.4.2 言語サブセット
注記 この技術及び手法は,JIS C 0508-3の表A.3で引用されている。
目的 : プログラミングフォールトが作り込まれる確率を下げ,残留フォールトを検出する確率を高める。
説明 : 例えば,静的解析方法を用いて,エラーを起こしやすい,又は解析することが困難なプログラミン
グ構成要素を見つけ出すために,言語を調査する。その後,これらの構成要素を排除した言語のサ
ブセットを定義する。
参考文献
: Practical Experiences of Safety- and Security-Critical Technologies, P. Amey, A.J. Hilton. Ada User Journal,June, 2004
Safer C: Developing Software for High-integrity and Safety-critical Systems. L. Hatton, McGraw-Hill, 1994,
ISBN 0077076400, 9780077076405
Requirements for programming languages in safety and security software standard. B. A. Wichmann. Computer
Standards and Interfaces. Vol. 14, pp 433-441, 1992
C.4.3 認証したツール及びトランスレータ
注記 この技術及び手法は,JIS C 0508-3の表A.3で引用されている。
目的 : ツールは,ソフトウェア開発の種々のフェーズにおいて開発者を支援するために必要である。可能
な限り,ツールは,出力の正確さに関して,ある程度の信頼水準が仮定できるように認証すること
が望ましい。
説明 : ツールの認証は,一般に,独立機関,多くの場合,国家機関によって,独立して定められた判定基
準,典型的なものとしては国家規格又は国際規格に照らして実施する。理想的には,全ての開発フ
ェーズ(仕様作成,設計,コーディング,テスト及び妥当性確認)において用いるツール,及び構
成管理に用いるツールは認証を受けることが望ましい。
今のところ,コンパイラ(トランスレータ)だけが,正式に認証手順の対象となっている。認証
手順は,認証機関によって定められており,コンパイラ(トランスレータ)をAda及びPascalに関
する国際規格などに照合し検証する。
認証したツール及びトランスレータは,通常,これらの各言語又はプロセス規格に対してだけ認
証されたことを承知しておくことは重要である。これらは通常,全ての面での安全性が認証された
わけではない。
参考文献
: The certification of software tools with respect to software standards, P. Bunyakiati et al. In IEEE InternationalConference on Information Reuse and Integration, IRI 2007, IEEE, 2007, ISBN 1-4244-1500-4
Certified Testing of C Compilers for Embedded Systems. O. Morgan. In: 3rd Institution of Engineering and
Technology Conference on Automotive Electronics. IEEE, 2007, ISBN 978-0-86341-815-0
The Ada Conformity Assessment Test Suite (ACATS), version 2.5, Ada Conformity Assessment Authority,
http://www. ic.org/compilerstesting.html, Apr. 2002
C.4.4 ツール及びトランスレータ : 使用によって信頼性が増すもの
注記 この技術及び手法は,JIS C 0508-3の表A.3で引用されている。
目的 : ソフトウェアパッケージの開発,適合確認及び保全中に起こる可能性があるトランスレータ故障に
――――― [JIS C 0508-7 pdf 82] ―――――
81
C 0508-7 : 2017 (IEC 61508-7 : 2010)
よる困難を回避する。
説明 : トランスレータは,多くの先行プロジェクトにおいて不適切な性能を示す証拠がない場合に用いる。
運用経験がないトランスレータ又は重大な既知のフォールトをもつトランスレータは,ほかに正し
い性能の保証(例えば,C.4.4.1を参照)がない限り,使用を避けることが望ましい。
トランスレータが軽微な不完全さを示している場合,関連言語構成要素を記録し,安全関連プロ
ジェクト遂行中は注意深く避ける。
この作業の別の方法として,この言語の使用を,この言語が一般的に用いられている機能だけに
制限することがある。
不完全なトランスレータの使用に関する推奨事項は,多くのプロジェクトによる経験に基づいて
いる。不完全なトランスレータは,いずれのソフトウェア開発においても,重大な不利益をもたら
すことが示されている。このようなプログラムは,一般に安全関連ソフトウェアの開発を実行不可
能にする。
今のところ,ツール又はトランスレータの全ての部分について正確さを証明する方法は存在しな
いことも知られている。
C.4.4.1 ソースプログラムと実行可能コードとの比較
目的 : PROMイメージを生成するために用いるツールが,PROMイメージにいかなるエラーも組み込んで
いないことをチェックする。
説明 : 構成要素の“オブジェクト”モジュールを得るために,PROMイメージをリバースエンジニアリン
グする。これらの“オブジェクト”モジュールは,リバースエンジニアリングによってアセンブリ
言語ファイルになっている。この,逆に生成したアセンブリ言語ファイルと,PROMイメージを生
成した元の実際のソースファイルとを,適切な技術を用いて比較する。
この技術の主な利点は,PROMイメージを生成するために用いるツール(コンパイラ,リンカな
ど)を,全てのプログラムに対して妥当性確認する必要があるわけではない,ということにある。
この技術では,安全関連系に用いている特定のソースファイルが正しく変換されていることを検証
する。
参考文献
: Demonstrating Equivalence of Source Code and PROM Contents. D. J. Pavey and L. A. Winsborrow. TheComputer Journal Vol. 36, No. 7, 1993
Formal demonstration of equivalence of source code and PROM contents: an industrial example. D. J. Pavey
and L. A. Winsborrow. Mathematics of Dependable Systems, Ed. C. Mitchell and V. Stavridou, Clarendon
Press, 1995, ISBN 0-198534-91-4
Assuring Correctness in a Safety Critical Software Application. L. A. Winsborrow and D. J. Pavey. High
Integrity Systems, Vol. 1, No. 5, pp 453-459, 1996
C.4.5 適切なプログラミング言語
注記 この技術及び手法は,JIS C 0508-3の表A.3で引用されている。
目的 : この規格群の要求事項をできるだけ支援するために,特に,防御的プログラミング,厳密な型付け,
構造化プログラミング,及び場合によってはアサーションを行う。選択するプログラミング言語は,
最小限の労力によって容易に検証可能なコードに変換できることが望ましく,プログラム開発,適
――――― [JIS C 0508-7 pdf 83] ―――――
82
C 0508-7 : 2017 (IEC 61508-7 : 2010)
合確認及び保全が容易にできることが望ましい。
説明 : 言語は,完全かつ曖昧さがないように定義することが望ましい。言語は,プロセッサ及びプラット
フォーム機械指向であるよりも,ユーザ指向又は問題指向であることが望ましい。特殊目的言語よ
りも,広く用いられている言語又はこれらのサブセットの方が望ましい。
既に上記の機能に加え,言語は,次のことを提供することが望ましい。
− ブロック構造
− トランスレート時間検査
− ランタイム型及び配列の境界検査
言語は,次の事項を奨励するものであることが望ましい。
− 小さく,管理可能なソフトウェアモジュールの使用
− 特定のソフトウェアモジュール内のデータへのアクセス制限
− 変数サブレンジの定義
− その他のエラー抑制構成要素
システムの安全動作がリアルタイム制限条件に従う場合,言語は,例外及び割込の取扱いについ
て定めることが望ましい。
言語は,適切なトランスレータ,既存のソフトウェアモジュールの適切なライブラリ,デバッガ,
並びにバージョン管理及び開発の両方のためのツールによって支援することが望ましい。
この規格の発行時点において,オブジェクト指向言語を他の従来の言語に優先させる必要がある
かどうかは定かではない。
したがって,適合確認が困難になるため避けた方がよい機能は,次のとおりである。
− サブルーチン呼出しを除く,無条件ジャンプ
− 再帰
− ポインタ,ヒープ,又はあらゆる型の動的変数若しくはオブジェクト
− ソースコードレベルでの割込処理
− ループ,ブロック又はサブプログラムの,多重入口又は出口
− 暗黙の変数初期化又は宣言
− バリアントレコード及び共有変数
− 手続引数
低水準言語,特にアセンブリ言語は,言語のプロセッサ及びプラットフォーム向けの機械指向の
性質のために問題を抱えている。
望ましい言語特性は,言語の設計及び使用によって,実行が予測できるプログラムとなることで
ある。適切に定義されたプログラミング言語の場合,プログラムの実行が予測できることを確実に
するサブセットがある。多くの静的制約条件は,予測可能な実行を確実にする上で助けになる場合
があるが,このサブセットを静的に決めることは一般にできない。予測可能な実行を確実にするた
めには,一般的に配列インデックスが範囲内であること,及び数値オーバフローが起こらないこと,
などを証明する必要がある。
表C.1に,具体的なプログラミング言語に関する推奨事項を示す。
――――― [JIS C 0508-7 pdf 84] ―――――
83
C 0508-7 : 2017 (IEC 61508-7 : 2010)
表C.1−個々のプログラミング言語に関する推奨事項
項目 プログラミング言語 安全度水準
SIL1 SIL2 SIL3 SIL4
1 ADA HR HR R R
2 サブセット付きADA HR HR HR HR
3 Java NR NR NR NR
4 R
サブセット付きJava(ガベージコレクションを含まない,又はアプリ R NR NR
ケーションコードを長時間停止させないガベージコレクションを含
む。)。オブジェクト指向機能の利用は,附属書Gを参照。
5 PASCAL(注記5参照) HR HR R R
6 サブセット付きPASCAL HR HR HR HR
7 FORTRAN 77 R R R R
8 サブセット付きFORTRAN 77 HR HR HR HR
9 C R − NR NR
10 HR
サブセット及びコーディング標準をもち,静的解析ツールを用いるC HR HR HR
11 C++(オブジェクト指向機能の利用は,附属書Gを参照) R − NR NR
12 サブセット及びコーディング標準をもち,静的解析ツールを用いるHR HR HR HR
C++(オブジェクト指向機能の利用は,附属書Gを参照)
13 アセンブラ R R − −
14 サブセット及びコーディング標準をもつアセンブラ R R R R
15 ラダー図 R R R R
16 言語で定義されたサブセットをもつラダー図 HR HR HR HR
17 機能ブロック線図 R R R R
18 言語で定義されたサブセットをもつ機能ブロック線図 HR HR HR HR
19 構造化テキスト R R R R
20 言語で定義されたサブセットをもつ構造化テキスト HR HR HR HR
21 手順機能チャート R R R R
22 言語で定義されたサブセットをもつ手順機能チャート HR HR HR HR
23 命令一覧表 R − NR NR
24 言語で定義されたサブセットをもつ命令一覧表 HR R R R
注記1 推奨事項HR,R,−及びNRは,JIS C 0508-3の附属書A(技法及び手段の選択の手引書)に説明がある。
注記2 システムソフトウェアには,システムの一部として供給されるオペレーティングシステム,ドライバ,組込
機能及びソフトウェアモジュールが含まれる。このソフトウェアは,一般的に,安全システムベンダーによ
って供給される。言語サブセットは,実装時にフォールトが生じるような複雑な構造を避けるように,注意
深く選択することが望ましい。言語サブセットが正しく使用されているかを確認するために,チェックを実
施することが望ましい。
注記3 アプリケーションソフトウェアは,特定の安全用途のために開発されたソフトウェアである。多くの場合,
このソフトウェアは,エンドユーザ又はアプリケーションを請け負う供給者によって開発される。多数のプ
ログラミング言語が同じ推奨事項をもつ場合,開発者は,業界又は施設内の従業者が共通的に用いているプ
ログラミング言語を一つ選択することが望ましい。言語サブセットは,実装時にフォールトが生じるような
複雑な構造を避けるように,注意深く選択することが望ましい。言語サブセットが正しく使用されているか
を確認するために,チェックを実施することが望ましい。
注記4 上の表に示されていない言語は,除外されているとみなす必要はない。そのような言語であっても,この規
格群に従うことが望ましい。
注記5 フリーパスカルを含めて,パスカル言語の拡張版が幾つか存在する。パスカルに言及している場合は,この
拡張版も含む。
――――― [JIS C 0508-7 pdf 85] ―――――
次のページ PDF 86
JIS C 0508-7:2017の引用国際規格 ISO 一覧
- IEC 61508-7:2010(IDT)
JIS C 0508-7:2017の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.240 : 情報技術(IT)の応用 > 35.240.50 : 産業におけるITの応用
- 25 : 生産工学 > 25.040 : 産業オートメーションシステム > 25.040.40 : 工業計測及び制御
JIS C 0508-7:2017の関連規格と引用規格一覧
- 規格番号
- 規格名称