現状システム(system-as-is)というのは,(新しい)機械を作るときに,(現状)すでにあるシステムである
将来システム(system-to-be)というのは,機械を作り動作するときに,そうあるべきシステムである
(p.5)
現状システムというのは,つねに存在する.コンピュータによる発券システムがなかったとしても,純粋な人間系だけの発券は行われていた.発券システムは,存在しているのである.もちろん,現状システムが機械を伴うこともある.その場合は,機械の進化と見なせるかもしれない.
教科書的な説明としては,現状システムを良く理解した上で,将来システムを検討するということになる.この2つのシステムを考えることが大事である.すなわち,将来システムのみの要求分析と捉えることは違うということになる.
しかし,現状システムの分析は難しい.それは,現状システムが機械化されている場合に,その機械についての説明がないということとは違う(もっと端的には,オブジェクトコードだけが存在してソースコードが消えているというありがちなケース).
(1) 心理的な問題
新しい将来システムを作るのだから,古い現状システムを調べても仕方がないと思うという心理的な障害である.そもそも現状システムは(機械を使っているか否かに関わらず)いま動作しているのだから,要求者の立場からは,よく知っていると思いがちである.
(2) 理由を知ることの難しさ
ある現状システムのふるまいに対して,どうしてかという理由を知ることは難しい.それが,必然か・たまたまかは,ふるまいの観察だけからは,不明である
(3) 機械と人
仮に,前者の場合,それがたまたまだとしても,人はそのふるまいに応じたアクションをとることに,慣れる.例えば,ある生活習慣を変えてみると,なぜいままでそうしていたかが分からなくなる位,以前の習慣の存在理由を思い出せなくなることからもわかる.人間は,慣れるのである.逆にいえば,仮に正しいふるまいを機械がしたとしても,それは習慣の変更を伴う.従って,一般には抵抗が生じる
これらの障害を乗り越えて,要求分析を行うことが求められる.一筋縄ではいかないのだが,要求工学の中間定義では,更に厳しい定義をしている(p. 6)
要求工学は,下記の将来システムの要素を,調べ・評価し・文書化し・整理し・改訂し・状況に適合するという一連の活動である.
このとき,現状システムが持つ問題に対する解決や,新しい技術の取り込みについても考慮する
(nil)
システムというのは,本質的に(コンポーネントの)合成である.しかし,コンポーネントの相互作用から立ち現れてくる大域的な特性を通じて,システムを知ることができる.(p. 4)
とても,興味深いシステムの描き方である.
ちなみに,ここでのコンポーネントというのは,ソフトウェア開発でいうコンポーネントとは異なっている.作ろうとする(或いは作った)ソフトウェア自身は,それ自体で一つのコンポーネントである.他のコンポーネントとしては,以下がある.
- 人々ないしは,特定の組織の方針に従ってある役割を果たす事業単位
- 物理法則に従う特定の規則の下で動作する物理的なデバイス(例:センサー,アクチュエーター,測定器具,通信媒体)
- 他のソフトウェア.レガシーなソフトウェアや利用している商用ソフトウェアで,相互作用する必要があるもの
コンポーネントは,それ自体はブラックボックスである.トートロジー的な説明のようにも思うが,そういうコンポーネントを措定することは実務的に可能である.そうすると,コンポーネントの合成であるシステムは,(ブラックボックスであるコンポーネントの中身は見えないので)唯一観察可能なコンポーネントの相互作用を見るしかない.
例えば,発券システムとは,顧客と駅員の相互作用(会話)があって,機械を通して発券される.乗車券は,改札の機械において,(乗車券・改札の機械の相互作用において)問題なく認識される.
現状システム(system-as-is)を知るというのは,ここからスタートする.
ちなみに,リクエストと全く異なる発券をしてもらったことがある.Luxembourgの駅である.片道でよいというのに,往復の乗車券を提示された.乗車券の料金が日によって変動する欧州ならではかもしれない.往復のいわばセット料金が,片道の正規料金より安かったので,駅員さんが気を利かせてくれた .
ここでの相互作用から,料金の変動があることを,観察を通じて見ることができる.そういうことは,要求として書けば済むのではないかといわれれば,その通りだろう.ただ,それでも抜け落ちる特性はあるかもしれない.抜け落ちてしまったものは,観察を通じてしか見つけることができない.
書けば済むというのは,要求者が全てを整理し把握しているということを前提としている.また,人は(私のように)想像界から決して抜け出ることができない以上,必ず抜け落ちる要素がある.その要求を受け取る側も同じであり,象徴界を具現化した要求書が全てではない.
(nil)
ソフトウェアプロジェクトの目的は,問題を解くための機械を作って,世界をよりよくすることである(p.4).
世界と機械の組となると,当然 M.Jackson の本 では,主要なテーマになっている(ちなみに,原題はソフトウェア要求と仕様).M.Jackson氏の説明は,以下の通りである.
システムとは世界に導入された機械の一つであり,そこでなんらかの役割を果たすことが期待されている.導入された機械と相互に要する世界の中の一部分は,[適用領域]と呼ばれる.
図式すると以下のようになる.
世界と機械
Lamsweerde氏の図式は,世界と機械は基本的に分離しており,その共通領域には仕様があるという構成になっている.世界から機械の記述への変換をテーマにしているので,この図式が分かりやすい.M.Jacksonの絵では,世界に機械が埋め込まれている.ただ,機械は直接世界と結びついていない.適用領域が仲介している.緑の窓口であれば,販売の駅員が介在し,切符を求めてきた人とコミュニケーションしながら機械を操作する.世界の住人としての私が,直接機械と向き合うわけではない.
もっとも,いまではむき出しの機械と出会うことが多いかもしれない.乗車券を買うと言うことはすっかり少なくなった.これは,人間が馴致した(いわば駅員を自らに取り込んだ)結果に過ぎない.適用領域はあくまで存在している.
似たような図式に,J.Lacan氏のいわゆるボロメオの結び目(Anneaux borroméens,ボロメオの環)がある.
ボロメオの結び目
ここでは,少し飛躍して援用すると,想像界とは我々がイメージとして捉えている世界である.それに意味を与えるのが,言葉に代表する象徴界になる.漠然とした思いも,言葉にすることで文節化され表現できた(気分に)なる.現実界は世界のそのものである.それが何かは通常見ることができない.我々がイメージや言葉に囚われるからである.3つの世界があるというより,3つの見方があるということになる.
システムを作るということは,要求者のイメージがあり,それを言葉にする.しかし,現実を直接に見ることができないので,問題が生じることが多い.ちょっと乱暴な説明に思えるが,私としてはすっきりする.
先の2つのモデルとの違いは,ここには人を突き動かす動機がある.中心の「欲望の対象」である.それが何かは別の問題として,何かをもとめてイメージし,言葉にし現実と向き合う.
もう少し,普通の言葉でいえば,どうしてそういう要求が存在するかの「理由」ということになる.それを実際に知ることができるかどうかは不明である.知られたくないかもしれないし,実は本人にも分かっていないかもしれない.
(nil)