[SCだより 110号]

(第28回)

 すべての工学分野での重要な側面は,複数のやり方から試行錯誤的に仕上げていくこと,これらのトレードオフ分析を行うこと,及び最終的に一つを採用することである.要求仕様が承認された後は,いろいろな基本構造とアルゴリズムを詳しく調べなければならない.それが要求仕様書に書かれているという理由で,単純にその基本構造を使いたいとは誰も思わないだろう.結局のところ,それはシステムの外部的な振る舞いの理解し易さを最適化するために選択されたからだ.必要な基本構造は,要求仕様書に含まれている要求項目と一致した上で,設計構造として最適なものである.

 例えば,基本構造は,一般にスループット,応答時間,変更容易性,移植性,相互運用性,安全性,または可用性を最適化しつつ,同時に機能的な要求も満たす,という観点から選択される.これを行う最善の方法は,いろいろなソフトウェア基本構造を列挙し,その各々を目標の観点から分析(またはシミュレート)し,その上で最善のものを選ぶことである.ある設計手法ではその手法固有の基本構造を作り出す.したがって,いろいろな基本構造を作り出す一つの方法は,いろいろは手法を用いることである.

(201の鉄則:原理63<設計の原理=代替案を評価せよ>

― 解  説 ―

 設計,それはソフトウェア・エンジニアにとって,大きな壁ではないでしょうか.建築のように不可欠な構造計算もなければ,承認を得るための建築確認の申請もありません.つまり,ソフトウェアの世界には設計としての明確な「目標」がないのです.どのようなものが書かれなければならないのか,いや.設計としてどういうものを書けば,上手く作業が進むのか分からないため.現実には,確証もないまま作業を進めているのではないでしょうか.

 原理63で言うように,他の分野では,いくつかの設計案の中から,最も要求を上手く満たしている案を選択します.だが,ソフトウェアの世界では,残念ながらそうはなっていません.

設計の質を左右するもの

 設計が上手く出来ない理由の一つは、要求仕様がまともに書かれていないことにあります。つまり、製品として求められている機能が明確に記述されたものがないのです。要求される機能が大ざっぱにしか表現されていない状況では、まともな設計書は書けません。設計者と実装する人が同じであることが、このような状況を許しているということも出来ます。別の人が実装するとすれば、手も足も出ないでしょう。

 建築の世界では、設計と施工が別会社になっていることが殆どです。同じ会社であっても、設計者が直接施工することは稀です。それで作業が出来るのは、ちゃんとした設計書が存在しているからです。

 たしかにソフトウェアの世界では、求められる要求は広範囲ですし、あふれるほどの機能の実現が要求されます。だから、システムによっては、それをまとめていては膨大な量になるでしょう。でも、たとえ膨大であっても、それを明確に記述しないで、どうやって設計作業が出来るのでしょう。そこに要求されている品質的要求を明確にしないで、どうやって「基本構造」を決めることが出来るでしょう。

 システムの振る舞いを記述した要求仕様書が書かれない状態では、設計書も書くことが出来ず、その先の実装作業は、殆どが「勘」と「経験」に頼ることになります。隠れ仕様が工程の終盤に入って湧き出してくるのは、このような状況のときなのです。

アーキテクチャとは

 よく、この世界で「アーキテクチャ」という言葉が使われますが、これは非常に分かりにくい言葉です。ちょうど“モジュール”という言葉も、同じように人によっていろんな場面で使われるため、注意が必要な言葉です。“アーキテクチャ”という言葉は、これよりももっと分かりにくいものです。そのため、何をイメージしてアークテクチャと言っているのか、具体的に確認しなければ、相互の話が食い違ったままになってしまいます。

 その理由は、“アーキテクチャ”という言葉(概念)をしっかり理解しないで、感覚的に使っていることにあります。誰も上手く説明できないなかで、各自が勝手にイメージでとらえているのではないかと思われます。

 この原理63で使われている「基本構造」という概念が、ソフトウェアのアーキテクチャとして通用する概念ですので、エンジニアの皆さんは、此処の記述を何度も読み返してみてください。何度も読んでいると、「アーキテクチャ」というものが、いったい何を扱うものなのかが分かってくるはずです。表現の「形」は一様ではありませんが、そこで扱われるべき要素は、だいたいこのようなものです。

アーキテクチャの決定

 設計という行為は、その初めのところでソフトウェアの基本的構造を決める行為を含んでいます。これは手法やツールによっては、「分析」というステップの終盤で扱っています。このことはすなわち、基本構造の決定が、要求仕様の策定から設計工程への橋渡しの位置にあることを物語っています。

 どうすれば、要求されている機能を上手く実現し、それでいてスループットやレスポンスを満たすことができるか。今回保留した機能を次のバージョンアップで上手く実現するにはどうすればいいか。具体的にそれらの実現方法を示したものが設計書であり、その実現を左右するのが「アーキテクチャ〔基本構造)」の優劣なのです。だから本格的に設計作業に入る前に、幾つかのアーキテクチャを並べて、そのなかでどのアーキテクチャを採用するかを決めることはとても重要なのです。

 ではなぜ、アーキテクチャが複数個存在するのか。それは、要求として求められている項目の中で、どれを優先するかによって複数の案が考えられるのです。機能的要求だけしか想定していない場合は、せいぜい実現の優先順位によって2,3の案が出る程度ですが、非機能的要求を組み入れることで、明らかに幾つかのバリエーションを考えることが出来ます。

 たとえば、変更容易性を優先するか、パフォーマンスを優先するかで、機能モジュールの構成が変わってくることがあります。今回、スケジュールの都合で幾つかの機能の実現を先送りしたとすれば、変更容易性や予定されている機能を追加しても性能が低下しないようなアーキテクチャが選ばれなければなりません。そうでなければ、次のバージョンアップで、アーキテクチャ?が崩れる危険があるわけです。


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


