2007年6月24日日曜日

GUIプログラミング

仕事が組み込み系というのもあって、GUI関係に弱い気がする。。

マルチプラットフォームだしQTでも勉強すっかな。
Qt Reference Documentationでも見てみよう。
4.0はこっちかな。

2007年6月16日土曜日

Graphviz

グラフ作成ツールのGraphviz

適当に図を作成するときに楽できるかも。

2007年6月9日土曜日

ソフトウェア工学とは何か

面白い文書を見つけた。

ソフトウェア工学とは何か

潜在意識レベルではわかっていたことに気付かされる文章。
次のように考えるべきかな。適度にコーディングするのがポイント。

自分流に置き換えるとこんな感じかな。

基本設計フェーズ
  • 実現する機能をまとめた「管理文書」作成。
  • モジュール分割方針と全体シーケンス作成(外部サブシステムとの意識合わせ用)。
  • 外部サブシステム用のインタフェース仕様書を作成する。実際に空実装でコーディングして、呼び出し側も作ってみてビルドし、イメージを膨らませる。

詳細設計フェーズ
  • 補助ドキュメントとして「実装方針」を文書化する。
  • 内部のモジュール分割と処理シーケンスを図示する。詳細に書くと「真の設計であるコード」と乖離するので「適度に省略するのが重要」。
  • 内部処理なしの関数コールだけのコーディングを進める。データのインプット(引数やメンバ変数)とアウトプット(戻り値やメンバ変数)を意識しておく。
  • 外部からのイベントによって状態が変化して、その後のイベントによる振る舞いが異なる場合は、状態遷移表でパターンを網羅しておく(表にするのがポイント)。

実装フェーズ
  • 関数の内部実装を完成させる。
  • 異常系以外の正常動作レベルを確認する。

単体テストフェーズ
  • 外部インタフェースの引数/戻り値を網羅してテストパターン作成。
  • 内部処理で気になる部分はそこだけ取り出してでもテストする。
  • 基本的に全パスを通す。

結合/システムテストフェーズ
  • いろんなことをしてみる。