許 璐
吉林工業(yè)職業(yè)技術(shù)學(xué)院自動化系,吉林 吉林 132013
最初,計算機應(yīng)用于軍用領(lǐng)域,20世紀中期開始從軍用領(lǐng)域轉(zhuǎn)向民用領(lǐng)域。當(dāng)時的計算機硬件價格不菲、處理能力限,編程人員要編寫出執(zhí)行速度快、體積小的程序。程序中充滿了各種各樣讓人不解的方面。這時人們需要利用智力解決問題。
高級語言和操作系統(tǒng)的擴大,取決于計算機使用的范圍,軟件開發(fā)急劇增長的變化;因為出現(xiàn)大量數(shù)據(jù)處理,就導(dǎo)致第一代數(shù)據(jù)庫管理系統(tǒng)的誕生。隨著軟件系統(tǒng)規(guī)模越來越大,復(fù)雜度越來越高,可靠性也被集中關(guān)注。并且隨著軟件產(chǎn)量的不斷增加,軟件維護越來越重來,原來的個人設(shè)計、個人使用的方式不再能滿足要求,迫切需要改變軟件生產(chǎn)方式,提高軟件生產(chǎn)率,軟件危機開始爆發(fā)。
為解決軟件危機,應(yīng)該從應(yīng)用計算機科學(xué)理論和技術(shù)以及工程管理原則和方法,按照預(yù)算和進度,實現(xiàn)滿足用戶要求的軟件產(chǎn)品的定義、開發(fā)、發(fā)布和維護的工程。從此也誕生了一門新的學(xué)科——軟件工程。
軟件危機產(chǎn)生的原因是因為計算機不斷的發(fā)展而產(chǎn)生的,可以從軟件危機的表現(xiàn)和特殊性發(fā)現(xiàn),如下:1)在需求分析階段用戶對軟件需求的描寫敘述可能有遺漏,不太精細,有二義性,有錯誤,甚至在開發(fā)軟件過程中,用戶還提出修改軟件功能、界面、支撐環(huán)境等方面的要求;
2)用戶本來的愿望與開發(fā)人員對用戶需求的理解有不同,這就肯定會出現(xiàn)開發(fā)出來的產(chǎn)品與用戶要求的不一致的情況;在軟件開發(fā)出來之前,用戶自己也不清楚軟件的具體需求,所以用戶對軟件需求的描述不精確,可能有遺漏、有二義性、甚至有錯誤,在軟件開發(fā)過程中;
3)大型軟件項目需要組織一定的人力共同完成,多數(shù)管理人員缺乏像開發(fā)人員能夠開發(fā)大型軟件系統(tǒng)的經(jīng)驗,而多數(shù)軟件開發(fā)人員又缺乏管理人員在管理方面的經(jīng)驗。由于過分地依靠程序設(shè)計人員在軟件開發(fā)過程中的技巧和創(chuàng)造性,加劇軟件產(chǎn)品的個性化,也是發(fā)生軟件危機的一個重要原因;
4)軟件項目開發(fā)人員不能有效地,獨立地處理大型軟件的全部事務(wù),其中對于項目經(jīng)理、工程組、測試組、保證組以及硬件管理組等無法很好的協(xié)調(diào)、分配,因此容易產(chǎn)生疏漏和錯誤;
5)軟件產(chǎn)品的特殊性和人類智力的局限性,導(dǎo)致有些相對復(fù)雜的問題人們無法處理。
1)軟件開發(fā)進度和軟件開發(fā)成本不易預(yù)測并且不易控制;
2)投資較高,超出預(yù)算成本。隨著計算機市場化和民用化的發(fā)展,代價和成本就成為投資者考慮的最重要的問題之一。為了加快進度和節(jié)約成本所采取的一些方法損害了用戶的利益,這樣必定不被用戶接受;
3)用戶不能滿足產(chǎn)品功能。開發(fā)人員和用戶之間很難溝通。多數(shù)情況是軟件開發(fā)人員在需求分析階段不能真正了解用戶的需求,而用戶又不了解計算機內(nèi)部的解決問題方法,雙方無法用共同熟悉的語言進行交流和描述;
4)軟件產(chǎn)品質(zhì)量無法保證。對于任何一個軟件產(chǎn)品都不能說是沒有錯誤,而是錯誤很難發(fā)現(xiàn),原因是用了不恰當(dāng)?shù)臋z測手段,這些沒有被發(fā)現(xiàn)的錯誤往往是造成重大事故的隱患;
5)軟件產(chǎn)品難以維護。軟件產(chǎn)品本質(zhì)上是開發(fā)人員的代碼化的邏輯思維活動,他人難以替代。除非是開發(fā)者本人。
用例的優(yōu)勢在于它天生是黑盒的,顧名思義黑盒是為了避免了混入分析、設(shè)計和實現(xiàn)細節(jié),以保證用例可以被非計算機人員所能真正理解。同時,需求分析員又可以方便地通過用例分析,將需求體系轉(zhuǎn)化為分析模型。在這一過程中,分析人員可以更進一步地完善整個系統(tǒng)的需求體系,而需求也不會因為分析模型變得雜亂無章,所以實現(xiàn)了分離需求與分析,但兩方面還有“聯(lián)絡(luò)”。
1)充分吸收和借鑒長期以來行之有效的原理、概念、技術(shù)方法以及有效的經(jīng)驗教訓(xùn);
2)經(jīng)過長期的使用,總結(jié)出經(jīng)驗,推廣出更好的技術(shù)方法;
3)一切方法技術(shù)都是由相應(yīng)的工具支撐,所以想要推廣出更好的技術(shù)方法,就要有與之配備的工具,這樣就需要一個良好的開發(fā)運行環(huán)境。
馮·諾依曼模型一直被沿用,沒有變化,但是計算機應(yīng)用能力已明顯改變,比如提升CPU計算能力已經(jīng)越來越困難,未來發(fā)展趨勢主要集中需求工程、迭代、集成,具體如下:
1)需求工程: 專業(yè)化的角色,日益復(fù)雜的業(yè)務(wù)創(chuàng)新,這些都對需求獲取的正確性和有效性提出了更高的要求。
用例的優(yōu)勢在于它天生是黑盒的,顧名思義黑盒是為了避免了混入分析、設(shè)計和實現(xiàn)細節(jié),以保證用例可以被非計算機人員所能真正理解。同時,需求分析員又可以方便地通過用例分析,將需求體系轉(zhuǎn)化為分析模型;
2)迭代和敏捷,逐漸成為標(biāo)準:在迭代化的方法中,我們將整個項目的開發(fā)目標(biāo)劃分成為一些更易于完成和達到的階段性小目標(biāo),隨著軟件交付周期的日益加快,這些小目標(biāo)都有一個定義明確的階段標(biāo)準。但是迭代對整個團隊的架構(gòu)、需求、及測試能力都提出了更高的要求,現(xiàn)在許多開發(fā)團隊都在試圖導(dǎo)入迭代化開發(fā)的過程,迭代是敏捷的推動力,掌握迭代,敏捷的大部分事情往往就迎刃而解了。敏捷可是被看成迭代化開發(fā)的一種導(dǎo)入方式;
3)保證迭代:通過持續(xù)集成可以保證代碼質(zhì)量。持續(xù)集成相關(guān)的工具成為現(xiàn)在市場上的新熱點。
隨著軟件技術(shù)和硬件技術(shù)的不斷發(fā)展,解決軟件工程中的各種困難、開發(fā)軟件工程中各中新技術(shù)已經(jīng)變得越來越容易,但是隨著軟件開發(fā)的不斷擴展,問題也會不斷出現(xiàn),這就需要人們不斷的探索,不斷的思考,這樣才會給軟件行業(yè)帶來新天地。
[1]丁珩.我國軟件產(chǎn)業(yè)的現(xiàn)狀、問題及加快發(fā)展的建議[J].科技與經(jīng)濟,2003(3).
[2]徐順成.中國軟件產(chǎn)業(yè)的現(xiàn)狀與未來[J].中國科技產(chǎn)業(yè),2001(11).