軟體開發過程一般分為以下6個階段
對所要解決的問題進行總體定義,包括了解使用者的要求及現實環境,從技術、經濟和社會因素等3個方面研究並論證本軟體專案的可行性,編寫可行性研究報告,**解決問題的方案,並對可供使用的資源(如計算機硬體、系統軟體、人力等)成本,可取得的效益和開發進度作出估計。制訂完成開發任務的實施計畫。
軟體需求分析就是回答做什麼的問題。它是乙個對使用者的需求進行去粗取精、去偽存真、正確理解,然後把它用軟體工程開發語言(形式功能規約,即需求規格說明書)表達出來的過程。本階段的基本任務是和使用者一起確定要解決的問題,建立軟體的邏輯模型,編寫需求規格說明書文件並最終得到使用者的認可。需求分析的主要方法有結構化分析方法、資料流程圖和資料字典等方法。本階段的工作是根據需求說明書的要求,設計建立相應的軟體系統的體系結構,並將整個系統分解成若干個子系統或模組,定義子系統或模組間的介面關係,對各子系統進行具體設計定義,編寫軟體概要設計和詳細設計說明書,資料庫或資料結構設計說明書,組裝測試計畫。分析階段用到資料流圖資料字典等工具
軟體設計可以分為概要設計和詳細設計兩個階段。
詳細設計是從dfd圖匯出初始的模組結構圖,然後經過改進初始的模組結構圖得到最終模組結構圖。在系統分析階段,我們採用結構化分析方法得到了由資料流圖、資料字典和加工說明等組成的系統的邏輯模型。現在,可根據一些規則從資料流圖匯出系統初始的模組結構圖。管理資訊系統的資料流圖通常也可分為兩種典型的結構,即變換型結構和事務型結構。變換型結構的資料流圖呈一種線性狀態,它所描述的工作可表示為輸入、主處理及輸出。事務型結構的資料流圖則呈束狀,即一束資料流平行流人或流出,可能同時有幾個事務要求處理。這兩種典型的結構分別可通過「變換分析」和「事務分析」技術,匯出「變換型」和「事務型」初始的模組結構圖。這兩種方法的思想是首先設計頂層模組,然後自頂向下,逐步細化,最後得到乙個滿足資料流圖所表示的使用者要求的系統的模組結構圖,即系統的物理模型。
軟體編碼是指把軟體設計轉換成計算機可以接受的程式,即寫成以某一程式語言表示的」源程式清單」。充分了解軟體開發語言、工具的特性和程式設計風格,有助於開發工具的選擇以及保證軟體產品的開發質量。當前軟體開發中除在專用場合,已經很少使用二十世紀80年代的高階語言了,取而代之的是物件導向的開發語言。而且面物件的開發語言和開發環境大都合為一體,大大提高了開發的速度。
軟體測試的目的是以較小的代價發現盡可能多的錯誤。要實現這個目標的關鍵在於設計一套出色的測試用例(測試資料和預期的輸出結果組成了測試用例)。如何才能設計出一套出色的測試用例,關鍵在於理解測試方法。不同的測試方法有不同的測試用例設計方法。兩種常用的測試方法是白盒法測試物件是源程式,依據的是程式內部的的邏輯結構來發現軟體的程式設計錯誤、結構錯誤和資料錯誤。結構錯誤包括邏輯、資料流、初始化等錯誤。用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程式邏輯結果。白盒法和黑盒法依據的是軟體的功能或軟體行為描述,發現軟體的介面、功能和結構錯誤。其中介面錯誤包括內部/外部介面、資源管理、整合化以及系統錯誤。
維護是旨在已完成對軟體的研製(分析、設計、編碼和測試)工作並交付使用以後,對軟體產品所進行的一些軟體工程的活動。即根據軟體執行的情況,對軟體進行適當修改,以適應新的要求,以及糾正執行中發現的錯誤。編寫軟體問題報告、軟體修改報告。乙個中等規模的軟體,如果研製階段需要一年至二年的時間,在它投入使用以後,其執行或工作時間可能持續五年至十年。那麼它的維護階段也是執行的這五年至十年期間。在這段時間,人們幾乎需要著手解決研製階段所遇到的各種問題,同時還要解決某些維護工作本身特有的問題。做好軟體維護工作,不僅能排除障礙,使軟體能正常工作,而且還可以使它擴充套件功能,提高效能,為使用者帶來明顯的經濟效益。然而遺憾的是,對軟體維護工作的重視往往遠不如對軟體研製工作的重視。而事實上,和軟體研製工作相比,軟體維護的工作量和成本都要大得多。
12月閱讀筆記
程式設計師的修煉之道 從小工到專家 第七章 在專案開始之前 需求只坑完美,不是在沒有什麼需要增加,而是在沒有什麼需要去掉時達到的。不要蒐集需求而要挖掘他們!與使用者一同工作,以像使用者一樣思考!解開不可能解開的謎題 解開謎題的關鍵 確定加給你各種約束,並確定你確實擁有自由度 不要在盒子外思考,要找到...
架構閱讀筆記12
架構層級的 開閉原則 the open closed principle,簡稱ocp原則 含義是 乙個類對擴充套件是 開 放的,而對變更是封 閉 的,意思是說,應該在不改變類的前提下擴充套件乙個類的行為。而通常的方式是繼承和多型。在架構層級,我們並不會變更系統的一部分功能 可能是最適用於當前架構的程...
C Primer 閱讀筆記(1 2章)
1 用istream物件作為條件時,其效果是檢驗流的狀態。如果流是有效的,即未遇到未知錯誤,那麼檢測成功。當遇到檔案結束符,或遇到乙個無效輸入時,istream的物件將會變成無效,處於無效狀態的istream物件會使條件變為假。2 cerr 乙個ostream物件,寫入cerr的資料是不緩衝的,通常...