一、軟件開發(fā)遵循“軟件導向”的必要性
軟件項目的日常決策會受到價值評判、成本權衡、人力因素、宏觀經濟趨勢、技術趨勢、市場形勢和時機等傳統(tǒng)經濟因素的制約。因此軟件生產不僅是一項高技術含量的工作,更是一項需要考慮成本因素的復雜系統(tǒng)工程。隨著軟件交付在企業(yè)中的地位日趨重要,傳統(tǒng)的軟件工程原則無法再為企業(yè)帶來更多競爭優(yōu)勢!败浖洕鷮W”便誕生在這一背景之下。
軟件經濟學的目的是為了成功地實現交付,關注軟件開發(fā)中價值的判定、成本的權衡、人性的因素、宏觀經濟趨勢、技術趨勢以及市場狀況和時機。它力圖更好地挖掘經濟目標、系統(tǒng)規(guī)定參數、內外部條件和軟件開發(fā)技術之間的關系,來提升項目、企業(yè)、行業(yè)的業(yè)務價值。而軟件工程學不再適應軟件開發(fā)的原因也在于此,傳統(tǒng)行業(yè)的工程管理理念無法解決軟件開發(fā)這一服務產業(yè)業(yè)務靈活多變的特點。
二、軟件開發(fā)如何遵循“軟件導向”
(一)分析中遵循“軟件導向”
軟件需求分析就是回答做什么的問題。它是一個對用戶的需求進行去粗取精、去偽存真、正確理解,然后把它用軟件工程開發(fā)語言表達出來的過程。本階段的基本任務是和用戶一起確定要解決的問題,建立軟件的邏輯模型,編寫需求規(guī)格說明書文檔并最終得到用戶的認可。需求分析的主要方法有結構化分析方法、數據流程圖和數據字典等方法。
(二)設計中遵循“軟件導向”
軟件設計可以分為概要設計和詳細設計兩個階段。實際上軟件設計的主要任務就是將軟件分解成模塊是指能實現某個功能的數據和程序說明、可執(zhí)行程序的程序單元?梢允且粋函數、過程、子程序、一段帶有程序說明的獨立的程序和數據,也可以是可組合、可分解和可更換的功能單元。模塊,然后進行模塊設計。概要設計就是結構設計,其主要目標就是給出軟件的模塊結構,用軟件結構圖表示。詳細設計的首要任務就是設計模塊的程序流程、算法和數據結構,次要任務就是設計數據庫,常用方法還是結構化程序設計方法。
(三)編碼中遵循“軟件導向”
軟件編碼是指把軟件設計轉換成計算機可以接受的程序,即寫成以某一程序設計語言表示的"源程序清單"。充分了解軟件開發(fā)語言、工具的特性和編程風格,有助于開發(fā)工具的選擇以及保證軟件產品的開發(fā)質量。
(四)測試中遵循“軟件導向”
軟件測試的目的是以較小的代價發(fā)現盡可能多的錯誤。要實現這個目標的關鍵在于設計一套出色的測試用例。如何才能設計出一套出色的測試用例,關鍵在于理解測試方法。不同的測試方法有不同的測試用例設計方法。兩種常用的測試方法是白盒法測試對象是源程序,依據的是程序內部的的邏輯結構來發(fā)現軟件的編程錯誤、結構錯誤和數據錯誤。結構錯誤包括邏輯、數據流、初始化等錯誤。用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程序邏輯結果。白盒法和黑盒法依據的是軟件的功能或軟件行為描述,發(fā)現軟件的接口、功能和結構錯誤。其中接口錯誤包括內部/外部接口、資源管理、集成化以及系統(tǒng)錯誤。黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。黑盒法。
(五)維護中遵循“軟件導向”
維護是指在已完成對軟件的研制工作并交付使用以后,對軟件產品所進行的一些軟件工程的活動。即根據軟件導向和軟件運行的情況,對軟件進行適當修改,以適應新的要求,以及糾正運行中發(fā)現的錯誤。編寫軟件問題報告、軟件修改報告。