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