編寫一本適合本科生學習的軟件工程教材,實在是一件很困難的事情。其原因主要有三:一是軟件工程這門課程所涉及的內容十分寬泛,既涉及技術層面,又涉及管理層面;既關聯實際問題的理解和描述,又關聯軟件工具的使用;二是在社會需求的拉動下,軟件工程技術發展非常迅速,新概念、新技術、新方法不斷出現;三是作為一門技術學科,其內容具有很強的技術特征,而且僅僅走過了40餘年的發展歷程,與其他學科相比,例如數學、物理、化學以及建築等,還是相當“年輕”的一門學科。因此,在教材內容的選取與組織方面,在有關概念的表述方面,實在是一種挑戰。
通過參與楊芙清院士主持的國家科技攻關項目,通過參與張效祥院士主編的《計算機科學技術百科全書》,通過參與國家有關標準規範的制定,特別是通過幾年來的教學實踐,對軟件工程有關的知識還有些領悟,有所積累。
在教材內容的選取方面,基本遵循以下兩條原則:
一是選取的內容能夠有助於提高讀者求解軟件的能力,特別是提高讀者直接參與軟件開發實踐和工程管理的能力;
二是選取的內容基本上是基礎性的,是比較“穩定”的,盡量介紹有關軟件工程的國際標準,盡量講解成熟技術。
在教材內容的組織方面,依據內容選取的基本原則,基於對軟件開發本質的認識,緊緊圍繞軟件開發,主要講解了軟件工程的兩大技術問題,一是開發邏輯,二是開發途徑。其中,開發邏輯涉及軟件生存周期過程、工程中常用的軟件生存周期模型——有關過程、活動和任務的組織框架,以及項目軟件生存周期的規劃與監控;開發途徑涉及結構化方法和面向對像方法,以及支持軟件評估所需要的軟件測試技術等。並且簡單介紹作用於開發活動上的一些管理活動,其中重點介紹支持管理活動的一些基礎性技術,例如規模、成本、進度估算等。