出版時間:2009-5 出版社:竇萬峰、 等 機械工業(yè)出版社 (2009-05出版) 作者:竇萬峰 頁數(shù):287
前言
軟件工程概念自1968年提出以來,經(jīng)過了近四十年的發(fā)展,為軟件行業(yè)從業(yè)人員從事軟件開發(fā)和維護提供了理論指導和基本原則,促進了軟件產(chǎn)品和軟件行業(yè)的快速發(fā)展,也促進了軟件工程自身的理論體系的完善和發(fā)展。軟件工程涉及軟件分析、設(shè)計、實現(xiàn)和維護等軟件生命全過程,包含了一系列原理、方法和實踐,指導人們進行正確的軟件開發(fā)。軟件工程強調(diào)從工程化的原理出發(fā),按照標準化規(guī)程和軟件工程實踐來開發(fā)和管理項目,并進行過程改進,促進軟件企業(yè)向標準化和成熟化發(fā)展。軟件工程領(lǐng)域包括三個重要方面:軟件開發(fā)、軟件項目管理、過程改進。軟件工程是一個理論與實踐相結(jié)合的學科,更注重通過實踐來理解理論和原理與方法。為此,本書結(jié)合作者多年從事軟件工程教學和項目開發(fā)的經(jīng)驗,通過5個項目實例,從不同的角度和范型循序漸進介紹軟件開發(fā)過程中所涉及的原理、方法與技術(shù)。全書分為五個部分:第一部分:軟件工程概述。共4章內(nèi)容,初步介紹軟件工程的基本概念,涉及的主要內(nèi)容,軟件過程生命周期及其模型,以及本教材的案例與要求。第二部分:軟件分析。在這一部分共安排了3章內(nèi)容,主要介紹軟件分析與建模的原理和方法,包括結(jié)構(gòu)化分析和面向?qū)ο蠓治龅脑砗头椒ā1静糠址謩e介紹了分析的基本過程、非形式化的分析方法和獲取需求的策略;介紹了結(jié)構(gòu)化分析建模技術(shù),包括面向數(shù)據(jù)流的分析技術(shù)和面向數(shù)據(jù)的分析技術(shù);介紹了面向?qū)ο蠓治鼋<夹g(shù),包括用例建模、對象建模等,介紹如何用UMI.語言表示面向?qū)ο竽P?。本部分用案例進一步深化分析的思想和原理及過程。第三部分:軟件設(shè)計。在這一部分共安排4章內(nèi)容,主要介紹軟件設(shè)計原理和方法,包括結(jié)構(gòu)化設(shè)計和面向?qū)ο笤O(shè)計技術(shù)。介紹設(shè)計的基本概念、原理和過程;介紹面向數(shù)據(jù)流的設(shè)計方法和面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法;介紹面向?qū)ο蟮脑O(shè)計方法,包括設(shè)計模型、精化設(shè)計、動態(tài)設(shè)計;介紹詳細設(shè)計和界面設(shè)計等。本部分通過案例深入理解設(shè)計方法和過程。第四部分:軟件測試與維護。在這一部分安排兩章內(nèi)容,主要介紹軟件測試原理與技術(shù)、維護策略與方法。介紹測試過程、測試基本技術(shù)、測試用例設(shè)計;介紹軟件維護類型、可維護性和結(jié)構(gòu)化維護過程。
內(nèi)容概要
軟件工程學將計算機科學理論與現(xiàn)代工程方法論相結(jié)合,著重研究軟件過程模型、分析與設(shè)計方法、軟件工程開發(fā)與管理技術(shù)和工具,是指導軟件生產(chǎn)和管理的一門新興的、綜合性的應(yīng)用科學?!盾浖こ谭椒ㄅc實踐》分別從傳統(tǒng)的結(jié)構(gòu)化開發(fā)范型和面向?qū)ο箝_發(fā)范型兩個方面,把軟件工程的概念和理論知識融入到實踐當中,通過豐富的案例分析與設(shè)計,更深入地理解軟件開發(fā)中各個階段的技術(shù)、方法和管理過程?!盾浖こ谭椒ㄅc實踐》包括軟件工程與過程、軟件需求分析與建模、軟件設(shè)計、軟件測試與維護和軟件工程管理五個部分,共16章,深入介紹了軟件開發(fā)“工程化”思想。 《軟件工程方法與實踐》適合作為高等院校軟件工程課程的教材,即適用于計算機專業(yè)的學生,也適用于其他非計算機專業(yè)從事軟件開發(fā)與應(yīng)用及管理的專業(yè)學生和技術(shù)人員學習的教材?!盾浖こ谭椒ㄅc實踐》還可以成為從事軟件開發(fā)人員必備的參考書?! 盾浖こ谭椒ㄅc實踐》將軟件工程原理和實踐分析相結(jié)合,以案例項目為主線貫穿全書,介紹了軟件工程涉及的概念。原理和方法,按照軟件工程階段要求建立系統(tǒng)模型,包括分析。設(shè)計、測試、管理等。在每個階段安排能夠體現(xiàn)該階段原理和思想的案例,全面介紹軟件工程的要點,使學生能夠深入理解軟件工程的原理。方法和技術(shù)并充分認識開發(fā)過程和迭代工作的重要性,同時進一步了解企業(yè)軟件工程運用的規(guī)范和要求,為日后工作中出色完成項目任務(wù)和迭代任務(wù)打下堅實的基礎(chǔ)?! 盾浖こ谭椒ㄅc實踐》特點 ·堅持基本理論適度,強調(diào)工程實踐和應(yīng)用環(huán)節(jié),把軟件工程的概念和理論知識融入實踐之中。 ·以”案例”為驅(qū)動,以實踐教學為基礎(chǔ),提供5個典型案例支持,不同的案例介紹和分析層次充分體現(xiàn)技術(shù)的適用性和方法的實用性?! ぷ⒅亟虒W資源的配套,為任課教師配有電子教案?! づ涮捉滩摹盾浖こ虒嶒灲坛獭?,引導學生學習軟件生命周期各階段所用到的CASE工具,包括軟件文檔標準與規(guī)范。軟件分析與設(shè)計、軟件測試和軟件項目管理四個部分,共設(shè)計了15個實驗,培養(yǎng)學生實踐創(chuàng)新能力和專業(yè)技能。
書籍目錄
前言 教學建議第一部分 軟件工程與過程第1章 概述21.1 軟件工程的基本概念21.1.1 軟件的角色和特性21.1.2 軟件演化31.1.3 軟件神化和危機41.1.4 軟件危機的解決途徑41.2 工程化思想51.2.1 工程化所涉及的范圍51.2.2 工程化管理思想51.3 軟件工程兩大范型51.4 軟件工程思想與基本原理61.4.1 軟件工程基本原理71.4.2 軟件工程思想71.5 軟件工程活動91.5.1 軟件開發(fā)活動91.5.2 軟件項目管理活動91.5.3 軟件過程改進活動101.6 小結(jié)10習題10第2章 軟件過程112.1 軟件過程概述112.1.1 過程方法與工具112.1.2 軟件過程框架122.1.3 軟件過程模型122.2 軟件生命周期122.3 能力成熟度模型集成132.4 敏捷過程162.4.1 什么是敏捷過程172.4.2 極限編程182.4.3 自適應(yīng)軟件開發(fā)202.4.4 動態(tài)系統(tǒng)開發(fā)212.4.5 特征驅(qū)動開發(fā)212.5 軟件工程實踐222.5.1 概念222.5.2 溝通實踐232.5.3 計劃實踐232.6 小結(jié)24習題24第3章 軟件過程模型253.1 瀑布模型253.2 增量模型263.2.1 增量構(gòu)造模型273.2.2 演化提交模型273.3 螺旋模型273.4 協(xié)同開發(fā)模型283.5 面向?qū)ο筮^程模型293.5.1 面向?qū)ο蟾拍?93.5.2 統(tǒng)一過程模型303.5.3 組件集成模型333.6 面向方面的軟件開發(fā)343.7 小結(jié)36習題36第4章 案例研究374.1 案例研究中涵蓋的內(nèi)容374.2 案例1:出卷系統(tǒng)374.3 案例2:短信系統(tǒng)374.4 案例3:POS機系統(tǒng)384.5 案例4:ATM機系統(tǒng)384.6 案例5:圖書館系統(tǒng)384.7 小結(jié)38習題38第二部分 軟件需求分析與建模第5章 軟件需求分析過程405.1 什么是軟件需求405.1.1 功能需求405.1.2 非功能需求405.1.3 領(lǐng)域需求415.2 需求分析過程435.2.1 初步溝通435.2.2 導出需求435.2.3 分析和精化445.2.4 可行性研究445.2.5 協(xié)商與溝通445.2.6 規(guī)格說明445.2.7 需求驗證465.2.8 需求變更管理465.3 啟動分析過程465.3.1 確認利益相關(guān)者465.3.2 識別視點475.3.3 協(xié)同工作475.3.4 首次提問475.4 非形式化需求分析技術(shù)475.4.1 會談475.4.2 調(diào)查表495.4.3 場景分析495.5 案例分析495.5.1 出卷系統(tǒng)495.5.2 POS機系統(tǒng)505.5.3 圖書館系統(tǒng)505.5.4 短信系統(tǒng)515.5.5 ATM機系統(tǒng)515.6 小結(jié)51習題52第6章 結(jié)構(gòu)化分析建模536.1 分析模型概述536.1.1 分析模型元素536.1.2 分析模式546.1.3 目標與原理546.2 結(jié)構(gòu)化需求分析546.2.1 結(jié)構(gòu)化分析方法556.2.2 結(jié)構(gòu)化分析模型556.3 面向數(shù)據(jù)的建模方法566.3.1 實體566.3.2 屬性566.3.3 關(guān)系576.3.4 基數(shù)576.3.5 案例分析576.4 面向數(shù)據(jù)流的建模586.4.1 數(shù)據(jù)流圖586.4.2 數(shù)據(jù)字典606.4.3 狀態(tài)轉(zhuǎn)換圖616.4.4 加工邏輯的描述616.5 案例分析646.5.1 出卷系統(tǒng)646.5.2 圖書館系統(tǒng)666.5.3 POS機系統(tǒng)686.5.4 短信系統(tǒng)696.6 小結(jié)71習題71第7章 面向?qū)ο蠓治?37.1 面向?qū)ο蠼?37.1.1 面向?qū)ο竽P?37.1.2 統(tǒng)一建模語言(UML)757.2 用例建模767.2.1 編寫用例767.2.2 開發(fā)活動圖817.2.3 泳道圖827.3 建立領(lǐng)域模型827.3.1 識別分析類837.3.2 用例實現(xiàn)分析847.3.3 關(guān)聯(lián)與依賴867.3.4 識別屬性和操作867.4 行為建模877.4.1 系統(tǒng)順序圖877.4.2 操作契約887.4.3 順序圖與協(xié)作圖897.4.4 狀態(tài)圖907.5 案例分析907.5.1 POS機系統(tǒng)917.5.2 ATM機系統(tǒng)927.5.3 短信系統(tǒng)967.6 小結(jié)98習題98第三部分 軟件設(shè)計與建模第8章 軟件設(shè)計1008.1 軟件設(shè)計概述1008.1.1 軟件設(shè)計過程和設(shè)計質(zhì)量1008.1.2 概要設(shè)計說明書1018.1.3 詳細設(shè)計說明書1028.2 軟件模塊化設(shè)計1038.2.1 軟件模塊化1038.2.2 抽象1048.2.3 體系結(jié)構(gòu)1048.2.4 信息隱蔽1048.2.5 模塊獨立性1058.2.6 逐步求精1068.2.7 重構(gòu)1068.3 軟件結(jié)構(gòu)1068.3.1 軟件結(jié)構(gòu)圖1068.3.2 模塊化設(shè)計的優(yōu)化1078.4 軟件系統(tǒng)結(jié)構(gòu)模型1088.4.1 系統(tǒng)構(gòu)成模型1088.4.2 系統(tǒng)控制模型1108.5 體系結(jié)構(gòu)模式1118.6 小結(jié)111習題111第9章 結(jié)構(gòu)化設(shè)計方法..1 139.1 結(jié)構(gòu)化設(shè)計方法概述1139.1.1 概要設(shè)計1139.1.2 詳細設(shè)計1139.2 數(shù)據(jù)流類型1149.2.1 變換型數(shù)據(jù)流1149.2.2 事務(wù)型數(shù)據(jù)流1149.2.3 混合型數(shù)據(jù)流1149.3 數(shù)據(jù)流設(shè)計方法1159.3.1 數(shù)據(jù)流映射步驟1159.3.2 變換流設(shè)計1159.3.3 事務(wù)流設(shè)計1169.3.4 綜合分層的數(shù)據(jù)流設(shè)計1179.4 面向數(shù)據(jù)的設(shè)計1189.4.1 Jackson圖1189.4.2 JSD方法設(shè)計步驟1189.4.3 JSD舉例分析1199.5 結(jié)構(gòu)化程序設(shè)計方法1219.5.1 基本概念1219.5.2 結(jié)構(gòu)化程序設(shè)計工具1229.6 案例分析1269.6.1 出卷系統(tǒng)1269.6.2 圖書館系統(tǒng)1299.7 小結(jié)131習題131第10章 面向?qū)ο笤O(shè)計13410.1 面向?qū)ο笤O(shè)計過程13410.1.1 系統(tǒng)模型描述13410.1.2 邏輯架構(gòu)和包圖13410.1.3 對象識別13510.1.4 設(shè)計模型13510.1.5 對象接口描述13710.2 構(gòu)件級設(shè)計13710.2.1 構(gòu)件類13710.2.2 構(gòu)件級設(shè)計步驟13810.2.3 基于類的構(gòu)件設(shè)計原則13910.3 設(shè)計模式14010.3.1 設(shè)計模式概述14010.3.2 基于職責的設(shè)計14010.4 面向?qū)ο笤敿氃O(shè)計14410.4.1 領(lǐng)域模型精化14410.4.2 邏輯架構(gòu)精化14710.4.3 包設(shè)計14910.4.4 精化的交互圖15010.4.5 精化的類圖15210.4.6 持久性設(shè)計15410.4.7 部署圖與構(gòu)件圖15610.5 案例分析15710.5.1 POS機系統(tǒng)15710.5.2 短信系統(tǒng)15810.5.3 ATM機系統(tǒng)15910.6 小結(jié)163習題164第11章 軟件實現(xiàn)16511.1 編碼語言16511.1.1 編碼語言的分類16511.1.2 編碼語言特性16511.1.3 面向?qū)ο笳Z言的特點16611.1.4 編碼語言的選擇16711.2 編碼風格16811.2.1 編碼的基本原則16811.2.2 面向?qū)ο缶幋a原則16911.3 人機界面設(shè)計17111.3.1 人機界面分析和設(shè)計17111.3.2 人機界面設(shè)計步驟17311.3.3 人機界面設(shè)計指南17411.4 案例分析17511.4.1 POS機系統(tǒng)17511.4.2 短信系統(tǒng)17711.4.3 出卷系統(tǒng)19111.5 小結(jié)194習題194第四部分 軟件測試與維護第12章 軟件測試19612.1 軟件測試的任務(wù)19612.1.1 驗證與確認19612.1.2 軟件測試的組織形式19712.1.3 軟件測試的目的與原則19712.1.4 完成標準19912.2 軟件測試過程模型20012.2.1 V模型20012.2.2 W模型20012.2.3 H模型20112.3 軟件測試策略20112.3.1 單元測試20212.3.2 集成測試20412.3.3 確認測試20512.3.4 系統(tǒng)測試20512.4 測試用例設(shè)計20512.4.1 測試用例設(shè)計的目的20512.4.2 測試用例設(shè)計的方法和描述20612.4.3 測試用例設(shè)計的重要性和影響因素20612.4.4 編寫測試用例時的注意事項20612.5 黑盒技術(shù)20712.5.1 等價類劃分法20712.5.2 邊界值分析法20812.5.3 錯誤推測法20912.5.4 因果圖法20912.6 白盒技術(shù)21112.6.1 邏輯覆蓋法21212.6.2 基本路徑測試法21412.6.3 循環(huán)測試法21812.7 集成測試技術(shù)21912.7.1 集成策略21912.7.2 接口測試22112.8 自動測試工具22112.9 調(diào)試22212.9.1 調(diào)試過程22212.9.2 調(diào)試策略22312.1 0案例分析22412.1 1小結(jié)229習題230第13章 軟件維護23113.1 軟件維護概述23113.1.1 軟件維護的任務(wù)23113.1.2 軟件維護的特點23113.1.3 軟件可維護性23213.2 軟件維護類型23213.2.1 糾錯性維護23213.2.2 完善性維護23313.2.3 適應(yīng)性維護23313.2.4 預防性維護23313.3 軟件維護技術(shù)與過程23313.3.1 面向維護的技術(shù)23413.3.2 維護支援技術(shù)23413.3.3 軟件維護過程23413.4 非結(jié)構(gòu)化維護和結(jié)構(gòu)化維護23613.5 提高可維護性23613.6 面向?qū)ο蟮能浖S護23813.7 小結(jié)238習題238第五部分 軟件工程管理第14章 軟件項目管理24014.1 項目管理概述24014.2 軟件項目管理范圍24114.2.1 人員24114.2.2 項目和過程24214.2.3 軟件度量24314.2.4 軟件項目管理計劃文檔24414.3 軟件團隊組織范式24614.3.1 民主分權(quán)式24614.3.2 控制集權(quán)式24714.3.3 控制分權(quán)式24814.3.4 敏捷團隊24814.4 項目組織原則24914.5 軟件過程管理24914.5.1 軟件過程度量24914.5.2 軟件過程改進25014.5.3 項目度量25114.6 風險管理25114.6.1 風險識別25214.6.2 風險預測25214.6.3 風險管理25214.7 軟件配置管理25314.7.1 SCM基本概念25314.7.2 SCM過程25414.7.3 SCM中心存儲庫25514.8 小結(jié)256習題256第15章 軟件項目估算25715.1 概述25715.1.1 項目計劃與范圍25715.1.2 項目資源25715.2 軟件規(guī)模度量25815.2.1 面向規(guī)模的度量25815.2.2 面向?qū)ο蟮亩攘?6015.3 軟件成本估算的分解技術(shù)26015.3.1 基于問題分解的估算26015.3.2 基于過程分解的估算26215.4 經(jīng)驗估算模型26315.4.1 專家類比推斷26315.4.2 由底向上估算方法26315.4.3 構(gòu)造性成本模型26415.5 成本估算管理26615.6 案例分析26615.6.1 短信系統(tǒng)26615.6.2 POS機系統(tǒng)26715.7 小結(jié)268習題269第16章 軟件項目計劃與管理27016.1 軟件質(zhì)量管理27016.1.1 質(zhì)量概念27016.1.2 軟件質(zhì)量保證27116.1.3 軟件質(zhì)量度量27216.1.4 軟件復審27516.1.5 軟件質(zhì)量認證標準27616.2 項目計劃27816.2.1 項目進度安排27816.2.2 進度安排方法27916.2.3 項目進度的跟蹤管理28116.3 軟件項目管理工具28116.4 小結(jié)286習題287參考文獻2 88
章節(jié)摘錄
插圖:第1章 概述軟件工程(Software Engineering,SE)的概念是在20世紀60年代末期提出的。這一概念的提出,目的是倡導以工程的原理、原則和方法進行軟件開發(fā),用來解決當時出現(xiàn)的“軟件危機”。B.W.Boehm為軟件工程下的定義為:“運用現(xiàn)代科學技術(shù)知識來設(shè)計并構(gòu)造計算機程序及為開發(fā)、運行和維護這些程序所必需的相關(guān)文件資料?!盕ritz Bauer為軟件工程下的定義為:“軟件工程是為了經(jīng)濟地獲得能夠在實際機器上有效運行的可靠軟件而建立和使用的一系列完善的工程化原則?!?983年IEEE(國際電氣與電子工程師協(xié)會)提出了IEEE軟件工程標準術(shù)語,將軟件工程定義為:“開發(fā)、運行、維護和修復軟件的系統(tǒng)方法”。其中,“軟件”的定義為:“計算機程序、方法、規(guī)則、相關(guān)的文件資料以及在計算機上運行時所必需的數(shù)據(jù)?!北M管軟件工程的具體定義不盡相同,且又有一些學者提出了更完善的定義,但其主要思想都是在強調(diào)在軟件開發(fā)的過程中應(yīng)用工程化思想的重要性。軟件工程的目標是:根據(jù)需求分析確定可行性后,在給定的時間內(nèi)開發(fā)出具有可修改性、有效性、可靠性、可維護性、可重用性、可適應(yīng)性、可移植性、開銷合宜并滿足用戶需要的軟件產(chǎn)品。1.1 軟件工程的基本概念軟件工程的主旨是以工程化的思想進行軟件開發(fā),以生產(chǎn)高質(zhì)量和高效率的軟件,也就是說,軟件工程研究的基礎(chǔ)就是軟件。那么,軟件是怎么定義的?又有哪些特性?
編輯推薦
《軟件工程方法與實踐》:分別從結(jié)構(gòu)化開發(fā)范型和面向?qū)ο箝_發(fā)范型角度循序漸進介紹軟件開發(fā)過程相關(guān)的原理、方法和技術(shù)。理論知識和案例分析相結(jié)合,以5個典型案例項目貫穿全書。
圖書封面
評論、評分、閱讀與下載