软件工程概念
軟件工程概念
? ? ? ? ??軟件
? ? ? ? ? 軟件的概念:軟件是計算機系統中與硬件相互依存的另一部分,是包括程序、數據及其相關文檔的完整集合。
? ? ? ? ? 軟件危機的概念:軟件危機是指在計算機軟件的開發、使用和維護過程中遇到的一系列嚴重問題。
? ? ? ? ? 軟件生存周期的概念:軟件生存周期是指一個計算機軟件從功能確定、設計,到開發成功投入使用,并在使用中不斷地修改、增補和完善,直到停止該軟件的使用的全過程。
? ? ? ? ??軟件工程
? ? ? ? ? 軟件工程的概念:軟件工程學是一門指導軟件開發和維護的工程學科,是為了經濟地獲得能夠在實際機器上有效運行的可靠軟件而建立和使用的一系列完善的工程化原則。它應用計算機科學、數學及管理科學等原理,借鑒傳統工程的原則、方法來生產軟件,以達到提高質量、降低成本的目的。
? ? ? ? ? 軟件工程三要素:方法,工具和過程。
? ? ? ? ? 方法為軟件開發提供了“如何做”的技術,是指導研制軟件的某種標準規范。它包括了多方面的任務,如項目計劃與估算、軟件系統需求分析、數據結構、系統總體結構的設計、算法的設計、編碼、測試以及維護等。軟件工程方法常采用某種特殊的語言或圖形的表達方法及一套質量保證標準。
? ? ? ? ? 工具是指軟件開發、維護和分析中使用的程序系統,為軟件工程方法提供自動的或半自動的軟件支撐環境。
? ? ? ? ? 過程則是將軟件工程的方法和工具綜合起來以達到合理、及時地進行計算機軟件開發的目的。過程定義了方法使用的順序、要求交付的文檔資料、為保證質量和協調變化所需要的管理及軟件開發各個階段完成的“里程碑”。
? ? ? ? ??軟件開發方法
? ? ? ? ??結構化方法
? ? ? ? ? 結構化方法的基本思想可以概括為自頂向下、逐步求精,采用模塊化技術和功能抽象將系統按功能分解為若干模塊,從而將復雜的系統分解成若干易于控制和處理的子系統,子系統又可分解為更小的子任務,最后的子任務都可以獨立編寫成子程序模塊,模塊內部由順序、選擇和循環等基本控制結構組成。這些模塊功能相對獨立,接口簡單,使用維護非常方便。所以,結構化方法是一種非常有用的軟件開發方法,是其他軟件工程方法的基礎。
? ? ? ? ??面向對象方法
? ? ? ? ? 面向對象方法與過程盡可能接近人類認識世界、解決問題的方法與過程,將客觀世界中的實體抽象為問題域中的對象。
? ? ? ? ??軟件開發工具
? ? ? ? ? 軟件開發工具為軟件開發方法提供自動的或半自動的軟件支撐環境。當一種方法提出并證明有效后,往往就會隨之研制出相應的軟件開發工具,來幫助實現和推行這種方法,提高軟件設計效率,減輕勞動強度。
? ? ? ? ??傳統軟件工程
? ? ? ? ? 傳統的軟件工程采用瀑布模型作為軟件工程的基本模型,把軟件開發和運行過程劃分為6個階段:軟件計劃、需求分析、軟件設計、程序編碼、軟件測試、運行和維護等,強調各階段的完整性和先后順序,根據不同階段的工作特點,運用不同的手段完成各階段的任務。軟件開發人員遵循嚴格的規范,在每一階段工作結束時都要進行階段評審和確認,以得到該階段的一致、完整、正確和無多義性的文檔資料,把這些文檔資料作為階段結束的標志“凍結”起來,并以它們作為下一階段工作的基礎。然后,再一步步地實現這些目標,從而保證軟件的質量。
? ? ? ? ??面向對象的軟件工程
? ? ? ? ??基本思想
? ? ? ? ? 面向對象方法的基本思想是從現實世界中客觀存在的事物出發來構造軟件系統,并在系統構造中盡可能運用人類的自然思維方式。開發一個軟件是為了解決某些問題,這些問題所涉及的業務范圍稱作該軟件的問題域。面向對象方法強調直接以問題域(現實世界)中的事物為中心來思考問題、認識問題,并根據這些事物的本質特征,把它們抽象地表示為系統中的對象,作為系統的基本構成單位。因此,面向對象方法可以使系統直接地映射問題域,保持問題域中事物及其相互關系的本來面貌。
? ? ? ? ??出發點和基本原則
? ? ? ? ? 盡可能模擬人類所習慣的思維方式,使開發軟件的方法和過程盡可能接近人類認識世界、解決問題的方法和過程,即使描述問題的問題域與實現解法的求解域在結構上盡可能一致。
? ? ? ? ??主要內容
? ? ? ? ? 面向對象的軟件工程包括面向對象的分析、面向對象的設計、面向對象的編程和面向對象的測試。
? ? ? ? ??主要優點
? ? ? ? ? 符合人們通常的思維方式
? ? ? ? ? 高度連續性
? ? ? ? ? 重用性好
? ? ? ? ? 可維護性好
總結