軟體實施


在這一章我們學習關於計算機程式設計方,文件和軟體實現中的挑戰.

結構化程式設計

在程式編碼的過程中,程式碼行不斷增加,因此該軟體增加大小。漸漸地,它變得幾乎不可能記住程式的流程。如果忘記了如何軟體和它的底層程式,檔案,程式構造它,然後變得非常難以共用,偵錯和修改程式。該解決方案是結構化程式設計. 它允許開發人員使用的子程式,而不是在程式碼中使用簡單的跳轉,從而帶來清晰的程式碼中,提高其效率結構化程式設計迴圈還可以幫助程式員減少編碼時間和組織程式碼號令.

結構化程式設計告訴如何程式被編碼的。結構化程式設計採用三個主要概念:

  • 自頂向下的分析 - 軟體還總是要進行一些理性的工作。這種合理的工作被稱為軟體中用語問題。因此,我們知道如何解決的問題是非常重要的。下自頂向下的分析,該問題被分解成小塊,其中每一個具有一定的意義。每個問題都單獨解決,步驟明確說明如何解決該問題。

  • 模組化程式設計 - 程式設計時,程式碼被分解成較小的組的指令。這些基團被稱為模組,子程式或子例程。基於自頂向下的分析理解模組化程式設計。它不鼓勵使用“轉到”在節目中,這往往使程式流程的非可追溯報表跳躍。跳躍是禁止的,模組化的形式鼓勵在結構化程式設計.

  • 結構化編碼 -  在自頂向下分析參考時,結構編碼的子劃分的模組插入的程式碼還小的單位在其執行的順序。結構化程式使用控制結構,其控制程式的流程,而結構化的編碼使用控制結構來組織中定義的模式的指示.

函式式程式設計

函式式程式設計的程式設計語言把它使用數學函式的概念,方法。在數學中的函式應該總是產生在收到相同的引數相同的結果。在程式語言中,程式的流程通過程式執行時,例如,程式的控制被轉移到被呼叫的過程。而控制流從一個程式到另一個傳輸,程式改變其狀態。.

在程式程式設計,有可能為一個程式在執行中的相同引數的時間產生不同的結果,因為程式本身可以在不同的狀態。這是一個屬性,以及一個缺點的過程程式設計的,其中,所述程式執行的順序或定時變得很重要.

函式式程式設計提供了計算的數學函式,其產生的程式狀態的結果,不論手段。這使得能夠預測程式的行為.

函式式程式設計使用以下概念:

  • 第一級和高階功能 - 這些功能有能力接受另一個函式作為引數或返回他們的其他功能的效果.

  • 純函式 - 這些函式不包括破壞性的更新,即,它們不影響任何I / O或儲存器,如果它們不使用時,它們可以很容易地在不妨礙該程式的其餘部分移除.

  • 遞回 - 遞迴是一種函式就是函式呼叫自身,重複的程式程式碼中,除非一些預先定義的條件相匹配的程式設計技術。遞回是建立在函式式程式設計迴圈的方式.

  • 嚴格的評價 - 它是評價傳遞給一個函式作為引數的表示式的方法。函式式程式設計有兩種評價方法,嚴格的(渴望)還是非嚴格(偷懶)。嚴格評價呼叫該函式之前,請務必計算表示式。非嚴格的評估不計算表示式,除非它是必要的.

  • λ-演算 - 大多數函式式程式設計語言使用λ演算它們的型別系統。 λ-表示式被所發生的評估他們處決.

Common Lisp,斯卡拉,哈斯克爾,二郎和F#是函式式程式設計語言的一些例子.

程式設計風格

程式設計風格設定的編碼規則之後所有的程式員寫的程式碼。當多個程式員在同一個軟體專案工作,它經常需要與寫的其他一些開發者的程式程式碼工作。這變得乏味,或有時是不可能的,如果所有的開發人員不遵守一些標準的程式設計風格編寫程式.

適當的程式設計風格,包括使用函式和變數名相關的預期任務,用精心佈置的縮排,注釋程式碼閱讀器和程式碼的整體表現帶來的便利。這使得程式程式碼閱讀和理解所有,這又使得求解更容易偵錯和錯誤。此外,適當的編碼風格有助於緩解文件和升級.

