…刷‖l川……刷‖＝＝l………………lm刷‖ll川刷＝ll11州Ill11‖州＝‖州‖…m‖…川州‖＝‖刷＝ll川＝‖………‖‖＝‖川‖ll……lll川‖‖‖‖‖‖‖‖＝‖‖‖‖＝‖‖‖‖‖‖‖＝＝‖‖＝‖‖‖‖＝州＝l州＝l川‖‖‖‖‖＝川＝‖‖

品質工学に基づく高信頼性ソフトウエア開発のための人的要因分析
高橋 宗雄
l…岬l………l川‖‖＝‖刷Ill川‖州川刑‖m‖…llllll…削…‖‖＝‖‖‖‖‖＝＝‖‖‖‖‖‖‖＝‖‖‖‖＝‖‖‖‖‖‖‖‖‖‖‖‖＝‖‖‖‖‖＝＝‖‖‖‖‖‖‖‖＝‖‖‖‖‖‖‖‖＝‖‖‖‖‖‖‖‖‖‖‖‖‖‖川‖‖…………＝ll………l川l…l…ll川illl

1．はじめに

2．ソフトウェア信頼性とエラー

ソフトウェアの故障は，ソフトウェア開発におけるソフトウェア信頼性は故障の発生についての性質で多種多様な人的要因の複雑な相互関係が根元的な原因あり，その源泉はエラーである．エラーとは，ソフトで発生する．このため，ソフトウェアの信頼性管理でウェア開発の種々の局面で，ソフトウェアにバグを生は，故障の発生を事前に防止することは困難であり，じさせる人間の誤りを意味する．エラーによりソフト故障が発生してからその原因（バグと呼ばれる）を分

ウェアに混入したバグをコンピュータが実行すると，析して解決するという，対症療法的な方法をとっていその結果が故障として観測される．すなわち，エラーるのが現状である．

がバグとして顕在化し，そのバグが直接の原因となっ

しかし，このような方法ではバグそのものは解決でて故障が発生する（図1）．

きても，バグがなぜソフトウェアに混入したかというエラーは，人間の思考過程で発生する誤りであるかバグの原因までは明らかにできないので，ソフトウエら，一過性で外部から観測することは難しい．Rea−

アの信頼性問題の本質は未解決のままである．すなわ

sonはエラーに対して現象と心理学的特性を包含した

ち，バグ混入の主要な原因である人的要因の相互関係定義を与えている［5］．本稿では，Reasonの定義にを明らかにしないかぎり，ソフトウェアの信頼性問題おけるエラーの現象的側面に着目して，エラーによっを根本的に解決することは困難である．て生ずる現象（結果）をエラーとして捉える．現象はこのようなソフトウェアの信頼性問題に応えうる技

一般に観測することが可能であり，ソフトウェア開発術の開発を目的として，最近，品質工学［1］の手法にでは，その多くはバグに相当する．本稿では以後，特より人的要因の相互関係を解明しようとする試みがいに断らないかぎりエラーとバグを区別しないですべてくつか報告されている［2ト［4］．品質工学は，すでにエラ【という．

ハードウェアの世界では多くの実践を通して技術開発の手法としての有効性が確認されており，ソフトウェ

3．人的要因モデル

アの分野でも今後応用が進むものと思われる．特に，ソフトウェアは一般に多数の人間による共同作業で品質工学はソフトウェア工学上の研究課題の一つであ開発される．このため，エラーはソフトウェア開発にるソフトウェアプロセス改善の概念と相性がよく，品おいて人間が行う情報変換・伝達の過程で何らかの原質工学とソフトウェア工学との融合から新しいソフト因によって発生する．この原因となる主要なものが多ウェア信頼性技術の創造が期待される．
本稿では，新しいソフトウェア信頼性技術の創造に向けた基礎的研究の一例として，プログラムのコードレビューにおけるエラーとその原因である人的要因との関係を品質工学の手法を用いて分析した結果について紹介する．

たかはし むねお 桐蔭横浜大学工学部〒225−8502横浜市青葉区鉄町1614
1999年8月号

図1エラー，バグ，故障の関係© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

（5）401

表1エラーの例

＜誘因＞

工 程

＜素因＞

エラーの例
・暖味な要求・不完全な要求・矛盾のある要求

要求分析

凸・機能設計の不足
・機能設計の誤り
設 計
・初期設定誤り（コーディング） ・データ定義誤り＜人間＞ 凸・論理誤り

・パラメータの受渡し誤り
レビュー

