DFDモデル お勧めできない例(その1)
今回のお話は、ちょっと前回のつづきになります。
前回のblog記事:WAHTで考える練習
未だ構造化設計の認知拡充を図る私としては、WHATのモデルとしてDFDによる分析モデルをちょいちょいご紹介しています。UMLが浸透した今となっては、すっかり忘れ去られた表記法かもしれません。でも、丸と矢印だけで、プロセス(処理のかたまり)の関係を表すこの表記法、とってもシンプルで好きなんです。
忘れ去られるのも悲しいので、コレ使いつづけてます。
さて、Interface6月号では、LEDキューブシステム(*1)のDFDによる分析モデルの例を載せました。
(*1) 開発対象物[LEDキューブシステム]の仕様については、こちらあたりをご覧下さい。
過去blog:組込みソフトウェア開発者にとっての要求仕様書
このLEDキューブシステムを分析したコンテキストと、第一階層のDFD0はこんな感じになります。(雑誌掲載済み)
これらは、何度か描きなおして、出来上がった結果のDFDです。
この形におさまるまで、4, 5回は、機能の分割、グループ分け、再統合...を繰り返しています。
6月号には、もう一つアンチパターンとして、こんなモデルを載せました。
この例は、HOWで考えてしまった典型例なのですね。
どこがって... 左上にある 「100msタイマ割り込み処理」 があるところです。
これって、
どうやってプロセスを順番に動かそう...、
どうやってアレと、コレ同期させよう...
どうやって...(=HOW) を考えないと、この タイマ割り込みドリブン な分割にはならないのです。
手続き型の言語によるプログラミングになれた人ほど、これはやってしまいがちです。
タイマ割り込みプロセスをDFDモデルに登場させないというのは、タイマ割り込みを使ってはいけないということではないですよ。
プロセス分割した結果、それらを動かす仕組みとして、タイマ割り込みを使うのはOKなんです。でも、タイマ割り込みはあくまでもプロセスを動かす仕組みであり、それ自身が要求仕様に紐付いた役割を担ったものではないということに、注意しましょう。
Whatによる思考に慣れない場合、まずこのタイマ割り込みドリブンを頭に思い浮かべずに、機能分割してモデルを書いてみる。 そんなところから、初めてみるのも、一つ手だと思いますよ。
※ 関連記事: Interface 2011年6月号
« WHATで考える練習 | トップページ | DFDモデル お勧めできない例(その2) »
「ソフトウェア開発」カテゴリの記事
- 状態遷移のAction設計してます?(2011.08.04)
- 状態って、どうやって抽出します?(2011.07.04)
- コード解析にDFDを使う?(2011.06.21)
- ソフトウェアには”遊び”がない(2011.05.31)
- 「静的×動的視点で分析する」を書いてみました(2011.05.24)
「Interface記事」カテゴリの記事
- 状態遷移のAction設計してます?(2011.08.04)
- 状態って、どうやって抽出します?(2011.07.04)
- コード解析にDFDを使う?(2011.06.21)
- 「静的×動的視点で分析する」を書いてみました(2011.05.24)
- DFDモデル お勧めできない例(その3)(2011.05.17)
「構造化分析・設計」カテゴリの記事
- 状態遷移のAction設計してます?(2011.08.04)
- 状態って、どうやって抽出します?(2011.07.04)
- 「静的×動的視点で分析する」を書いてみました(2011.05.24)
- DFDモデル お勧めできない例(その3)(2011.05.17)
- DFDモデル お勧めできない例(その2)(2011.05.09)
この記事へのコメントは終了しました。
コメント