什么是教育管理軟件定制開發?
軟件開發是指根據用戶的要求創造出軟件系統或者系統中軟件部分的過程。由此可見軟件開發主要是一個過程,而不僅僅是一個結果。軟件開發是一項相對比較復雜的系統工程。主要的流程包括需求捕捉、需求分析、制定方案、軟件設計、軟件實現和軟件測試。眾所周知軟件一般是用某種程序設計語言來實現的,所以通常情況 下采用軟件開發工具可以進行軟件開發。軟件從功能主要可以劃分為系統軟件和應用軟件兩種。一般來說軟件并不僅僅是包括可以在計算機上運行的程序,與這些程序相關的文件一般也被認為是軟件的一部分。
軟件開發過程分為5個階段,分別是需求分析、軟件設計、軟件編碼、軟件測試、軟件維護。
軟件需求分析是對開發什么樣的軟件的一個系統的分析與設想。它是對用戶的需求進行去粗取精、去偽存真、正確理解,然后將其用軟件工程開發語言表達出來的一個過程。需求分析的主要方法有結構化分析法、數據流程圖和數據字典等。本階段的主要任務是和用戶一起確定想要解決的問題,并在此基礎上建立軟件的邏輯模型,編寫需求規格說明書,并最終得到用戶的確認。然后根據需求說明書的要求,設計建立相應的軟件系統體系結構,并將整個系統分解成若干個子系統或模塊,并要定義子系統或模塊間的接口關系,對各子系統進行具體設計 定義,并編寫軟件概要設計和詳細設計說明書,數據庫或數據結構設計說明書,以及組裝測試計劃。需要特別注意的是在任何軟件或系統開發的初始階段作為軟件開 發人員必須要完全掌握用戶的需求,以期能將緊隨的系統開發過程中哪些功能應該落實、采取何種規格以及設定哪些限制優先加以定位。系統工程師或者項目經理最終將據此完成設計方案,在此基礎上對隨后的程序開發、系統功能和性能的描述及限制作出定義。
軟件設計可以分為概要設計和詳細設計兩個階段。實際上軟件設計的主要任務就是將軟件分解成若干個模塊,而模塊是指能實現某個功能的數據和程序說明、可執行程序的程序單元。它可以是一個函數、過程、子程序、一段 帶有程序說明的獨立的程序和數據,也可以是可組合、可分解和可更換的功能單元,然后進行模塊設計。概要設計就是結構設計,其主要目標就是給出軟件的模塊結構,用軟件結構圖表示。詳細設計的首要任務就是設計模塊的程序流程、算法和數據結構,次要任務就是設計數據庫,常用方法還是結構化程序設計法。
軟件編碼是指把軟件設計轉換成計算機可以接受的程序的一個過程,即寫成以某一程序設計語言表示的"源程序清單"。 充分了解軟件開發語言、工具的特性和編程風格,將非常有助于開發工具的選擇以及保證軟件產品的開發質量。當前軟件開發中除在專用場合,已經很少使用過去的 高級語言了,取而代之的是面向對象的開發語言。而且面向對象的開發語言和開發環境大都合為一體,從而大大提高了軟件開發的速度和效率。
軟件測試是軟件開發過程中一個必不可少的環節,它的目的是盡可能多地發現軟件運行過程中的錯誤。而要實現這個目標的關鍵在于設計一套出色的測試用例(測試數據與功能和預期的輸出結果組成了測試用例)。如何才能 設計出一套出色的測試用例,關鍵在于理解測試方法。不同的測試方法有不同的測試用例設計方法。常見的測試方法有兩種,一種是白盒測試法,另外一種是黑盒測試法。白盒測試法對象是源程序,依據的是程序內部的的邏輯結構來發現軟件的編程錯誤、結構錯誤和數據錯誤。而結構錯誤通常包括邏輯、數據流、初始化等錯 誤。用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程序邏輯結果。黑盒測試法著眼于程序外部結構、不考慮內部邏輯結構、針對軟件界面和軟件功能進行測 試。黑盒測試法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。黑盒測試法用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。白盒測試法和黑盒測試法依據的都是軟件的功能或軟件行為描述,發現軟件的接口、功能和結構錯誤。其中接口錯誤包括內部/外部接口、資源管理、集成化以及系統錯誤。
軟件維護是指在已完成對軟件的研制(分析、設計、編碼和 測試)工作并交付使用以后,對軟件產品所進行的一系列軟件工程的活動。即根據軟件運行的實際情況,對軟件進行適當的修改,以適應用戶新的需求,以及糾正運 行中發現的一些錯誤。并且編寫軟件問題報告和軟件修改報告。一個中等規模的軟件,如果說開發階段需要一年至二年的時間的話,那么在它投入使用以后,其運行 或工作時間可能持續五年到十年。而它的維護階段也是運行的這五年至十年期間。在這段時間,人們幾乎需要著手解決軟件開發階段所遇到的各種問題,同時還要解 決某些維護工作本身特有的問題。做好軟件維護工作的意義重大,不僅能排除障礙,使軟件正常工作,而且還可以使它擴展功能,提高性能,為用戶帶來更多的經濟 效益。然而遺憾的是,現階段很多軟件開發人員對軟件維護工作的重視程度遠不如對軟件開發工作的重視。但事實上,和軟件開發工作相比,軟件維護的工作量和成 本都要大得多。因為在實際開發過程中,軟件開發并不是從第一步直接進行到最后一步,而是在任何階段,在進入下一階段前一般都有一步或幾步的回溯。在測試過 程中的問題可能要求修改設計,用戶也可能會提出一些需要來修改需求說明書等。
總之軟件開發是一個系統的復雜的工程,不管是大型系統還是小軟件其開發過程都離不開以上5個階段,而且這5個階段是環環相扣的,任何一個環節出現問題,最終的結果都會影響軟件的順利開發和按期完工。