朱秀文 索蘭拉么 田浩
摘 要:軟件工程運用計算機科學和數學原理,針對軟件問題獲得一種經濟有效的解決方案。用系統的、規范的、可度量的方法,開發、運行和維護軟件。
關鍵詞:軟件工程;開發運行
前言
當今的社會,信息技術飛速發展。軟件在這樣的背景下受到越來越多的重視。信息社會的發展必須有軟件產業來推動。由于軟件在日新月異,而且被大范圍的應用在人們的日常生活中,所以人們開始積極的探究出新的工程的方法來滿足開發、使用和維護軟件的需要,由此來合理有效的處理好軟件的故障。基于計算機網絡技術、信息科學技術和工程等相關的學科,目前的軟件工程已經不再是比較單一的學科而是作為是適應當前信息技術發展的新興交叉學科。本文從軟件工程的定義,特性和需求3個角度進行了闡述。
1 軟件工程概念提起和定義
1960年代末期,計算機程序在復雜度、規模和應用領域等方面的增長引人注目,這導致上千億資金花費在軟件開發上,許多人的工作和生活依賴于軟件開發的成果。軟件產品幫助人們獲得更高的工作和生產效率,同時也給人們提供一個更加安全、靈活和寬松的工作與生活環境。盡管有很多成功之處,許多軟件產品在成本、工期、質量等方面存在嚴重問題。主要原因是:
軟件產品是復雜的人造系統,具有復雜性、不可見性和易變性,難以處理。個人或小組開發小型軟件非常有效的編程技術和過程,在開發大型、復雜系統時難以發揮同樣的作用。計算機和軟件技術的快速發展,提高了客戶對軟件的期望,促進了軟件產品的演化,為軟件產品提出了新的、更多的需求,因此增加了軟件行業內的競爭,難以在可接受的開發進度內保證軟件的質量。1968年在德國舉行的NATO軟件工程會議上,為應對“軟件危機”的挑戰,提出了“軟件工程”的術語。這個時期有代表性的軟件工程定義是“為了經濟地獲得在真實機器上可靠工作的軟件而制定和使用的合理工程原則和方法”。
1972年IEEE學會的計算機協會第一次出版了“軟件工程學報”。此后,“軟件工程”這個術語被廣泛用于工業、政府和學術界,眾多的出版物、團體和組織、專業會議在它們的名稱里使用“軟件工程”這個術語,很多大學的計算機科學系先后設立軟件工程課程。
軟件工程發展至今還沒有一個比較確切的定義,大多數的軟件過程方面的學者和組織機構也只是根據自己對軟件過程的理解做出解釋:
BarryBoehm:采用當下比較先進的科學技術知識來對計算機程序做設計和構造工作,與此同時也可以實時的開發、運行和修繕這些程序所對應的文件資料;IEEE:在軟件工程術語匯編中的定義:軟件工程是:①軟件的開發、使用和維護的這個過程中需采用一定的方式,對其進行歸類、整理或加工。這樣的方法是受嚴格約束的、可量化的。也就是說,把工程化應用于軟件。②在1中所述方法的研究;FritzBauer:在北大西洋公約組織會議上做出了這樣的定義:建立健全一個比較實用且完備的工程化原則,采取很合算的措施來獲得可以在實際機器上運行得比較高效且穩定性很好的一系列方案。
2 軟件工程特性
人們普遍認為軟件工程是有自己的特性的。軟件工程的不同的定義即便有各種各樣的描述方式,其側重點也存在著不同的地方,但是,軟件的特性本質是非常明顯的,并且有共同的本質。
2.1 軟件工程關注于大型程度的構造 通常情況下的小型程序是在說個人在規定的時間內編出來的程序,反之,大型程序一般是指多數人耗費了半年以上才完成的程序。其實大和小沒有那么明顯的界限,傳統的程序設計技術和工具是支持小型程序設計的,不能簡單地把這些技術和工具用于開發大型程序。
實際上,在這里使用 “程序”這個術語并不十分恰當,現在的軟件開發項目通常構造出包含若干個相關程序的“系統”。
2.2 軟件工程的中心課題是控制復雜性 軟件復雜性的存在不是僅僅由于其處理的問題紛繁復雜,其影響因素是多種多樣的,要具體問題具體分析。通常情況下,軟件待處理的問題都是極具復雜性的,如果沒有考慮到這一點而是把它當作是單個的整體來分析的話就會加大處理的難度。所以說,人們習慣于將問題分為各個單一的部分,各個部分之間維持著比較普通的通信關系。該措施雖然不能系統的解決問題的復雜性,然而卻能使得這種復雜性得到合理有效的控制。
2.3 軟件經常變化 很大一部分的軟件的設計都是以現實世界的相關條件作為參考的。現實中的各種事物都是在發展變化的,軟件也必須適應現實的變化作出相應的調整,由此一來才能夠在競爭中處于有利的地位。也就是說,在軟件系統投入使用之后還要對其進行完善,完善過程中作出的投資是需要考慮好的。另外,開發的時候就應該對未來的變化作出預測。
2.4 開發軟件的效率非常重要 現今的社會人力資源已無法滿足新應用系統的需求。軟件在市場上的需求很大,但是軟件的供應比較滯后。也就是說,對于這個問題的的處理方法最好就是積極的尋求開發與維護軟件的既高效又實用的方法和工具。
2.5 和諧地合作是開發軟件的關鍵 軟件處理的問題都是比較冗雜的,單個人根本不能夠解決,需要很多人共同協作才能完成。想要使得協作能夠高效一點,務必要將任務準確的分配到個人,努力的探索比較恰當的通信的措施。在實踐操作的過程中只是具備上面的要求還不能夠達到目的的,合作之中的每個人務必要按照相關的原則來完成任務。在現實中要適當的采取切實可行的標準和規程來保證大家能夠按照規定辦事。一般情況下,需要采用相關的工具來維護這些標準和規程。總的說來就是有紀律的管理是軟件開發項目獲得成效的關鍵步驟。
2.6 軟件必須有效地支持它的用戶 開發軟件就是要達到支持用戶的工作的目的。軟件提供的功能對于用戶有成效的做完工作是比較有幫助的。要是說用戶對軟件系統存在很多的疑問,就能夠啟動當前的系統,或者馬上將相關的的要求提出來。所以說軟件的成功開發是需要合理的方法構造系統和出正確系統構造兩者的共同作用。
想要使得軟件能夠更加高校的幫助用戶處理問題,首先就要從用戶的需求研究出發,要明白客戶需要什么樣的功能的軟件,有什么樣的使用性要求和質量標準。在明確客戶需求的基礎上進行軟件開發,為客戶提供軟件產品和相匹配的用戶手冊和培訓材料,除此之外,務必要注重新系統的運行環境的建立和維護工作。舉例來說,圖書館在采用一個自動化系統之前就應該把該系統對圖書館的工作流程造成的影響考慮在內。也就是說客戶對于新的工作流程熟悉還需要一定程度上的培訓。
2.7 在軟件工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創造產品這個特性與前兩個特性緊密相關。軟件工程師通常并不是某些領域的專家,但是他們卻為這些領域開發應用系統。缺乏應用領域的相關知識,是軟件開發項目出現問題的常見原因。
結語
這個階段的任務仍然不是具體地解決問題,而主要是確定目標系統必須具備哪些功能。系統分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經過用戶確認的系統邏輯模型。在需求分析階段確定的系統邏輯模型是以后設計和實現目標系統的基礎,因此必須準確完整地體現用戶的要求。軟件工程使用的結構分析設計的方法為每個階段都規定了特定的結束標準,需求分析階段必須提供完整準確的系統邏輯模型,經過用戶確認之后才能進入下一個階段。
參考文獻
[1][美]Roger S.Pressman.軟件工程實踐者的研究方法[M].北京:機械工業出版社,2007,1.
[2]鄭人杰,殷人昆,陶永雷.實用軟件工程(第二版)[M].北京:清華大學出版社,1997.