一般軟件開發(fā)過程中的八個階段共8文檔_第1頁
一般軟件開發(fā)過程中的八個階段共8文檔_第2頁
一般軟件開發(fā)過程中的八個階段共8文檔_第3頁
一般軟件開發(fā)過程中的八個階段共8文檔_第4頁
一般軟件開發(fā)過程中的八個階段共8文檔_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第1頁一般軟件開發(fā)過程中的八個階段Boehm 運用現(xiàn)代科學技術知識來設計并構造計算機程序及為開發(fā)、運行 和維護這些程序所必需的相關文件資料。IEEE:軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)方法。Fritz Bauer :建立并使用完善的工程化原則,以較經(jīng)濟的手段獲得能在 實際機器上有效運行的可靠軟件的一系列方法。軟件工程學的內(nèi)容軟件工程學的主要內(nèi)容是軟件開發(fā)技術和軟件工程管理軟件開發(fā)技術包含軟件工程方法學、軟件工具和軟件開發(fā)環(huán)境;軟件工 程管理學包含軟件工程經(jīng)濟學和軟件管理學。軟件工程基本原理著名軟件工程專家 B.Boehm 綜合有關專家和學者的意見并總結了多年來 開發(fā)軟件的經(jīng)驗,于 19

2、83 年在一篇論文中提出了軟件工程的七條基本原理。(1) 用分階段的生存周期計劃進行嚴格的管理。(2) 堅持進行階段評審。(3) 實行嚴格的產(chǎn)品控制。(4) 采用現(xiàn)代程序設計技術。(5) 軟件工程結果應能清楚地審查。(6) 開發(fā)小組的人員應該少而精。(7) 承認不斷改進軟件工程實踐的必要性。B.Boehm 指出,遵循前六條基本原理,能夠實現(xiàn)軟件的工程化生產(chǎn);按照 第七條原理,不僅要積極主動地采納新的軟件技術,而且要注意不斷總結經(jīng)驗。軟件工程(Software Engineering)的框架可概括為:目標、過程和原則(1)軟件工程目標:生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。正確 性指軟件產(chǎn)品

3、達到預期功能的程度??捎眯灾杠浖窘Y構、實現(xiàn)及文檔為用 戶可用的程度。開銷合宜是指軟件開發(fā)、 運行的整個開銷滿足用戶要求的程度。這些目標的實現(xiàn)不論在理論上還是在實踐中均存在很多待解決的問題, 它們形 成了對過程、 過程模型及工程方法選取的約束。(2) 軟件工程過程:生產(chǎn)一個最終能滿足需求且達到工程目標的軟件產(chǎn)品 所需要的第2頁步驟。軟件工程過程主要包括開發(fā)過程、運作過程、維護過程。它們 覆蓋了需求、設計、實現(xiàn)、 確認以及維護等活動。 需求活動包括問題分析和需 求分析。 問題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件系統(tǒng)結

4、構,包 括子系統(tǒng)、模塊以及相關層次的說明、每一模塊的接口定義。詳細設計產(chǎn)生程 序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結構說明及加工描述。實現(xiàn)活動把 設計結果轉換為可執(zhí)行的程序代碼。 確認活動貫穿于整個開發(fā)過程, 實現(xiàn)完成后的確認, 保證最終產(chǎn)品滿足用戶的要求。 維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。(3) 軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開 發(fā)過程中必須遵循的原則。軟件工程必須遵循什么原則圍繞工程設計、工程支持以及工程管理已提出了以下四條基本原則:(1) 選取適宜的開發(fā)模型該原則與系統(tǒng)設計有關。在系統(tǒng)設計中,軟件需

5、求、硬件需求以及其它 因素間是相互制約和影響的,經(jīng)常需要權衡。因此,必需認識需求定義的易變 性,采用適當?shù)拈_發(fā)模型,保證軟件產(chǎn)品滿足用戶的要求。(2) 采用合適的設計方法在軟件設計中,通常需要考慮軟件的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特征。合適的設計方法有助于這些特征的實現(xiàn),以達到軟 件工程的目標。(3) 提供高質量的工程支撐工欲善其事,必先利其器。在軟件工程中,軟件工具與環(huán)境對軟件過程 的支持頗為重要。軟件工程項目的質量與開銷直接取決于對軟件工程所提供的 支撐質量和效用。(4) 重視軟件工程的管理軟件工程的管理直接影響可用資源的有效利用, 生產(chǎn)滿足目標的軟件產(chǎn) 品以及提高軟

