《軟件系統(tǒng)開發(fā)與軟件工程方法》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件系統(tǒng)開發(fā)與軟件工程方法(46頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),第七章,軟件系統(tǒng)開發(fā)與軟件工程方法,一、軟件危機(jī),二、軟件工程,一、軟件危機(jī),1、軟件開發(fā)的發(fā)展歷程,1960,1970,1980,1990,2000,早期,第二階段 第三階段 第四階段,面向批處理,多用戶,分布式系統(tǒng),強(qiáng)大的桌面系統(tǒng),有限的分布,實(shí)時(shí),嵌入“智能”,面向?qū)ο蠹夹g(shù),自定義軟件,數(shù)據(jù)庫,低成本硬件,專家系,統(tǒng),開發(fā)者=使用者,軟件產(chǎn)品,人工神經(jīng)網(wǎng)絡(luò),并行計(jì)算,網(wǎng)絡(luò)計(jì)算機(jī),一、軟件危機(jī),2、軟件危機(jī),1)案例思考1,FAA,的失敗項(xiàng)目,20,世紀(jì),80,年代中期,更換空中交通控制系統(tǒng)已成為美國聯(lián)邦航
2、空管理局(,FAA,),非常優(yōu)先的任務(wù)。,1989,年,IBM,公司獲得更換該系統(tǒng)的合同,截止期為,2001,年,預(yù)計(jì)投入,25,億美元。由于面臨著極苛刻的需求,該軟件項(xiàng)目是已進(jìn)行的最復(fù)雜的項(xiàng)目之一。例如,交通控制系統(tǒng)必須具備全局完整性并且每周,7,天,每天,24,小時(shí)不能停止工作,甚至在升級(jí)時(shí)或正常維護(hù)時(shí),也不允許有停頓時(shí)間。任何錯(cuò)誤的數(shù)據(jù)都會(huì)引起重大傷亡,任何停機(jī)均會(huì)導(dǎo)致世界范圍的出行延誤或潛在的危險(xiǎn)。該系統(tǒng)的反應(yīng)時(shí)間不能超過,2-3,秒。此外,該系統(tǒng)設(shè)計(jì)時(shí)必須考慮到允許私人飛機(jī)駕駛員繼續(xù)使用舊設(shè)備,并要求軟件能在未來移植到更新的硬件設(shè)備上。當(dāng),IBM,獲得該合同后,該系統(tǒng)的主要花費(fèi)為軟件
3、開發(fā),用于硬件的投入僅為,8,萬美元。,1993,年,負(fù)責(zé)該項(xiàng)目的,IBM,子公司,IBM,聯(lián)邦系統(tǒng)公司被,IBM,賣給了,Loral,公司。到,1994,年,該系統(tǒng)已花費(fèi)了,23,億美元,但尚未提交系統(tǒng)的任何程序段,而此時(shí)估算整個(gè)系統(tǒng)的花費(fèi)將增至,50,億美元。,1994,年底,,FAA,不得不承認(rèn)該項(xiàng)目失敗并進(jìn)行調(diào)查。作為調(diào)查的結(jié)果,,FAA,取消或修改了系統(tǒng)的四個(gè)主要部分。面臨當(dāng)前空中控制系統(tǒng)存在的隱患,,FAA,不得不訂購了一套作為權(quán)宜之計(jì)的系統(tǒng),由另一家公司開發(fā)。,你認(rèn)為該項(xiàng)目的失敗反映了什么問題?失敗的主要原因可能是什么?,FAA,為什么選擇取消和修改的方式而不是增加資源和生產(chǎn)力的
4、方式?,FAA,對(duì)此項(xiàng)目調(diào)查總結(jié)出的原因?yàn)橐韵聨讞l:,FAA,并沒有明確掌握某些系統(tǒng)功能的需求。,制定了過于急躁的開發(fā)和實(shí)現(xiàn)計(jì)劃(包括費(fèi)用與進(jìn)度的估計(jì)),在給定的軟件復(fù)雜度下,沒有考慮到開發(fā)商的生產(chǎn)力,尤其是早期階段需要投入的資源。,在人月神話一書中,,Brooks,將過去,30,年大型軟件項(xiàng)目的開發(fā)比喻為史前陷入瀝青坑的巨獸。恐龍、猛犸、劍齒虎等動(dòng)物在焦油中掙扎,然而掙扎得越激烈,就陷得越快,最終都沉到了坑底。過去的大型軟件項(xiàng)目中,大多數(shù)開發(fā)出了可運(yùn)行的系統(tǒng)不過只有極少數(shù)滿足了目標(biāo)、進(jìn)度和預(yù)算的要求。表面上看起來沒有任何一個(gè)單獨(dú)的問題會(huì)導(dǎo)致困難,每個(gè)問題都能獲得解決,但這些問題糾纏和積累在一
5、起時(shí),團(tuán)隊(duì)的行動(dòng)就越來越慢,并且很難再看清問題的本質(zhì)。,1995,年美國的商業(yè)軟件失敗統(tǒng)計(jì):,一、軟件危機(jī),2、軟件危機(jī),案例思考2,遺傳信息庫建設(shè),在正在建設(shè)的遺傳信息庫如,假設(shè)你要開發(fā)一個(gè)管理軟件。你并不是一個(gè)生物遺傳方面的專家,甚至對(duì)此方面的知識(shí)一竅不通,你該如何入手?要使該項(xiàng)目成功,你認(rèn)為應(yīng)該有哪些保障條件?,你的問題是什么:對(duì)遺傳信息的管理,需要什么條件:了解遺傳信息的表示和管理流程,如何實(shí)現(xiàn):與遺傳領(lǐng)域的專家交流。,障礙是什么:難以溝通與交流??赡芤蛘`解產(chǎn)生錯(cuò)誤的需求描述。,一、軟件危機(jī),2、軟件危機(jī),軟件項(xiàng)目為什么會(huì)失?。?軟件項(xiàng)目失敗的核心問題在哪里?,答案只有一個(gè):復(fù)雜性。,
6、軟件要解決的問題本身是復(fù)雜的,開發(fā)人員一般不是該問題領(lǐng)域的專家,軟件規(guī)模要求多人參與,而不同專業(yè)領(lǐng)域的人的交流是困難的,軟件規(guī)模使得既要理解系統(tǒng)整體結(jié)構(gòu)又要把握細(xì)節(jié)比較困難。,例:,Windows,95,有1000萬行代碼,Windows,2000,有5000萬行代碼,Exchange2000,和,Windows,2000,開發(fā)人員結(jié)構(gòu),Exchange2000,Windows,2000,項(xiàng)目經(jīng)理,25人,約250人,開發(fā)人員,140人,約1700人,測(cè)試人員,350人,約3200人,一、軟件危機(jī),2、軟件危機(jī),2)軟件神話,1管理神話,神話:有關(guān)軟件開發(fā)的理論和方法已經(jīng)很豐富,有很多可用的標(biāo)
7、準(zhǔn)與規(guī)范,因而可以保證軟件開發(fā)的順利進(jìn)行。,現(xiàn)實(shí):理論與方法在大多數(shù)實(shí)踐中并沒有得到真正的應(yīng)用。使用者并沒有對(duì)這些理論與方法建立正確的認(rèn)識(shí)。,神話:已經(jīng)有很多強(qiáng)大的開發(fā)工具和先進(jìn)的計(jì)算機(jī)硬件,這些可以保證軟件開發(fā)的質(zhì)量與效率。,現(xiàn)實(shí):這些工具并沒有得到合理的應(yīng)用。,神話:如果我們落后于進(jìn)度,可以通過增加人手來趕上。,現(xiàn)實(shí):向一個(gè)已經(jīng)延遲的項(xiàng)目增加人手,只會(huì)使延遲的項(xiàng)目更加落后除非項(xiàng)目中不需要交流。生一個(gè)孩子10個(gè)月,無論有多少人。,一、軟件危機(jī),2、軟件危機(jī),2)軟件神話,1管理神話,神話:通過把軟件項(xiàng)目外包給實(shí)現(xiàn)強(qiáng)大的軟件開發(fā)公司可以保證軟件的成功。,現(xiàn)實(shí):再專業(yè)的軟件公司,不了解客戶的需求
8、和業(yè)務(wù)流程,也不可能順利完成軟件開發(fā)項(xiàng)目。,改正,一,一個(gè),問,問題,需,需付,出,出的,代,代價(jià),需,求,分,析,結(jié),構(gòu),構(gòu),設(shè),設(shè),計(jì),計(jì),詳,細(xì),細(xì),設(shè),設(shè),計(jì),計(jì),編,碼,碼,集,成,成,測(cè),測(cè),試,試,系,統(tǒng),統(tǒng),測(cè),測(cè),試,試,現(xiàn),場(chǎng),場(chǎng),改,正,正,一,一,個(gè),個(gè),問,問,題,題,的,的,估,估,計(jì),計(jì),費(fèi),費(fèi),用,用,改,正,正,一,一,個(gè),個(gè),問,問,題,題,估,估,計(jì),計(jì),的,的,工,工,作,作,量,量,20,200,2000,1000,5.0,2.5,0.05,0.5,(,美,美,元,元),(,人,人,天,天),一,、,、,軟,軟,件,件,危,危,機(jī),機(jī),2,、,、,軟,
9、軟,件,件,危,危,機(jī),機(jī),2,),),軟,軟,件,件,神,神,話,話,2,客,客,戶,戶,神,神,話,話,神,話,話,:,:,有,有,了,了,目,目,標(biāo),標(biāo),系,系,統(tǒng),統(tǒng),的,的,一,一,般,般,性,性,描,描,述,述,就,就,可,可,以,以,寫,寫,程,程,序,序,了,了,,,,,細(xì),細(xì),節(jié),節(jié),可,可,以,以,逐,逐,步,步,完,完,善,善,。,。,現(xiàn),實(shí),實(shí),:,:,糟,糟,糕,糕,的,的,系,系,統(tǒng),統(tǒng),定,定,義,義,是,是,項(xiàng),項(xiàng),目,目,失,失,敗,敗,的,的,主,主,要,要,原,原,因,因,。,。,關(guān),關(guān),于,于,問,問,題,題,域,域,、,、,功,功,能,能,、,、,行,
10、行,為,為,、,、,性,性,能,能,、,、,接,接,口,口,、,、,設(shè),設(shè),計(jì),計(jì),約,約,束,束,以,以,及,及,確,確,認(rèn),認(rèn),標(biāo),標(biāo),準(zhǔn),準(zhǔn),的,的,形,形,式,式,化,化,的,的,、,、,詳,詳,細(xì),細(xì),的,的,描,描,述,述,是,是,必,必,要,要,的,的,,,,,這,這,些,些,內(nèi),內(nèi),容,容,只,只,能,能,通,通,過,過,客,客,戶,戶,與,與,開,開,發(fā),發(fā),者,者,之,之,間,間,的,的,交,交,流,流,才,才,能,能,確,確,定,定,。,。,神話:,軟,軟件需,求,求是經(jīng),常,常變更,的,的,而,這,這些變,更,更可以,容,容易的,被,被滿足,,,,因?yàn)?軟,軟件是,靈,
11、靈活的,。,。,現(xiàn)實(shí):,軟,軟件需,求,求確實(shí),是,是容易,變,變更的,,,,但變,更,更的代,價(jià),價(jià)將隨,軟,軟件開,發(fā),發(fā)的進(jìn),度,度不同,而,而有很,大,大的差,異,異。如,果,果重新,項(xiàng),項(xiàng)目早,期,期的問,題,題定義,,,,需求,變,變化則,很,很容易,被,被調(diào)節(jié),,,,而項(xiàng),目,目后期,需,需求變,更,更的代,價(jià),價(jià)可能,是,是致命,的,的。,一、軟件危,機(jī),機(jī),2、軟件危,機(jī),機(jī),2)軟件神,話,話,3實(shí)踐,者,者的神話,神話:軟件,是,是藝術(shù),軟,件,件開發(fā)是個(gè),人,人的舞臺(tái)。,現(xiàn)實(shí):50,年,年代可能是,,,,現(xiàn)在不是,。,。,神話:一旦,寫,寫完了程序,并,并能正常運(yùn),行,
12、行,我們的,工,工作就結(jié)束,了,了。,現(xiàn)實(shí):越早,開,開始寫代碼,,,,軟件開發(fā),花,花費(fèi)的時(shí)間,就,就越長。統(tǒng),計(jì),計(jì)表明60%到80%,的,的工作量是,花,花在將軟件,第,第一次交付,給,給客戶以后,發(fā),發(fā)生的。,神話:程序,真,真正運(yùn)行以,前,前,沒有辦,法,法評(píng)估其質(zhì),量,量。,現(xiàn)實(shí):高,質(zhì),質(zhì)量的實(shí),現(xiàn),現(xiàn)來自高,質(zhì),質(zhì)量的設(shè),計(jì),計(jì)。從項(xiàng),目,目一開始,就,就必須進(jìn),行,行技術(shù)評(píng),審,審。,神話:項(xiàng),目,目的成功,來,來自于可,運(yùn),運(yùn)行程序,的,的提交。,軟,軟件開發(fā),過,過程中的,文,文檔是不,必,必要的,,延,延緩項(xiàng)目,進(jìn),進(jìn)度的東,西,西。,現(xiàn)實(shí):軟,件,件項(xiàng)目的,成,成果包
13、含,很,很多內(nèi)容,,,,文檔是,成,成功開發(fā),的,的基礎(chǔ),,也,也是軟件,質(zhì),質(zhì)量的保,證,證。好的,開,開發(fā)質(zhì)量,降,降低了重,復(fù),復(fù)勞動(dòng),,從,從而提高,了,了效率,,導(dǎo),導(dǎo)致更短,的,的交付時(shí),間,間。,一、軟件,危,危機(jī),2、軟件,危,危機(jī),3)軟件,危,危機(jī)及主,要,要表現(xiàn),軟件危機(jī),指,指在計(jì)算,機(jī),機(jī)軟件開,發(fā),發(fā)和維護(hù),過,過程中所,遇,遇到的一,系,系列嚴(yán)重,問,問題,軟,軟件開發(fā),不,不能滿足,日,日益增長,的,的需求;,難,難以維護(hù),不,不斷增長,的,的已有軟,件,件。,1成,本,本與進(jìn)度,的,的估計(jì),2用,戶,戶需求與,產(chǎn),產(chǎn)品不一,致,致,3軟,件,件可靠性,差,差,
14、4可,維,維護(hù)性差,5文,檔,檔資料不,完,完整,6軟,件,件成本比,例,例不斷上,升,升,7開,發(fā),發(fā)生產(chǎn)率,相,相對(duì)停滯,一、軟件,危,危機(jī),2、軟件,危,危機(jī),3)軟件,項(xiàng),項(xiàng)目成敗,的,的因素分,析,析,1)失敗,項(xiàng),項(xiàng)目的主,要,要原因,1用,戶,戶需求不,完,完整、被,誤,誤解或經(jīng),常,常變化,2有,限,限的用戶,參,參與,3缺,少,少行政支,持,持,4缺,少,少技術(shù)支,持,持,5項(xiàng),目,目計(jì)劃不,充,充分,6目,標(biāo),標(biāo)不明確,7沒,有,有足夠的,資,資源(客,戶,戶沒有提,供,供/開發(fā),者,者不具備,相,相應(yīng)生產(chǎn),力,力),2)成功,項(xiàng),項(xiàng)目的主,要,要原因,1大,量,量的用戶,
15、參,參與,2上,層,層管理人,員,員的支持,3完,整,整、詳細(xì),的,的項(xiàng)目計(jì),劃,劃,4符,合,合實(shí)際的,工,工作進(jìn)度,與,與里程碑,5開,發(fā),發(fā)人員的,培,培訓(xùn)、交,流,流,6良,好,好的工作,環(huán),環(huán)境、團(tuán),隊(duì),隊(duì)協(xié)作機(jī),制,制,一、軟件,危,危機(jī),2、軟件,危,危機(jī),3)消除,軟,軟件危機(jī),的,的思路,1正,確,確的觀念,a),軟件不是,程,程序,軟件是邏,輯,輯產(chǎn)品而,不,不是實(shí)物,產(chǎn),產(chǎn)品,軟件的功,能,能依賴于,硬,硬件和軟,件,件的運(yùn)行,環(huán),環(huán)境以及,人,人們對(duì)它,的,的操作,軟件特征,:,:功能,的,的多樣性,實(shí)現(xiàn)的多,樣,樣性,能見度低,軟件結(jié)構(gòu),合,合理性差,智力密集,及,及
16、知識(shí)產(chǎn),權(quán),權(quán)保護(hù),b),軟件開發(fā),不,不是個(gè)體,勞,勞動(dòng),軟件設(shè)計(jì),的,的復(fù)雜性,一、軟件,危,危機(jī),2、軟件,危,危機(jī),3)消除,軟,軟件危機(jī),的,的思路,2正,確,確的過程,管,管理與控,制,制,軟件開發(fā),技,技術(shù):軟件開,發(fā),發(fā)方法,軟件開發(fā),過,過程,軟件工具,和,和軟件工,程,程環(huán)境,軟件工程,管,管理:軟件管,理,理,軟件經(jīng)濟(jì),軟件心理,二、軟件,工,工程,1、軟件,工,工程,將工程管,理,理思想引,入,入軟件開,發(fā),發(fā)過程:,轉(zhuǎn),變,變,對(duì),對(duì),軟,軟,件,件,的,的,認(rèn),認(rèn),識(shí),識(shí),:,:,上,升,升,程,序,序,系,系,統(tǒng),統(tǒng),轉(zhuǎn),變,變,思,思,維,維,定,定,式,式,:,:,上,升,升,程,序,序,員,員,系,系,統(tǒng),統(tǒng),工,工,程,程,師,師,(,系,系,統(tǒng),統(tǒng),分,分,析,析,員,員),工,程,程,化,化,訓(xùn),訓(xùn),練,練,二,、,、,軟,軟,件,件,工,工,程,程,1,、,、,軟,軟,件,件,工,工,程,程,將,工,工,程,程,管,管,理,理,思,思,想,想,引,引,入,入,軟,軟,件,件,開,開,發(fā),發(fā),過,過,程,程,:,:,用,戶,戶,分,析,析,員,