*begin*back*foward*end*contents

はじめに

Dropはオブジェクト指向方法論として作成したドキュメントです。

作者としては、このドキュメントをオブジェクト指向によるソフトウェア作りに携わる方々に自由に使ってもらえたらと考えています。

オブジェクト指向言語と共にオブジェクト指向の概念を学びたい方、オブジェクト指向表記法を学びたい方、オブジェクト指向方法論Dropを学びたい方、 Dropを実際のプロジェクトで使いたい、など、それぞれ目的に併せてDropを読めるようにDrop ver2では改善を加えました。

目的別・Dropの読み進め方

オブジェクト指向言語と共にオブジェクト指向の概念を学びたい

Dropには、オブジェクト指向開発で最大の効果を得るための手法が書かれています。ただし、プログラミングについては一切書かれておりません。ビギナーの読者は、プログラム言語の書籍と併せて、Dropのコンセプト編を読み進めるとよいでしょう。

オブジェクト指向の概念を学びたい方には、「コンセプト編」がお勧めです。

第1章では、オブジェクト指向技術で使われている用語を整理しています。ここにはDropの独自の考えが若干含まれていますが、それらはオブジェクト指向によるソフトウェア開発に普遍的なものを取り上げています。

第3章(映画撮影のように)は、ソフトウェア開発を映画撮影になぞらえて説明するものです。ここでは、オブジェクト指向によるソフトウェア開発を行っていく上での開発者の神髄を表しています。きっと読者のソフトウェア開発に対する見方・考え方に、よい影響を与えるでしょう。

第2章第4章は、オブジェクト指向の現状の問題に対するDropのアプローチを紹介したものです。これらの章については、既存のオブジェクト指向開発の問題を知るのに役立つでしょう。

オブジェクト指向・モデル表記法を学びたい

Dropの表記法は、UMLをベースにしたものです。「開発モデル編」ではUMLの解説にもなるように、Drop拡張部分を明確にして、どのような時に使われるかという解説を含めています。特にUMLベースの表記は、「第16章  静的構造モデル」、「第17章  動的構造モデル」、「第19章  システム構造モデル」です。これらの章は、「UMLを習得したい」という方にも参考となるでしょう。

オブジェクト指向方法論Dropを学び、実際のプロジェクトに使いたい

オブジェクト指向Dropを学びたい読者は、ひととおり全編読んでください。オブジェクト指向経験者でも「コンセプト編」は重要です。この編は、ビギナー向けに書かれていますが、Dropの思想がよく分かるようにまとめています。

Drop v2.0を採用するためには、まず、チームの参加者がDropの思想を学ばなければなりません。Dropでは、オブジェクト指向技術で開発するために、個人の意識改革(育成)から始めるものです。そして読者とチーム(組織)を少しずつDropの提供するオブジェクト指向パラダイムに移行させるように働きかけていきます。これには、Dropリエンジニアリングチームが必要となるでしょう。つまり、Drop採用の最初のステップは、Dropを採用しようと思った人がDropを理解して、同じようにDropに共感できる人を徐々に集めていき、Dropリエンジニアリングチームを形成することです。

また、リエンジニアリングチームを形成すると同時にオブジェクト指向開発のスキルを持った集団を徐々に育てていくよう後押しすることも忘れてはなりません。これにはとても時間がかかるかもしれませんが、むしろ急激なパラダイムシフトは危険を伴うものですから焦りは禁物です。組織作りばかり焦っても、肝心の人材作りが疎かではいけません。焦るべきは人材の採掘と育成です。実際には組織作りと人材作りが両立していることが理想です。

このようなチームマネジメントについては、第8章に書かれています。

筆者からのメッセージ

Dropは筆者のオブジェクト指向開発に対する打ち込み姿勢を素直にまとめたものです。Dropを読み進めると、みなさんの自身の頭の中に築き挙げたオブジェクト指向の考えに、Dropの思想がダイレクトに接近して、共感を生み出すことになるでしょう。そうなれば、Dropが、みなさんのオブジェクト指向に対する取り組みを、後押ししてくれるに違いありません。また、みなさんのオブジェクト指向の基礎概念の理解に役立ち、オブジェクト指向による開発の方法を身につけることをお手伝いできると思っております。

今後も、Dropは成長し続けますが、どうか、みなさんの声を筆者へ送ってください。みなさんと共にDropを成長させることができればと考えております。

1999年2月10日

萩本順三


*begin*back*foward*end*contents

この記事のトップへ