編碼準則

編碼風格的變化與組織,作業系統和語言.

在一個組織的編碼規則如下編碼元件可以被定義:

  • 命名約定 - 這部分定義如何命名函式,變數,常數和全域性變數.

  • 縮排 - 這是留在一行的開頭的空間,通常2-8空白或單一標籤.

  • 空白 - 它通常被刪去,在一行的末尾.

  • 操作符 - 定義寫數學,分配和邏輯運算子的規則。例如,賦值運算子'='應具有空間之前和之後,如在“X= 2”。.

  • 控制結構 - 寫IF-THEN-ELSE,區分開關的規則,同時,直到和控制流語句僅在巢狀的方式。.

  • 線路長度和包裝 - 定義多少個字應該是有一條線,大多是一行是80個字元長。包裝定義了一條線要包好,如果太長.

  • 功能 - 此功能定義應如何申報和呼叫,使用和不使用引數.

  • 變數 - 這提到了不同的資料型別的變數是如何宣告和定義.

  • 注釋 - 這提到了不同的資料型別的變數是如何宣告和定義.

軟體文件

軟體文件是軟體過程的一個重要組成部分。良好的書面檔案提供一個很好的工具和資訊資源庫的方式要了解軟體的過程。軟體文件還提供了有關如何使用該產品的資訊.

維護良好的檔案應包括下列檔案

  • 需求文件 - 本文件可以作為軟體設計,開發和測試團隊,以履行各自的任務關鍵工具。本檔案包含的意軟體的所有功能,非功能性和行為的描述.

    S本檔案的來源可以事先儲存的資料有關的軟體,已經執行的軟體在用戶端結束的時候,客戶的訪談,問卷調查和研究。通常它被儲存在與高階軟體管理團隊的電子試算表或字處理文件的形式.

    本文件可以作為基礎進行開發的軟體和驗證和確認階段使用。大多數的測試案例是直接從需求文件建立.

  • 軟體設計文件 - 這些單證包括所有必要的資訊,這些資訊來構建軟體的需要. 它包括::(a) 一)高階軟體架構, (b) 軟體的設計細節, (c)資料流圖, (d) 資料庫設計.

    這些檔案的儲存庫工作的開發者實現軟體。儘管這些檔案沒有提供有關如何編寫程式的任何細節,他們給所需要的編碼和執行所有必要的資訊.

  • 技術檔案 - 這些檔案已經由開發商和實際編碼器維持。這些檔案中,作為一個整體,表示有關程式碼的資訊。在寫程式碼的程式員也不在話下程式碼,是誰寫的,在那裡將它需要客觀,它做什麼,它是如何做,該程式碼使用什麼其他的資源,等等.

    技術文件增加了工作的相同的程式碼不同程式員之間的了解。它增強了程式碼的複用能力。這使得偵錯方便,可追溯.

    有可用的各種自動化的工具和一些自帶的程式設計語言本身。比如java的自帶的JavaDoc工具生成程式碼的技術文件.

  • 使用者文件 - 本文件是不同的,從所有上述解釋。所有以前的檔案已經以提供約軟體及其發展過程的資訊。但是,使用者文件介紹了軟體產品應該如何工作,以及應該如何使用,以獲得理想的效果.

    這些單證包括,軟體安裝程式,操作指南,使用者指南,解除安裝方法和特殊的參照,以獲得更多象牌的資訊等.

軟體實施的挑戰

有在實施軟體所面臨的開發團隊的一些挑戰。其中一些被提及如下:

  • 程式碼重用 - 當代語言的程式設計介面是非常複雜的,配備巨大的庫函式。靜止,以使成本最終產物向下,組織管理傾向於重新使用的程式碼,這是早為一些其它軟體建立的。有相容性檢查面臨的程式員,並決定多少程式碼再利用巨大的問題.

  • 版本管理 - 新的軟體發給客戶的每一次,開發商必須保持版本和組態相關的檔案。這個文件需要高度精確,可利用時間.

  • 目標 - 主機 - 軟體程式,它正在開發的組織,需要被設計為主機上的用戶端。但有時,不可能設計出在目標計算機上的可用的軟體.