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