前言

徐志摩的散文里说道“数大,便是美”,但在软件领域里却是“数大,便是难”。

软件开发的复杂度,往往随着需求的增加而成指数增长。其关键原因,首先在于软件需求的无形性(intangibility),而这也正是软件领域著名的南加州大学教授Boehm博士所提出的IKIWISI(I'll Know It When I See It)现象——等我看见才能知道。换言之,许多人必须等软件编程后,才能确定是否满足需求。 因此当需求越多,往往会牵一发而动全身而越难修改。另一方面,当软件越庞大,软件开发越需要众人合作;而软件越成功,软件生命周期则会越长。这种需要多人长期合作的工作,若没有一套工程化的程序与管理办法,软件最终势必走向失败。

上述这些议题很难在课堂上显现,因为一般的课程时间比较短,软件生命周期问题很难显现,同时大学课堂也很难接触真正的大型软件开发。因此,在学习软件工程时,实在难搔到软件开发的痒处。为了帮助大家更能体会软件工程的挑战,本书整理了过往30个软件工程案例,并以漫画形式呈现。希望可以帮助所有软件相关人员体会软件工程的重要,同时更能避开软件开发误区从而走向成功。

周忠信