高橋(徹)です。
"Kenji Hiranabe <hiranabe@....jp>"さんは書きました:
> > ・「設計って何だか分かってますか?」
> > Software Engineerの為の講座→「設計」できないエンジニア
>
> 読んで見ました.設計は,「まず第一にデータ構造」と言われてい
> るのが,ちょっと ? でした.Wirth のことを言われているので
> しょうか.
XP談義のときにも「データ構造」と言われてましたね。従来の、というか
非オブジェクト指向な設計だと、データフロー図やタスク関連図といった
設計が行われるからでしょうか。これらは処理を実行する(多分関数として
実装される)機能(タスク)と、機能(タスク)間でデータ送受を行うための
データ(バッファ)を決めていきます。
→[データ]→(機能)→[データ]→(機能)
↓
[データ]→(機能)
このときの機能(タスク)間のインタフェースはデータ(バッファ)その
ものなので、データ構造が非常に重要になるのではないかと思います。
データ構造を変更したら、それを読み書きしている機能を全部変更しなく
てはならないからです。しかもデータは伝播されているので、直接読み書き
していなくても変更が波及していく可能性があると思います。
このあたりの設計は構造化設計というものでしょうか? 構造化設計には
詳しくないので間違っていたらご指摘下さい。
オブジェクト指向では、上記のデータはクラス内部に隠蔽されるので、
データ構造の変更に対しては強いですよね。
> 確かに,非機能要件が設計に影響することは多々ありますし,性能
> はデータ構造とアルゴリズムに依ることもあるでしょう.でも,コ
> ンテンポラリなソフトウェアでは,それよりも,うまい概念の切り
> 出しと名前付けの方がよっぽど重要だと思います.
いわゆる抽象化ですよね。抽象化は設計の重要なファクターだと思います。
名前の付け方にはいつも悩んでしまいます。
#「オブジェクトのよい名前の付け方」なんて本が出たら買ってしまうかも
---
TAKAHASHI, Toru