読者です 読者をやめる 読者になる 読者になる

mhlyc -presentation

ソフトウェアテスト、品質に関わること、たまに変なことを書いていくブログです。

SQuBOK V2をクオリアちゃん(仮名)と読んでいこう 第3話

ソフトウェア品質 SQ1.1 品質の概念

前回までのあらすじ

mhlyc.hatenablog.com

 

続き書きます。

 

登場人物紹介

※絵は書けないので、キャラの姿は想像で補ってください。

伊敷 孝男(いしき たかお)

意識高い系。口癖は「まあ、俺のモットーは"高品質"だから」。人の話は一応聞く。

 

佐藤 大輔(さとう だいすけ)

伊敷の同僚。いつも伊敷の尻拭いをやらされている。すぐ怒る。

 

クオリアちゃん

突如、伊敷の部署に配属された中途採用の女性。本名は不明だが「クオリア」と名乗っている。見た目は女子大学生。品質の話になると語りだす。ツンデレ

 

第3話 「信頼性とセーフティ」

 

伊敷と佐藤は、自動ドアの制御ソフトウェアの開発プロジェクトにアサインされた。

今は基本設計の工程で、自席で設計方針を議論している。

「この自動ドアの開閉速度って、速度これでいいんだったっけ?」

佐藤が伊敷が作成した仕様の内容を確認する。

「うん。自動ドアの種類ごとにお客さん側で決めてるらしいんだけど、なんでも現場で保守とかやってるエンジニアの人に確認してもらって速度決めてるんだって」

「そうか。お客さんの要望通りならいいのかな…」

そこで佐藤は、仕様書の記述に違和感を覚えた。

「常に一定の速度で開閉すること…」

「どうかした?」

「いや、ソフトウェアの仕様としてはさ、常に決まった速度で開閉するのが正しい動作なわけじゃん?」

「そりゃあ…そうだな」

「でも、自動ドアってさ、時々人が挟まれたりするじゃんか」

「あー、たまにあるよな」

「そういう時、閉まる速さがあまりにも速いと危ないと思うんだよね。それでもし怪我とかしちゃったら大変だし」

「確かに…」

伊敷は頷いた。

「閉まる速さがたとえ一定であったとしても、それは必ずしも安全であることとイコールではないと思うんだよ。だから、実地検証の際には速さが一定であることのほかに、安全な速さで閉まるかどうかを確認する必要があるんじゃないかなと思って」

「良い視点ね」

「あっ、クオリアちゃん」

会議を終えたクオリアちゃんが二人のところに歩いてきた。

「二人とも、信頼性とセーフティって言葉は知ってる?」

「信頼性は知ってるけど、セーフティはあんまり聞いた事ないかも…」

「セーフティはまあ、簡単に言えば安全性、みたいなものね。安全性と信頼性って聞くと近いイメージかもしれないけど、異なる性質だと理解すべきよ」

「どんな風に違うもんなんだ?」

伊敷がクオリアちゃんに尋ねた。

「ちょうど今やってる自動ドアの例で言うなら、この自動ドアを制御するソフトウェアの信頼性っていうのは、常に決められた速さで閉まることといえるわ。でもさっき佐藤くんが言っていたように、もしこの閉まる速さが怪我をしてしまうほど速い場合、むしろ決まった速さよりも遅く閉まる方が怪我をする確率は低くなる。この時、ソフトウェアの信頼性は下がっているけれど、反対にセーフティは向上しているといえるわ」

「なるほど…」

「このように、安全性が必要なシステムの開発に必要なのは、単に信頼性を保証することではなくて、信頼性が高まることによってセーフティも高まることを保証することなの。そうでないと、しっかりコストをかけて信頼性を保証したのにも関わらず事故が発生してしまうから。」

「信頼性を上げたからといって、セーフティも上がるとは限らないんだね」

「その通りよ。でも勘違いしてはいけないのが、あくまでセーフティ向上の基本は信頼性の向上だということ。信頼性を高めることによって、本質安全を達成することができるの」

「本質安全?」

伊敷が「その単語、知らない」という表情で問いかけた。

「そうね…ちょっと話が逸れるけど、説明しておくわ。セーフティには本質安全と機能安全の二つがあるの。セーフティ確保にはこれら二つの両方が必要になる」

「…ちょっと説明しようとすると長くなるんだけど、例えば工場のプラント機器でいえば、動力源の近くに人間が近づけないようにする仕組みは本質安全。人間が近づいたことを検知してシステムを停止する、とかが機能安全。

ハザード *1 が発生するのを抑止するのが本質安全で、ハザードが発生しても危害 *2 に至らないようにする性質が機能安全ね」

「ハザード…」

「ハザードはググれ!あんまりここに尺使ってると全体の話が間延びしちゃうのよ!」

クオリアちゃんが怒った。

「何の話だよ… ていうか、マジでよくわからん」

伊敷が抗議した。

「えーと… 簡単に言えば、ドアに挟まれて怪我するみたいな危ない事象が、そもそも起きないようにするのが本質安全で、もしそういうことが起きてもその危険な度合いを小さくするのが機能安全よ。だいたいそんな理解でいいと思うわ」

「なんとなくわかったような…」

伊敷は半分くらい納得した様子だ。

「ひとまず話を戻すわね。信頼性を向上させることでシステムの動作が安定するわけだから、システムが誤った動作をして危険な事象が発生する可能性は低くなる。すなわち、本質安全が向上するというわけ。そういう意味で、信頼性の向上はセーフティ確保の基本だといえるのよ。機能安全を達成するための機能を埋め込むことももちろん重要だけれど、それで本質安全が損なわれてしまったら本末転倒なの」

クオリアちゃん、なんか今日の話難しいよ」

「確かに難しいかも…」

伊敷と佐藤はなんだかモヤモヤした様子だ。 

 「そうね…ごめんなさい。 でも一番大事なのは、セーフティを確保する技術よりも、むしろセーフティを最優先する組織文化なの。もちろん技術やプロセス、マネジメントも大事よ。けれど、何よりも個々の技術者が『この製品は本当に安全か?』と問い続けることが必要なのよ。佐藤くんの指摘したことはその良い例ね。個人個人が、各々の担当分野における役割をしっかりと認識して、プロジェクトで一丸となってセーフティの高いシステムを作っていくという意識が本当に大切なの。私はプロジェクトは違うけれど、応援しているわ。頑張ってね」

そう言うと、クオリアちゃんは自席に戻っていった。

「なるほど…難しいけど、勉強するよ!ありがとうクオリアちゃん!」

 

-第4話に続く

 

参考文献: 「ソフトウェア品質知識体系ガイド(第2版) SQuBOK Guide V2」, 2014

 

あとがき

今最大の悩みは、

クオリアちゃんっていうキャラクター、すでにいるっぽい。

名前今さら変えるのもなあ…っていうか名前考えるのムズイな…

 あとセーフティの話は前提知識がいっぱいあって書くの大変でした・・・

教科書の丸写しになったら意味ないからなぁ…

*1:ハザードとは、危害を発生させる原因である。

*2:危害とは、システムによって人間の生命が損なわれたり、身体に害が及ぼされたり、社会に広範な悪影響が与えられることを指す。