軟件開發過程詳解_第1頁
軟件開發過程詳解_第2頁
軟件開發過程詳解_第3頁
軟件開發過程詳解_第4頁
軟件開發過程詳解_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、軟件開發過程詳解軟件開發過程即軟件設計思路和方法的一般過程, 包括設計軟件的功能和實現的算法和方法、 軟件的總體結構設計和模塊設計、 編程和調試、 程序聯調和測試以及編寫、提交程序。生產一個最終能滿足需求且達到工程目標的軟件產品所需要的步驟。 軟件開發過程覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。 問題分析獲取需求定義, 又稱軟件需求規約。 需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件系統結構,包括子系統、 模塊以及相關層次的說明、 每一模塊的接口定義。 詳細設計產生程序員可用的模塊說明, 包括每一模塊中數據結構說明及加工描述

2、。 實現活動把設計結果轉換為可執行的程序代碼。 確認活動貫穿于整個開發過程, 實現完成后的確認, 保證最終產品滿足用戶的要求。 維護活動包括使用過程中的擴充、 修改與完善。1. 需求分析1.1 需求分析的特點和任務需求分析是軟件開發的第一步。 獲取需求的一個必不可少的結果是對項目中描述的客戶需求的普遍理解。 一旦理解了需求, 分析者、 開發者和客戶就能探索出描述這些需求的多種解決方案。 參與需求獲取者只有在他們理解了問題之后才能開始設計系統,否則,對需求定義的任何改進,設計上都必須大量的返工。把需求獲取集中在用戶任務上而不是集中在用戶接口上有助于防止開發組由于草率處理設計問題而造成的失誤。 有

3、幾種原因使需求分析變得困難: ( 1)客戶說不清楚需求;( 2)需求自身經常變動;( 3)分析人員或客戶理解有誤。需求獲取、 分析、 編寫需求規格說明和驗證并不遵循線性的順序, 這些活動是相互隔開、增量和反復的。當你和客戶合作時,你就將會問一些問題,并且取得他們所提供的信息(需求獲取) 。同時,你將處理這些信息以理解它們,并把它們分成不同的類別, 還要把客戶需求同可能的軟件需求相聯系 (分析) 。 然后,你可以使客戶信息結構化,并編寫成文檔和示意圖(說明) 。下一步,就可以讓客戶代表評審文檔并糾正存在的錯誤(驗證) 。這四個過程貫穿著需求分析的整個階段。 需求獲取可能是軟件開發中最困難、最關鍵

4、、最易出錯及最需要交流的方面。 需求獲取只有通過有效的客戶開發者的合作才能成功。 分析者必須建立一個對問題進行徹底探討的環境,而這些問題與產品有關。為了方便清晰地進行交流, 就要列出重要的小組, 而不是假想所有的參與者都持有相同的看法。 對需求問題的全面考察需要一種技術,利用這種技術不但考慮了問題的功能需求方面, 還可討論項目的非功能需求。 確定用戶已經理解: 對于某些功能的討論并不意味著即將在產品中實現它。 對于想到的需求必須集中處理并設定優先級, 以避免一個不能帶來任何益處的無限大的項目。1.2 .需求分析的一般方法跟班作業。 通過親身參加業務工作來了解業務活動的情況。 這種方法可以比較準

5、確地理解用戶的需求,但比較耗費時間。開調查會。 通過與用戶座談來了解業務活動情況及用戶需求。 座談時, 參加者之間可以相互啟發。 需求獲取討論會中如果參與者過多, 就會減慢進度。 人數大致控制在5 到 7 人是最好的。這些人包括客戶、系統設計者、開發者和可視化設計者等主要工程角色。 相反地, 從極少的代表那里收集信息或者只聽到呼聲最高、 最有輿論影響的用戶的聲音, 也會造成問題。 這將導致忽視特定用戶類的重要的需求, 或者其需求不能代表絕大多數用戶的需要。 最好的權衡在于選擇一些授權為他們的用戶類發言的產品代表者,他們也被同組用戶類的其它代表所支持。設計調查表請用戶填寫。 如果調查表設計得合理

6、, 這種方法是很有效, 也很 易于為用戶接受的。查閱記錄。 即查閱與原系統有關的數據記錄, 包括原始單據、 賬簿、 報表等。通過調查了解了用戶需求后, 還需要進一步分析和表達用戶的需求。 分析和表達 用戶需求的方法主要包括自頂向下和自底向上兩類方法。2. 概要設計2.1 概要設計概述概要設計重點在于將模塊分解為對象并闡明對象之間的關系, 引用架構設計說明書中的模塊圖, 并闡述對于模塊進行設計的大致思路。 主要工作是根據該模塊的職責對模塊進行概要設計(分解模塊為對象、描述對象的職責以及聲明對象之間的接口 ),繪制模塊的對象圖、對象間的依賴圖以及模塊主要功能的序列圖,分別加以描述并相應的描述模塊異

