1. 程式人生 > >JAVA基礎(41)---軟體開發概述

JAVA基礎(41)---軟體開發概述

java是一門純粹的面向物件的程式語言。面向物件有兩個核心概念:類和物件(人是一個類,每個具體的人:張三、李四就是一個物件)

軟體開發概述

軟體的生命週期

軟體的生命週期又稱為軟體生存週期或系統開發生命週期,是軟體的產生直到報廢的生命週期,週期內有問題定義(立項)、可行性分析(經濟可行性,實用可行用)、總體描述(需求分析)、系統設計、編碼、除錯和測試、驗收與執行、維護升級到廢棄等階段,這種按時間分程的思想方法是軟體工程中的一種思想原則,即按部就班、逐步推進,每個階段都要有定義、工作、審查、形成文件以供交流或備查,以提高軟體的質量。但隨著新的面向物件的設計方法和技術的成熟,軟體生命週期設計方法的指導意義正在逐步減少。

生命週期的每一個週期都有確定的任務,併產生一定規格的文件(資料),提交給下一個週期作為繼續工作的依據。按照軟體的生命週期,軟體店開發不再只單單強調“編碼”,而是概括了軟體開發的全過程。軟體工程要求每一週期工作的開始只能必須建立在前一個週期結果“正確”前提上的延續;因此,每一週期都是按“活動——結果——稽核——再活動——直至結果正確”迴圈往復進展的。

軟體生命週期的七個階段:

1、問題的定義及規劃

此階段是軟體開發方與需求方共同討論,主要確定軟體的開發目標及其可行性。

2、需求分析

在確定軟體開發可行的情況下 ,對軟體需要實現的各個功能進行詳細分析。需求分析階段是一個很重要的階段,這一階段做得好,將為整個軟體開發專案的成功打下良好的基礎。“唯一不變的是變化本身”,同樣需求也是整個軟體開發過程中不斷變化和深入的,因此我們必須制定需求變更計劃來應付這種變化,以保護整個專案的順利進行。

3、軟體設計

此階段主要根據需求分析的結果,對整個軟體系統進行設計,如系統框架設計,資料庫設計等等。軟體設計一般分為總體設計和詳細設計。好的軟體設計將為軟體程式編寫打下良好的基礎。

4、程式編碼

此階段是將軟體設計的結果轉換成計算機可執行的程式程式碼。在程式編碼中必須要制定統一、符合標準的編寫規範。以保證程式的可讀性,易維護性,提高程式的執行效率。

5、軟體測試

在軟體設計完成後要經過嚴密的測試,以發現軟體在整個設計過程中存在的問題並加以糾正。整個測試過程主要分單元測試、組裝測試以及系統測試三個階段進行。測試的方法主要有白盒測試和黑盒測試兩種。在測試過程中需要建立詳細的測試計劃並嚴格按照測試計劃進行測試,以減少測試的隨意性。

6、系統轉化

將軟體有舊系統轉換為新系統,也就是執行系統的方法,轉換方法有平行、分批、分發、立即、實現五種轉化方法。

7、執行維護

軟體維護是軟體生命週期中持續時間最長的階段。在軟體開發完成並投入使用後,由於多方面的原因,如那件不能繼續適應使用者的要求。要延續軟體的使用壽命,就必須對軟體進行維護。軟體的維護包括糾錯性維護和改進性維護兩個方面。

軟體的設計目標

                            正確性、健壯性、靈活性、可重用性、高效性    

  1. 正確性:也就是滿足應用程式的需求
  2. 健壯性:是指軟體對於規範要求以外的輸入情況的處理能力。也就是說,在異常情況下,軟體能夠正常執行的能力
  3. 靈活性:就是可以允許程式碼修改平穩的發生,而不會波及到很多其他的模組
  4. 可重用性:也就是重複使用的意思
  5. 高效性:一般指兩個方面,一是執行效率,二是儲存效率

良好設計的特徵可擴充套件性、靈活性、可插入性、高內聚低耦合

  1. 可擴充套件性:新功能容易加入,而且不會影響已有功能,即不“僵硬”
  2. 靈活性:修改一個地方,不會影響其他,即不“脆弱”
  3. 可插入性:用一個類替換另一個類,只要它們實現相同介面即可,即低“黏度”

面向物件的三大特徵繼承性、封裝性、多型性

  1. 繼承性:特殊類的物件具有其一般類的物件的全部屬性和行為,即稱特殊類對一般類的繼承
  2. 封裝性:把物件的屬性和行為組合成一個獨立的單位或部件,並儘可能隱蔽物件的內部細節,而只保留必要的對外介面,使之4與外部發生聯絡。
  3. 多型性:是指不同型別的物件接收相同的訊息時,產生不同的行為。

軟體的設計原則

軟體的開發思想

面向過程:是一種以事件為中心的程式設計思想。就是分析出解決問題所需的步驟,然後用函式把這些步驟實現,並按順序呼叫。

面向物件:用線性的思維。與面向過程相輔相成。在軟體開發過程中,巨集觀上,用面向物件來把握事物間複雜的關係,分析系統。微觀上,仍然面向使用過程。

面向過程的思維方式是分析綜合,面向物件的思維方式是構造。

總的來說:面向物件是將事物高度抽象化;面向過程是一種自上而下的程式設計。面向物件必須先建立抽象模型,之後直接使用模型就行了。