複製鏈接
請複製以下鏈接發送給好友

軟體工程

鎖定
軟件工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。包括軟件程序編寫、UI設計、前端設計等一系列工作。
它涉及到程序設計語言,數據庫,軟件開發工具,系統平台,標準,設計模式等方面。
中文名
軟體工程
特    點
實用的和高質量
用    途
人機界面,辦公套件
框    架
目標、過程和原則

軟體工程什麼是軟件工程

軟件工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它涉及到程序設計語言,數據庫,軟件開發工具,系統平台,標準,設計模式等方面。
在現代社會中,軟件應用於多個方面。典型的軟件比如有電子郵件嵌入式系統,人機界面,辦公套件,操作系統,編譯程序,數據庫,遊戲等。同時,各個行業幾乎都有計算機軟件的應用,比如工業,農業,銀行,航空,政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。
軟件工程師是對應用軟件創造軟件的人們的統稱,軟件工程師按照所處的領域不同可以分為系統分析員,軟件設計師,系統架構師,程序員,測試員等等。人們也常常用程序員來泛指各種軟件工程師

軟體工程軟件工程的框架

軟件工程的框架可概括為:目標、過程和原則。
1、軟件工程目標
生產具有正確性、可用性以及開銷合宜的產品。正確性指軟件產品達到預期功能的程度。可用性指軟件基本結構、實現及文件為用户可用的程度。開銷合宜是指軟件開發、運行的整個開銷滿足用户要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
軟件工程活動是“生產一個最終滿足需求且達到工程目標的軟件產品所需要的步驟”。主要包括需求、設計、實現、確認以及支持等活動。詳細設計概要設計建立整個軟件體系結構,包括子系統、模塊以及相關層次的説明、每一模塊接口定義。詳細設計產生程序員可用的模塊説明,包括每一模塊中數據結構説明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足用户的要求。支持活動包括修改和完善。伴隨以上活動,還有管理過程、支持過程、培訓過程等。
2、軟件工程過程
生產一個最終能滿足需求且達到工程目標的軟件產品所需要的步驟。軟件工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件系統結構,包括子系統、模塊以及相關層次的説明、每一模塊的接口定義詳細設計產生程序員可用的模塊説明。包括每一模塊中數據結構説明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足用户的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
3、軟件工程的原則
軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發過程中必須遵循的原則。軟件工程的原則有以下四項基本原則:
(1)選取適宜開發範型。該原則與系統設計有關。在系統設計中,軟件需求、硬件需求以及其他因素之間是相互制約、相互影響的,經常需要權衡。因此,必須認識需求定義的易變性,採用適宜的開發範型予以控制,以保證軟件產品滿足用户的要求。
(2)採用合適的設計方法。軟件設計中,通常要考慮軟件的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特徵。合適的設計方法有助於這些特徵的實現,以達到軟件工程的目標。
(3)提供高質量的工程支持。“工欲善其事,必先利其器”。在軟件工程中,軟件工具與環境對軟件過程的支持頗為重要。軟件工程項目的質量與開銷直接取決於對軟件工程所提供的支撐質量和效用。
(4)重視開發過程的管理。軟件工程的管理,直接影響可用資源的有效利用,生產滿足目標的軟件產品,提高軟件組織的生產能力等問題。因此,僅當軟件過程得以有效管理時,才能實現有效的軟件工程
這一軟件工程框架告訴我們,軟件工程的目標是可用性、正確性和合算性;實施一個軟件工程要選取適宜的開發範型,要採用合適的設計方法,要提供高質量的工程支撐,要實行開發過程的有效管理;軟件工程活動主要包括需求、設計、實現、確認和支持等活動,每一活動可根據特定的軟件工程,採用合適的開發範型、設計方法、支持過程以及過程管理。根據軟件工程這一框架,軟件工程學科的研究內容主要包括:軟件開發範型、軟件開發方法軟件過程軟件工具軟件開發環境計算機輔助軟件工程(CASE) 及軟件經濟學等。
軟件工程的基本原理
自從1968年提出“軟件工程”這一術語以來,研究軟件工程的專家學者們陸續提出了100多條關於軟件工程的準則或信條。美國著名的軟件工程專家巴利·玻姆(Barry Boehm)綜合這些專家的意見,並總結了美國天合公司(TRW)多年的開發軟件的經驗,於1983年提出了軟件工程的七條基本原理。
玻姆認為,這七條原理是確保軟件產品質量和開發效率的原理的最小集合。它們是相互獨立的,是缺一不可的最小集合;同時,它們又是相當完備的。
人們當然不能用數學方法嚴格證明它們是一個完備的集合,但是可以證明,在此之前已經提出的100多條軟件工程準則都可以有這七條原理的任意組合藴含或派生。下面簡要介紹軟件工程的七條原理:
1、用分階段的生命週期計劃嚴格管理
這一條是吸取前人的教訓而提出來的。統計表明,50%以上的失敗項目是由於計劃不周而造成的。在軟件開發與維護的漫長生命週期中,需要完成許多性質各異的工作。這條原理意味着,應該把軟件生命週期分成若干階段,並相應制定出切實可行的計劃,然後嚴格按照計劃對軟件的開發和維護進行管理。 玻姆認為,在整個軟件生命週期中應指定並嚴格執行6類計劃:項目概要計劃、里程碑計劃、項目控制計劃、產品控制計劃、驗證計劃、運行維護計劃。
2、堅持進行階段評審
統計結果顯示: 大部分錯誤是在編碼之前造成的,大約佔63%錯誤發現得越晚,改正它要付出的代價就越大,要差2到3個數量級。 因此,軟件的質量保證工作不能等到編碼結束之後再進行,應堅持進行嚴格的階段評審,以便儘早發現錯誤。
3、實行嚴格的產品控制
開發人員最痛恨的事情之一就是改動需求。但是實踐告訴我們,需求的改動往往是不可避免的。這就要求我們要採用科學的產品控制技術來順應這種要求。也就是要採用變動控制,又叫基準配置管理。當需求變動時,其它各個階段的文檔或代碼隨之相應變動,以保證軟件的一致性。
4、採納現代程序設計技術
從六、七十年代的結構化軟件開發技術,到最近的面向對象技術,從第一、二代語言,到第四代語言,人們已經充分認識到:方法大似氣力。採用先進的技術既可以提高軟件開發的效率,又可以減少軟件維護的成本。
5、結果應能清楚地審查
軟件是一種看不見、摸不着的邏輯產品。軟件開發小組的工作進展情況可見性差,難於評價和管理。為更好地進行管理,應根據軟件開發的總目標及完成期限, 儘量明確地規定開發小組的責任和產品標準,從而使所得到的標準能清楚地審查。
6、開發小組的人員應少而精
開發人員的素質和數量是影響軟件質量和開發效率的重要因素,應該少而精。 這一條基於兩點原因:高素質開發人員的效率比低素質開發人員的效率要高几倍到幾十倍,開發工作中犯的錯誤也要少的多; 當開發小組為N人時,可能的信道為N(N-1)/2, 可見隨着人數N的增大,通訊開銷將急劇增大。
7、承認不斷改進軟件工程實踐的必要性
遵從上述六條基本原理,就能夠較好地實現軟件的工程化生產。但是,它們只是對現有的經驗的總結和歸納,並不能保證趕上技術不斷前進發展的步伐。因此,玻姆提出應把承認不斷改進軟件工程實踐的必要性作為軟件工程的第七條原理。根據這條原理,不僅要積極採納新的軟件開發技術,還要注意不斷總結經驗,收集進度和消耗等數據,進行出錯類型和問題報告統計。這些數據既可以用來評估新的 軟件技術的效果,也可以用來指明必須着重注意的問題和應該優先進行研究的工具和技術。