« American kitchen, again. | トップページ | Focus on people »

2007年4月10日 (火)

授業 System Architecture (Vol.9)

20070410_1 これまではシンプルなシステムを例に話をしてきたけれども、そのシンプルなシステムをどこまで組み合わせていけば複雑なシステムになるのだろうか。そもそも複雑さという非常に抽象的なものはどうやって計るのがいいのだろうか。
例えば次の数を数えてみると厳密には定義できるかもしれない。

・何種類の部品から構成されているか
・何個の部品から構成されているか
・部品間は何種類のインターフェース(形状、力、電気、熱など)を持っているか。
・部品間のインターフェースはいくつか

しかしそもそもが複雑なシステムなのに、その数を数えるだけでも大変だし厳密に数えたところでそれほどのメリットが有るとは思えない。なので拍子抜けかもしれないけれども、おおよその規模を把握して相対的に決めるのが良いようだ。

だからといって複雑さを気にしなくて良いわけではない。システムエンジニアは常に複雑さを上手く裁いてシステムをわかりやすく示していかなければならない。その方法の例としては大きく分けて次のアプローチがある。
抽象化する
 複数の要素を一つに纏めてしまえば構成はぐっと簡単になる。
分解する
 大きな要素を分割して内部構成とその動作を明確化する
階層化する
 物理構成や機能のレベルをそろえて段階的に物事をとらえる
繰り返しを見つける
 入れ子状態になっていたり、同様の要素が並んでいたり繰り返されるパターンを見つける。

実際の設計では、Whole Product Systemは何か、Use Contextはどうなっているかなどを考えながら、これらを上手に組み合わせて、自分が対象としているシステムを分解すると共に旨く抽象化することが求められる。おおよそシステム設計の段階では対象とするシステムの上位1階層、下位2階層について考えるのが良いようだ。

最も、如何にして求められる機能と性能をシンプルなシステムで実現するか、これを忘れては元も子もないけれども。

« American kitchen, again. | トップページ | Focus on people »

コメント

>いまさん
上位、下位、同位の考え方はその通りだと思います。物理的、機能的なグループを各レベルで作ることに他なりませんから。

各視点から纏めてみるのも非常に有効だと思います。各視点間の干渉(電気と熱など)には要注意ですが。

・抽象化する : 上位への視点
・分解する : 下位への視点
・階層化する : 同位への視点

といった感じでしょうか。

システムをわかりやすく示す方法としては、目的にあわせて様々な視点からとらえてみるということも効果的ですね。機能にもとづく視点が多いでしょうか。
車を例にとると、電気的にみた配線図も、駆動系に関連するものを書いた図も、同じ車を目的にあわせて様々な視点から捉えたものですね。

コメントを書く

(ウェブ上には掲載しません)

« American kitchen, again. | トップページ | Focus on people »