ソフトウェア設計者向け情報

1.オブジェクト指向基礎知識
・・・オブジェクト指向開発:object-oriented development・・・

 著者は、2013年末にてSEを仮に引退した技術者です。1999年よりソフトウェア業界へ転身し、オブジェクト指向開発(OOD)を中心に仕事をしてまいりました。
本稿では、引退を契機に過去の経験知を綴ってまいります。まずは、OODについての概要と参考知識からです。 (諸兄、現職のSE諸氏、ならびに、これからSEを志す皆様のご参考になれば欣快に存じます。)

▼ 本稿の内容情報
1-1.オブジェクト指向開発(OOD)とは何?
 ・・・21世紀現在のシステム開発理論について・・・
1-2.OODの歴史
 ・・・スリーアミーゴと日本のオブジェクト指向開発・・・
1-3.【事例紹介】
 ・・・1999〜2000年に、大規模開発の設計工程をOODで実施しています・・・


1-1.オブジェクト指向開発(OOD)とは何?

 著者は、オブジェクト指向システム開発を最も成功に導く可能性の高い「思想」だと考えています。 蛇足ですが、日本語で開発とはもともと仏教用語で仏性を発生するものだそうです。 すごい訳ですよね:開発は御仏の心にかのうべきものなのでしょうか。
具体的には、多くの著作が出版されており、さらに、毎年新しい研究成果が公表されています。 まだ新しい分野であり、進化を続けている分野だとお考えください。
 オブジェクト指向開発は、現代、世界的な標準開発手法となっています。 原因は、1990年代、世界最大のソフトウェア開発発注元である「DoD(Department of Defense、アメリカ国防総省)」のシステム開発結果に関する追跡調査にあります。 OODの成功率は90%以上、他の多くの手法の成功率が75%程度なのと比較して格段に良い結果を出したことにあります。 ここでの成功率とは、完成時に「追加の修正費用」が必要なく「稼働」したシステムを成功とカウントしています。
2000年代には、DoDの「推奨開発方式」となり、ついで「標準開発方式」となりました。
ただし、日本では、残念ながら、標準とまではなっておりません。 理由については、はっきり解明されている訳ではありませんが、(3月末)決算に合わせてスケジュールを重視する日本の「よき文化」の影響と著者は考えています。
 日本では、実際に、2014年現在でも「ウォーターフォール型」でスケジュールと成果をきっちり管理する開発形態が散見されています。 小規模開発用として考案された開発手法を大規模開発でも使用しているのは、もはや、日本だけかもしれません。

【ご参考】
著者が、オブジェクト指向開発の勉強を始めたころ(1990年代半ば)の参考図書情報です。
今、読み返しても、読むたびに新しい発見があるような・・・ 当初は、英文で読解しましたが、翻訳書が出版されたときは嬉しかったのを覚えています。
(1) Cready Booch(ブーチ)著: object-oriented analysis and design
 オブジェクト指向分析と設計(現在では、オブジェクト指向は一般名詞ですので、最初の論文は、著者の名をとってBooch法と呼ばれています)
(2) Ivar Jacobson(ヤコブソン)著:object-oriented software engineering
 オブジェクト指向ソフトウェア工学
(3) James Rumbaugh(ランボウ)著:object-oriented modeling and design
 オブジェクト指向方法論OMTモデル化と設計
 三人の名前をみわたすとUMLの草案者であるスリーアミーゴだと気がつかれる方もおられるかと思います。 (UMLについても後述いたします。) お三方は、2011年には来日して、講演のなかで「オブジェクト指向とは、手間(費用)と時間がかかる手法だ」と宣言しておられたのが印象的でした。 興味のある方は、IBMのホームページをご参照ください。 著者なりに、御三方の論文からオブジェクト指向とは何を意味(指向)しているかをピックアップしてみます。
*1. ユーザと共に進行する開発形態である。
 システムユーザ、できればエンドユーザ、と常にコミュニケーションをとりつつシステムを作成していきます。
*2. 変化には即時対応する開発形態である。
 システムを作成するための基本事項(出発点、ユーザの希望やニーズ)を要求仕様といいますが、「仕様は常に変化していくものだ」と容認します。 さらに、変化した仕様にたいしては、即座に対応していきます。
*3. 必要のないものは作成しない開発形態である。
 もちろん、必要なものは必ず作成します(たとえ、ユーザに不要と宣言されても)。
著者の独善ですが、いかがなものでしょう。

1-2.OODの歴史