7、常的處理方法。如果需要并描述數據視圖。2.2 概要設計的目標正如同軟件本身有其要達到的目標一樣, 架構設計要達到的目標是什么呢?一般而言,軟件架構設計要達到如下的目標:( 1) 可靠性( reliable) 。 軟件系統對于用戶的商業經營和管理來說極為重要,因此軟件系統必須非常可靠。( 2)安全行(secure) 。軟件系統所承擔的交易的商業價值極高,系統的安全性非常重要。( 3)可擴展性(scalable) 。軟件必須能夠在用戶的使用率、用戶的數目增加很快的情況下, 保持合理的性能。 只有這樣, 才能適應用戶的市場擴展得可能性。( 4)可定制化(customizable) 。同樣的一套軟件,

8、可以根據客戶群的不同和市場需求的變化進行調整。3. 詳細設計詳細設計重點在于對每個模塊進行實現,將模塊的對象分解為屬性和方法,并闡述如何實現。主要工作視根據模塊概要設計詳細描述對于模塊內對象的實現,包括對象的職責、屬性、方法、對象內功能的流程圖、對象關聯的類、對象的異常。(需要繪制的主要為類圖)詳細設計的目標有兩個: 實現模塊功能的算法要邏輯上正確和算法描述要簡明易懂。在軟件詳細設計階段, 將生成詳細設計說明書, 為每個模塊確定采用的算法,確定每個模塊使用的數據結構, 確定每個模塊的接口細節。 在軟件詳細設計結束時, 軟件詳細設計說明書通過復審的形成形成正式文檔, 作為下一個階段的工作依據。詳

9、細設計的主要任務是: 為每個模塊確定采用的算法, 選擇某種適當的工具表達算法的過程,寫出模塊的詳細過程性描述;確定每一模塊使用的數據結構;確定模塊接口的細節, 包括對系統外部的接口和用戶界面, 對系統內部其它模塊的接口, 以及模塊輸入數據、 輸出數據及局部數據的全部細節; 為每一個模塊設計出一組測試用例,以便在編碼階段對模塊代碼(即程序)進行預定的測試,模塊的測試用例是軟件測試計劃的重要組成部分, 通常應包括輸入數據, 期望輸出 等內容。4. 編碼軟件編碼是將上一階段的詳細設計得到的處理過程的描述轉換為基于某種計算機語言的程序, 即源程序代碼。 編碼需注意根據項目的應用領域選擇適當的編程語言、

10、編程的軟硬件環境以及編碼的程序設計風格等事項。在計劃階段, 極少考慮程序語言的技術特性。 但在選定資源時, 要規劃將要使用的支撐工具, 就要確定一個具體的編譯器或者確定一個程序設計環境。 如果軟件開發組的成員對所要使用的語言不熟悉, 那么在成本及進度估算時必須把學習的工作量估算在內。一旦確定了軟件需求, 待選用的程序語言的技術特性就顯得非常重要了。 如果需要復雜的數據結構,就要仔細衡量有哪些語言能提供這些復雜的數據結構。如果首要的是高性能及實時處理的能力, 就可選用適合于實時應用的語言或效率高的語言。 如果該應用有許多輸出報告或繁雜的文件處理, 最好是根據軟件的要求,選定一種適合于該項工作的語

11、言。軟件的設計質量與程序設計語言 的技術性能無關(面向對象設計例外) 。但在實現軟件設計轉化為程序代碼時, 轉化的質量往往受語言性能的影響。 因而 也會影響到設計方法。語言的技術性能對測試和維護的影響是多種多樣的。 例如, 直接提供結構化構造的語言有利于減少循環帶來的復雜性(即 mccabe復雜性),使程序易讀、易測試、易維護。另一方面,語言的某些技術特性卻會妨礙測試。例如,在面向對象的語言程序中, 由于實行了數據封裝, 使得監控這些數據的執行狀態變得比較困難;由于建立了對象類的繼承結構,使得高內聚、低耦合的要求受到破壞,增加了測試的困難。 此外, 只要語言程序的可讀性強, 而且可以減少程序的

12、復雜 性,這樣的程序設計語言對于軟件的維護就是有利的。5. 測試不論是對軟件的模塊還是整個系統, 總有共同的內容要測試, 如正確性測試,容錯性測試,性能與效率測試,易用性測試,文檔測試等。5.1 軟件測試的內容不論是對軟件的模塊還是整個系統, 總有共同的內容要測試, 如正確性測試,容錯性測試,性能與效率測試,易用性測試,文檔測試等。5.1.1 正確性測試正確性測試又稱功能測試, 它檢查軟件的功能是否符合規格說明。 由于正確性是軟件最重要的質量因素, 所以其測試也最重要。 基本的方法是構造一些合理輸入,檢查是否得到期望的輸出。這是一種枚舉方法。倘若枚舉空間是無限的,那可慘了, 還不如回家種土豆有

