出版時間:2011-1 出版社:機(jī)械工業(yè)出版社 作者:呂云翔,王洋,王昕鵬 編著 頁數(shù):231
前言
20世紀(jì)60年代,為了解決出現(xiàn)的“軟件危機(jī)”,人們提出了軟件工程的概念,并將其定義為“為了經(jīng)濟(jì)地獲得可靠的和能在實際機(jī)器上高效運行的軟件,而建立和使用的健全的工程規(guī)則”。經(jīng)過40多年的發(fā)展,人們對軟件工程有了更全面更科學(xué)的認(rèn)識,軟件工程已經(jīng)成為一門包括理論、方法、過程等內(nèi)容的獨立的學(xué)科,并出現(xiàn)了相應(yīng)的軟件工程支撐工具。 然而即使在21世紀(jì)的今天,軟件危機(jī)的種種表現(xiàn)依然沒有徹底地得到解決,現(xiàn)實中的很多項目依然掙扎在無法完成或無法按照規(guī)定的時間、成本、按預(yù)期的質(zhì)量完成的泥潭中,面臨著失敗的危險。究其原因,是軟件工程的思想和方法并未深入到計算機(jī)科學(xué)技術(shù),特別是軟件開發(fā)領(lǐng)域中,并指導(dǎo)人們的開發(fā)行為。 為了振興中國的計算機(jī)和軟件產(chǎn)業(yè),培養(yǎng)具備軟件工程思想和技術(shù),并具有相應(yīng)開發(fā)經(jīng)驗的人才,國家近年來十分重視軟件工程相關(guān)課程的建設(shè)和人才培養(yǎng)。除了建立專門的軟件工程專業(yè),也倡導(dǎo)在計算機(jī)科學(xué)與技術(shù)及相關(guān)專業(yè)開設(shè)軟件工程課程,使得軟件工程思想和技術(shù)在中國的IT人才中得到普及。 本書面向普通大學(xué)計算機(jī)及相關(guān)專業(yè)的學(xué)生,也可供計算機(jī)和軟件開發(fā)愛好者自學(xué)使用。為了體現(xiàn)軟件工程知識體系的層次,并具有更好的實踐指導(dǎo)意義,本書除了介紹軟件工程的基本概念、理論、方法和過程,還十分重視軟件工程相關(guān)工具使用方法的介紹,并通過實際案例來講述軟件工程在實際軟件項目開發(fā)中的應(yīng)用和體現(xiàn)。 本書按照典型的軟件開發(fā)過程來組織內(nèi)容,全書分為8章。第1章概要介紹軟件工程的起源,軟件工程相關(guān)概念,軟件工程方法、過程和工具;第2~5章分別介紹軟件可行性研究及軟件需求分析,軟件設(shè)計,軟件編碼及實現(xiàn),軟件測試與維護(hù);第6章詳細(xì)介紹了面向?qū)ο蟮能浖こ蹋坏?章介紹了軟件工程中涉及的管理方面的相關(guān)內(nèi)容,包括項目計劃、軟件資源管理、進(jìn)度管理、人員管理、風(fēng)險管理等內(nèi)容。 每章開頭的“本章目標(biāo)”概述了該章的主要內(nèi)容;每章基本按照基礎(chǔ)理論和知識介紹、相關(guān)技術(shù)和方法介紹、軟件工程工具使用介紹和實際軟件項目應(yīng)用介紹的順序來組織內(nèi)容;每章小結(jié)對該章主要內(nèi)容進(jìn)行總結(jié)和回顧;在每章的最后給出了一定數(shù)量的練習(xí)題,幫助讀者檢驗該章的學(xué)習(xí)效果,加深重點知識的印象。
內(nèi)容概要
本書按照典型的軟件開發(fā)過程來組織內(nèi)容,旨在培養(yǎng)學(xué)生具備軟件工程思想以及實際軟件開發(fā)的能力。全書共8章,主要內(nèi)容包括:軟件工程的起源,軟件工程相關(guān)概念,軟件工程方法、過程和工具;軟件可行性研究及軟件需求分析,軟件設(shè)計,軟件編碼及實現(xiàn),軟件測試與維護(hù);面向?qū)ο蟮能浖こ?;軟件工程中涉及的管理方面的相關(guān)內(nèi)容,如項目計劃、軟件資源管理、進(jìn)度管理、人員管理、風(fēng)險管理等內(nèi)容。 本書可作為普通高校計算機(jī)相關(guān)專業(yè)“軟件工程”課程的教材,也可供業(yè)余計算機(jī)和軟件開發(fā)愛好者參考。
書籍目錄
前言教學(xué)建議第1章 軟件工程概述 1.1 軟件概述 1.1.1 軟件的概念及特點 1.1.2 軟件的分類 1.2 軟件危機(jī) 1.2.1 軟件危機(jī)的表現(xiàn)與原因 1.2.2 軟件危機(jī)的啟示 1.3 軟件工程 1.3.1 軟件工程概念 1.3.2 軟件工程發(fā)展 1.3.3 軟件工程目標(biāo)和原則 1.3.4 軟件工程知識體 1.4 軟件過程 1.4.1 軟件過程概念 1.4.2 軟件過程標(biāo)準(zhǔn) 1.4.3 軟件生存周期模型 1.5 軟件開發(fā)方法 1.6 軟件工程工具 1.7 軟件工程課程學(xué)習(xí)資源 1.8 “學(xué)生檔案管理系統(tǒng)”案例介紹 1.9 小結(jié) 1.10 練習(xí)題第2章 可行性研究及軟件需求分析 2.1 可行性研究 2.1.1 項目立項概述 2.1.2 可行性研究內(nèi)容 2.1.3 可行性研究步驟 2.2 需求分析基本概念 2.2.1 需求分析任務(wù) 2.2.2 需求分析步驟 2.2.3 需求管理 2.3 結(jié)構(gòu)化需求分析方法 2.4 結(jié)構(gòu)化分析建模 2.4.1 實體聯(lián)系圖 2.4.2 數(shù)據(jù)流圖 2.4.3 數(shù)據(jù)字典 2.4.4 狀態(tài)遷移圖 2.5 Visio的功能及使用方法介紹 2.6 利用Visio繪制“學(xué)生檔案管理系統(tǒng)”的數(shù)據(jù)流圖 2.7 “學(xué)生檔案管理系統(tǒng)”軟件需求說明書 2.8 小結(jié) 2.9 練習(xí)題第3章 軟件設(shè)計 3.1 軟件設(shè)計的基本概念 3.1.1 軟件設(shè)計的意義和目標(biāo) 3.1.2 軟件設(shè)計原則 3.1.3 軟件設(shè)計分類 3.2 軟件的體系結(jié)構(gòu) 3.2.1 軟件體系結(jié)構(gòu)建模 3.2.2 軟件體系結(jié)構(gòu)風(fēng)格 3.2.3 軟件質(zhì)量屬性 3.3 軟件概要設(shè)計 3.3.1 軟件概要設(shè)計中的重要概念和原則 3.3.2 軟件概要設(shè)計方法 3.4 軟件詳細(xì)設(shè)計 3.4.1 數(shù)據(jù)設(shè)計 3.4.2 界面設(shè)計 3.4.3 構(gòu)件設(shè)計 3.4.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法 3.5 利用面向數(shù)據(jù)流的方法設(shè)計“學(xué)生檔案管理系統(tǒng)” 3.6 “學(xué)生檔案管理系統(tǒng)”軟件設(shè)計說明書 3.7 小結(jié) 3.8 練習(xí)題第4章 軟件編碼及實現(xiàn) 4.1 程序設(shè)計語言 4.1.1 程序設(shè)計語言的發(fā)展與分類 4.1.2 常見程序設(shè)計語言介紹 4.1.3 選擇程序設(shè)計語言的考慮因素 4.2 編碼風(fēng)格 4.3 Visual Studio 4.3.1 Visual Studio界面介紹 4.3.2 Helloworld程序 4.3.3 加法程序 4.3.4 圖形界面 4.3.5 調(diào)試 4.4 使用Visual Studio實現(xiàn)“學(xué)生檔案管理系統(tǒng)”用戶驗證模塊 4.4.1 建立數(shù)據(jù)庫和表 4.4.2 編寫數(shù)據(jù)庫操作代碼 4.4.3 編寫頁面和邏輯代碼 4.5 小結(jié) 4.6 練習(xí)題第5章 軟件測試與維護(hù) 5.1 軟件測試的基本概念 5.1.1 軟件測試原則 5.1.2 軟件測試分類 5.1.3 軟件測試模型 5.2 軟件測試策略 5.2.1 軟件測試步驟 5.2.2 軟件測試信息流 5.2.3 軟件測試文檔 5.3 測試用例 5.3.1 測試用例設(shè)計方法 5.3.2 測試用例場景 5.4 軟件測試方法 5.4.1 等價類劃分法 5.4.2 基本路徑測試法 5.5 軟件維護(hù) 5.5.1 軟件維護(hù)的概念 5.5.2 軟件維護(hù)過程 5.5.3 軟件的可維護(hù)性 5.5.4 軟件維護(hù)的副作用 5.6 使用Visual Studio的Unit Test3叻能 5.6.1 新建一個Project 5.6.2 編碼 5.6.3 建立Unit Test 5.6.4 進(jìn)行測試 5.7 “學(xué)生檔案管理系統(tǒng)”的測試分析報告 5.8 “學(xué)生檔案管理系統(tǒng)”的使用說明書 5.9 小結(jié) 5.10 練習(xí)題第6章 面向?qū)ο蟮能浖こ? 6.1 面向?qū)ο蟾攀? 6.1.1 面向?qū)ο蟮幕靖拍? 6.1.2 面向?qū)ο蟮膶嵤┎襟E 6.2 面向?qū)ο蠼UZ言 6.2.1 “4+1”視圖 6.2.2 UML相關(guān)圖 6.3 面向?qū)ο蟮姆治? 6.4 面向?qū)ο蟮脑O(shè)計 6.5 面向?qū)ο蟮膶崿F(xiàn) 6.6 面向?qū)ο蟮臏y試 6.7 利甩Rose工具繪制“學(xué)生檔案管理系統(tǒng)”的用例圖 6.8 利用Rose工具繪制“學(xué)生檔案管理系統(tǒng)”的順序圖 6.9 利用Rose工具繪制“學(xué)生檔案管理系統(tǒng)”的類圖 6.10 小結(jié) 6.11 練習(xí)題第7章 軟件工程管理 7.1 軟件項目管理 7.1.1 軟件項目管理概述 7.1.2 項目計劃 7.1.3 項目范圍管理 7.1.4 項目資源和成本管理 7.1.5 項目時間管理 7.2 軟件組織和人員管理 7.3 軟件質(zhì)量保證 7.3.1 軟件質(zhì)量管理 7.3.2 CMM模型 7.4 軟件配置管理 7.5 風(fēng)險管理 7.5.1 軟件風(fēng)險 7.5.2 軟件風(fēng)險管理 7.6 軟件文檔 7.7 Project的功能及使用方法介紹 7.8 利用Project對“學(xué)生檔案管理系統(tǒng)”的開發(fā)過程進(jìn)行管理 7.9 小結(jié) 7.10 練習(xí)題第8章 項目綜合實踐 8.1 面向?qū)ο蟮姆治? 8.1.1 收集并整理原始需求 8.1.2 構(gòu)建并描述用例模型 8.1.3 優(yōu)化用例模型 8.2 面向?qū)ο蟮脑O(shè)計 8.2.1 確定候選業(yè)務(wù)對象 8.2.2 確定屬性 8.2.3 確定服務(wù) 8.2.4 確定關(guān)系 8.3 系統(tǒng)實現(xiàn)與測試 8.4 小結(jié) 8.5 練習(xí)題參考文獻(xiàn)
章節(jié)摘錄
插圖:在劃分模塊時,要注意模塊的可分解性、可理解性以及保護(hù)性。可分解性就是指把一個大問題分解為多個子問題的系統(tǒng)化機(jī)制??衫斫庑允侵敢粋€模塊可以作為一個獨立單元來理解,以便于構(gòu)造和修改。保護(hù)性是指當(dāng)一個模塊內(nèi)部出現(xiàn)異常時,它的負(fù)面影響應(yīng)該局限在該模塊內(nèi)部,從而保護(hù)其他模塊不受影響。此外,還要注意模塊的規(guī)模要適中。模塊中所含語句的數(shù)量可以用來衡量模塊規(guī)模的大小。如果模塊的規(guī)模過大,那么模塊內(nèi)部的復(fù)雜度就會較大,也就加大了日后測試和維護(hù)工作的難度。如果模塊的規(guī)模過小,那么勢必模塊的數(shù)目會較多,增大了模塊之間相互調(diào)用關(guān)系的復(fù)雜度,同時也增大了花費在模塊調(diào)用上的開銷。雖然并沒有統(tǒng)一的標(biāo)準(zhǔn)來規(guī)范模塊的規(guī)模,但是一般認(rèn)為,程序的行數(shù)在50-100范圍內(nèi)比較合適。采用模塊化,不僅降低了問題的復(fù)雜度,而且可以實現(xiàn)系統(tǒng)的并行開發(fā),加快了開發(fā)進(jìn)度。(2)抽象化抽象是人們認(rèn)識復(fù)雜的客觀世界時所使用的一種思維工具。在客觀世界中,一定的事物、現(xiàn)象、狀態(tài)或過程之間總存在著一些相似性,如果能忽略它們之間非本質(zhì)性的差異,而把其相似性進(jìn)行概括或集中,那么這種求同存異的思維方式就可以看做是抽象。畢竟現(xiàn)實世界中的很多問題是非常復(fù)雜的,而人類的思維能力是有限的。只有運用抽象的思維方法,人們才能有效地解決問題。通常,在軟件項目的開發(fā)過程中,人們運用不同層次的抽象。一個龐大、復(fù)雜的系統(tǒng)可以先用一些高級的宏觀的概念構(gòu)造和理解,然后這些概念又可以用一些較微觀較細(xì)節(jié)的概念構(gòu)造和理解,如此進(jìn)行,直到最低層次的元素。此外,在軟件的生存周期中,從可行性研究到系統(tǒng)實現(xiàn),每一步的進(jìn)展也可以看做是一種抽象,這種抽象是對解決方案的抽象層次的一次精化。在可行性研究階段,目標(biāo)系統(tǒng)被看成是一個完整的元素。在需求分析階段,人們通常用特定問題環(huán)境下的常用術(shù)語來描述目標(biāo)系統(tǒng)不同方面、不同模塊的需求。從概要設(shè)計到詳細(xì)設(shè)計的過渡過程中,抽象化的程度也逐漸降低。而當(dāng)編碼完全實現(xiàn)后,就達(dá)到了抽象的最底層。
編輯推薦
《軟件工程實用教程》是結(jié)合作者多年從事軟件工程課程教學(xué)的經(jīng)驗編寫而成的,采用理論和實踐相結(jié)合的方式,按照典型的軟件開發(fā)過程來組織內(nèi)容。為了體現(xiàn)軟件工程知識體系的層次,并具有更好的實踐指導(dǎo)意義,書中除了介紹軟件工程的基本概念、理論、方法和過程外,還十分重視軟件工程相關(guān)工具的使用,并通過實際案例來講述軟件工程在實際軟件項目開發(fā)中的應(yīng)用和體現(xiàn)。在介紹理論知識的同時,適當(dāng)選取可操作性和實用性強(qiáng)的實例進(jìn)行講解,以加深學(xué)生對軟件工程思想和方法的理解和掌握。每章基本按照基礎(chǔ)理論和知識介紹、相關(guān)技術(shù)和方法介紹、軟件工程工具使用介紹以及實際軟件項目應(yīng)用介紹的順序來組織內(nèi)容,并給出相應(yīng)的練習(xí)題,以加深學(xué)生對重點知識的掌握。最后一章介紹了一個相對完整的項目開發(fā)實例,貫穿面向?qū)ο蟮能浖こ滔嚓P(guān)內(nèi)容,并給出了一些建議練習(xí)項目供讀者進(jìn)行實際開發(fā),并同時讓讀者在這個過程中體會軟件工程的基本知識和相關(guān)工具的應(yīng)用。
圖書封面
評論、評分、閱讀與下載