·付出較低的開發成本;
·達到要求的軟件功能;
·取得較好的軟件性能;
·開發的軟件易于移植;
·需要較低的維護費用;
·能按時完成開發工作,及時交付使用。
在具體項目的實際開發中,企圖讓以上幾個目標都達到理想的程度往往是非常困難的。
圖1軟件工程目標之間的關系
圖1表明了軟件工程目標之間存在的相互關系。其中有些目標之間是互補關系,例如,易于維護和高可靠性之間,低開發成本與按時交付之間。還有一些目標是彼此互斥的,例如,低開發成本與軟件可靠性之間,提高軟件性能與軟件可移植性之間,就存在沖突。
軟件工程的原則
以上的軟件工程基本目標適合于所有的軟件工程項目。為達到這些目標,在軟件開發過程中必須遵循下列軟件工程原則。
·抽象:抽取事物最基本的特性和行為,忽略非基本的細節。采用分層次抽象,自頂向下、逐層細化的辦法控制軟件開發過程的復雜性。
·信息隱蔽:將模塊設計成“黑箱”,實現的細節隱藏在模塊內部,不讓模塊的使用者直接訪問。這就是信息封裝,使用與實現分離的原則。使用者只能通過模塊接口訪問模塊中封裝的數據。
·模塊化:模塊是程序中邏輯上相對獨立的成分,是獨立的編程單位,應有良好的接口定義。如C語言程序中的函數過程,C++語言程序中的類。模塊化有助于信息隱蔽和抽象,有助于表示復雜的系統。
·局部化:要求在一個物理模塊內集中邏輯上相互關聯的計算機資源,保證模塊之間具有松散的耦合,模塊內部具有較強的內聚。這有助于控制解的復雜性。
·確定性:軟件開發過程中所有概念的表達應是確定的、無歧義性的、規范的。這有助于人們之間在交流時不會產生誤解、遺漏,保證整個開發工作協調一致。
·一致性:整個軟件系統(包括程序、文檔和數據)的各個模塊應使用一致的概念、符號和術語。程序內部接口應保持一致。軟件和硬件、操作系統的接口應保持一致。系統規格說明與系統行為應保持一致。用于形式化規格說明的公理系統應保持一致。
·完備性:軟件系統不丟失任何重要成分,可以完全實現系統所要求功能的程度。為了保證系統的完備性,在軟件開發和運行過程中需要嚴格的技術評審。
·可驗證性:開發大型的軟件系統需要對系統自頂向下、逐層分解。系統分解應遵循系統易于檢查、測試、評審的原則,以確保系統的正確性。
使用一致性、完備性和可驗證性的原則可以幫助人們實現一個正確的系統。
文章來源于領測軟件測試網 http://www.kjueaiud.com/