6、件組織的生產(chǎn)能力等問題。因此,僅當軟件過程予以有效管理時, 才能實現(xiàn)有效的軟件工程。軟件工程是指導計算機軟件開發(fā)和維護的工程學科。采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經(jīng)過時間考 驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,這就是 軟件工程。軟件工程強調使用生存周期方法學和各種結構分析及結構設計技術。 它 們是在七十年代為了對付應用軟件日益增長的復雜程度、 漫長的開發(fā)周期以及 用戶對軟件產(chǎn)品經(jīng)常不第3頁滿意的狀況而發(fā)展起來的。人類解決復雜問題時普遍采 用的一個策略就是各個擊破,也就是對問題進行分解然后再分別解決各個子 問題的策略。 軟件工程采用的生存周期方法學就

7、是從時間角度對軟件開發(fā)和維 護的復雜問題進行分解, 把軟件生存的漫長周期依次劃分為若干個階段,每個 階段有相對獨立的任務,然后逐步完成每個階段的任務。采用軟件工程方法論 開發(fā)軟件的時候, 從對任務的抽象邏輯分析開始, 一個階段一個階段地進行開發(fā)。 前一個階段任務的完成是開始進行后一個階段工作的前提和基礎, 而后一 階段任務的完成通常是使前一階段提出的解法更進一步具體化, 加進了更多的 物理細節(jié)。 每一個階段的開始和結束都有嚴格標準, 對于任何兩個相鄰的階段 而言, 前一階段的結束標準就是后一階段的開始標準。在每一個階段結束之前 都必須進行正式嚴格的技術審查和管理復審,從技術和管理兩方面對這個階

8、段 的開發(fā)成果進行檢查, 通過之后這個階段才算結束; 如果檢查通不過,則必須 進行必要的返工,并且返工后還要再經(jīng)過審查。審查的一條主要標準就是每個 階段都應該交出最新式的(即和所開發(fā)的軟件完全一致的)高質量的文檔資料, 從而保證在軟件開發(fā)工程結束時有一個完整準確的軟件配置交付使用。文檔是 通信的工具,它們清楚準確地說明了到這個時候為止,關于該項工程已經(jīng)知道 了什么,同時確立了下一步工作的基礎。此外,文檔也起備忘錄的作用,如果 文檔不完整,那么一定是某些工作忘記做了,在進入生存周期的下一階段之前,必須補足這些遺漏的細節(jié)。在完成生存周期每個階段的任務時, 應該采用適合 該階段任務特點的系統(tǒng)化的技術

9、方法-結構分析或結構設計技術。把軟件生存周期劃分成若干個階段,每個階段的任務相對獨立,而且比 較簡單,便于不同人員分工協(xié)作, 從而降低了整個軟件開發(fā)工程的困難程度;在軟件生存周期的每個階段都采用科學的管理技術和良好的技術方法, 而且在 每個階段結束之前都從技術和管理兩個角度進行嚴格的審查, 合格之后才開始 下一階段的工作, 這就使軟件開發(fā)工程的全過程以一種有條不紊的方式進行,保證了軟件的質量, 特別是提高了軟件的可維護性。 總之,采用軟件工程方法 論可以大大提高軟件開發(fā)的成功率,軟件開發(fā)的生產(chǎn)率也能明顯提高。目前劃分軟件生存周期階段的方法有許多種,軟件規(guī)模、種類、開發(fā)方 式、開發(fā)環(huán)境以及開發(fā)時

10、使用的方法論都影響軟件生存周期階段的劃分。 在劃 分軟件生存周期的階段時應該遵循的一條基本原則就是使各階段的任務彼此間 盡可能相對獨立, 同一階段各項任務的性質盡可能相同,從而降低每個階段任 務的復雜程度,簡化不同階段之間的聯(lián)系,有利于軟件開發(fā)工程的組織管理。一般說來,軟件生存周期由軟件定義、軟件開發(fā)和軟件維護三個時期組成,每 個時期又進一步劃分成若干個階段。下面的論述主要針對應用軟件,對系統(tǒng)軟 件也基本適用。軟件定義時期的任務是確定軟件開發(fā)工程必須完成的總目標;確定工程 的可行性,導出實現(xiàn)工程目標應該采用的策略及系統(tǒng)必須完成的功能; 估計完 成該項工程需要的資源第4頁和成本,并且制定工程進度

