軟件工程

出版時間:2009-11  出版社:中國科學技術大學出版社  作者:王忠群 編  頁數(shù):329  

前言

軟件工程是研究軟件開發(fā)、維護和軟件管理的一門工程科學,是計算機科學技術及相關專業(yè)的主干課。自1968年在著名的NATO會議上為解決“軟件危機”而提出“軟件工程’’的概念以來,在不到半個世紀的時間里,軟件工程在理論和實踐兩個方面都取得了長足的進步,取得了大量研究成果,軟件工程的應用水平已成為促進軟件產(chǎn)業(yè)健康發(fā)展的關鍵。隨著計算機的日益普及和廣泛應用,尤其是Intemet的出現(xiàn),軟件系統(tǒng)的規(guī)模和復雜度與日俱增,軟件技術面臨著許多新的挑戰(zhàn)。大型復雜軟件的開發(fā)是一項特殊的工程,不僅與傳統(tǒng)工程一樣,需要按照工程化的方法去組織管理軟件的開發(fā),而且軟件開發(fā)更具特殊性、復雜性。因此軟件工程已經(jīng)成為計算機科學與技術學科的重要學科方向。針對絕大多數(shù)本科院校以培養(yǎng)應用型人才為目標,著眼于學生綜合素質和應用能力、創(chuàng)新意識的培養(yǎng),貫徹以必需、夠用、實用和會用為度的原則,優(yōu)化課程內容體系,適當體現(xiàn)新技術、新方法,突出軟件工程課程知識的連貫性、邏輯性,試圖通過實例來化解軟件工程的較強抽象性,為讀者提供一本既保持知識的系統(tǒng)性,適當反映軟件工程最新發(fā)展成果,又易于學習和易于應用于實踐的教科書。全書共分12章。第1章概括介紹了軟件的基本概念、軟件危機產(chǎn)生原因和解決途徑以及軟件工程學產(chǎn)生的背景、基本原理、概念和方法等。第2章概述了軟件需求分析、介紹可行性研究、初步需求獲取方法、需求分析的過程和需求規(guī)格說明和需求評審。第3章概述了軟件設計的任務、目標和過程,詳細闡述軟件設計的基本概念,介紹了軟件體系結構設計、數(shù)據(jù)結構設計、過程設計以及軟件設計規(guī)格說明和評審。第4章詳細介紹了結構化分析、設計方法以及設計啟發(fā)式設計策略。第5章在對面向對象的概念和UML介紹的基礎上,詳細敘述了面向對象分析、設計方法和Rational R0se建模工具。第6章介紹了軟件界面設計。第7章到第9章分別介紹了軟件的編碼、軟件測試和軟件維護。第10章介紹了軟件項目管理和軟件過程成熟度模型(CMM)。

內容概要

  軟件工程是研究軟件開發(fā)、維護和管理的一門工程科學,是計算機科學技術及相關專業(yè)的主干課程。全書共12章,主要內容包括:軟件工程概述;軟件需求基礎;軟件設計基礎;結構化分析與設計;面向對象的分析與設計;人機界面設計;編碼;軟件測試;軟件維護;軟件項目管理;軟件工程標準化與軟件文檔;Web工程等。

書籍目錄

前言第1章 軟件工程概述 1.1 軟件  1.1.1 軟件的概念與特點  1.1.2 軟件的分類 1.2 軟件危機 1.3 軟件工程  1.3.1 軟件工程的概念  1.3.2 軟件工程的基本目標  1.3.3 軟件工程的基本原理  1.3.4 軟件工程的原則 1.4 軟件生存周期  1.4.1 軟件的定義階段  1.4.2 軟件的開發(fā)階段  1.4.3 軟件的使用、維護和退役階段 1.5 軟件的開發(fā)模型  1.5.1 瀑布模型  1.5.2 原型模型  1.5.3 螺旋模型  1.5.4 噴泉模型  1.5.5 基于第四代技術的模型  1.5.6 增量模型  1.5.7 迭代模型 1.6 軟件開發(fā)方法和工具  1.6.1 結構化方法  1.6.2 面向對象方法  1.6.3 軟件工具與開發(fā)環(huán)境 小結 習題第2章 軟件需求基礎 2.1 需求分析概述  2.1.1 需求分析的難點  2.1.2 需求分析的基本原則  2.1.3 需求分析的基本任務 2.2 可行性研究  2.2.1 可行性研究的內容  2.2.2 可行性研究的具體步驟  2.2.3 可行性研究報告的內容 2.3 初步需求獲取方法  2.3.1 訪談與會議  2.3.2 觀察用戶工作流程  2.3.3 建立聯(lián)合小組  2.3.4 其他獲取方法 2.4 需求分析的過程及方法  2.4.1 需求分析過程  2.4.2 軟件需求建模  2.4.3 需求分析方法 2.5 軟件需求規(guī)格說明和需求評審  2.5.1 軟件需求規(guī)格說明和初步用戶手冊  2.5.2 軟件需求評審 小結 習題第3章 軟件設計基礎 3.1 軟件設計概述  3.1.1 軟件設計在開發(fā)階段的重要性  3.1.2 軟件設計的任務  3.1.3 軟件設計的目標  3.1.4 軟件設計的過程 3.2 軟件設計的基本概念  3.2.1 抽象與逐步求精  3.2.2 模塊化  3.2.3 信息隱蔽  3.2.4 模塊獨立 3.3 軟件體系結構設計  3.3.1 基本概念  3.3.2 體系結構設計的風格 3.4 數(shù)據(jù)結構設計  3.4.1 數(shù)據(jù)結構設計  3.4.2 在設計程序結構時數(shù)據(jù)結構的選擇方法 3.5 軟件過程設計  3.5.1 結構化程序設計方法  3.5.2 圖形設計工具 ……第4章 結構化分析與設計第5章 面向對象的分析與設計第6章 人機界面設計第7章 編碼第8章 軟件測試第9章 軟件維護第10章 軟件項目管理第11章 軟件工程標準化與軟件文檔第12章 Web工程參考文獻