(1).オブジェクト指向の始まり
 スリーアミーゴの登場以前から、今日のOODにつながる技術開発は盛んに研究されてきました。 著者が、初めて今日のクラス図(UML以前、最後の呼び名は静的構造図)をプログラム図として習ったのが1980年ごろでした。 プログラムの記述理論から始まり、構造化理論をへて、近代の開発手法へと研究はすすんできました。 1980年逢代後半には、前項で紹介した3人の論文に啓発された多くの研究成果があつまり、オブジェクト指向というジャンルとして成立したのです。
この後、ランボウがGEからブーチの所属していたレイショナル社(現在はIBMに吸収されています)に移籍し、そこにヤコブソンが合流しました。
これら3人は、こののち、OODの規格化に向けて大きな一歩を踏み出すことになります。 すなわち、2001年にコンピュータ技術者が自ら行った「アジャイル宣言」とそのための「UML」の策定へと続いていきます。 (後述にて、それぞれ解説いたします。)

(2).ユースケース
 多くの技術的発明の中でUC(ユースケース)の発明は、われわれ開発者を含めてコンピュータユーザに大きな変革をもたらしました。
1986年に、ヤコブソン(Ivar Hjalmar Jacobson、1939年生)が、初めて「ユースケース」の視覚化モデリング技法を成文化しました。 著者は、このユースケース技法の発明・発展により、OODは飛躍的な進展をしたと考えています。
ユースケース以前のシステム設計では、 機能一覧とディシジョン・テーブルという「組み合わせ」を記した膨大な表を用いて業務分析をしていました。 (ディシジョン・テーブルは、「決定表」として1986年からJIS規格(JIS X 0125)が定義されています。) 行方向に条件と動作、列方向にルールの組合せを表現し、プログラムの処理条件やポリシーなどをわかりやすく表現するのが目的です。 システムの開発工程の進捗にともない、このテーブルは巨大化していきます。 事象相互の関連(順序)を記述できないので、読み取るために、経験と対象業務の知識が必要不可欠でした。
これに対して、UCは、「アクター」と呼ぶ実行者が「ユースケース」と呼ぶ行為を記述することで、システムの「機能要求」を記述します。 UCの詳細は、UML断章・UML解説にて記述いたしますが、「関連」とよぶ順序が記述できることが利点の一つとしてあげられます。 さらに、UC自体が本質的にOODとは無関係な概念であるため、その用途が限定されることがないのです。 つまり、UCの読み書きにはコンピュータの専門家である必要がないことが、今日の普及の原因だと著者は推測しています。 もっとも、UCも開発の工程にしたがって徐々に詳細化され複雑になっていくのはさけられません。 ただし、UCでは、「システム」の内部構造(実装)は記述しませんので「システムの目標や任務」を理解するには最適のようです。
(当然といえば、当たり前の話ですが・・UCも詳細記述の段階になるとかなり複雑です。)

1-3.【事例紹介】

 日本でも、1999〜2000年に、大規模開発の設計工程をOODで実施しています。 日本最初(と、言われました:著者も計画段階から参画させていただきました)の事例です。
約100人のSEが、半年余りに亘って、金融機関の財務システムをユースケース分析技法で、「分析・設計記述」いたしました。 計画書段階での執筆が10数名で6カ月、検証に3カ月もかかりましたので、かなり大規模システム構築と言ってよいと存じます。 顧客様よりOODで設計したい旨を伺った時には、大規模な成功事例が日本ではまだ無かったので、著者も大変緊張いたしました。 なにより大変だったのは、設計に参加した100名ほどのSEのなかで「OOD」、「UC」の経験者がほんの数名だったことです。 つまり、UCとは何かを学習することが作業のスタートでした。 (当時はすでに、日本語の書籍がありましたので、いくらか楽ではありましたが・・)
 この大規模開発におけるOODの導入成功の実績が「顧客のOODに関する知識と理解」に由来することは、当時は理解されませんでした。 ユーザー参加よりも、有識者を集めてシステムは作成するものとされていた時代でした。 OODの採用により、ユーザの発言が実際に大規模システム構築をリードした記念すべき出来事だと考えられます。 現在に至るまで、著者の知る限りでは、最初にして最高の成功例なのです。
 これ以降は、日本のシステム開発技術者は悪戦苦闘を繰り広げます。 2001年には「アジャイル宣言」が出され、多くのコンピュータ利用国で採択されましたが、日本においては、採択宣言までに10年の歳月を過ごしてしまいました。
 著者は、「ユーザー中心のシステム開発というのは、日本人向きではないのでしょうか?」と危惧しています。 確かに、専門は職人に任せる日本古来の習慣は良いものなのですが・・・

オブジェクト指向基礎知識-以上


お問い合わせについて

> 過誤を発見された方、また、ご不明な点がございましたら、メールにてご連絡下さい。
→メールでのお問い合わせ


▲ページトップに戻る