11、表。這個時期的工作通常又 稱為系統(tǒng)分析,由系統(tǒng)分析員負責完成。軟件定義時期通常進一步劃分成三個 階段,即問題定義、可行性研究和需求分析。開發(fā)時期具體設計和實現(xiàn)在前一個時期定義的軟件,它通常由下述四個 階段組成:總體設計,詳細設計,編碼和單元測試,綜合測試。維護時期的主要任務是使軟件持久地滿足用戶的需要。具體地說,當軟 件在使用過程中發(fā)現(xiàn)錯誤時應該加以改正; 當環(huán)境改變時應該修改軟件以適應 新的環(huán)境; 當用戶有新要求時應該及時改進軟件滿足用戶的新需要。 通常對維 護時期不再進一步劃分階段, 但是每一次維護活動本質上都是一次壓縮和簡化 了的定義和開發(fā)過程。下面扼要介紹軟件生存周期每個階段的基本任務

12、和結束標準。1 問題定義問題定義階段必須回答的關鍵問題:要解決的問題是什么?如果不知道 問題是什么就試圖解決這個問題,顯然是盲目的,只會白白浪費時間和金錢,最終得出的結果很可能是毫無意義的。 盡管確切地定義問題的必要性是十分明 顯的, 但是在實踐中它卻可能是最容易被忽視的一個步驟。通過問題定義階段的工作,系統(tǒng)分析員應該提出關于問題性質、工程目 標和規(guī)模的書面報告。 通過對系統(tǒng)的實際用戶和使用部門負責人的訪問調查,分析員扼要地寫出他對問題的理解, 并在用戶和使用部門負責人的會議上認真 討論這份書面報告, 澄清含糊不精的地方,改正理解不正確的地方,最后得出 一份雙方都滿意的文檔。問題定義階段是軟件

13、生存周期中最簡短的階段,一般只需要一天甚至更 少的時間。2 可行性研究這個階段要回答的關鍵問題:對于上一個階段所確定的問題有行得通的 解決辦法嗎?為了回答這個問題, 系統(tǒng)分析員需要進行一次大大壓縮和簡化了 的系統(tǒng)分析和設計的過程,也就是在較抽象的高層次上進行的分析和設計的過 程??尚行匝芯繎摫容^簡短,這個階段的任務不是具體解決問題,而是研 究問題的范圍,探索這個問題是否值得去解,是否有可行的解決辦法。在問題定義階段提出的對工程目標和規(guī)模的報告通常比較含糊。 可行性 研究階段應該導出系統(tǒng)的高層邏輯模型(通常用數(shù)據(jù)流圖表示),并且在此基礎 上更準確、更具體地確定工程規(guī)模和目標。 然后分析員更準確

14、地估計系統(tǒng)的成 本和效益, 對建議的系統(tǒng)進行仔細的成本 /效益分析是這個階段的主要任務之??尚行匝芯康慕Y果是使用部門負責人做出是否繼續(xù)進行這項工程的決定 的重要依第5頁據(jù),一般說來,只有投資可能取得較大效益的那些工程項目才值得繼 續(xù)進行下去。可行性研究以后的那些階段將需要投入要多的人力物力。 及時中 止不值得投資的工程項目, 可以避免更大的浪費。3 需求分析這個階段的任務仍然不是具體地解決問題,而是準確地確定為了解決這 個問題,目標系統(tǒng)必須做什么,主要是確定目標系統(tǒng)必須具備哪些功能。用戶了解他們所面對的問題,知道必須做什么,但是通常不能完整準確 地表達出他們的要求, 更不知道怎樣利用計算機解決

15、他們的問題; 軟件開發(fā)人 員知道怎樣使用軟件實現(xiàn)人們的要求, 但是對特定用戶的具體要求并不完全清 楚。 因此系統(tǒng)分析員在需求分析階段必須和用戶密切配合,充分交流信息,以 得出經(jīng)過用戶確認的系統(tǒng)邏輯模型。通常用數(shù)據(jù)流圖、數(shù)據(jù)字典和簡要的算法 描述表示系統(tǒng)的邏輯模型。在需求分析階段確定的系統(tǒng)邏輯模型是以后設計和實現(xiàn)目標系統(tǒng)的基礎,因此必須準確完整地體現(xiàn)用戶的要求。 系統(tǒng)分析員通常都是計算機軟件專家,技術專家一般都喜歡很快著手進行具體設計,然而,一旦分析員開始談論程序 設計的細節(jié),就會脫離用戶,使他們不能繼續(xù)提出他們的要求和建議。 較件工 程使用的結構分析設計的方法為每個階段都規(guī)定了特定的結束標準,

