本站小編為你精心準備了軟件工程控制參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
軟件工程控制的重要性軟件開發過程新問題多多,且并不因軟件開發工具的完善而有大的改善,軟件工程控制的重要性越來越被重視。軟件開發過程的新問題常有如下幾種:
(1)對軟件開發成本和進度的估計經常很不準確。實際成本比估計成本有可能高出一個數量級,實際進度比預期進度拖延幾個月甚至幾年的現象并不罕見。這種現象降低了軟件開發組織的信譽。而為了趕進度和節約成本所采取的一些權宜之計又往往損害了軟件產品的質量,從而不可避免地會引起用戶的不滿。
(2)用戶對“已完成的”軟件系統不滿足的現象經常發生。軟件開發人員經常在對用戶要求只有模糊的了解,甚至對所要解決的新問題還沒有確切熟悉的情況下,就倉促上陣匆忙著手編寫程序。軟件開發人員和用戶之間的信息交流往往很不充分,“閉門造車”必然導致最終的產品不符合用戶的實際需要。
(3)軟件產品的質量往往靠不住。軟件可靠性和質量保證的確切的定量概念剛剛出現不久,軟件質量保證技術(審查、復審和測試)還沒有堅持不懈地應用到軟件開發的全過程中,這些都導致軟件產品發生質量新問題。
(4)軟件經常是不可維護的。很多程序中的錯誤是非常難改正垢,實際上不可能使這些程序適應新的硬件環境,也不能根據用戶的需要在原有程序中增加一些新的功能?!翱芍赜玫能浖边€是一個沒有完全做到的、正在努力追求的目標,人們仍然在重復開發類似的或基本類似的軟件。
(5)軟件通常沒有適當的文檔資料。計算機軟件不僅僅是程序,還應該有一整套文檔資料。這些文檔資料應該是在軟件開發過程中產生出來的,而且應該是“最新式的”(即和程序代碼完全一致的)。軟件開發組織的管理人員可以使用這些文檔資料作為“里程碑”,來管理和評價軟件開發工程的進展狀況;軟件開發人員可以利用它們作為通信工具,在軟件開發過程中準確地交流信息;對于軟件維護人員而言,這些文檔資料更是至關重要必不可少的。缺乏必要的文檔資料或者文檔資料不合格,必然給軟件開發和維護帶來許多嚴重的困難和新問題。
(6)軟件成本在計算機系統總成本中所占的比例逐年上升。由于微電子學技術的進步和生產自動化程度不斷提高,硬件成本逐年下降,然而軟件開發需要大量人力,軟件成本隨著通貨膨脹以及軟件規模和數量的不斷擴大而持續上升。美國在1985年軟件成本大約已占計算機系統總成本的90。
(7)軟件開發生產率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨向。軟件產品“供不應求”的現象使人類不能充分利用現代計算機硬件提供的巨大潛力。
軟件工程的七條基本原理:1、用分階段的生命周期計劃嚴格管理有人經統計發現,在不成功的軟件項目中有一半左右是由于計劃不周造成的,可見把建立完善的計劃作為第一條基本原理是吸取了前人的教訓而提出來的。在軟件開發和維護的漫長的生命周期中,需要完成許多性質各異的工作。這條基本原理意味著,應該把軟件生命周期劃分成若干個階段,并相應地制定出切實可行的計劃,然后嚴格按照計劃對軟件的開發和維護工作進行管理。Boehm認為,在軟件的整個生命周期中應該制定并嚴格執行六類計劃,它們是項目概要計劃,里程碑計劃,項目控制計劃,產品控制計劃,驗證計劃,運行維護計劃。不同層次的管理人員都必須嚴格按照計劃各盡其職地管理軟件開發和維護工作,絕不能受客戶或上級人員的影響而擅自背離預定計劃。2、堅持進行階段評審當時已經熟悉到,軟件的質量保證工作不能等到編碼階段結束之后再進行。這樣說至少有兩個理由:第一,大部分錯誤是在編碼之前造成的,例如,根據Boehm等人的統計,設計錯誤占軟件錯誤的63,編碼僅占37;第二,錯誤發現和改正得越晚,所需付出的代價也越高。
因此,在每個階段都進行嚴格的評審,以便盡早發現在軟件開發過程中所犯的錯誤,是一條必須遵循的重要原則。3、實行嚴格的產品控制在軟件開發過程中不應隨意改變需求,因為改變一項需求往往需要付出較高的代價,但是,在軟件開發過程中改變需求又是難免的,由于外部環境的變化,相應地改變用戶需求是一種客觀需要,顯然不能硬性禁止客戶提出改變需求的要求,而只能依靠科學的產品控制技術來順應這種要求。也就是說,當改變需求時,為了保持軟件各個配置成分的一致性,必須實行嚴格的產品控制,其中主要是實行基準配置管理。所謂基準配置又稱基線配置,它們是經過階段評審后的軟件配置成分(各個階段產生的文檔或程序代碼)。
基準配置管理也稱為變動控制:一切有關修改軟件的建議,非凡是涉及到對基準配置的修改建議,都必須按照嚴格的規程進行評審,獲得批準以后才能實施修改。絕對不能誰想修改軟件(包括尚在開發過程中的軟件),就隨意進行修改。4、采用現代程序設計技術從提出軟件工程的概念開始,人們一直把主要精力用于探究各種新的程序設計技術。60年代末提出的結構程序設計技術,已經成為絕大多數人公認的先進的程序設計技術。以后又進一步發展出各種結構分析(SA)和結構設計(SD)技術。實踐表明,采用先進的技術既可提高軟件開發的效率,又可提高軟件維護的效率。5、結果應能清楚地審查軟件產品不同于一般的物理產品,它是看不崢摸不著的邏輯產品。
軟件開發人員(或開發小組)的工作進展情況可見性差,難以準確度量,從而使得軟件產品的開發過程比一般產品的開發過程更難于評價和管理。為了提高軟件開發過程的可見性,更好地進行管理,應該根據軟件開發項目的總目標及完成期限,規定開發組織的責任和產品標準,從而使得所得到的結果能夠清楚地審查。6、開發小組的人員應該少而精這條基本原理的含義是,軟件開發小組的組成人員的素質應該好,而人數則不宜過多。
開發小組人員的素質和數量是影響軟件產品質量和開發效率的重要因素。素質高的人員的開發效率比素質低的人員的開發效率可能高幾倍至幾十倍,而且素質高的人員所開發的軟件中的錯誤明顯少于素質低的人員所開發的軟件中的錯誤。此外,隨著開發小組人員數目的增加,因為交流情況討論新問題而造成的通信開銷也急劇增加。
當開發小組人員數為N時,可能的通信路徑有N(N?/FONT>1)/2條,可見隨著人數N的增大,通信開銷將急劇增加。因此,組成少而精的開發小組是軟件工程的一條基本原理。7、承認不斷改進軟件工程實踐的必要性遵循上述六條基本原理,就能夠按照當代軟件工程基本原理實現軟件的工程化生產,但是,僅有上述六條原理并不能保證軟件開發和維護的過程能趕上時代前進的步伐,能跟上技術的不斷進步。l因此,Boehm提出應把承認不斷改進軟件工程實踐的必要性作為軟件工程的第七條基本原理。按照這條原理,不僅要積極主動地采納新的軟件技術,而且要注重不斷總結經驗,例如,收集進度和資源耗費數據,收集出錯類型和新問題報告數據等等。
這些數據不僅可以用來評價新的軟件技術的效果,而且可以用來指明必須著重開發的軟件工具和應該優先探究的技術。