(第110号分)

年間70万匹! 安楽死処分されるペット

▲飼い主に見捨てられて保護されたペットが,この1年で70万匹も安楽死処分されているという。何とも悲惨な話である。かわいさや,珍しさで,衝動的に買ってみたものの,大きくなりすぎて世話しきれなくなったり,最初の世話の仕方を間違えたことで,人との共同生活が上手く出来ずに捨てられてしまうようだ。しかも,ここには鳥類はほとんど含まれていない。

▲この国では,ペット販売業は何の資格も要らない。いくつかの自治体では届け出が義務づけられている程度で,ほとんどは,それも要らない。だから最近はブームに目を付けた悪徳業者も多く,買ったあと1週間で発病して死んでしまうケースも増えているという。売る前から病気なのである。それを注射でもたせていることもあるという。

▲少子化,高齢化社会に入っていくことで,ペットの役割は決して小さくはない。昔の3世代同居の環境では,子供が小さいときに,同居のおじいちゃんやおばあちゃんの「死」に遭遇する機会がある。それは悲しいことではあるが,また命の大切さを考える機会でもある。

▲だが住環境が不十分なこの国の現状では,ペットとの同居はどうしても制限をうける。そのうえ,ペットの医療機関の整備も全く進んでいない。まるで野放し状態である。これからの高齢化社会を迎えることを考えると,ペットがもっと安心して人と接することができる環境が,人にも優しい社会でもあろう。


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


 第93回

根本的に考えよう


 先日、日本の政府は、緊急経済対策ということで23兆円を越える補正予算案をまとめてきた。狙いは、底割れしそうな日本の景気を回復軌道に乗せることだが、発表の後は、市況はいつものように下げる結果となった。これでは問題の先送りであって、目的を達成しないと市場が判断したのである。ヨーロッパの関係者は、かえって日本の抱える問題を深くしてしまうとまで言い切っている。
 

「思考の3原則」というのがある。私のホームページの中にも簡単に紹介しているが、

  長期的に考える

  多面的に考える

  根本的に考える

の三つである。

