>>371
具体例として Copy & Paste 機能を持つエディタを作ることを考えてみる。構造化設計では、機能を中心に
モジュールを細分化していくわけで

1. Copy & Paste 機能
1-1. Copy 機能
1-1-1. Copy 機能では Copy 開始地点と終了地点を指定する機能
1-1-2. 開始地点と終了地点を指定した上で、コピー用のデータを保存しておく機能
1-2 Paste 機能
1-2-1. Paste 機能では Copy 地点を指定する機能
1-2-2. コピー用のデータを取得し、現在位置に挿入する機能

といった感じで設計を進めていく。オブジェクト指向では機能よりも、まずは問題領域を構成する要素に着
目する。

エディタ
 編集対象のファイル
  ファイルそのもの
  編集用バッファ(ファイルを読み込んだバッファ)
  コピー用バッファ
 画面表示
  ファイル内容の一部を表示するウィンドウ
  カーソル

こんな感じで構成要素を洗い出し、その上で各要素が持つべき状態と機能を考える。Copy & Paste 機能を
実装するためには、

 カーソルから現在位置を取得するメソッド(コピー開始、終了、ペースト位置の設定に使う)
 コピー用バッファに値を設定するメソッド、コピー用バッファから値を取得するメソッド
 編集用バッファに文字列を挿入するメソッド

なんかが必要になりそう。またコピー用バッファは複数あったほうが便利かもしれない、また編集用バッファ
とコピー用バッファでは実は共通項目が多いから、汎用のバッファクラスを用意して、それから編集用の機能
を追加した編集用バッファクラスと、コピー用バッファクラスを継承して作れそうだ、なんて考えながら設計し
ていく。

構造化とオブジェクト指向だと、ずいぶんと感じが違うでしょ。