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