・エラー見逃し・エラー指摘誤り・テストケースの誤り
・値域や境界条件の抽出不足
・結果の確言忍誤りテスト
入 力：ニーズ，要求仕様，プログラムなど
出 力：設計仕様，プログラム，テストケースなど
エラー：暖味な要求，プログラムの論理誤りなど
知 識：業務知識，言語知識，OS知識など
能 力：思考力，理解力，分析力 表現力など
資 質：思考の柔軟性，リーダシップ，協調性など
気 質：外向的，内向的，慎重，粘着質など状 況：単調作業，厳しい線表，コスト不足など
環 境：作業環境（騒音など），体調など
方法論：技法，ツール，プロセスなど
管 理：チーム編成，動機付け，役割認諾はど

人的要因

図2 人的要因モテル

種多様な人的要因の相互関係である．
人的要因の相互関係は多重構造になっていることが経験的に知られている．たとえば，エラーの発生は個

図3 実験モデル人の経験や知識が関係しており，さらにそれらは作業環境などによって影響を受ける．このように，人的要ェア開発のあらゆる局面に通用できるいわばメタモデ

因の相互関係は複雑な多重構造をしていると考えられルである．このメタモデルを用いて人的要因の仮説をるが，ここでは，エラーの発生に対する影響が直接的検証するには，エラー，素因および誘因を具体的に設か間接的かに着目して，図2に示すような二つの要因定して実験を行う必要がある．このためのモデルを実から成る2重構造モデルを仮定する［6］．一つは，人験モテリレと呼ぶ．の内部にあって人手による作業にエラーを起こさせる

ソフトウェア開発は，要求分析，設計，コーディン直接の原因となるものである．これを素因と呼ぶ．もグ，レビュー，テストなどの一連の工程に従って行わう一つは，人の外部にあって，素因の影響を強めたりれる．エラーはこれらの工程によって，表1に示すよ弱めたりする働きをするものであり，これを誘因と呼うにその現象が異なる．さらにエラーの現象によってぶ．素因は直接制御することが不可能または困難な要素因および誘因は異なる．それゆえ，どの工程を対象因であり，誘因は制御可能な要因である．素因と誘因にして実験を行うかは，実験モデルを設定する上で重を総称して人的要因と呼ぶ．

要な考察要因である．
ソフトウェア開発で人的要因の影響が大きいと想定

4．品質工学を適用した実験

される工程の一つはレビューである．レビューを対象

4．1実験モデルの設定とした実験は，素因と誘因の具体的なイメージが描き3章で述べた人的要因モデルは，人的要因の相互関やすく，実験モデルの設定が容易である．ここでは，係を素因と誘因でモテル化したものであり，ソフトウ品質工学の手法を導入した第1ステップの実験である

402（6）© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

オペレーションズ・リサーチことを考慮し，コードレビューを対象として，図3にの見逃しが少なくなることが期待できる．チェックリ示すような実験モデルを設定した．

ストも，エラーの指摘に効果のあることが経験的に知4．2 実験の準備られている．

（1）プログラムの選定（5）被験者の選定と実験時間

被験者として，言語コンパイラ，OSなどの実用プ

問題の知識に強く依存するような，あるいは複雑な言語機能を用いなければ記述できないようなプログラ

ログラムの開発経験が3〜10年の人を20名選定した．

ムは，実験の目的から適切ではない．そこで，日本語実験時間は，プログラムの行数がC言語で26行であで記述されたプログラム仕様から一般的な知識だけでり，複雑でないことと，被験者が初心者でないことをプログラムの意味が理解できる「数値の大小比較」の考慮して15分とした．

問題を選定し，C言語で記述した．

4．3 実験データめ収集（2）エラーの埋め込みプログラムに埋め込んだエラーの種類（論理エラーと構文エラーの2水準）をL8直交表の外側に割り付プログラムの論理誤り（論理エラー）とC言語の文法誤り（構文エラー）の2種類のエラーを合計10け，言語能力の高低（A），エラー摘出目標値の有無個埋め込んだ．
（3）素因の選定と測定

表2 実験計画とデータ

コードレビューにおけるエラー，すなわち埋め込んエラー（R）

だエラーの見逃しと指摘誤りに対する直接の原因と想子定される言語能力を素因として選定した．素因の測定

LA B

は，被験者の自己評価に基づいて， 高い ， 低い××e（Rl）の2水準で行った．
（4）誘因の選定と測定
3
4
5
6
7
8

コードレビューの経験に基づいて，エラーの見逃しや指摘誤りへの響度が大きいと想定されるエラー指摘目標値とチェックリストを誘因として選定し，それぞれ あり

論理エラー， なし の2水準で測定した．エラー指摘

1 1 1 1 1 1 1 1
1 11 2 2 2 2
1 2 2 11 2 2
1 2 2 2 2 11
2 1 2 1 2 1 2
2 1 2 2 1 2 1
2 2 1 1 2 2 12 2 1 2 1 1 2

1．0
2．0
0．5
3．0

計

摘数を増大させる効果があると言われており，エラー0

3．7
3．0
3．5

1．5
0．5
2．5
3．3
3．0
2．7
4．0

