軟體開發劃分的階段
軟體一般是用某種程式設計語言來實現的。下面是小編精心為你準備的,希望對你有幫助!
1、計劃
對所要解決的問題進行總體定義,包括瞭解使用者的要求及現實環境,從技術、經濟和社會因素等3個方面研究並論證本軟體專案的可行性,編寫可行性研究報告,探討解決問題的方案,並對可供使用的資源***如計算機硬體、系統軟體、人力等***成本,可取得的效益和開發進度作出估計,制訂完成開發任務的實施計劃。
2、分析
軟體需求分析就是對開發什麼樣的軟體的一個系統的分析與設想。它是一個對使用者的需求進行去粗取精、去偽存真、正確理解,然後把它用軟體工程開發語言***形式功能規約,即需求規格說明書***表達出來的過程。本階段的基本任務是和使用者一起確定要解決的問題,建立軟體的邏輯模型,編寫需求規格說明書文件並最終得到使用者的認可。需求分析的主要方法有結構化分析方法、資料流程圖和資料字典等方法。本階段的工作是根據需求說明書的要求,設計建立相應的軟體系統的體系結構,並將整個系統分解成若干個子系統或模組,定義子系統或模組間的介面關係,對各子系統進行具體設計定義,編寫軟體概要設計和詳細設計說明書,資料庫或資料結構設計說明書,組裝測試計劃。在任何軟體或系統開發的初始階段必須先完全掌握使用者需求,以期能將緊隨的系統開發過程中哪些功能應該落實、採取何種規格以及設定哪些限制優先加以定位。系統工程師最終將據此完成設計方案,在此基礎上對隨後的程式開發、系統功能和效能的描述及限制作出定義。
3、設計
軟體設計可以分為概要設計和詳細設計兩個階段。實際上軟體設計的主要任務就是將軟體分解成模組是指能實現某個功能的資料和程式說明、可執行程式的程式單元。可以是一個函式、過程、子程式、一段帶有程式說明的獨立的程式和資料,也可以是可組合、可分解和可更換的功能單元。模組,然後進行模組設計。概要設計就是結構設計,其主要目標就是給出軟體的模組結構,用軟體結構圖表示。詳細設計的首要任務就是設計模組的程式流程、演算法和資料結構,次要任務就是設計資料庫,常用方法還是結構化程式設計方法。
4、編碼
軟體編碼是指把軟體設計轉換成計算機可以接受的程式,即寫成以某一程式設計語言表示的“源程式清單”。充分了解軟體開發語言、工具的特性和程式設計風格,有助於開發工具的選擇以及保證軟體產品的開發質量。
當前軟體開發中除在專用場合,已經很少使用二十世紀80年代的高階語言了,取而代之的是面向物件的開發語言。而且面向物件的開發語言和開發環境大都合為一體,大大提高了開發的速度。
5、測試
軟體測試的目的是以較小的代價發現儘可能多的錯誤。要實現這個目標的關鍵在於設計一套出色的測試用例***測試資料與功能和預期的輸出結果組成了測試用例***。如何才能設計出一套出色的測試用例,關鍵在於理解測試方法。不同的測試方法有不同的測試用例設計方法。兩種常用的測試方法是白盒法測試物件是源程式,依據的是程式內部的的邏輯結構來發現軟體的程式設計錯誤、結構錯誤和資料錯誤。結構錯誤包括邏輯、資料流、初始化等錯誤。用例設計的關鍵是以較少的用例覆蓋儘可能多的內部程式邏輯結果。白盒法和黑盒法依據的是軟體的功能或軟體行為描述,發現軟體的介面、功能和結構錯誤。其中介面錯誤包括內部/外部介面、資源管理、整合化以及系統錯誤。黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模組輸出和輸入介面。
6、維護
維護是指在已完成對軟體的研製***分析、設計、編碼和測試***工作並交付使用以後,對軟體產品所進行的一些軟體工程的活動。即根據軟體執行的情況,對軟體進行適當修改,以適應新的要求,以及糾正執行中發現的錯誤。編寫軟體問題報告、軟體修改報告。
一箇中等規模的軟體,如果研製階段需要一年至二年的時間,在它投入使用以後,其執行或工作時間可能持續五年至十年。那麼它的維護階段也是執行的這五年至十年期間。在這段時間,人們幾乎需要著手解決研製階段所遇到的各種問題,同時還要解決某些維護工作本身特有的問題。做好軟體維護工作,不僅能排除障礙,使軟體能正常工作,而且還可以使它擴充套件功能,提高效能,為使用者帶來明顯的經濟效益。然而遺憾的是,對軟體維護工作的重視往往遠不如對軟體研製工作的重視。而事實上,和軟體研製工作相比,軟體維護的工作量和成本都要大得多。
在實際開發過程中,軟體開發並不是從第一步進行到最後一步,而是在任何階段,在進入下一階段前一般都有一步或幾步的回溯。在測試過程中的問題可能要求修改設計,使用者可能會提出一些需要來修改需求說明書等。
軟體開發的平臺
軟體開發平臺源於繁瑣的實踐開發過程中。開發人員在實踐常用的函式、類、抽象、介面等進行總結、封裝,成為了可以重複使用的“中介軟體”,而隨著“中介軟體”的成熟和通用,功能更強大、更能滿足企業級客戶需求的——軟體開發平臺應運而生。
平臺是一段時間內科研成果的匯聚,也是階段性平臺期的標誌,為行業進入新的研發領域提供了基礎。由於平臺對企業核心競爭力的提升非常明顯,目前國內的管理軟體市場,軟體開發平臺的應用已經成為一種趨勢。
由於開發環境、開發人員、功能定位、行業背景等的不同,不同品牌的平臺存在較大差別。
軟體開發的環境
軟體開發環境在歐洲又叫整合式專案支援環境***Integrated Project Support Environment,IPSE***。軟體開發環境的主要組成成分是軟體工具。人機介面是軟體開發環境與使用者之間的一個統一的互動式對話系統,它是軟體開發環境的重要質量標誌。儲存各種軟體工具加工所產生的軟體產品或半成品***如原始碼、測試資料和各種文件資料等***的軟體環境資料庫是軟體開發環境的核心。工具間的聯絡和相互理解都是通過儲存在資訊庫中的共享資料得以實現的。
軟體開發環境資料庫是面向軟體工作者的知識型資訊資料庫,其資料物件是多元化、帶有智慧性質的。軟體開發資料庫用來支撐各種軟體工具,尤其是自動設計工具、編譯程式等的主動或被動的工作。
較初級的SDE資料庫一般包含通用子程式庫、可重組的程式加工資訊庫、模組描述與介面資訊庫、軟體測試與糾錯依據資訊庫等;較完整的SDE資料庫還應包括可行性與需求資訊檔案、階段設計詳細檔案、測試驅動資料庫、軟體維護檔案等。更進一步的要求是面向軟體規劃到實現、維護全過程的自動進行,這要求SDE資料庫系統是具有智慧的,其中比較基本的智慧結果是軟體編碼的自動實現和優化、軟體工程專案的多方面不同角度的自我分析與總結。這種智慧結果還應主動地被重新改造、學習,以豐富SDE資料庫的知識、資訊和軟體積累。這時候,軟體開發環境在軟體工程人員的恰當的外部控制或幫助下逐步向高度智慧與自動化邁進。
軟體實現的根據是計算機語言。時至今日,計算機語言發展為演算法語言、資料庫語言、智慧模擬語言等多種門類,在幾十種重要的演算法語言中,C&C++語言日益成為廣大計算機軟體工作人員的親密夥伴,這不僅因為它功能強大、構造靈活,更在於它提供了高度結構化的語法、簡單而統一的軟體構造方式,使得以它為主構造的SDE資料庫的基礎成分——子程式庫的設計與建設顯得異常的方便。
軟體開發需要學什麼