16、 需求分析 階段必須提供完整準確的系統(tǒng)邏輯模型, 經(jīng)過用戶確認之后才能進入下一個階 段,這就可以有效地防止和克服急于著手進行具體設計的傾向。4 總體設計這個階段必須回答的關鍵問題是:概括地說,應該如何解決這個問題? 首先,應該考慮幾種可能的解決方案。 列如, 目標系統(tǒng)的一些主要功能 是用計算機自動完成還是用人工完成;如果使用計算機,那么是使用批處理方 式還是人機交互方式;信息存儲使用傳統(tǒng)的文件系統(tǒng)還是數(shù)據(jù)庫。通常至少 應該考慮下述幾類可能的方案:低成本的解決方案。系統(tǒng)只能完成最必要的工作,不能多做一點額處的 工作。中等成本的解決方案。這樣的系統(tǒng)不僅能夠很好地完成預定的任務,使 用起來很方便,

17、而且可能還具有用戶沒有具體指定的某些功能和特點。 雖然用 戶沒有提出這些具體要求, 但是系統(tǒng)分析員根據(jù)自己的知識和經(jīng)驗斷定, 這些 附加的能力在實踐中將證明是很有價值的。高成本的十全十美的系統(tǒng)。這樣的系統(tǒng)具有用戶可能希望有的所有功 能和特點。系統(tǒng)分析員應該使用系統(tǒng)流程圖或其他工具描述每種可能的系統(tǒng), 估計 每種方案的成本和效益,還應該在充分權衡各種方案的利弊的基礎上,推薦一個較好的系統(tǒng)(最佳方案),并且制定實現(xiàn)所推薦的系統(tǒng)的詳細計劃。如果用戶 接受分析員推薦的系統(tǒng),則可以著手完成本階段的另一項主要工作。第6頁上面的工作確定了解決問題的策略以及目標系統(tǒng)需要哪些程序,但是,怎樣設計這些程序呢?結構

18、設計的一條基本原理就是程序應該模塊化, 也就是 一個大程序應該由許多規(guī)模適中的模塊按合理的層次結構組織而成。 總體設計 階段的第二項主要任務就是設計軟件的結構, 也就是確定程序由哪些模塊組成 以及模塊間的關系。 通常用層次圖或結構圖描繪軟件的結構。5 詳細設計總體設計階段以比較抽象概括的方式提出了解決問題的辦法。 詳細設計 階段的任務就是把解法具體化,也就是回答下面這個關鍵問題:應該怎樣具體地實現(xiàn)這個系統(tǒng)呢?這個階段的任務還不是編寫程序,而是設計出程序的詳細規(guī)格說明。這 種規(guī)格說明的作用很類似于其他工程領域中工程師經(jīng)常使用的工程藍圖,它們 應該包含必要的細節(jié),程序員可以根據(jù)它們寫出實際的程序代

19、碼。通常用 HIP0 圖(層次圖加輸入/處理/輸出圖)或 PDL 語言(過程設計語言) 描述詳細設計的結果。6 編碼和單兀測試這個階段的關鍵任務是寫出正確的容易理解、容易維護的程序模塊。程序員應該根據(jù)目標系統(tǒng)的性質和實際環(huán)境,選取一種適當?shù)母呒壋绦?設計語言(必要時用匯編語言),把說細設計的結果翻譯成用選定的語言書寫的 程序,并且仔細測試編寫出的每一個模塊。7 綜合測試這個階段的關鍵任務是通過各種類型的測試(及相應的調試)使軟件達到 預定的要求。最基本的測試是集成測試和驗收測試。所謂集成測試是根據(jù)設計的軟件 結構,把經(jīng)過單元測試檢驗的模塊按某種選定的策略裝配起來,在裝配過程中 對程序進行必要的測試。所謂驗收測試則是按照規(guī)格說明書的規(guī)定(通常在需求分析階段確定),由用戶(或在用戶積極參加下)對目標系統(tǒng)進行驗收。必要時還可以再通過現(xiàn)場測試或平行運行等方法對目標系統(tǒng)進一步測試 檢驗。為了使用戶能夠積極參加驗收測試, 并

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論