為了滿足“軟件工程”課程學(xué)時(shí)較少的高等學(xué)校對(duì)一本適用教材的迫切需求,作者對(duì)先后榮獲了全國(guó)普通高等學(xué)校工科電子類(lèi)專(zhuān)業(yè)優(yōu)秀教材一等獎(jiǎng)和全國(guó)優(yōu)秀暢銷(xiāo)書(shū)獎(jiǎng),并被評(píng)為北京高等教育精品教材的《軟件工程導(dǎo)論》作了精心改編,保留了原書(shū)中較重要、較新穎的內(nèi)容,刪除或簡(jiǎn)化了一些較陳舊或較次要的內(nèi)容,寫(xiě)出了《軟件工程》。
《軟件工程》全面系統(tǒng)地講述了軟件工程的概念、原理和典型的方法學(xué),并介紹了軟件項(xiàng)目的管理技術(shù)。本書(shū)正文共13章,第1章是概述,第2章至第8章順序講述軟件生命周期各階段的任務(wù)、過(guò)程、結(jié)構(gòu)化方法和工具,第9章至第12章分別講述面向?qū)ο蠓椒▽W(xué)引論、面向?qū)ο蠓治觥⒚嫦驅(qū)ο笤O(shè)計(jì)和面向?qū)ο髮?shí)現(xiàn),第13章介紹軟件項(xiàng)目管理。正文后面有兩個(gè)附錄,分別講述了用面向?qū)ο蠓椒ê徒Y(jié)構(gòu)化方法開(kāi)發(fā)兩個(gè)軟件的過(guò)程,對(duì)讀者深入理解軟件工程學(xué)很有幫助,也是上機(jī)實(shí)習(xí)的好材料。
本書(shū)可作為高等院校“軟件工程”課程的教材或教學(xué)參考書(shū),也可供有一定實(shí)際經(jīng)驗(yàn)的軟件工作人員和需要開(kāi)發(fā)應(yīng)用軟件的廣大計(jì)算機(jī)用戶閱讀參考。
作者編著的《軟件工程導(dǎo)論》已經(jīng)出版了5個(gè)版本,累計(jì)銷(xiāo)售了近一百萬(wàn)冊(cè),先后榮獲全國(guó)普通高等學(xué)校工科電子類(lèi)專(zhuān)業(yè)優(yōu)秀教材二等獎(jiǎng)和一等獎(jiǎng),并被評(píng)為全國(guó)優(yōu)秀暢銷(xiāo)書(shū)(前10名)和北京高等教育精品教材,國(guó)內(nèi)許多高校把它選作“軟件工程”課的教材。
但是,也有一些“軟件工程”課程學(xué)時(shí)較少的高校教師反映,《軟件工程導(dǎo)論》內(nèi)容較多,用它作教材感到授課學(xué)時(shí)比較緊張。為了滿足這部分學(xué)校的需求,作者對(duì)《軟件工程導(dǎo)論》作了精心改編,保留了原書(shū)中較重要、較新穎的內(nèi)容,刪除或簡(jiǎn)化了一些較陳舊或較次要的內(nèi)容,寫(xiě)出了《軟件工程》。該書(shū)在保持原書(shū)結(jié)構(gòu)不變的前提下把篇幅減少了近六分之一,將顯著減少授課所需的學(xué)時(shí)。
編者
2009年5月
第1章 軟件工程學(xué)概述
1.1 軟件危機(jī)
1.1.1 軟件危機(jī)的介紹
1.1.2 產(chǎn)生軟件危機(jī)的原因
1.1.3 消除軟件危機(jī)的途徑
1.2 軟件工程
1.2.1 軟件工程的介紹
1.2.2 軟件工程的基本原理
1.2.3 軟件工程方法學(xué)
1.3 軟件生命周期
1.4 軟件過(guò)程
1.4.1 瀑布模型
1.4.2 快速原型模型
1.4.3 增量模型
1.4.4 螺旋模型
1.4.5 噴泉模型
1.4.6 Rational統(tǒng)一過(guò)程
1.4.7 敏捷過(guò)程與極限編程
1.4.8 微軟過(guò)程
1.5 小結(jié)
習(xí)題
第2章 可行性研究
2.1 可行性研究的任務(wù)
2.2 可行性研究過(guò)程
2.3 數(shù)據(jù)流圖
2.3.1 符號(hào)
2.3.2 例子
2.3.3 命名
2.3.4 用途
2.4 數(shù)據(jù)字典
2.4.1 數(shù)據(jù)字典的內(nèi)容
2.4.2 定義數(shù)據(jù)的方法
2.4.3 數(shù)據(jù)字典的用途
2.4.4 數(shù)據(jù)字典的實(shí)現(xiàn)
2.5 成本/效益分析
2.5.1 成本估計(jì)
2.5.2 成本/效益分析的方法
2.6 小結(jié)
習(xí)題
軟件工程目 錄 第3章 需求分析
3.1 需求分析的任務(wù)
3.1.1 確定對(duì)系統(tǒng)的綜合要求
3.1.2 分析系統(tǒng)的數(shù)據(jù)要求
3.1.3 導(dǎo)出系統(tǒng)的邏輯模型
3.1.4 修正系統(tǒng)開(kāi)發(fā)計(jì)劃
3.2 與用戶溝通獲取需求的方法
3.2.1 訪談
3.2.2 面向數(shù)據(jù)流自頂向下求精
3.2.3 簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù)
3.2.4 快速建立軟件原型
3.3 分析建模與規(guī)格說(shuō)明
3.3.1 分析建模
3.3.2 軟件需求規(guī)格說(shuō)明
3.4 實(shí)體-聯(lián)系圖
3.4.1 數(shù)據(jù)對(duì)象
3.4.2 屬性
3.4.3 聯(lián)系
3.4.4 實(shí)體-聯(lián)系圖的符號(hào)
3.5 數(shù)據(jù)規(guī)范化
3.6 狀態(tài)轉(zhuǎn)換圖
3.6.1 狀態(tài)
3.6.2 事件
3.6.3 符號(hào)
……
第4章 形式化說(shuō)明技術(shù)
第5章 總體設(shè)計(jì)
第6章 詳細(xì)設(shè)計(jì)
第7章 實(shí)現(xiàn)
第8章 維護(hù)
第9章 面向?qū)ο蠓椒▽W(xué)引論
第10章 面向?qū)ο蠓治?br />第11章 面向?qū)ο笤O(shè)計(jì)
第12章 面向?qū)ο髮?shí)現(xiàn)
第13章 軟件項(xiàng)目管理
附錄A C++類(lèi)庫(kù)管理系統(tǒng)的分析與設(shè)計(jì)
附錄B 一個(gè)漢字行編輯程序的設(shè)計(jì)
參考文獻(xiàn)
第1章 軟件工程學(xué)概述
迄今為止,計(jì)算機(jī)系統(tǒng)已經(jīng)經(jīng)歷了4個(gè)不同的發(fā)展階段,但是,人們?nèi)匀粵](méi)有徹底擺脫“軟件危機(jī)”的困擾,軟件已經(jīng)成為限制計(jì)算機(jī)系統(tǒng)發(fā)展的瓶頸。
為了更有效地開(kāi)發(fā)與維護(hù)軟件,軟件工作者在20世紀(jì)60年代后期開(kāi)始認(rèn)真研究消除軟件危機(jī)的途徑,從而逐漸形成了一門(mén)新興的工程學(xué)科——計(jì)算機(jī)軟件工程學(xué)(通常簡(jiǎn)稱(chēng)為“軟件工程”)。
1.1 軟件危機(jī)
在計(jì)算機(jī)系統(tǒng)發(fā)展的早期時(shí)代(20世紀(jì)60年代中期以前),通用硬件相當(dāng)普遍,軟件卻是為每個(gè)具體應(yīng)用而專(zhuān)門(mén)編寫(xiě)的。這時(shí)的軟件通常是規(guī)模較小的程序,編寫(xiě)者和使用者往往是同一個(gè)(或同一組)人。這種個(gè)體化的軟件環(huán)境,使得軟件設(shè)計(jì)通常是在人們頭腦中進(jìn)行的一個(gè)隱含的過(guò)程,除了程序清單之外,沒(méi)有其他文檔資料保存下來(lái)。
從20世紀(jì)60年代中期到70年代中期是計(jì)算機(jī)系統(tǒng)發(fā)展的第二個(gè)時(shí)期,這個(gè)時(shí)期的一個(gè)重要特征是出現(xiàn)了“軟件作坊”,廣泛使用產(chǎn)品軟件。但是,“軟件作坊”基本上仍然沿用早期形成的個(gè)體化軟件開(kāi)發(fā)方法。隨著計(jì)算機(jī)應(yīng)用的日益普及,軟件數(shù)量急劇膨脹。在程序運(yùn)行時(shí)發(fā)現(xiàn)的錯(cuò)誤必須設(shè)法改正;用戶有了新的需求時(shí)必須相應(yīng)地修改程序;硬件或操作系統(tǒng)更新時(shí),通常需要修改程序以適應(yīng)新的環(huán)境。上述種種軟件維護(hù)工作,以令人吃驚的比例耗費(fèi)資源。更嚴(yán)重的是,許多程序的個(gè)體化特性使得它們最終成為不可維護(hù)的。“軟件危機(jī)”就這樣開(kāi)始出現(xiàn)了11968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在聯(lián)邦德國(guó)召開(kāi)國(guó)際會(huì)議,討論軟件危機(jī)問(wèn)題,在這次會(huì)議上正式提出并使用了“軟件工程”這個(gè)名詞,一門(mén)新興的工程學(xué)科就此誕生了。
……