■多くの情報システム障害の原因
情報システム障害で話題になった多くの根本原因には、設計段階で配慮していなかった想定外の事象の発生が関係しています。たとえば、運用上ありえないデータが誤って登録されたたために想定外の動作が起こり、さらにソフトウェアの不具合も重なり重大な障害が発生したことがあります。また、家電製品などにおいて、想定外の事象の発生に起因した使用上の不都合が、企業ブランドを傷つける要因になっています。情報システムにおいて開発段階に想定していなかった事象が発生した場合、どのように振舞うかの定義が漏れているため、結果としてどのような動作が起こるか分かりません。さらに、システムテストの評価項目にも展開されていないため、単純なミスすら除去されていない可能性があり、どのような影響が起こるか想定できません。実際には、そのほとんどが問題にならずに済みますが、その中のごく一部が重要な障害に至ります。しかし、想定外の事象が原因で発生した障害の分析結果は、局所的な視点の単純なソフトウェアミスとして処理されてしまい、想定外の事象が取り上げられる機会はほとんどありません。
システムとソフトウェアの品質モデルであるISO/IEC25010には、想定外の事象について、利用時の品質特性であるコンテキストカバレッジ(利用状況網羅性)として定義され、「想定内/想定外の利用状況で有効性、効率性、満足性等を持ち利用できる度合」として示されています。しかし、この品質特性についてあまり具体的に検討されていません。
■想定外の要因と影響
・想定外の事象が発生する要因
超スマート社会では、IT技術が生活の中に浸透しています。そのため、多少の障害が発生してもシステムを安易に全停止することができません。一方、システムは生活の中にあるため、保証されたコンピュータ室の中の環境とは異なり、停電・通信停止・電磁波ノイズによるシステムリセットなどが発生します。また、専任のオペレータがマニュアルに従って操作する状況と異なり、誤運用・誤操作・いたずら操作などが発生します。また、ハードウェアの経年劣化や整備不良による動作特性の変化・誤動作・部分故障なども起こります。
・障害に至るシナリオ
通信技術の進化により、システムは広範囲に張り巡らされたインターネットなどを介して、様々な人・モノ・情報がコミュニケーションを行い相互作用により動作します。このような様々な接続部に想定外の事象が発生します。想定外の事象は、正常から逸脱したシステムの状態を発生させます。このような逸脱した状態は、接続されている他の機器や処理に影響を与え、ドミノ倒し的に影響が連鎖していきます。また、逸脱した状態の特性は、他の異なった事象による逸脱を受けやすい、あるいは与えやすくなる促進要因となります。結果として、一つの逸脱事象では想像できない複合事象による重要な逸脱を起こす場合もあります。このように、一つの逸脱の発生が連鎖や複合要因による逸脱を発生させることにより、利用者に障害を与える状況を発生させます。
・開発とシステム信頼性への影響 開発初期段階では、多くの事象が想定外です。このうち、多くは開発中に気付くことができます。しかし、設計が進んでしまった段階では、基本設計に立ち戻れないため、設計構造を劣化させ局所最適に対応することになります。いわゆる「すり合わせ開発」が蔓延します。最初の理想的な設計構造は、「すり合わせ開発」によりどんどん劣化し信頼性は低下していきます。また、開発中の修正作業による手戻りは、大幅な工数増加も発生させます。さらに発見されなかった想定外の事象の対策が未配慮のまま運用に移行します。そのため、重大な障害リスクを抱えている状態になります。
■設計段階におけるシステム信頼性検証試験
・設計段階におけるシステム信頼性検証試験とは
家電製品などのハードウェアの開発では、量産する前の設計段階において起こり得る異常な環境を想定し、高温・低温・振動・電磁波ノイズといった悪環境試験を行います。また、想定できる異常な運用に対する試験を何度も行い、設計の弱点を把握し、設計を改良して製品化を行います。同様に、生活にかかわる情報システムも具体的な設計構造と振る舞いが設計できた段階で、起こり得る異常環境や運用を想定した検証が必要です。この開発段階では、基本設計自体に修正をかけることが可能です。
一般的には設計レビューが行われ、様々な経験や知見を持った専門家にチェックをしてもらうことが行われます。しかし、これだけではレビューする人の過去の知識の範囲でしか対応できません。従来システムの派生開発であれば十分ですが、新規システムの場合にはあまり指摘を期待できません。これは、レビューする人が、使われる環境、運用、システムの振る舞いをイメージできいないためです。そのため、システム信頼性検証試験は、中心となる設計者自らが、様々な起こり得る異常環境や異常的な操作・運用、ハードウェアの誤動作や部分故障、通信異常、電源系の異常、登録データの誤りなどを含む運用の異常などのシステムをいじめる想定を行い、システムがどのように振舞うかを検証します。
正常な振る舞いに対して逸脱した振る舞いの検討は、その何倍にも膨らみます。そのため、設計書をなぞりながら具体的な振る舞いを検討している状況では、逸脱を検討するために膨大な時間を消費してしまいます。しかし、正常なシステムの振る舞いが頭の中でイメージできていれば、そこから逸脱した振る舞いを想定することは可能です。これは、将棋の棋士が、理論的には何億通りもある先の展開を読むことができているのと同様です。システムがいくら巨大化しても必ず階層的に開発を進めるために、振る舞いがイメージできなくなることはありません。
このような例外事象を考えることは、様々な業務に共通しています。例えば、優秀な親睦会の幹事は、旅行の計画を行う際に、理想的な計画だけでなく、雨が降った場合、道が混んで予約場所に遅れた場合、遅れた人が発生した場合など様々な起こり得る事象を想定して事前に対策を準備しているため、確実に参加者を楽しませることができます。
・逸脱対策の複雑化回避
システムにおけるもっとも大切なことは、生活活動に重大な障害を起こさない安心と安全です。起こり得る障害の影響度が高ければ、システムを故障する側に制御することにより素早く停止することが必要かもしれません。また、起こり得る確率が低くければ、最低限の機能のみ実行する単純で安定したシステム動作に移行させます。仕様や設計を複雑にして設計品質を劣化させるのではなく、基本的な生活を停止しない動作を確実に実行する動作を選択します。一般的に、利用者の期待が思い通りに行かないとき不満が残ります。そのため、エラー発生による状況と可能な動作を利用者が理解でき、できる事とできない事を明確に示せれば、感情的に不満は発生しません。
|
|
|
※分析方法など詳しくは、フォーラムエイトパブリッシング出版の「超スマート社会のためのシステム開発」をご覧ください。
|
|
超スマート社会のためのシステム開発
〜日本のものづくりを足元から見直しませんか〜
・・・第4次産業革命を実現する“コト”の生産技術革命・・・
(システムを扱う経営、企画、開発、品質保証、発注会社/受託会社のために)
■著者 : 三瀬 敏朗
■発行 : 2018年11月
■価格 : \2,800(税別)
■出版 : フォーラムエイトパブリッシング |
約30年間に渡って大手メーカー新規商品、特注品、試作機やマイコンソフトウェア等の受託開発に携わった豊富な経験にもとづいて、これからのスマート社会を支える上で不可欠な組込システム開発の考え方・知識・手法を紹介。システムを扱う経営、企画、開発、品質保証、発注/受託に関わる方は必読の手引き書です。 |
|
|