章節(jié)摘錄

插圖:(1)軟件質量差,維護困難,在軟件維護過程中很容易引發(fā)新的問題和錯誤,軟件的可移植性差,兩個類似的軟件很少能夠重用。(2)軟件功能不能完全滿足用戶要求,用戶對已交付的產(chǎn)品不滿意的現(xiàn)象時常發(fā)生。(3)軟件開發(fā)成本難以控制,軟件開發(fā)進度難以預測。開發(fā)成本超出預算、軟件交付時間經(jīng)常延遲。(4)由于缺乏完整規(guī)范的資料文檔,加之軟件測試不充分,從而造成軟件質量低下,運行中出現(xiàn)大量問題,有些軟件造成了嚴重的后果。在1985年到1987年之間,至少有2個病人是死于Therac-25醫(yī)療線性加速器的過量輻射。事故調查表明,是軟件出現(xiàn)了問題,導致這臺機器忽略了數(shù)據(jù)校驗,從而泄露致命劑量的輻射。1996年6月歐洲航天局的阿里亞娜火箭升空40秒后爆炸,事后調查發(fā)現(xiàn),錯誤發(fā)生于當一個很大的64位浮點數(shù)轉換為16位帶符號整數(shù)時出現(xiàn)異常。由此可見,軟件錯誤的后果是十分嚴重的,醫(yī)療軟件的錯誤可能造成病人的生命危險,銀行系統(tǒng)的錯誤會使金融混亂,航空管理系統(tǒng)的錯誤會造成飛機失事等等。(5)軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和人們對軟件需求的增長。從軟件危機被提出以來,人們一直在尋找解決它的方法,一系列的方法被提出并且加以應用。比如結構化的程序設計,面向對象的開發(fā),C2MM,UML等等。雖然人們一直致力于發(fā)現(xiàn)解決軟件危機的方法,正如軟件工程專家R.S.:Pressman所說:“軟件危機是一種慢性疾病,這種疾病至今依然困擾著我們,并沒有一種靈丹妙藥可以完全治愈這種病痛?!敝猿霈F(xiàn)軟件危機,其主要原因是一方面和軟件本身的特點有關;另一方面是和軟件開發(fā)與維護的方法不正確有關,具體表現(xiàn)在:(1)用戶對軟件需求的描述不準確、不全面,甚至有錯誤,以及在開發(fā)過程中,不斷提出或者修改需求。(2)用戶和開發(fā)人員對軟件需求的理解存在差異,導致所開發(fā)的軟件產(chǎn)品和用戶需求不一致。(3)大型軟件項目需要組織一定的人力共同完成,各類人員的信息交流不及時、不準確,有時還可能產(chǎn)生誤解,軟件開發(fā)人員對大型軟件缺少開發(fā)經(jīng)驗,管理人員缺少相應的管理經(jīng)驗。(4)軟件開發(fā)人員不能有效、獨立自主地處理大型軟件的全部關系和各個分支,因此容易產(chǎn)生疏漏和錯誤。

編輯推薦

《軟件工程》:21世紀高等院校規(guī)劃教材·計算機類

圖書封面

評論、評分、閱讀與下載


    軟件工程 PDF格式下載


用戶評論 (總計0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7