19．7

17．5

説0

目標値は，従来の経験ではレビューにおけるエラー指（R2）

CL：チェックリスト

表3 分散分析表
要 因

変動 自由度 分散 分散比 純変動 寄与率
S

言語能力 A
目標値 B
CL
AxB
AxC
BxC

C

el

el （el，B，AxB，BxC）
エフー

R

AxR
BxR
CxR
e2
e2 （e2，CxR）
計
eo（el と e2 をプール）e（eoと0 印をプール）

14．440
0．303
5．290
0．203
1．440
0．723
0．023
1．250
0．303
0．203
0．160
0．003
0．543
0．705

f1VF←

73．9＊＊

14．23560．2←

27．0＊＊

5．085

21．5

←

7．4＊

1．235

5．2

←
←

1．50
1．00

Sβ（％）

111111411114
6

23．630 15
1．955 100．196
（2．460）（12）（0．205）

1999年8月号

23．630100．0（3．075）（13．1）（7）403© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

るので，言語能力の高い人に対するチェックリストの有効性は，言語能力の低い人に対するそれよりも大きいといえる（図4）．
（4）言語能力とチェックリストが論理エラーおよび構文エラーの指摘に与える影響度は，それぞれの寄与率から60％および22％程度である．

5．おわりにソフトウェアの信頼性問題に根本的に応えるために
A2Aユ

図4 言語能力とCLとの交互作用

は，信頼性の源泉であるエラーの発生原因を明らかにすることが必要である．このための新しいアプローチの一例として，プログラムのコードレビューにおけるエラーと，これの発生に影響を与える人的要因との関（B）およびチェックリストの有無（C）の3因子をいず係を，品質工学の手法により分析した基礎的研究の結れも2水準としてL8直交表に割り付けて実験を行い，果を示した．この研究の目的は，エラーがどのようなデータを収集した（表2）．

人的要因のどのような相互関係から発生するかを明ら

4．4 分析結果かにして，ソフトウェアプロセスを改善することにあA，B，Cの3因子について，直交表の外側に割りる．この意味で，研究から得られた知見は，最終的に付けられたエラー（R）を論理エラー（Rl）と構文エラー

はソフトウェア信頼性管理のガイドラインや，ソフト（R2）の2水準にとって，分散分析を実施した．また，ウェア技術者の教育・訓練カリキュラムなどに反映さ3因子間の交互作用AXB，AXC，BXCの効果につれることになる．

いても分析した（表3）．分析の結果から以下のよう

品質工学の適用例はハードウェア以外の分野では未なことが推察される．

だ少ないが，今後ハードウェア以外の分野でも適用が（1）言語能力は論理エラーおよび構文エラーの指摘に進むことを期待したい．本稿がその第1歩となれば幸高度に有意な影響を与える．すなわち，言語の能力がいである．

低い人ほどエラーを指摘できないか，あるいは指摘誤参考文献りを起こしやすいといえる．しかし，Rとの交互作用はないので，論理エラーと構文エラーに対する効果は［1］田口玄一，吉沢正孝， 品質工学講座1−開発・設計段
階の品質工学同じといえる．
（2）エラー指摘目標値は論理エラーおよび構文エラーの指摘に有意な影響を与えるとはいえない．目標値はエラーの指摘に効果があると経験的には言われているが，実験の結果はそうならなかった．このような結果になった一つの原因は，レビュー時間が関係しているのではないかと推察される．実験では，レビュー時間が15分と短かったので，目標値を達成しようとするエラー指摘の努力が十分ではなかったのではないかと，日本規格協会，1988．

［2］高橋完堆，高田圭，山内成志，矢野宏， ソフトウェア誤り検出能力の評価に関する基礎的研究 ，品質工蛍Vol．
4，No．3，pp．45−53，1996．

［3］高橋宗雄， ソフトウェアの信頼性に影響を及ぼす人的要因の解明，JISA会艶No．45，Pp．71−80，1997．

［4］山田茂，影山高章，木村光宏，高橋宗雄， コードレビュ
ーにおける人的エラーと人的要因に関する考察，信学論

A，Vol．J81−A，No．9，pp．1238M1246，1998，［5］Reason，J．， HumanError， CambridgeUniversityPress，1990．『林善男監訳：ヒューマンエラー，海文堂出考えられる．
（3）チェックリストは，論理エラーおよび構文エラーの指摘に有意な影響を与える．チェックリストも言語能力の場合と同様，Rとの交互作用はないので，論理エラーと構文エラーに対する効果は同じである．しか版，1994．』［6］高橋宗雄，古宮誠一，三宅武司，の提案とその通用実験例

人的要因メタモデル，第47回情事艮処理学会全国大会講演論文集，7J−2，1993．

し，言語能力とチェックリストとの間に交互作用があ404（8）© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

オペレーションズ・リサーチ