今週はデンマークのロスキレで開かれていた EuroSPI(Software Process Improvement & Inovation)2011 に出席していました.xDTSの新しい版のベースになっている Glimmering Interface 概念の発表が目的でした.
ロスキレはコペンハーゲンからは列車で20分ほどの郊外ですが,かつてはデンマーク王国の首都が置かれていた由緒正しい町です.この会議では,プロセスにまつわる様々な話題があり,たぶん他にはない会議になっていると思います(昼食の時に,プロセスの会議は日本にもあるだろうに,どうして来るのかと聞かれました.ヨーロッパのSPIの会議ですから,不思議で仕方がないのでしょう.いろいろ話したのですが,ヨーロッパでも変わった会議として認識されているとのことでしたが).
初日は,機能安全のワークショップに参加しました.興味深い話題が沢山あり,いろんなことを考えさせられました.
さて,その中で一瞬だけ26262のItemは得体が知れないという話になりました.得体の知れなさには,共感するので,少し考えてみたいと思います.
まずは,DISにおける定義です(ISO/DIS 26262-1).
1.69 item
system or array of systems or a function to which ISO 26262 is applied
システムないしはシステムの集合体ないしは機能であり,26262が適用されるもの
ガイドラインを見ると,図にして示されます(8-4.2 Item, system, element, component, hardware part, and software unit)
ER風の図を見ると,上位にシステムがあって(これは入れ子でも可),その下位にコンポーネントがある(これも入れ子可能),更に,それは部品/ユニットに分割される.アイテムに対する下位概念は,合わせてエレメントと呼ばれ,規格中では,アイテムとエレメントが対置されています.分かりづらいのですが,アイテムがシステムの集合とすれば,エレメントはそれ以下ですから,システムやコンポーネント及び部品/ユニットを含むということになります.もし,アイテムが単一のシステムとすれば,エレメントは,それ以下のコンポーネントや部品/ユニットということになります.丁寧に説明すればするほどアイテムが分かりづらくなります.とりあえず,横においておくという手もあるのですが,例えば,ASILはアイテム毎に振ることになるので,適当にお茶を濁すというわけにはいきません.
先の定義は,少し説明不足に思います.もうすぐ正式発行なので,改善されていることを期待して,少し昔の記憶を辿ってみることにします.
***
ソフトウェアのライフサイクルやプロセスを,私は前職でMIL-std-1679A(の日本語訳)で初めて学びました.まだ,DOD規格にあがっていない米海軍の規格だった頃のものです.おそろしいもので,私自身はこの規格の刷り込みが入っています.そうはいっても,この規格は,いまではすっかり obsolete の規格で,その後 DOD-std-2167Aに置き換わります(ちなみに,この規格も現役ではなく別の規格に更に置き換わっています).1679Aはとても分かりやすかったのですが,2167Aに置き換わった時に,少しうろたえました.それまでになかった(ソフトウェアに限っても)CSCIやCSCという新しい鍵となる概念がでてきました.前者は,Computer Software Configuration Item,後者は,Computer Software Component です.CSCIは,CSCに分割されます.機制としては,アイテムが上位概念で,コンポーネントはそれを分割した単位になります.最初に2167Aに移行したときのわかりにくさを後で考えると,全体が構成管理概念に紐付いていることだと思います.CSCIを日本語に訳すと,コンピューターソフトウェア構成品目ですから,構成管理概念がベースだと思えば,きわめて分かりやすい単位になります.いわゆる構成管理表に記載される項目ということですから.何をCSCIとするかも,2167Aが米軍の調達基準である以上,契約者同士の合意の上で定まるとすることができます.その意味では,明瞭な基準となっているように思います.
一方で,26262はスタートラインとしては不特定多数の顧客になるので(以降では,OEM-Supplier関係があるにしても),もう少し厳密な定義が必要になるのではと思います.
***
さて,デンマークといえば,LEGOが有名です.このように相互に依存性のないビルディングブロックからソフトウェアが構成されているとすれば,きっと上記で考えたような悩みは生まれないという気がします.
(nil)