摘要:軟件是信息產業的靈魂,軟件工程是軟件產業的靈魂。軟件工程隨著信息化技術的不斷發展也得到了迅猛的增長,在一定程度上取得了很大的成果。軟件工程分為三類,即傳統軟件工程、面向對象的軟件工程以及構件軟件工程。本文通過對軟件工程相關知識的介紹,針對項目的特殊性描述了對軟件工程理論的具體實施方法,展示了實際過程中軟件工程的應用。詳細分析了軟件工程的特點以及軟件工程的標準化,從而促進開發出更多高質量的軟件工程。
關鍵詞:軟件工程 系統結構模型 開發 應用 風險分析
“軟件工程(softwareengineering)”是1968年由NATO(北大西洋公約組織)在德國格密斯(Garmish)舉行的學術會議上正式提出的。自從提出這一概念,軟件工程經歷四十多年的坎坷發展已經成為計算機科學領域的獨立學科,并且軟件工程具有很強的綜合性和工程性。現在以及將來的很長一段時間,軟件重用與軟件構成技術、中間件和標準化技術等會成為軟件工程研究的熱點。本文通過分析軟件工程的開發技術以及應用,預測了軟件工程未來的發展趨勢。
1 軟件工程概述
使用工程化的方法研究構建和維護有效地、實用的和高質量的軟件的學科即為軟件工程(Software Engineering,簡稱為SE)。軟件工程涉及很多方面,如:數據庫、系統平臺、設計模式、程序設計以及軟件開發工具。
隨著現代化社會的來臨,電子郵件、人機界面、嵌入式系統、編譯器以及操作系統和數據庫等都應用軟件工程。同時涉及到各個行業包括工業、航空、銀行以及政府部門都用到了計算機軟件。這些軟件的應用不僅僅是提高了各個行業的工作效率,更是提高了生活質量,很大程度上促進了社會和經濟的發展進步。軟件工程師就是創造軟件以及應用軟件的人員,但是在不同的領域軟件工程師又分為軟件工程師、系統分析員、測試員、系統架構師以及程序員等,人們也經常用程序員來泛指各種軟件工程師。軟件工程目前還沒有一個完善權威的定義,最普遍認可的一個定義是:軟件工程是一個解決軟件問題的工程,是對軟件開發、運作以及維護系統的系統化、規律化和可定量的研究方法,同時還是一門交叉的學科。開發與生產出具有良好質量和費用合理的產品是軟件工程的始終目標。通常采用功能性、易使用性、可靠性、易移植性、可維護性以及高效率性六個特征指標來評價軟件的質量。
2 軟件工程開發技術
2.1 軟件重用和軟件構件技術。軟件工程領域長期研究的一個主要的熱點就是軟件重用和軟件構件技術。其中,構件是軟件工程的核心和基礎,而軟件工程的方法和手段是重用。為了使軟件開發人員能夠減少甚至是擺脫寫代碼的低效工作,軟件工程采用軟件重用,這樣不僅可以使軟件開發人員把更多的精力放在定義問題的過程而致力于更高層次的搭構件,更在一定程度上促使問題與求解空間盡量保持一致。在1968年的NATO軟件工程的會議上提出了軟件構件和軟件組裝生產線的思想。至此,在軟件業采用構件技術實現軟件重用,而采用搭積木的方式生產軟件就成了長期發展的夢想。開發工具包括應用運行環境、集成開發環境、應用管理和構件庫管理等,這些都是軟件化應用開發的有利支撐。
2.2 中間件技術。不同層次的中間件平臺是軟件重用以及構件化應用開發和運行的強力支撐。中間件的興起是構件技術逐漸走向現實的基礎,中間件為構件發揮作用提供了良好的平臺,中間件只有在適當的中間件平臺上,軟件才有機會被隔離和抽象處理而最終形成構件。因此,近年來中間件技術是軟件工程關注的焦點以及發展的關鍵。按照功能中間件分為數據庫訪問、通信、分布對象中間件、遠程過程調用以及事務處理五大類。而對軟件重用和軟件構件技術發展能夠產生深刻影響的則是中間件技術。
2.3 標準化技術。軟件標準和軟件過程標準是軟件工程標準的兩方面,標準化不僅僅是軟件重用和構件技術發展的需求,更是附近軟件產業健康發展的有利支撐,同時軟件過程標準的建立是軟件工程成熟的重要標志。國際標準化組織(ISO/IEC)的軟件工程和系統工程標準分技術委員會提出的軟件工程標準框架和美國國防部提出的軟件工程標準指南是目前國家流行的兩大軟件工程標準框架。
3 軟件工程開發特點
3.1 目標明確。滿足人們各式各樣的具體需求是軟件工程軟件設計開始就該明確的目標。在產品投產或者工程實施之前提供這項產品或工程的各項需求的標準是軟件工程設計的任務,這是體現軟件工程“需求分析”的過程特點,而需求分析的質量直接影響開發軟件的成敗。在這一階段,開發人員與用戶之間通過不斷的交流,不斷的澄清概念,最終形成一個清晰的、完整的并且一致的需求說明。
3.2 完整性。在客戶/服務器系統應用中,數據及數據處理完整性是保證信息準確無誤的重要環節。所以在軟件開發中對這一點的邏輯要求是最嚴密的。例如,在一個事務處理過程中,可能對多個表進行修改。如果在中間發生錯誤時,應該放棄整個處理而不是其中的一個過程,返回到開始的狀態以保證操作的完整性,從而使得數據及數據處理的完整性得到保證。
3.3 應用軟件的開發應該是規范的,使得應用軟件開發工作能夠很容易地被別人接手和修改。由于開發出的軟件是依照一定規則的對象組合,所以符合標準,而只要是群體開發軟件,標準又是非常重要的,標準其實在應用軟件開發的程序員之間起到了相互溝通的橋梁作用。
3.4 易維護性。因為使用了對象的繼承性,對祖先對象的修改直接影響到其繼承對象,使得軟件程序的維護性得到一定程序的提高,但相同的語法和邏輯規定又使得多人合作開發的軟件和維護性得到保證,不會因為各自特有的思想和作風而受到限制,也為相互的提高彌補提供了可能性。
3.5 創新性。創新是技術進步的靈魂。隨科技和工程技術實踐不斷創新。開發出的產品在不斷滿足人類日益進步的需求中,為了得到用戶的信賴和支持,在系統分析階段,系統分析員應該對用戶的需求進行全面的了解,針對用戶的不同需求提出一個可行性的方案,并且通過不斷的與客戶進行交流,在交流中不斷的改進方案,如此反復進行,一直到客戶滿意為止。
4 結束語
綜上所述,軟件開發過程中的具體應用比較復雜,上個世紀80 年代初,我國就開始了軟件工程標準的制定工作。在軟件質量標準方面,軟件過程標準化和軟件標準化將進一步緊密結合并協調發展。為符合軟件的規范要求,開發人員在開發過程中應盡可能多地進行分析、測試,以減少用戶使用時的管理維護負擔。
參考文獻:
[1]仲萃豪.軟件開發的三大突破性成果[J].中國信息導報,2005(1):60-61.
[2]楊芙清.軟件工程技術發展思索[J].軟件學報,2005,16(1):1-7.
[3]莫倩,劉曉.面向方面的軟件工程指南[J].計算機工程,2007(14).
[4]潘春光,陳英武,汪浩.軟件項目風險管理理論與方法研究綜述[J].控制與決策,2007(05).
[5]尹鋒.軟件工程系統論研究初探[J].航空計算技術,2006(03).
[6]Joseph S Valacich,Joey F George,Jeffrey AHoffer.系統分析與設計基礎[M].施平安譯.北京:清華大學出版社,2005.
[7]張冰.軟件開發型信息化項目監理初探[J].CAD/CAM與制造業信息化,2007(3).
[8]賈巖.基于構件的軟件工程技術研究[J].科技資訊,2011(06).
[9]吳亮,謝忠.分布式構件化WebGIS的研究與實現[J].科技進步與對策,2003(S1).