ソフトウェア開発における分析と設計(続き)

先日、ソフトウェア開発における分析と設計について書きましたがその補足を書きます。
私の主観になりますが、分析とは与えられた課題(問題)を解く行為に等しいと考えています。
一方で設計は仮定を置いて意図をつことによって自ら課題(問題)を設定し、そしてその課題(問題)を解くことだと考えています。
課題が具体的で明確である場合にはその対策の効果と影響などの判断基準がはっきりしているので、根の深い問題にはならないことがほとんどだと考えています。
一方でややこしい話になるのが、問題の状況や現象しかわからず課題が明確になっていない状況だと思います。
この場合には要求分析や調査などで、単なる状況や現象ではなく根本的な原因を見つけ出して具体的な課題として要件に取り込むことができれば理想だと思います。
しかし現実には十分な調査を行うことができず、設計者の責任として解決してゆかなければならなくなることがほとんどです。
設計者は何らかの仮定や意図を持ってその問題を解決しなければなりません。
設計者の意図や仮定について、簡単な例としてテレビとビデオが一体となったテレビデオの開発のを題材に説明してみます。

テレビデオオブジェクト指向分析設計を行っています。
最適な構造はどのようなものでしょうか?
仮に現在既にテレビクラスとビデオクラスと言うソフトウェア資産があるとします。
テレビデオクラスはテレビクラスとビデオクラスの双方を継承する多重継承が良いのでしょうか?
それともテレビクラスもビデオクラスも継承せずに、代わりにそれぞれのインスタンスを内部に持つ新しいテレビデオクラスを作るほうが良いのでしょうか?
テレビデオクラスはテレビクラスやビデオクラスと同じインターフェイスを持って同じ操作性を継承させる必要があるでしょうか?
それとも従来とはまったく別の新しいテレビデオとしてのインターフェイスを定義するべきでしょうか?
仮にテレビクラスは自前で開発したものですがビデオクラスは他社から調達したものを使っているとしたら、テレビクラスもビデオクラスも自前で開発した資産である場合と構造は違ったものになるべきでしょうか?
将来はテレビクラスを自前で開発ではなくて他社から調達する可能性は無いのでしょうか?
あるいは現時点ではテレビクラスもビデオクラスもどちらの資産も無く、スクラッチで開発する場合には既存の資産を活用できる場合と何か構造が違ってくるのでしょうか?

こんなに簡単なテレビデオの例でもこれだけ、いやもっといろいろなことが考えられます。
もし分析的発想で答えを出そうと思ったらここに書かれている情報だけでは不十分で、もっと背景にある要求や状況などを明確にしなければ答えを出すことはできないと思います。
しかし仮にこれ以上情報を得ることができないのであれば設計者が何らかの意図を持って仮定を置いて答えをだすしかありません。
私は設計者は明確な意図を持って適切な仮定を置く能力が重要なのだと思っています。
設計者がどのような状況でどのような意図を持つべきかについては多くの書籍にも書かれていますが、一般的にはあまり理解されていないように思います。
例えばデザインパターンが設計に生かされないのはそれぞれのパターンを覚えていても意図が理解されていないからだと思います。
デザインパターンのそれぞれの意図や適用場面、そしてもちろんそのメリットさえ理解していればパターンを覚えていなくても実際に使う場面でカタログを検索すれば良いだけだと思います。
意図やメリットがわからないものは当面は自分は使えないと思って間違いないでしょう。
書籍などで頭でわかったつもりでも実感としては乏しいのかもしれません。
やはり身近で経験豊富な方や一目を置くような先輩などに話を聞くことがもっとも効果的だと思います。
例えば自分の設計を見てもらって、そういった方々が同じ状況で何を考えてどのような設計を行うのかといった設計の意図を説明してもらうことが重要だと思います。
今後、私も機会を見つけて設計者の判断基準の参考になる情報についても紹介していきたいと思います。