5分でわかるソフトウェア工学の分類

昨日はというか今日は朝の4時ぐらいまで全然寝れずでいろいろ頭の中で考え事をしていた。
で、ソフトウェア工学関連で研究する分野ってどのように分類できるだろうかと考えてみた。

わかった。なんと4つだった。

  1. 開発時に必要な変換のなんかすごい方法
    • 仕様からテスト項目を自動生成するやつとかモデルからソースコードを生成するやつとか、コードからクローン部分を発見するやつとか、もちろんコンパイラとか。それらの支援としての環境系ツールとか。
  2. 開発時に必要な意思決定の範囲を狭める度肝を抜く補助線
    • ソフトウェアアーキテクチャ、パターン、方法論、ライブラリ、CMMIモデルとか。あくまで補助線であって開発成果物自身の一部ではないところに気づくかがミソというか罠。
  3. 上記二つのハイブリッド
    • プロダクトライン、プロセスラインなど
  4. 上記二つの妥当性の検証手法
    • 演繹的な検証として形式手法とかオートマトン理論とか項書き換えによる停止性判定手法とか。帰納的な検証としてエンピリカルとかメトリクスとか

この4つだ。たぶん。