もちろん、これらは全く独立したものではなく、ある程度の相互の関連性をもっている。

    ・  ・   ・

 今日の日本の経済が遭遇している問題は、構造的、制度的な変革期に対する行動のミスマッチである。戦後、日本の経済を回復させるために選択されてきた政策が、今日の状況の変化のために機能しなくなっているのである。いや、むしろ障害にすらなっている。

    ・  ・   ・

 結論から言えば、明らかに「過剰」なのである。戦後の復興の方法として、この国は輸出に重点を置いてきた。この選択は間違っていない。そして日本の経済は世界の奇跡とまで言われた。だが、90年代に入ってバブルの崩壊のあと、気づいてみたら、生産設備が恐ろしく過剰な状態となった。

    ・  ・   ・

 それまで、この国の製造業は、世界の供給基地としての役割を一手に引き受けてきたが、最近になって、日本以外の国が供給基地として名乗りを挙げる結果となった。その上、アジアに端を発した金融問題で世界経済が収縮したことも、国内の生産設備の過剰な状態を後押しする形となっている。この後表面化するであろう貿易摩擦や、一時的であっても世界経済の収縮に伴って輸出が減れば、国内の製造設備はさらに過剰となる。

    ・  ・   ・

 その前に、アメリカからはさらなる内需の拡大が求められるだろう。相変わらず国民の預貯金率が高いうえに、依然として洪水のごとく製品を輸出している状態は、外国から見れば、預貯金を少し減らして、輸出に振り向けている製品を国内消費すれば問題は解決するように見えるのだろうか。預金率が「〇」に近いアメリカの政策者の目には、なぜ、そんな簡単なことが出来ないのかと思っているのではないか。最近のアメリカ政府関係者の日本の政策に対する苛立ちは尋常ではなく、殆ど怒りに近い。

 だがこの国の現状は、アメリカ政府が要求するように預貯金率を下げられる状態ではない。その最大の理由は、国民が政治を信用できないことにある。自分たちの意見を反映する方法や手段を持っていないのである。政治が、消費者である国民の方を向いていない以上、安易に、預貯金率を下げてまで消費に回すわけには行かないのである。

    ・  ・   ・

「過剰」に関しては、雇用についても同じことが言える。各種の制度が、個々の企業で雇用を守ることを後押しする形で整備されているため、今年の春の時点で、企業内失業者と過剰雇用者を合わせると、600万人近い労働者が「過剰」という数字になる。このあと生産設備の廃棄に取り掛かると、もっと数字が膨れてしまう。

    ・  ・   ・

 こうした「過剰」が、企業の生産性を著しく悪化させているのである。雇用の過剰は、結果的に“ワークシェアリング”の状態となって、そこに居る人たちの役割分担の範囲を狭くし、技術者やマネージャーのスキルの向上を妨げるという副作用までもたらしている。先に居る人を追い抜こうとしないため、組織の能力は、年々低下している。全体が低下しているため、そのことに気づかない。「赤信号、みんなで渡れば怖くない」や「一億総中流」というのも、過剰によるワークシェアリングの現れと見ることが出来る。

    ・  ・   ・

 「より多くの人々が恩恵を受け、競争を通じる社会制度や組織、体制が生き残る」とはハイエクの言葉だが、裏返せば、適切な競争の無い組織は生き残らない、ということである。組織の中でも競争が必要である。それを放棄した組織は、その時点から崩壊の坂道を転がることになる。最初のうちは気づかないだろうが、気づいたときには、誰にも止められない状態になっている可能性がある。

    ・  ・   ・

 企業の経営者も、いつまでも根本問題である「過剰」に手を付けず、揚げ句は「日本の企業は雇用を守る責務がある」と的外れな言い訳をしているようでは、取り返しがつかない結果となるだろう。雇用の守り方が時代に適合していないことに気づいていないのである。これも「過剰」の副作用か。

    ・  ・   ・

 企業は、このあと生き残りをかけて人員のリストラや設備の廃棄に入るだろう。そして競争の仕組みを取り入れることになるだろう。それが根本の問題である以上、そこに手を付けないわけには行かない。その結果として「中流」も消滅する可能性がある。          ■


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

 (第110号分)


「ビジョンのちょっとした秘密を明かしてしまえば、見える者には見えるということだ。そして、ほとんどいつも、事実が明らかになったあとで見える・・・。それが正しいとわかるまで、リーダーがビジョンを持っているとは、まず誰も気づかない」
    (ウォルター・キーチェル三世)

 今日、企業の責任ある立場の人にとって「ビジョン」は、ぎりぎりまでやり残している夏休みの宿題のようなものではないだろうか。上級管理者からは催促されるし、本人もそれが必要なことは分かっている。では「ビジョン」とはどういうものかと尋ねると、殆どの人は言葉を濁す。確信が持てないのである。それでも答えを求めると、「夢」「到達すべき目標」などという言葉が返ってくる。完全に間違いというわけではないが、ちょっと違う。

 問題は、自分がそれを実現したいのかどうかだ。「将来のソフトウェア開発組織は・・・になる」と主張しても、それはビジョンではない。「○○○のような開発組織を作りたい」とならなければビジョンではない。リーダーがビジョンを持っていることによって、そこに居る人たちに「進むべき方向」を示すことができる。ただし、そのビジョンを実現する方法は、リーダーにも最初から全部見えているわけではない。一部は歩きながら考えるしかない。

 ところで、読者の皆さんは、この「○○○」のところに、どのような言葉を入れますか?


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