序
徐志摩的散文裡說道「數大便是美」,但在軟體領域裡卻是「數大便是難」。軟體發展的複雜度,往往隨著需求的增加而成指數增長。其關鍵原因,首先在於軟體需求的無形性(intangibility),而這正也是軟體領域著名的南加大教授Boehm博士所提出的IKIWISI (I’ll Know It When I See It)現象–等我看見才能知道。換言之,許多人必須等軟體程式設計後,才能確定是否滿足需求。因此當需求愈多,往往會牽一髮而動全身,以致於愈難修改。另一方面,當軟體愈龐大,軟體發展就愈需要眾人合作;而軟體愈成功,軟體生命週期則會愈長。這種需要多人長期合作的工作,若沒有一套工程化的步驟與管理辦法,軟體最終勢必走向失敗。
上述這些議題很難在課堂上顯現,因為一般課程時間既短,軟體生命週期問題很難顯現,同時也很難接觸真正大型軟體發展。因此,在學習軟體工程時,實在難搔到軟體發展的癢處。為了幫助大家更能體會軟體工程的挑戰,本書整理了過往30個軟體工程案例,並以漫畫形式呈現。希望可以幫助所有軟體相關人員體認軟體工程的重要,同時更能避開軟體發展的誤區,邁向成功。