13、盼頭。 測試人員一定要設法減少枚舉的次數, 否則沒好日子過。 關鍵在于尋找等價區間, 因為在等價區間中, 只需用任意值測試一次即可。5.1.2 性能與效率測試性能與效率測試主要是測試軟件的運行速度和對資源的利用率。 有時人們關心測試的 “絕對值” , 如數據送輸速率是每秒多少比特。 有時人們關心測試的 “相對值” ,如某個軟件比另一個軟件快多少倍。在獲取測試的“絕對值”時,我們要充分考慮并記錄運行環境對測試的影響。5.1.3 易用性測試易用性測試沒有一個量化的指標, 主觀性較強。 調查表明, 當用戶不理解軟件中的某個特性時,大多數人首先會向同事、朋友請教。要是再不起作用,就向產品支持部門打電話

14、。只有30%的用戶會查閱用戶手冊。5.2 軟件測試的常用方法從測試是否針對系統的內部結構和具體實現算法的角度來看, 可分為白盒測試和黑盒測試。5.2.1 黑盒測試黑盒測試也稱功能測試或數據驅動測試,它是在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用, 在測試時, 把程序看作一個不能打開的黑盆子, 在完全不考慮程序內部結構和內部特性的情況下, 測試者在程序接口進行測試, 它只檢查程序功能是否按照需求規格說明書的規定正常使用, 程序是否能適當地接收輸入數鋸而產生正確的輸出信息, 并且保持外部信息 (如數據庫或文件)的完整性。5.2.2 白盒測試白盒測試也稱結構測試或邏輯驅動測試,

15、 它是知道產品內部工作過程, 可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行, 按照程序內部 的結構測試程序, 檢驗程序中的每條通路是否都有能按預定要求正確工作, 而不 顧它的功能, 白盒測試的主要方法有邏輯驅動、 基路測試等, 主要用于軟件驗證。5.3 軟件測試的常用工具目前用于測試的工具已經比較多了,測試工具的應用可以提高測試的質量、測試的效率、 減少測試過程中的重復勞動、 實現測試自動化, 這些測試工具一般可分為白盒測試工具、 黑盒測試工具、 性能測試工具, 另外還有用于測試管理的 工具,本文對常用的測試工具作一個分析比較。5.3.1 白盒測試工具(1) jtest是一個代

16、碼分析和動態類、 組件測試工具, 是一個集成的、 易于使用和自動 化的java單元測試工具。它增強代碼的穩定性,防止軟件錯誤。(2) jcontractjcontract在系統級驗證類/部件是否正確工作并被正確使用。jcontract是個獨立工具,在功能上是 jtest的補充。可以用jcontract插裝按dbc注解的java 代碼。當您將類/部件組裝成系統時, jcontract 在運行時監視并報告錯用和功能性問題。 jcontract 幫助每個開發人員有效地考核類/ 部件的系統級行為。5.3.2 黑盒測試工具(1) winrunnermercury interactive 公司的 winr

17、unner 是一種企業級的功能測試工具,用于檢測應用程序是否能夠達到預期的功能及正常運行。 通過自動錄制、 檢測和回放 用戶的應用操作,winrunner能夠有效地幫助測試人員對復雜的企業級應用的不 同發布版進行測試, 提高測試人員的工作效率和質量, 確保跨平臺的、 復雜的企 業級應用無故障發布及長期穩定運行。 企業級應用可能包括web 應用系統,erp 系統, crm 系統等等。(2) silktest silktest internationalsegu宓司的標準的、面向多語種企業級應用的功能和回歸測試工具。讓用戶能跨語種、跨平臺和跨web 瀏覽器,高效率地進行各種類型的應用可靠性測試。6

18、. 維護維護是旨在已完成對軟件的研制(分析、設計、編碼和測試)工作并交付使用以后, 對軟件產品所進行的一些軟件工程的活動。 即根據軟件運行的情況, 對軟件進行適當修改, 以適應新的要求, 以及糾正運行中發現的錯誤。 編寫軟件問題報告、軟件修改報告。軟件維護是一項長期而繁瑣的任務, 長時間的跨度可能會牽扯到文檔、 代碼更新,人員更換等。所以有關軟件的文檔一定要寫好、保存好。另外開發團隊要有自己的文檔代碼規范標準等,也是做好軟件維護的前提條件。一個中等規模的軟件, 如果研制階段需要一年至二年的時間, 在它投入使用以后, 其運行或工作時間可能持續五年至十年。 那么它的維護階段也是運行的這五年至十年期間。 在這段時間, 人們幾乎需要著手解決研制階段所遇到的各種問題, 同時還要解決某些維護工作本身特有的問題。 做好軟件維護工作, 不僅能排除障礙,使軟件能正常工作,而且還可以使它擴展功能,提高性能,為用戶帶來明顯的經濟效益。 然而遺憾的是, 對軟件維護工作的重視往往遠不如對軟件研制工作的重視。 而事實上, 和軟件研制工作相比, 軟件維護的工作量和成本都要大得多。在實際開發過程中, 軟件開發并不是從第一步進行到最后一步, 而是在任何階段, 在進入下一階段前一

溫馨提示

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

評論

0/150

提交評論