« パイロット開発にAgile開発のアイデアを適用した事例~実験的アプローチ #JaSST_Kansai | トップページ | Jenkinsの使い道 »

2013/08/13

ソフトウェア工学の講義資料

名城大学でのソフトウェア工学の講義資料が公開されていた。
用語や概念を知るには分かりやすいのでリンクしておく。

【参考】
2012年度 「ソフトウェア工学」 ホームページ

(講義内容)
1 大規模ソフトウェア開発の課題
2 ソフトウェアの開発工程
3 プロジェクト管理
4 要求分析
5 構造化分析
6 オブジェクト指向分析
7 中間試験
8 アーキテクチャ設計
9 ユーザインターフェース設計
10 モジュール設計
11 プログラミング
12 テストと検証
13 保守と再利用
14 中間試験2

上記のソフトウェア工学の講義内容は、もちろんアジャイル開発やスパイラルモデルなどの説明もあるが、従来のWF型開発における知識の総体系のように思える。
要求仕様の品質特性、ソフトウェア品質の6つの特性、テスト設計の種類、ソフトウェア再利用、ソフトウェア保守などの概念を網羅的に説明してくれているので分かりやすい。

上記の資料は、今までのソフトウェア開発で蓄積されたノウハウの一つ。
しかしながら、それら知識体系を知っているからといって、高品質で効率性の高い開発ができるとは限らない。

アジャイルの背景には、開発生産性の向上がある - ウィリアムのいたずらの開発日記にも書いているように、実際の開発現場ではむしろ、フレームワークありきのアーキテクチャを元に、要求仕様や工数見積を合わせて、高速に開発していくという現実もある。

フレームワークのAPIを駆使した泥臭いプログラミング、サーバーやDB移行などの泥臭い環境構築、色んな観点でのテストによるバグ出しと修正、肥大化しがちな要求スコープを現実的に折り合いをつける調整などの作業が実際の開発現場では多い。
ソフトウェア工学の綺麗な概念だけでは、実際のソフトウェア開発ではうまくいかない。

とは言え、上記のソフトウェア工学の概念を知ることによって、自分たちの経験を整理して、現状の問題とそこから生じる今後の課題を見つけることはできる。
過去のソフトウェアの偉人の肩に乗って、少しずつ遠くを見ることはできるようになる。
そうでなければ、ソフトウェア開発は、いつまで経っても、蓄積されないノウハウの塊であって、ソフトウェア工学の概念を何度も車輪の再発明で実装する羽目になるだろう。

アジャイル開発やチケット駆動開発も、ソフトウェア工学の知見を注入して、体系化できればいいなと思っている。

|

« パイロット開発にAgile開発のアイデアを適用した事例~実験的アプローチ #JaSST_Kansai | トップページ | Jenkinsの使い道 »

ソフトウェア工学」カテゴリの記事

チケット駆動開発」カテゴリの記事

Agile」カテゴリの記事

コメント

コメントを書く



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


コメントは記事投稿者が公開するまで表示されません。



« パイロット開発にAgile開発のアイデアを適用した事例~実験的アプローチ #JaSST_Kansai | トップページ | Jenkinsの使い道 »