ソフトウエア設計論

Statement図を書くCASEツールの使い方の紹介と、演習に関する説明。演習は自動販売機の動作を書くというもの。
プログラムでない一般的な事項を図にするというのは、余り好きではない。なぜなら図というものは常に目的を持って書くものであり、一般的な対象に関して書くとすると、どうしても図が煩雑なものになり、曖昧なものにならざるを得ないからだ。
オブジェクト指向設計はよく世界を素直に表現するというが、それは「構造化分析」に比べてという限定子が付くべきであって、誤解を招く表現だと思う。図というものは、問題領域について抽象化を行った上での表現であるべきであり、一般的な対象に対してはオブジェクト指向であっても、どんな指向であっても無理だろう。
たとえば、状態の認識とについても、問題領域を勝手に設定していいのであれば、一つしかないと考えても良い。それを複数にわける必要があるのは、それを問題領域にとって必要なものだからだ。
くどくど書いてみたが、Rubyのまつもとさんもいっているようにオブジェクト指向ってそんなに大げさなものではないし、どうということはない。

オブジェクト指向言語では、オブジェクトの鋳型であるクラスや個々のオブジェクトが持つ機能である「メソッド」を定義できる機能が追加されています。プログラムの構成がクラスやオブジェクトを単位とするだけで、処理そのものは手続き型と大差ありません。

すこしおおざっぱすぎるかもしれないけど、メソッドの中身とかは構造化プログラミングと同じだし、問題ないと思う。ややギャップがあるのは、インスタンスという概念が飲み込めるかどうかだと思う。(Javaでいえば、staticなメソッドと通常のメソッドの違いがわかるようになるかどうか)