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