關(guān)于我們
書單推薦
新書推薦
|
軟件工程
本書是在《軟件工程》(第3版) 的基礎(chǔ)上, 根據(jù)使用該教材的教師和讀者的意見, 對原書內(nèi)容上做了很多調(diào)整和修改。增強(qiáng)了方法論。針對軟件工程的基本理論、可行性研究、軟件需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、面向?qū)ο蠓治雠c設(shè)計(jì)、接口設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件質(zhì)量、軟件測試、軟件維護(hù)、軟件項(xiàng)目管理與計(jì)劃等知識進(jìn)行了嚴(yán)格的論述, 實(shí)例配合解釋概念。同時(shí)每章都配有習(xí)題。
1. 本書針對軟件工程的基本理論、可行性研究、軟件需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、面向?qū)ο蠓治雠c設(shè)計(jì)、接口設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件質(zhì)量、軟件測試、軟件維護(hù)、軟件項(xiàng)目管理與計(jì)劃等知識進(jìn)行嚴(yán)格論述,以實(shí)例配合解釋概念。配有豐富習(xí)題。
2. 本書與《軟件工程習(xí)題解答(第4版)》(ISBN9787302473350)和《軟件工程實(shí)踐與課程設(shè)計(jì)》(ISBN9787302478676)配套使用,學(xué)習(xí)效果*佳。
1. 寫作背景
在計(jì)算機(jī)軟件開發(fā)的工程科學(xué)技術(shù)中,軟件工程的概念、原理、技術(shù)與方法已成為計(jì)算機(jī)科學(xué)與技術(shù)范疇的一項(xiàng)重要內(nèi)容,在計(jì)算機(jī)科學(xué)技術(shù)領(lǐng)域占據(jù)無可爭議的主流地位。作為軟件技術(shù)人員,接受軟件工程的概念并不難,但是要真正理解、掌握和運(yùn)用這門先進(jìn)的技術(shù)并完整地進(jìn)行系統(tǒng)開發(fā),是有一定難度的。鑒于此,編者編寫了這本關(guān)于軟件工程系統(tǒng)分析、設(shè)計(jì)和實(shí)施的教材,以使更多同行受益。
幾年前,編者編寫的《軟件工程(第3版)》備受老師和其他讀者歡迎。這本書對于應(yīng)用型本科學(xué)校的讀者而言,有些內(nèi)容顯得深了些。為更好地反映最近幾年軟件工程領(lǐng)域的發(fā)展現(xiàn)狀,編者根據(jù)普通高等教育“十二五”國家級規(guī)劃教材的指導(dǎo)精神,總結(jié)近年來教學(xué)和科研的經(jīng)驗(yàn),在第3版基礎(chǔ)上進(jìn)行了調(diào)整和增刪,形成了這本第4版教材。為了方便學(xué)校教學(xué),編者還編寫了配套的《軟件工程習(xí)題解答(第4版)》(ISBN 9787302473336)和《軟件工程實(shí)踐與課程設(shè)計(jì)》(ISBN 9787302478676)。
2. 本書結(jié)構(gòu)
本書由以下四部分組成:
第一部分基礎(chǔ)理論,包括第1~3章。
第二部分結(jié)構(gòu)化方法,包括第4~6章。
第三部分面向?qū)ο蠓椒ㄅc實(shí)現(xiàn),包括第7~11章。
第四部分質(zhì)量與工程管理,包括第12~15章。
3. 本書特點(diǎn)
本書對有用的概念都進(jìn)行了嚴(yán)格的論述,每一個(gè)概念都有相應(yīng)的例子解釋,同時(shí)每章都配有習(xí)題。此外,編者還編寫了與本書配套的《軟件工程習(xí)題解答(第4版)》和《軟件工程實(shí)踐與課程設(shè)計(jì)》,幫助讀者鞏固所學(xué)知識。
4. 適用范圍
軟件工程是軟件系統(tǒng)開發(fā)課程的教科書,適合作為軟件工程方面課程的教材,也可作為相關(guān)工程技術(shù)人員的參考用書。
在選修本課程之前,讀者應(yīng)該具有計(jì)算機(jī)的基礎(chǔ)知識,掌握數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫技術(shù)。另外,如果具有算法語言的編程經(jīng)驗(yàn),會(huì)有助于深入理解系統(tǒng)開發(fā)過程。
5. 編寫方法
本書是編者根據(jù)近20年來對軟件工程學(xué)、面向?qū)ο蠓椒ǖ鹊慕虒W(xué)與研究,以及編者負(fù)責(zé)或參與幾十項(xiàng)軟件開發(fā)項(xiàng)目的實(shí)踐經(jīng)驗(yàn),并結(jié)合軟件開發(fā)新技術(shù)編寫而成的。根據(jù)編者的教學(xué)經(jīng)驗(yàn),讀者學(xué)習(xí)一門新技術(shù)的時(shí)候,教材是非常重要的。因此,編者在修訂的時(shí)候,對于部分章節(jié)和內(nèi)容進(jìn)行了更新和修改,以便讀者更好地學(xué)習(xí)與掌握相關(guān)知識。
6. 如何使用本書
根據(jù)實(shí)際情況,在教授時(shí)建議安排54~60學(xué)時(shí)。教師可以按照自己的風(fēng)格和喜好刪減章節(jié),也可以根據(jù)教學(xué)目標(biāo)靈活調(diào)整章節(jié)順序。
第1章緒論(2學(xué)時(shí))
第2章基本理論(2學(xué)時(shí))
第3章可行性研究(2學(xué)時(shí))
第4章需求分析(4學(xué)時(shí))
第5章總體設(shè)計(jì)(4學(xué)時(shí))
第6章軟件詳細(xì)設(shè)計(jì)(4學(xué)時(shí))
第7章面向?qū)ο蠓治?4學(xué)時(shí))
第8章面向?qū)ο笤O(shè)計(jì)(2學(xué)時(shí))
第9章用戶界面設(shè)計(jì)(2/4學(xué)時(shí))
第10章數(shù)據(jù)庫及其接口設(shè)計(jì)(2學(xué)時(shí))
第11章軟件實(shí)現(xiàn)(2學(xué)時(shí))
第12章軟件質(zhì)量(2學(xué)時(shí))
第13章軟件測試(2學(xué)時(shí))
第14章軟件維護(hù)(2學(xué)時(shí))
第15章軟件項(xiàng)目管理與計(jì)劃(2學(xué)時(shí))
本書的編寫過程中,受到廣東理工學(xué)院李代平負(fù)責(zé)的廣東省級重點(diǎn)學(xué)科建設(shè)課題——一級學(xué)科“計(jì)算機(jī)科學(xué)與技術(shù)”項(xiàng)目的支持。信息工程系胡致杰、賴小平、劉建友和張俊林參加了資料的收集與整理工作。由于軟件工程的知識面廣,書中不可能面面俱到,加上時(shí)間倉促,作者水平有限,書中的不足之處在所難免,懇請讀者批評指正。
編者
2017年5月于振華樓
第3版前言
1. 寫作背景
軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)的工程科學(xué)技術(shù)。軟件工程的概念、原理、技術(shù)與方法已成為計(jì)算機(jī)科學(xué)與技術(shù)范疇的一項(xiàng)重要內(nèi)容。用軟件工程的思想進(jìn)行軟件設(shè)計(jì)與開發(fā)的先進(jìn)性眾所周知,它在計(jì)算機(jī)科學(xué)技術(shù)領(lǐng)域占據(jù)無可爭議的主流地位。作為軟件技術(shù)人員,接受軟件工程的概念并不難,但是要真正理解、掌握和運(yùn)用這門先進(jìn)的技術(shù)并完整地進(jìn)行系統(tǒng)開發(fā),是有一定難度的。鑒于此,編者編寫了這本關(guān)于軟件工程系統(tǒng)分析、設(shè)計(jì)和實(shí)施的教材,以使更多同行受益。
幾年前,編者編寫的《軟件工程(第2版)》備受老師和讀者歡迎。為更好地反映最近幾年軟件工程領(lǐng)域的發(fā)展現(xiàn)狀,編者根據(jù)普通高等教育“十二五”國家級規(guī)劃教材的指導(dǎo)精神,總結(jié)近年來教學(xué)和科研的經(jīng)驗(yàn),在第2版基礎(chǔ)上做了調(diào)整和增刪,形成了這本教材。主要從下述4個(gè)方面進(jìn)行了精心修改; 刪掉了一些較陳舊或較次要的內(nèi)容; 增加了一些較新穎或較重要的內(nèi)容; 用UML的概念與符號重新改定了有關(guān)面向?qū)ο蠓椒▽W(xué)的內(nèi)容; 結(jié)構(gòu)上也進(jìn)行了必要的調(diào)整。
2. 本書結(jié)構(gòu)
本書由以下四部分組成:
第一部分基礎(chǔ)理論,包括第1~3章。
第二部分結(jié)構(gòu)化方法,包括第4~6章。
第三部分面向?qū)ο蠓椒ㄅc實(shí)現(xiàn),包括第7~16章。
第四部分質(zhì)量與工程管理,包括第17~20章。
3. 本書特點(diǎn)
本書對各章的概念都進(jìn)行了嚴(yán)格的論述,每一個(gè)概念都有相應(yīng)的例子解釋,同時(shí)各章都配有習(xí)題。編者還編寫了與本書配套的《軟件工程習(xí)題與解答》,幫助讀者鞏固所學(xué)知識。
4. 適用范圍
軟件工程是軟件系統(tǒng)開發(fā)課程的教科書,適合開設(shè)有軟件工程課程的大學(xué)高年級和低年級研究生作為教材,也可作為工程技術(shù)人員的參考用書。
在選修本課程之前,讀者應(yīng)該具有計(jì)算機(jī)的基礎(chǔ)知識,掌握數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫技術(shù)。另外,如果具有算法語言的編程經(jīng)驗(yàn),會(huì)有助于深入理解系統(tǒng)開發(fā)過程。
5. 編寫方法
本書是編者根據(jù)近10年來對軟件工程學(xué)、面向?qū)ο蠓椒ǖ鹊慕虒W(xué)與研究,以及編者負(fù)責(zé)或參與幾十項(xiàng)軟件開發(fā)項(xiàng)目的實(shí)踐經(jīng)驗(yàn),并結(jié)合軟件開發(fā)新技術(shù)編寫而成。根據(jù)編者的教學(xué)經(jīng)驗(yàn),讀者學(xué)習(xí)一門新技術(shù)的時(shí)候,教材是非常重要的。因此,編者在修訂的時(shí)候,對于部分章節(jié)和內(nèi)容做了更新和修改。
6. 如何使用本書
根據(jù)實(shí)際情況,在教授時(shí)建議安排54~60學(xué)時(shí)。教師可以按照自己的風(fēng)格和喜好刪除章節(jié),也可以根據(jù)教學(xué)目標(biāo)靈活調(diào)整章節(jié)順序。另外,前面帶“*”的部分為選學(xué)內(nèi)容。
第1章緒論(2學(xué)時(shí))
第2章基本理論(2學(xué)時(shí))
第3章可行性研究(2學(xué)時(shí))
第4章需求分析與*體系結(jié)構(gòu)(4學(xué)時(shí))
第5章總體設(shè)計(jì)(4學(xué)時(shí))
第6章軟件詳細(xì)設(shè)計(jì)(4學(xué)時(shí))
第7章面向?qū)ο蠓椒ǜ耪摚?學(xué)時(shí))
第8章模型(2學(xué)時(shí))
第9章對象分析(4學(xué)時(shí))
第10章關(guān)系分析(4學(xué)時(shí))
第11章控制驅(qū)動(dòng)部分的設(shè)計(jì)(4學(xué)時(shí))
第12章問題域部分設(shè)計(jì)(4學(xué)時(shí))
第13章用戶界面設(shè)計(jì)(2/4學(xué)時(shí))
第14章數(shù)據(jù)庫及其接口設(shè)計(jì)(2學(xué)時(shí))
第15章*形式化方法(0/4學(xué)時(shí))
第16章軟件實(shí)現(xiàn)(2學(xué)時(shí))
第17章軟件質(zhì)量(2學(xué)時(shí))
第18章軟件測試(2學(xué)時(shí))
第19章軟件維護(hù)(2學(xué)時(shí))
第20章軟件項(xiàng)目管理與計(jì)劃(2學(xué)時(shí))
編者
2011年1月于廣州小谷圍島
第2版前言
1. 本書背景
本書是根據(jù)普通高等教育“十一五”國家級規(guī)劃教材的指導(dǎo)精神而編寫的。出版后我們在教學(xué)的使用過程中,覺得有許多地方不是很理想,因此,我們根據(jù)使用該教材的教師和讀者的意見,對原書在結(jié)構(gòu)和內(nèi)容上做了很大的調(diào)整和修改。
隨著科學(xué)技術(shù)的進(jìn)步,軟件的理論與開發(fā)方法不斷涌現(xiàn)。軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)的工程科學(xué)技術(shù)。軟件工程的概念、原理、技術(shù)與方法已成為計(jì)算機(jī)科學(xué)與技術(shù)的一項(xiàng)重要內(nèi)容。
用軟件工程進(jìn)行軟件設(shè)計(jì)與開發(fā)的先進(jìn)性是眾所周知的,它在計(jì)算機(jī)科學(xué)技術(shù)領(lǐng)域占據(jù)了無可爭議的主流地位。作為軟件技術(shù)人員,接受軟件工程的概念并不難,但是要真正理解、掌握和運(yùn)用這門先進(jìn)的技術(shù)并完整地進(jìn)行系統(tǒng)開發(fā),是有一定難度的。鑒于此我們編寫了本書,目的是向讀者提供一本關(guān)于軟件工程系統(tǒng)分析、設(shè)計(jì)和實(shí)施的教科書,以使更多同行受益。
2. 本書結(jié)構(gòu)
本書由四部分組成:
第一部分基礎(chǔ)理論,包括第1~3章。
第二部分結(jié)構(gòu)化方法,包括第4~6章。
第三部分面向?qū)ο蠓椒ㄅc實(shí)現(xiàn),包括第7~15章。
第四部分質(zhì)量與工程管理,包括第16~19章。
3. 本書特點(diǎn)
本書對每章的概念都進(jìn)行了嚴(yán)格的論述,每一個(gè)概念都有相應(yīng)的例子解釋,同時(shí)每章都配有習(xí)題,使讀者鞏固所學(xué)知識。
4. 適用范圍
軟件工程是軟件系統(tǒng)開發(fā)課程的教科書。講授時(shí)間一般為40~60學(xué)時(shí)。本書適合開設(shè)有軟件工程課程的大學(xué)高年級本科生和低年級研究生作教材,也可作為工程技術(shù)人員的參考用書。
在選修本課程之前,讀者應(yīng)該具有計(jì)算機(jī)的基礎(chǔ)知識,掌握數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫技術(shù)。同時(shí)具有可視化類語言的編程經(jīng)驗(yàn),會(huì)有助于深入理解系統(tǒng)開發(fā)過程。
5. 編寫方法
本書是作者根據(jù)近10年來對軟件工程學(xué)、面向?qū)ο蠓椒ǖ鹊慕虒W(xué)與研究,以及作者領(lǐng)導(dǎo)或參與的20項(xiàng)軟件項(xiàng)目開發(fā)的實(shí)際應(yīng)用經(jīng)驗(yàn),并結(jié)合軟件開發(fā)新技術(shù)編寫而成。根據(jù)過去的教學(xué)經(jīng)驗(yàn),讀者學(xué)習(xí)一門新技術(shù),教材是非常重要的。因此,在修訂的時(shí)候,對于部分章節(jié)和內(nèi)容做了調(diào)整和修改。
6. 如何使用本書
根據(jù)讀者的實(shí)際情況,教師在教授本書時(shí),建議一般在54~60學(xué)時(shí)。可以按照自己的風(fēng)格和喜好刪除章節(jié),也可以根據(jù)教學(xué)目標(biāo)靈活調(diào)整章節(jié)順序。另外,前面帶“*”為選學(xué)內(nèi)容。
第1章緒論(1學(xué)時(shí))
第2章基本理論(2學(xué)時(shí))
第3章可行性研究(2學(xué)時(shí))
第4章軟件需求分析(4學(xué)時(shí))
第5章總體設(shè)計(jì)(4學(xué)時(shí))
第6章軟件詳細(xì)設(shè)計(jì)(4學(xué)時(shí))
第7章面向?qū)ο蠓椒ǜ耪?4學(xué)時(shí))
第8章模型(2學(xué)時(shí))
第9章對象分析(4/6學(xué)時(shí))
第10章關(guān)系分析(4/6學(xué)時(shí))
第11章面向?qū)ο笤O(shè)計(jì)原則(2學(xué)時(shí))
第12章對象設(shè)計(jì)(5/6學(xué)時(shí))
第13章接口設(shè)計(jì)(4/6學(xué)時(shí))
*第14章形式化方法(4學(xué)時(shí))
第15章軟件實(shí)現(xiàn)(2學(xué)時(shí))
第16章軟件質(zhì)量(2學(xué)時(shí))
第17章軟件測試(2學(xué)時(shí))
第18章軟件維護(hù)(2學(xué)時(shí))
第19章軟件項(xiàng)目管理與計(jì)劃(2學(xué)時(shí))
由于軟件工程知識面廣,在介紹中不能面面俱到。加上時(shí)間倉促,作者水平有限,書中的不足之處在所難免,懇請讀者批評指正。
編者
2007年5月于小谷圍島
第1版前言
1. 關(guān)于本書
軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)的工程科學(xué)。人們希望通過用工程技術(shù)和管理方法使軟件開發(fā)工程化,由此產(chǎn)生了軟件工程學(xué)。軟件工程學(xué)是采用工程的概念、原理、技術(shù)與方法,把當(dāng)前先進(jìn)的技術(shù)與已經(jīng)實(shí)踐證明了的正確管理方法相結(jié)合來開發(fā)軟件。從20世紀(jì)60年代提出軟件工程的概念以來,軟件工程技術(shù)逐漸成熟,現(xiàn)在已成為計(jì)算機(jī)科學(xué)技術(shù)中的一門重要學(xué)科。但是,還有些公司和個(gè)人仍然在隨意開發(fā)軟件,將編寫高質(zhì)量的程序與開發(fā)系統(tǒng)混為一談,也有些軟件專業(yè)的學(xué)生或軟件開發(fā)人員還沒有掌握軟件開發(fā)出現(xiàn)的新技術(shù),鑒于此我們編寫了本書。
本書是作者根據(jù)近10年來對軟件工程學(xué)、面向?qū)ο蠓椒ǖ冉虒W(xué)與研究的經(jīng)驗(yàn),以及領(lǐng)導(dǎo)或參與的20項(xiàng)軟件項(xiàng)目開發(fā)的實(shí)際應(yīng)用經(jīng)驗(yàn),并結(jié)合軟件開發(fā)新技術(shù)編寫而成。根據(jù)過去的教學(xué)經(jīng)驗(yàn),讀者學(xué)習(xí)一門新技術(shù),教材是非常重要的。因此,我們在編寫本書之前,在各方面進(jìn)行了充分的準(zhǔn)備。
2. 本書結(jié)構(gòu)安排
本書由16章構(gòu)成,內(nèi)容如下。
第1章: 緒論。介紹的主要內(nèi)容有軟件的特點(diǎn)、軟件的發(fā)展、軟件危機(jī)、軟件工程、軟件工程與方法學(xué)、軟件工程的基本原理等。
第2章: 軟件工程的基本理論。介紹的主要內(nèi)容有軟件工程過程、軟件生存周期、軟件生存周期模型、軟件開發(fā)方法、軟件開發(fā)工具。
第3章: 可行性研究。介紹的主要內(nèi)容有可行性研究的任務(wù)與步驟、系統(tǒng)分析、分析原理、結(jié)構(gòu)化分析、系統(tǒng)流程圖、數(shù)據(jù)流圖、數(shù)據(jù)字典、成本效益分析、可行性研究的文檔、項(xiàng)目開發(fā)計(jì)劃。
第4章: 軟件需求分析與概念模型。介紹的主要內(nèi)容有需求分析、IDEF方法、概念模型與規(guī)范化。
第5章: 總體設(shè)計(jì)。介紹的主要內(nèi)容有軟件設(shè)計(jì)的重要性、設(shè)計(jì)過程、軟件總體設(shè)計(jì)、設(shè)計(jì)基本原理、體系結(jié)構(gòu)設(shè)計(jì)、結(jié)構(gòu)化設(shè)計(jì)、IDEF0圖的設(shè)計(jì)方法、軟件結(jié)構(gòu)優(yōu)化。
第6章: 軟件細(xì)節(jié)設(shè)計(jì)。介紹的主要內(nèi)容有細(xì)節(jié)設(shè)計(jì)任務(wù)與方法、設(shè)計(jì)表示法、結(jié)構(gòu)化程序設(shè)計(jì)、結(jié)構(gòu)化定理、圖形工具,面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)。
第7章: 面向?qū)ο蠓椒▽W(xué)。介紹的主要內(nèi)容有傳統(tǒng)方法學(xué)的缺點(diǎn)、面向?qū)ο蟮幕靖拍、對象模型、?dòng)態(tài)模型、功能模型。
第8章: 面向?qū)ο蠓治。介紹的主要內(nèi)容有面向?qū)ο蠓治龅幕具^程、對象的發(fā)現(xiàn)和標(biāo)識、發(fā)現(xiàn)對象方法、定義屬性、定義服務(wù)、定義結(jié)構(gòu)、實(shí)例連接、消息連接、建立功能模型。
第9章: 面向?qū)ο笤O(shè)計(jì)。介紹的主要內(nèi)容有設(shè)計(jì)的準(zhǔn)則、啟發(fā)式規(guī)則、系統(tǒng)分解、設(shè)計(jì)問題域子系統(tǒng)、設(shè)計(jì)任務(wù)子系統(tǒng)、設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)、面向?qū)ο蟪绦蛟O(shè)計(jì)、軟件重用、統(tǒng)一建模語言UML。
第10章: 形式化方法。介紹的主要內(nèi)容有形式化方法的基礎(chǔ)知識、有限狀態(tài)機(jī)(FSM)、Petri網(wǎng)的基本原理、凈室方法學(xué)、客戶/服務(wù)器模式。
第11章: 用戶界面設(shè)計(jì)。介紹的主要內(nèi)容有界面軟件開發(fā)綜述、人機(jī)交互子系統(tǒng)設(shè)計(jì)、圖形用戶界面設(shè)計(jì)、多媒體用戶界面設(shè)計(jì)、用戶界面模型、用戶界面的描述方法與技術(shù)等。
第12章: 軟件質(zhì)量。介紹的主要內(nèi)容有軟件質(zhì)量的概述、軟件質(zhì)量的度量和評價(jià)、軟件質(zhì)量保證、技術(shù)評審與審查,軟件的可靠性。
第13章: 軟件實(shí)現(xiàn)。介紹的主要內(nèi)容有程序設(shè)計(jì)語言的特性及選擇、程序設(shè)計(jì)風(fēng)格、程序設(shè)計(jì)效率、冗余編程、軟件容錯(cuò)技術(shù)。
第14章: 軟件測試。介紹的主要內(nèi)容有軟件測試概述、測試方法、測試用例的設(shè)計(jì)、測試過程、調(diào)試。
第15章: 軟件維護(hù)。介紹的主要內(nèi)容有軟件維護(hù)概述、軟件可維護(hù)性、軟件維護(hù)的特點(diǎn)、軟件維護(hù)的實(shí)施、維護(hù)“老化代碼”、逆向工程和再工程。
第16章: 軟件項(xiàng)目管理與計(jì)劃。介紹的主要內(nèi)容有軟件項(xiàng)目管理概述、項(xiàng)目管理過程、軟件開發(fā)成本估算、風(fēng)險(xiǎn)分析、進(jìn)度安排、軟件項(xiàng)目的組織。
此外,本書的最后給出了一個(gè)附錄,列出了軟件產(chǎn)品的主要文件,以供讀者參考。
3. 本書特點(diǎn)
本書側(cè)重于理論聯(lián)系實(shí)際,從實(shí)用性、易懂性出發(fā),重點(diǎn)突出,內(nèi)容豐富而實(shí)用。在詳細(xì)介紹理論的同時(shí),給出了部分示例,以利于讀者掌握其實(shí)際應(yīng)用的方法。此外,為了便于讀者鞏固所學(xué)的知識,在各章的后面都附有相應(yīng)的小結(jié)與練習(xí)題。
4. 適用對象
本書可作為大專院校相關(guān)專業(yè)高年級學(xué)生的教材和參考書,也可供計(jì)算機(jī)專業(yè)的高級人員參考。
本書由李代平編寫,另外張信一參加了第9、11、12章的編寫,彭重嘉參加了第13~16章的編寫。
由于作者水平有限,書中的不足之處在所難免,懇請讀者批評指正。
編者
2002年7月
第1章緒論
1.1軟件概述
1.1.1什么是計(jì)算機(jī)軟件
1.1.2軟件的特點(diǎn)
1.1.3軟件的分類
1.1.4軟件的發(fā)展
1.1.5軟件危機(jī)
1.2軟件工程概述
1.2.1軟件工程與方法學(xué)
1.2.2軟件工程的基本原理
1.2.3軟件工程的目標(biāo)
1.2.4軟件工程的內(nèi)容
1.2.5軟件工程原則
1.2.6軟件工程面臨的問題
小結(jié)
綜合練習(xí)1
第2章基本理論
2.1軟件工程過程
2.2軟件生命周期
2.2.1軟件分析時(shí)期
2.2.2軟件設(shè)計(jì)時(shí)期
2.2.3編碼與測試時(shí)期
2.2.4運(yùn)行與維護(hù)時(shí)期
2.3軟件生命周期模型
2.3.1軟件生命周期模型的概念
2.3.2瀑布模型
2.3.3原型模型
2.3.4增量模型
2.3.5螺旋模型
2.3.6噴泉模型
2.3.7基于知識的模型
2.3.8變換模型
2.4軟件開發(fā)方法
2.4.1結(jié)構(gòu)化方法
2.4.2Jackson方法
2.4.3維也納開發(fā)方法
2.4.4面向?qū)ο蟮拈_發(fā)方法
2.5軟件工具與開發(fā)
2.5.1軟件工具箱
2.5.2軟件開發(fā)環(huán)境
2.5.3計(jì)算機(jī)輔助軟件工程
小結(jié)
綜合練習(xí)2
第3章可行性研究
3.1可行性研究任務(wù)與步驟
3.1.1研究任務(wù)
3.1.2研究步驟
3.2系統(tǒng)分析
3.2.1系統(tǒng)分析員
3.2.2面臨的問題域
3.2.3通信技術(shù)
3.3分析原理
3.3.1信息域
3.3.2建立模型
3.3.3分解
3.4系統(tǒng)模型與模擬
3.4.1系統(tǒng)模型
3.4.2系統(tǒng)建模和模擬
3.5成本效益分析
3.6可行性研究的文檔
3.7項(xiàng)目開發(fā)計(jì)劃
3.7.1方案選擇
3.7.2制訂項(xiàng)目開發(fā)計(jì)劃
小結(jié)
綜合練習(xí)3
第4章軟件需求分析
4.1需求分析
4.1.1需求分析的特點(diǎn)
4.1.2需求分析的原則
4.1.3需求分析的任務(wù)
4.1.4需求分析的方法
4.2結(jié)構(gòu)化分析
4.2.1自頂向下逐層分解
4.2.2結(jié)構(gòu)化分析步驟
4.3系統(tǒng)流程圖
4.4數(shù)據(jù)流圖
4.4.1基本圖形符號
4.4.2畫數(shù)據(jù)流圖
4.4.3結(jié)構(gòu)化分析方法的應(yīng)用
4.5數(shù)據(jù)字典
4.5.1內(nèi)容及格式
4.5.2數(shù)據(jù)字典的實(shí)現(xiàn)
小結(jié)
綜合練習(xí)4
第5章總體設(shè)計(jì)
5.1軟件設(shè)計(jì)的重要性
5.2設(shè)計(jì)過程
5.3軟件總體設(shè)計(jì)
5.4設(shè)計(jì)基本原理
5.4.1抽象
5.4.2細(xì)化
5.4.3模塊化
5.4.4軟件體系結(jié)構(gòu)
5.4.5程序結(jié)構(gòu)
5.4.6數(shù)據(jù)結(jié)構(gòu)
5.4.7軟件過程
5.5體系結(jié)構(gòu)設(shè)計(jì)
5.5.1軟件結(jié)構(gòu)圖
5.5.2模塊的大小
5.5.3扇出和扇入與深度和寬度
5.5.4模塊的耦合
5.5.5模塊的內(nèi)聚
5.5.6結(jié)構(gòu)設(shè)計(jì)的一般準(zhǔn)則
5.5.7模塊的作用域與控制域
5.6結(jié)構(gòu)化設(shè)計(jì)
5.6.1數(shù)據(jù)流的類型
5.6.2過程步驟
5.6.3變換分析設(shè)計(jì)
5.6.4事務(wù)分析設(shè)計(jì)
5.6.5混合流設(shè)計(jì)
5.6.6結(jié)構(gòu)化設(shè)計(jì)方法應(yīng)用示例
5.6.7設(shè)計(jì)的后期處理
5.7軟件結(jié)構(gòu)優(yōu)化
5.7.1軟件結(jié)構(gòu)設(shè)計(jì)優(yōu)化準(zhǔn)則
5.7.2軟件結(jié)構(gòu)的HIPO圖
小結(jié)
綜合練習(xí)5
第6章軟件詳細(xì)設(shè)計(jì)
6.1詳細(xì)設(shè)計(jì)的任務(wù)與方法
6.1.1詳細(xì)設(shè)計(jì)的基本任務(wù)
6.1.2詳細(xì)設(shè)計(jì)方法
6.2設(shè)計(jì)表示法
6.2.1結(jié)構(gòu)化語言
6.2.2判定表
6.2.3判定樹
6.3結(jié)構(gòu)化程序設(shè)計(jì)
6.3.1流程圖程序
6.3.2三種基本控制結(jié)構(gòu)
6.3.3常用符號
6.3.4正規(guī)程序
6.3.5基本程序
6.3.6結(jié)構(gòu)化程序
6.4結(jié)構(gòu)化定理
6.4.1程序函數(shù)
6.4.2基本定理
6.4.3非結(jié)構(gòu)化轉(zhuǎn)換為結(jié)構(gòu)化
6.4.4常見錯(cuò)誤
6.5過程設(shè)計(jì)語言
小結(jié)
綜合練習(xí)6
第7章面向?qū)ο蠓治?
7.1面向?qū)ο蟮南嚓P(guān)概念
7.1.1對象
7.1.2類
7.1.3屬性
7.1.4服務(wù)(操作或方法)
7.1.5封裝
7.1.6繼承
7.1.7消息
7.1.8結(jié)構(gòu)與連接
7.2UML的基本圖標(biāo)
7.3對象分析
7.3.1用戶需求與研究問題域
7.3.2發(fā)現(xiàn)對象方法
7.3.3定義屬性
7.3.4定義服務(wù)
7.4一般特殊結(jié)構(gòu)
7.5整體部分結(jié)構(gòu)
7.6實(shí)例連接
7.6.1簡單的實(shí)例連接
7.6.2復(fù)雜的實(shí)例連接及其表示
7.7消息連接
小結(jié)
綜合練習(xí)7
第8章面向?qū)ο笤O(shè)計(jì)
8.1系統(tǒng)總體方案
8.2軟件體系結(jié)構(gòu)
8.3設(shè)計(jì)環(huán)境
8.3.1為適應(yīng)編程環(huán)境的調(diào)整
8.3.2對象設(shè)計(jì)的步驟
8.4完善對象的細(xì)節(jié)
8.5設(shè)計(jì)算法
8.5.1選擇算法
8.5.2選擇數(shù)據(jù)結(jié)構(gòu)
8.6關(guān)聯(lián)設(shè)計(jì)
8.6.1單向關(guān)聯(lián)
8.6.2雙向關(guān)聯(lián)
8.7設(shè)計(jì)優(yōu)化
小結(jié)
綜合練習(xí)8
第9章用戶界面設(shè)計(jì)
9.1人的因素
9.1.1分析活動(dòng)者
9.1.2從Use Case分析人機(jī)交互
9.1.3分析處理異常事件的人機(jī)交互
9.1.4命令的組織
9.1.5輸出信息的組織結(jié)構(gòu)
9.2界面設(shè)計(jì)風(fēng)格
9.2.1菜單的選擇
9.2.2對話框
9.2.3窗口
9.3人機(jī)界面的設(shè)計(jì)準(zhǔn)則
9.4人機(jī)界面設(shè)計(jì)過程
9.4.1用戶界面模型
9.4.2界面支持系統(tǒng)
9.4.3界面元素
9.4.4設(shè)計(jì)的形式
9.5描述方法與技術(shù)
9.5.1靈境技術(shù)
9.5.2多通道人機(jī)交互技術(shù)
小結(jié)
綜合練習(xí)9
第10章數(shù)據(jù)庫及其接口設(shè)計(jì)
10.1數(shù)據(jù)管理系統(tǒng)及其選擇
10.2技術(shù)整合
10.3數(shù)據(jù)接口
10.4對象存儲方案和數(shù)據(jù)接口的設(shè)計(jì)策略
10.4.1針對文件系統(tǒng)的設(shè)計(jì)
10.4.2針對RDBMS的設(shè)計(jì)
10.4.3使用OODBMS
小結(jié)
綜合練習(xí)10
第11章軟件實(shí)現(xiàn)
11.1程序設(shè)計(jì)語言的特性及選擇
11.1.1程序設(shè)計(jì)語言特性
11.1.2程序設(shè)計(jì)語言的選擇
11.2程序設(shè)計(jì)風(fēng)格
11.3程序設(shè)計(jì)效率
11.3.1代碼效率
11.3.2內(nèi)存效率
11.3.3I/O效率
11.4冗余編程
11.5軟件容錯(cuò)技術(shù)
11.5.1容錯(cuò)軟件
11.5.2容錯(cuò)的一般方法
11.5.3容錯(cuò)軟件的設(shè)計(jì)過程
11.5.4軟件的容錯(cuò)系統(tǒng)結(jié)構(gòu)
小結(jié)
綜合練習(xí)11
第12章軟件質(zhì)量
12.1軟件質(zhì)量概述
12.1.1軟件質(zhì)量的定義
12.1.2軟件質(zhì)量特性
12.1.3軟件質(zhì)量特性之間的競爭
12.2軟件質(zhì)量的度量和評價(jià)
12.2.1軟件質(zhì)量的度量
12.2.2軟件質(zhì)量度量的分類
12.2.3軟件質(zhì)量評價(jià)
12.3軟件質(zhì)量保證
12.3.1軟件質(zhì)量保證的概述
12.3.2軟件質(zhì)量保證原則
12.3.3軟件質(zhì)量保證計(jì)劃
12.3.4軟件質(zhì)量保證的措施
12.3.5軟件質(zhì)量管理小組
12.4技術(shù)評審與審查
12.4.1評審過程
12.4.2選擇參加評審的成員
12.4.3評審的管理和組織
12.4.4評審的方法
12.4.5走查和審查
12.4.6開發(fā)過程的評審
12.4.7對評審的綜合評價(jià)
12.5軟件的可靠性
小結(jié)
綜合練習(xí)12
第13章軟件測試
13.1軟件測試概述
13.1.1軟件測試的目的
13.1.2軟件測試的原則
13.2測試方法
13.2.1靜態(tài)測試
13.2.2動(dòng)態(tài)測試
13.3測試用例的設(shè)計(jì)
13.3.1白盒技術(shù)
13.3.2黑盒技術(shù)
13.4測試過程
13.4.1軟件測試過程中的信息
13.4.2軟件測試的步驟與各開發(fā)階段的關(guān)系
13.4.3單元測試
13.4.4集成測試
13.4.5確認(rèn)測試
13.5調(diào)試
小結(jié)
綜合練習(xí)13
第14章軟件維護(hù)
14.1軟件維護(hù)概述
14.1.1軟件維護(hù)的定義
14.1.2影響維護(hù)工作的因素
14.1.3維護(hù)成本
14.2軟件可維護(hù)性
14.2.1軟件可維護(hù)性的定義
14.2.2可維護(hù)性的度量
14.3軟件維護(hù)的特點(diǎn)
14.3.1非結(jié)構(gòu)化維護(hù)和結(jié)構(gòu)化維護(hù)
14.3.2維護(hù)的困難性
14.3.3軟件維護(hù)的費(fèi)用
14.4軟件維護(hù)的實(shí)施
14.4.1維護(hù)的組織
14.4.2維護(hù)的流程
14.4.3維護(hù)技術(shù)
14.4.4維護(hù)的副作用
14.5維護(hù)“老化代碼”
14.6逆向工程和再工程
14.6.1預(yù)防性維護(hù)
14.6.2逆向工程的元素
14.6.3再工程中的重構(gòu)技術(shù)
小結(jié)
綜合練習(xí)14
第15章軟件項(xiàng)目管理與計(jì)劃
15.1軟件項(xiàng)目管理概述
15.1.1軟件管理的對象
15.1.2軟件開發(fā)中的資源
15.1.3分解技術(shù)
15.2項(xiàng)目管理過程
15.3軟件開發(fā)成本估算
15.3.1軟件開發(fā)成本估算方法
15.3.2軟件開發(fā)成本估算的經(jīng)驗(yàn)?zāi)P?
15.4風(fēng)險(xiǎn)分析
15.4.1風(fēng)險(xiǎn)識別
15.4.2風(fēng)險(xiǎn)估算
15.4.3風(fēng)險(xiǎn)評價(jià)
15.4.4風(fēng)險(xiǎn)駕馭和監(jiān)控
15.5進(jìn)度安排
15.5.1軟件開發(fā)小組人數(shù)與軟件生產(chǎn)率
15.5.2任務(wù)的確定與并行性
15.5.3制定開發(fā)進(jìn)度計(jì)劃
15.5.4進(jìn)度安排的圖形方法
15.5.5項(xiàng)目的追蹤和控制
15.6軟件項(xiàng)目的組織
15.6.1軟件項(xiàng)目管理的特點(diǎn)
15.6.2軟件項(xiàng)目組織的建立
15.6.3人員配備
小結(jié)
綜合練習(xí)15
參考答案
參考文獻(xiàn)
總體設(shè)計(jì)的基本目標(biāo)就是概要地回答系統(tǒng)應(yīng)該如何實(shí)現(xiàn)。設(shè)計(jì)在任何工程產(chǎn)品或系統(tǒng)中,是開發(fā)階段的第一步。設(shè)計(jì)(Design)可以定義為應(yīng)用各種技術(shù)和原理,對一個(gè)設(shè)備、一個(gè)過程或一個(gè)系統(tǒng),做出足夠詳細(xì)的決策,使之有可能在物理上得以實(shí)現(xiàn)的過程。
系統(tǒng)的總體設(shè)計(jì)是在前面系統(tǒng)分析的基礎(chǔ)上,為后期將要構(gòu)造的系統(tǒng)實(shí)體建立一個(gè)模型(Model)或表達(dá)式(Representation)。與其他學(xué)科的工程設(shè)計(jì)方法一樣,隨著新理論新方法的不斷出現(xiàn)而繼續(xù)發(fā)展。與其他技術(shù)領(lǐng)域比較,軟件設(shè)計(jì)在它的發(fā)展中仍處于早期階段。研究與分析軟件設(shè)計(jì)問題才不過30年左右的時(shí)間。由此可見軟件設(shè)計(jì)方法還缺少更為經(jīng)典的工程設(shè)計(jì)學(xué)科所具有的深度、適應(yīng)性(Flexibility)和定量性質(zhì)。但是,已經(jīng)有一些軟件設(shè)計(jì)技術(shù)、設(shè)計(jì)質(zhì)量準(zhǔn)則及設(shè)計(jì)符號表示法。
5.1軟件設(shè)計(jì)的重要性
軟件設(shè)計(jì)處于軟件工程過程的技術(shù)核心地位。軟件開發(fā)中不管應(yīng)用什么樣的開發(fā)模式(Development Paradigm),都要進(jìn)行軟件設(shè)計(jì)。當(dāng)軟件需求分析和定義完成后,就進(jìn)入設(shè)計(jì)階段。它是在對系統(tǒng)的信息、功能、行為和各種要求理解的基礎(chǔ)上構(gòu)想未來的系統(tǒng)。這種構(gòu)想是否正確與完美,需要后面的編碼階段來構(gòu)造,測試階段來驗(yàn)證。軟件設(shè)計(jì)、軟件構(gòu)造與驗(yàn)證,這三項(xiàng)活動(dòng)是必不可少的。每一項(xiàng)都是按一定形式變換信息,最終使之成為被確認(rèn)的計(jì)算機(jī)軟件。在軟件工程過程中,這些技術(shù)階段的信息流如圖51所示。
由圖51可以看出,在軟件需求提供的信息(Information)、功能(Functional)和行為(Behavioral)模型上,設(shè)計(jì)階段可以使用任何一種設(shè)計(jì)方法。設(shè)計(jì)階段包括: 把分析階段所建立的信息域模型變換為數(shù)據(jù)結(jié)構(gòu),這種數(shù)據(jù)結(jié)構(gòu)是軟件實(shí)現(xiàn)所需要的,也包括定義程序結(jié)構(gòu)構(gòu)件(Structural Components)之間相互關(guān)系的體系結(jié)構(gòu)(Architectural)設(shè)計(jì)。另外還包括變換結(jié)構(gòu)構(gòu)件為軟件的過程描述的過程(Procedural)設(shè)計(jì)。源代碼生成并通過測試之后,進(jìn)行軟件的組裝(Integrate)和確認(rèn)(Validate)。
在設(shè)計(jì)中所作的決策將最終影響軟件實(shí)現(xiàn)的成功與否,也影響軟件維護(hù)的難易程度。所以,在軟件設(shè)計(jì)過程中的這些決策是開發(fā)階段非常關(guān)鍵的一步。
軟件設(shè)計(jì)的重要性還反映在質(zhì)量(Quality)上。在開發(fā)過程中,設(shè)計(jì)是對軟件最本質(zhì)的部分進(jìn)行構(gòu)造,構(gòu)造的水平?jīng)Q定軟件質(zhì)量。同時(shí),設(shè)計(jì)也提供了可以進(jìn)行質(zhì)量評價(jià)的軟件表達(dá)式。只有通過設(shè)計(jì),才能把用戶的需求精確地轉(zhuǎn)換為完美的軟件系統(tǒng)。軟件設(shè)計(jì)是整個(gè)軟件工程和軟件維護(hù)的基礎(chǔ),如圖52所示。
圖51軟件設(shè)計(jì)與軟件工程
圖52設(shè)計(jì)的重要性
對于一個(gè)軟件系統(tǒng),如果不進(jìn)行設(shè)計(jì)而構(gòu)造一個(gè)系統(tǒng),可以肯定這個(gè)系統(tǒng)是不穩(wěn)定的。這個(gè)系統(tǒng)即使發(fā)生很小的變動(dòng),都可能出現(xiàn)故障,而且很難測試,直到軟件工程過程的最后,系統(tǒng)的質(zhì)量仍無法評價(jià)。
5.2設(shè)計(jì)過程
軟件設(shè)計(jì)是一個(gè)把需求轉(zhuǎn)換為軟件表達(dá)式的過程。這個(gè)表達(dá)式過程一般情況下是分為兩步走。首先,這種表達(dá)式只是描繪一個(gè)軟件的概貌。然后,細(xì)化為一個(gè)非常接近于源代碼的設(shè)計(jì)表達(dá)式。從軟件工程的角度講是分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)?傮w設(shè)計(jì)主要是把需求轉(zhuǎn)換為數(shù)據(jù)結(jié)構(gòu)和軟件體系結(jié)構(gòu),而詳細(xì)設(shè)計(jì)主要集中在體系結(jié)構(gòu)表達(dá)式的細(xì)化,從而產(chǎn)生詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和軟件的算法表達(dá)式。
軟件設(shè)計(jì)的發(fā)展在早期的設(shè)計(jì)工作中,著重在開發(fā)模塊化程序模塊所需要的準(zhǔn)則,以及按照自頂向下(TopDown)的方式逐步細(xì)化軟件體系結(jié)構(gòu)上。接著設(shè)計(jì)定義的過程方面逐漸發(fā)展成為一種叫做結(jié)構(gòu)化編程(Structured Programming)的原則。之后,提出了把數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)翻譯成設(shè)計(jì)定義的方法。近年來,多采用OO的設(shè)計(jì)方法?偨Y(jié)過去軟件設(shè)計(jì)的發(fā)展,可以歸納為是一個(gè)持續(xù)發(fā)展的過程。
在比較小的軟件設(shè)計(jì)中,可以把總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)作為一個(gè)過程階段去完成。但是有一定規(guī)模的系統(tǒng)中,總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)是兩個(gè)明確的階段,所以它們中的許多設(shè)計(jì)活動(dòng)是不同的。除了數(shù)據(jù)、體系結(jié)構(gòu)和過程設(shè)計(jì)之外,在現(xiàn)代的許多應(yīng)用中還包括界面設(shè)計(jì)活動(dòng)。界面設(shè)計(jì)主要是建立人機(jī)之間界面的布局和交互的機(jī)制。
圖53設(shè)計(jì)技術(shù)和管理方面
之間的關(guān)系
總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)除了必須有先進(jìn)的設(shè)計(jì)技術(shù)外,還要有同步的管理技術(shù)支持。用如圖53所示的形式表明設(shè)計(jì)技術(shù)和管理方面之間的關(guān)系。
從圖53中可以看出,由技術(shù)支持的總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)都伴隨著管理技術(shù)。
前面已經(jīng)提到,軟件設(shè)計(jì)的重要性之一就是軟件的質(zhì)量。在整個(gè)設(shè)計(jì)過程中,設(shè)計(jì)每一步的質(zhì)量都要進(jìn)行正式的技術(shù)評審(Formal Technical Reviews)。要按照設(shè)計(jì)準(zhǔn)則對設(shè)計(jì)表達(dá)式的質(zhì)量進(jìn)行評價(jià)。這里給出軟件設(shè)計(jì)原則如下。
(1) 設(shè)計(jì)應(yīng)當(dāng)模塊化(Modular),也就是說,軟件應(yīng)被邏輯地劃分為能完成特定功能和子功能的構(gòu)件。
(2) 設(shè)計(jì)應(yīng)形成具有獨(dú)立功能特征的模塊(如子程序或過程)。
(3) 設(shè)計(jì)應(yīng)使模塊之間和與外部環(huán)境之間接口的復(fù)雜性盡量地降低。
(4) 設(shè)計(jì)應(yīng)該有一個(gè)分層的組織結(jié)構(gòu),這樣人們可對軟件各個(gè)構(gòu)件進(jìn)行理性的控制。
(5) 設(shè)計(jì)應(yīng)有性質(zhì)不同的可區(qū)分的數(shù)據(jù)和過程表達(dá)式。
(6) 設(shè)計(jì)應(yīng)利用軟件需求分析中得到的信息和可重復(fù)的方法。
……
你還可能感興趣
我要評論
|