[SCだより 123号]

(第41回)

 製品開発の成功にはユーザー、顧客、営業、開発者、テスト担当、品質保証担当、といった多くの人々が関わりをもっている。また、これらすべての人々は、要求仕様の正確性と完全性に関わりを持っている。ソフトウェア要求仕様書の公式審査は、設計とコーディングに費用を投じる前に実施されなければならない。
 与えられたソフトウェア要求仕様書が自然言語で書かれている場合は、それを審査するのは容易ではない。しかし、これを円滑に行う方法を求めている人には、参考文献にあげた Barry Boehm の助言が役に立つ。もちろん、ソフトウェア要求仕様書の一部がより形式的な言語で書かれていれば〔原理28,54,及び55)、これらの部分は、〔曖昧性が少ないことで)手作業での審査を助け、ある場合には「機械での実行」により、審査を助ける。Pamela Zave のPAISLey("An Insider's Evaluation of PAISley," IEEE Transaction on Software Engineering, 17,3(March 1991,pp 212-215)のような実行可能な要求仕様は、翻訳のための適切なツールの入力として与えることが出来る。こうした翻訳によって、システムに関わっている人たちは、どのようにシステムが実行するかを、ただ書類上で「読む」のではなくて、どのようにシステムが動作するかを「見る」ことができる。
(201の鉄則:原理45<要求分析の原理=要求仕様を審査せよ>)

― 解  説 ―

 再び、要求仕様のテーマを取り上げます。それだけ『201の鉄則』の中に、要求仕様に関する重要で有用な“鉄則”が含まれているということでもあります。
 残念ながら、現実のソフトウェアの開発現場にあって、「要求仕様」のあり方に注意を払い、技術を磨き、必要なコストを投入するということは無いように思われます。要求や仕様に関して何も書かれていないということは稀で、現実には、要求や仕様に関する文書が、何らかの形で作られています。ただ、それが本来の「要求仕様」として機能していないのですが、だからといって、そのことに深く注意が払われていることはもっと稀なのです。

何を書けば良いのか?

 その最大の原因は、要求仕様をどのように書けば良いのか分からない、ということでしょう。要求仕様書の「構成」も重要です。構成によっては、仕様の抽出漏れを未然に防ぐのを容易にしてくれます。では、どう構成すれば良いのか。文献を探しても、それに応えてくれるものを見つけることは困難です。少なくとも私自身は、日本語になっている文献(ソフトウェアの分野で)の中に見出せていません。
 ましてや、要求と要求仕様との関係、あるいは、要求から要求仕様を導出する方法、逆に、要求仕様から本来の要求を探り当てる方法などがあることに気付かせてくれるものは全くと言っていいほど見当たらないのが現状です。
 ソフトウェアの開発に携わる人は、現状の重大問題の多くが、仕様の漏れや勘違いなど、要求と要求仕様に関わっていることには気付いているのです。そのことは、プロジェクトの後の報告にある「バグの原因分析」を見れば分かります。でも、そこに書かれている「対策」の殆どが、「要求仕様に関するレビューを実施する」とか「レビューを強化する」ということで終わっているのです。つまり、関係者は、一旦どうすれば良いのか考えてみるのでしょうが、そこに明らかに方法論があることには気付かないのです。只の「文書」に方法論があるとは思わないのでしょうか。結局、逆の方のドアを開けてしまうのです。
 適切な構成と表現形態を持たない“要求仕様書”をいくらレビューしても、そして、そのような構成や表現形態が間違っていることに気付かない人達が集まってレビューしても、そこから漏れている仕様が発見されることは期待できないのです。

正確性とは?

 原理45で求められている要求仕様の正確性や完全性とは、その字の通り、漏れていないこと、矛盾していないこと、曖昧でなく、別の解釈が入らないこと、と言い換えることができます。これは、「要求仕様は検証性が求められる」ということの裏返しでもあります。別の項で触れたかと思いますが、仕様とは「詳細」であり、その結果「具体的」なものです。具体的であるということは、そのことが実現されていることを確認できるということで、これが検証性に繋がっているわけです。そうなると、別の解釈が入る余地のある表現というのは認められないことになります。この問題は、文章の表現方法の問題でもあり、比較的対応しやすいテーマです。
 これに対して仕様が漏れているということは、検証性以前の問題で、設計者が仕様漏れに気付かない限り、彼自身が検証する機会を設けることもありませんし、別の検証者が、要求仕様書に書かれている内容に基づいてテストデータを作るとすれば、ここでも気付かない可能性があります。
 これを防止するには、要求と要求仕様の違いを体得し、要求仕様書を合理的に構成することが必要です。そこに要求と仕様が入り交じって書かれていても気付かないという状況では、仕様漏れを発見することは困難です。

要求と仕様との違い

 一般に、顧客から出てくるのは「要求」です。“直ぐに経営判断に使えるような指標を出して欲しい”とか、“消費燃料を少なくして欲しい”とか、“操作に迷わないで済むようにして欲しい”という言うのは、すべて「要求」です。その証拠に、このままでは、これらの要求を満たしているかどうかの検証はできません。それは、いろんな解釈が入る余地が残されているからです。時には、このまま100%実現しようとすると、他の要求を妨害する可能性もあります。
 ただ、顧客の話の中で、設計者(インタビューしている人)の理解を助けるために、顧客自身の判断で“具体的”な「仕様」を示すことがあります。これがくせ者なのです。このとき、本来の要求から外れている可能性もあります。でも、顧客の言葉ですので、これを「絶対」と思って取り組んだり、中には、顧客が言ったことなのだから、それを実現しておけば問題ないのだ、あとでクレームが付いても、その時の議事録があるのだから、などと考える人もいるでしょうが、それは大きな間違いです。我々は、「プロ」のはずです。プロが考えて、それは間違っている、要求から外れていると判断すれば、訂正すべきであり、本来の要求を探り当て、適切な仕様を導出すべきなのです。ただ、それが出来るには、要求仕様に付いての知識とノウハウが必要です。

適切な要求には“理由”がある

 「仕様」は「要求」によって導かれます。例えば、電気ポットで「お湯の残量が少なくなったら知らせて欲しい」という要求と、「お湯の残量が見えるようにして欲しい」という要求では、その要求を満たすために導き出される仕様が異なってきます。前者の場合、確認の為に一々蓋を開けるかもしれませんし、そのために火傷のトラブルを引き起こす可能性もあります。要求が適切であるということが、適切な仕様を導き出すのです。
 では、その「要求」が適切であるかどうかをどう判断するか。それは「理由」です。その「要求」が求められる「理由」が何かということです。不適切な要求には、理由が見当たらなかったり、“こじつけの理由”しか付かないものです。

設計手法を活かす

 このように、要求仕様がどのようにまとめられるかが、ソフトウェアの開発にとって最大の問題なのです。これを放置したままでは、いかなる設計手法も、その効果を十分に発揮することはありません。前提としている仕様が漏れたままなのですから。また分析手法と呼ばれるものは、その中に要求の分析というステップを内包しており、その結果として「仕様」が導出されます。その時、要求と要求仕様の違いを体得している人と、そうでない人とでは、そこから生み出される「もの」は大きく違ったものになってくることは想像に難くありません。
 折角手に入れた分析・設計手法を活かすためにも、要求と要求仕様に関する知識とノウハウも手に入れてください。 (次号に続く)

 なお、ここで「審査(Verifying and Validating)」という表現が使われていますが、これは一般のレビューよりも強い検証能力と訂正能力を求めるときに使われます。
     


“SCだより”のページに戻る


(第123号分)

(おやすみ)



“SCだより”のページに戻る


 第106回

社会主義的発想


 ベルリンの壁が崩れてから、すでに10年が過ぎた。時の経つのは早いものである。あのとき、資本主義と社会主義の戦いは終わったと言われたものである。たしかに、その後、ソビエト連邦は分裂し、東欧諸国の政治も大きく変わった。変わったといってもユーゴのように民族紛争に火がついて、政治の混乱から抜けられないでいる国もある。ロシアも、経済が極端に縮小してしまい、今では、東欧の一国と変わらないとまで言われている。また、チェチェンへの進攻という常套手段を使って国内の不満をそらしている。そうするしかないのであろう。70年者間、社会主義の桶の中に漬け置いたものを、インフラの整備が整わないまま、急に資本主義の空気に触れさせても対応のしようがない。世代の交代が進むまで、数10年の時間が必要になるだろう

 日本でも、当時は社会主義国の経済の非効率さが議論された。そこでは失業がない変わりに「競争」がなく、そのことが経済の効率を悪くしているというものである。その時の立場は、我が国は「資本主義に基づいた国である」という立場であった。誰も、そのことを疑う人はいなかった。もっとも、外国からは、アメリカや西欧でいうところの資本主義とは必ずしも同じ質ではないことは指摘されていたし、この国の中でも、一部の人は、「実態は社会主義」であると言ってはばからなかった。だが、一般の人は資本主義の国であると思っているし、そのことに疑いを持っていない
 一方で、来年卒業予定の学生の就職内定率の悪さに日本中が慌てている。かっての不況のように「循環」が主たる原因であれば、経営者に“がまん”を要請することも意味があるが、今の不況は、単なる循環ではない。もちろん、不況がが長引いた分だけ、循環の要素も加わっていることは否定できない。

 それよりも問題なのは、この「非常事態」に文部大臣や労働大臣が、経済界に採用枠を拡大して欲しいと頼み込むという行動である。これは、この国が、国策で雇用を維持してきた証拠である。雇用は、本来は需給関係の中で決まるものであって、大臣が頭を下げたから決まると言うものではない。もちろんそこには、企業側の一方的な都合だけではなく、労働者の能力という“需要を喚起する”要素もからんでくる。だが、この国は、戦後の復興期に揚げた「完全雇用」という思考回路がまだ残っているのだろう。雇用が、政府の意向で決まると言うのは、まさに社会主義国の姿ではないか。

 かってソ連では、ブーツを買って箱を開けてみると、右足用が2つ入っていたとか、踵に付くべきヒールの部分がつま先に付いていた、といったことが少なくなかったという。当時、そのようなニュースを聞いて笑ったものである。それこそ社会主義の弊害と思ったものである。競争がないからそんなことがまかり通るのだと。だが、最近のJCOの臨界事故は、ブーツのトラブルとどこが違うだろうか。もっと身近なところで、2000年の年賀はがきに、記念のスタンプではなく通常のスタンプを押されてしまったり、その上、受付翌日に配達されてしまったりしているが、これもかってのソ連のブーツとどこが違うのだろうか。
 過剰なまでの「結果平等」の発想も気にかかる。「個性を大事に」する教育と言いながら、小学校では子供の個性が押し殺されているではないか。自分の個性に気付かせてもらえなかった「教師」が、目の前の30人の生徒の個性に気付き、それを伸ばすことなど出来物だろうか。結局、「皆を平等に扱う」という言葉を盾に、1つの枠の中に押し込める事になってしまう。

 企業の経営も、自らの経営責任で行動するというよりも、どうしても政府の言動や役人の決定に振り回されている。いや、指示を待っているという方が適切である。それだけ、規制がかかっているということもあるのだろうが、まるで、社会主義国の行政に見えて仕方がない。タクシーも、過剰と判断したら新規の申請を認めないという。これでは、既得権をもったものが「過剰」な状態を作ってしまえば、新規に割り込まれる心配はない。料金の引き下げはどこからも出てこないだろう。
 国の予算も、どんどん大きくなっていく。景気を回復するために行政が事業を行っているようなものだ。当然、そうなると「平等」に扱わなければならないし、非効率も通ってしまう。国民も、安直に政府に「景気回復」を求めている。その姿勢が、ロシアの下院選挙でかっての「良き時代」にあこがれて投票している人達と同じであることに気付いていない。景気を回復させるのは、マイクを向けられたその人の行動にかかっているのに、政府にその役回りを求めている。
 営利を目的とした組織にあっても、ほとんど競争が仕掛けられていない。昨今のリストラも、必ずしも競争が仕掛けられているわけではない。単にどこかで「線」を引いて、そこで分けただけである。だからそこにいる人達は不安でしょうがない。何を競えばいいのか示されないまま、その「線」がいつ、自分をまたぐか分からないからである。
 これらの事が、私には、みな同じ「水源」から湧きだしているようにみえてしようがない。      ■


“SCだより”のページに戻る

 (第123号分)

「法というものを尊重する秩序ある国家ならば、市民の行為における善と悪とを、区別しないということはありえない」
              マキアヴェリ

 こんなことは当たり前だというかもしれません。でも、マキアヴェリはこのあと「善をなした人物が後に悪を行った場合でも、以前の善行は配慮せず、悪行に対して厳格に処罰すべきなのだ」と続けています。さらに「この制度が守られていれば、国家は、自由を謳歌しながらも長い生命を保つことができる。だが反対ならば、衰退は避けられない」と言っています。
 これは何も国家に限ったことではありません。私がマキアヴェリを好んで読むのも、それば国家論であっても、殆どそのまま「組織」に当てはまるからです。
 かっての「功労者」であっても、間違った行為や判断が行われたら、罰を受けなければなりません。たとえかっての自分の上司であっても、それを許すわけには行かないのです。だからこそ、功績のあったときには、その場で褒賞をもって報いる必要があるのです。半年後に間違いを犯すかもしれず、そうなると「相殺」せざるを得ないようなことになりかねません。
 マキアヴェリは、そういう組織は衰退すると言っているのです。


“SCだより”のページに戻る