軟件危機(jī)與軟件工程 課件_第1頁(yè)
軟件危機(jī)與軟件工程 課件_第2頁(yè)
軟件危機(jī)與軟件工程 課件_第3頁(yè)
軟件危機(jī)與軟件工程 課件_第4頁(yè)
軟件危機(jī)與軟件工程 課件_第5頁(yè)
已閱讀5頁(yè),還剩111頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件危機(jī)與軟件工程軟件危機(jī)與軟件工程1軟件危機(jī)0美元支票 一位主管收到了一張由計(jì)算機(jī)開出的0美元的賬單,在嘲笑了“愚蠢的計(jì)算機(jī)”后他將賬單丟進(jìn)了垃圾桶,一個(gè)月后,又一張賬單寄來了,還標(biāo)志著30天的逾期,這樣的情形持續(xù)了4個(gè)月,最后還帶來了一封信,警告如果再不付賬的話,將會(huì)采取法律行動(dòng),由于擔(dān)心自己的信用度,這個(gè)主管在一個(gè)軟件工程師的建議下,寄出了一張0美元的支票,最后一張0美元的收據(jù)送到了,該主管小心翼翼地將這張不同尋常的收據(jù)保存起來以備將來查詢。軟件危機(jī)0美元支票2軟件危機(jī)(續(xù))有錯(cuò)誤的愛國(guó)者導(dǎo)彈 1991年海灣戰(zhàn)爭(zhēng)中,一枚飛毛腿導(dǎo)彈穿過了愛國(guó)者反導(dǎo)彈的防御,擊中了沙特阿拉伯的Dhahran附件的一個(gè)兵營(yíng),造成28名美國(guó)人死亡,98人受傷。這個(gè)錯(cuò)誤是由累積的定時(shí)錯(cuò)誤引起的,愛國(guó)者導(dǎo)彈每次只能工作幾小時(shí),超過這個(gè)時(shí)間后,系統(tǒng)時(shí)鐘就會(huì)復(fù)位??杀氖切碌能浖诙觳胚\(yùn)到。

軟件危機(jī)(續(xù))有錯(cuò)誤的愛國(guó)者導(dǎo)彈3軟件危機(jī)(續(xù))美國(guó)國(guó)內(nèi)稅收處20世紀(jì)年代讓Sperry公司建立一套聯(lián)邦稅收表格自動(dòng)處理系統(tǒng),該系統(tǒng)被證明不適合當(dāng)前的工作量,花費(fèi)幾乎是預(yù)算的2倍,到1996年,共花費(fèi)了40億美元,但情況并沒改善。原因是“沒有充分計(jì)劃就錯(cuò)誤行事”。軟件危機(jī)(續(xù))美國(guó)國(guó)內(nèi)稅收處20世紀(jì)年代讓Sperry公司建4軟件危機(jī)的表現(xiàn)超出預(yù)算時(shí)間和成本 研究表明,每8個(gè)新的大型軟件中就有2個(gè)會(huì)被取消,軟件開發(fā)時(shí)間平均超出計(jì)劃的50%,而軟件開發(fā)中的主要成本是人力資源成本,進(jìn)度的落后意味著成本的增加用戶對(duì)生產(chǎn)出的軟件不滿意 開發(fā)人員往往不注重或不善于和客戶交流,找出客戶真正需要的東西,匆忙地進(jìn)行開發(fā),在開地過程中又不能從客戶那里得到反饋信息,最后生產(chǎn)出的軟件和客戶想要的相差很遠(yuǎn),難免出現(xiàn)糾紛。軟件危機(jī)的表現(xiàn)超出預(yù)算時(shí)間和成本5軟件危機(jī)的表現(xiàn)(續(xù))軟件有殘存的錯(cuò)誤 研究表明,所有的大型系統(tǒng)中,大約有3/4的系統(tǒng)有運(yùn)行問題,要么不是像預(yù)料的工作,就是根本不能使用軟件產(chǎn)品不可維護(hù) 不能改正錯(cuò)誤 在原有模塊上不能增加新的功能 不能增加新的模塊軟件危機(jī)的表現(xiàn)(續(xù))軟件有殘存的錯(cuò)誤6軟件危機(jī)的表現(xiàn)(續(xù))文檔資料不完整 軟件文檔是交流平臺(tái),管理工具,必須和軟件同步更新軟件生產(chǎn)率的提高跟不上硬件的發(fā)展速度

摩爾定律:每隔18個(gè)月計(jì)算機(jī)硬件的運(yùn)算速度提高一倍,價(jià)格下降一半

軟件:手工開發(fā)為主軟件危機(jī)的表現(xiàn)(續(xù))文檔資料不完整7軟件危機(jī)的表現(xiàn)(續(xù))軟件成本在計(jì)算機(jī)系統(tǒng)總成本中的比例不斷提高而軟件 維護(hù)的成本占軟件的成本也越來越高軟件危機(jī)的表現(xiàn)(續(xù))軟件成本在計(jì)算機(jī)系統(tǒng)總成本中的比例不斷提8引起軟件危機(jī)的原因軟件開發(fā)無計(jì)劃性 沒有經(jīng)過仔細(xì)考慮就匆忙開發(fā),出現(xiàn)問題才想辦法補(bǔ)救,不能保證軟件開發(fā)進(jìn)度和預(yù)算,不能保證軟件質(zhì)量,在進(jìn)度落后時(shí),盲目增加人手,結(jié)果適得其反引起軟件危機(jī)的原因軟件開發(fā)無計(jì)劃性9引起軟件危機(jī)的原因(續(xù))軟件需求不充分 沒有將問題搞清楚就匆忙上馬,在開發(fā)過程中又不能和客戶有效地溝通,許多問題在交付軟件時(shí)才集中地爆發(fā)出來,這時(shí)候已經(jīng)是大勢(shì)已去,難以挽回了(和數(shù)值計(jì)算軟件和平時(shí)學(xué)習(xí)語(yǔ)言編寫的程序不同,在實(shí)際的軟件開發(fā)中,首先應(yīng)該滿足的是客戶的需要,開發(fā)軟件不是為了展示個(gè)人的技巧。)引起軟件危機(jī)的原因(續(xù))軟件需求不充分10引起軟件危機(jī)的原因(續(xù))軟件開發(fā)過程無規(guī)范 開發(fā)過程沒有統(tǒng)一的方法和規(guī)范 不重視文檔 各開發(fā)人員之間的接口沒有統(tǒng)一規(guī)劃引起軟件危機(jī)的原因(續(xù))軟件開發(fā)過程無規(guī)范11引起軟件危機(jī)的原因(續(xù))軟件產(chǎn)品無評(píng)測(cè)手段個(gè)人提交產(chǎn)品時(shí)沒有進(jìn)行測(cè)試 模塊之間接口沒有測(cè)試 整個(gè)系統(tǒng)沒有進(jìn)行整體測(cè)試 忽略壓力及性能測(cè)試

引起軟件危機(jī)的原因(續(xù))軟件產(chǎn)品無評(píng)測(cè)手段12軟件危機(jī)解決之道:軟件工程1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在聯(lián)邦德國(guó)召開的國(guó)際學(xué)術(shù)會(huì)議上第一次提出了“軟件危機(jī)”(softwarecrisis)這個(gè)名詞。

1968年秋季,北約的科技委員會(huì)召集了近50名一流的編程人員、計(jì)算機(jī)科學(xué)家和工業(yè)界巨頭,討論和制定擺脫“軟件危機(jī)”的對(duì)策。在那次會(huì)議上第一次提出了軟件工程(softwareengineering)這個(gè)概念用工程化的理念、方法進(jìn)行軟件開發(fā)軟件危機(jī)解決之道:軟件工程1968年北大西洋公約組織的計(jì)算機(jī)13軟件工程的定義軟件工程[IEE93]將系統(tǒng)的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程;上述方法的研究軟件工程的定義軟件工程[IEE93]14軟件工程基本原理B.W.Boehm提出7條原理,互相獨(dú)立,最小集合其他軟件工程原理在此基礎(chǔ)上組合、蘊(yùn)含、派生軟件工程基本原理B.W.Boehm提出15軟件工程基本原理-1用分階段的生命周期計(jì)劃嚴(yán)格管理不成功的軟件中有一半左右是由于計(jì)劃不同造成的應(yīng)該將軟件生命周期劃分成若干個(gè)階段,并相應(yīng)制定出切實(shí)可行的計(jì)劃,并按計(jì)劃對(duì)軟件的開發(fā)和維護(hù)進(jìn)行管理六類計(jì)劃:項(xiàng)目概要計(jì)劃,里程碑計(jì)劃,項(xiàng)目控制計(jì)劃,產(chǎn)品控制計(jì)劃,驗(yàn)證計(jì)劃,運(yùn)行維護(hù)計(jì)劃軟件工程基本原理-1用分階段的生命周期計(jì)劃嚴(yán)格管理16軟件工程基本原理-2堅(jiān)持進(jìn)行階段評(píng)審統(tǒng)計(jì)表明,大部分錯(cuò)誤是在編碼之前造成的錯(cuò)誤發(fā)現(xiàn)與改正越晚,所需付出的代價(jià)也越高(見下頁(yè))堅(jiān)持階段評(píng)審,可以避免錯(cuò)誤的“水波效應(yīng)”軟件工程基本原理-2堅(jiān)持進(jìn)行階段評(píng)審17各階段改正錯(cuò)誤的相對(duì)花費(fèi)各階段改正錯(cuò)誤的相對(duì)花費(fèi)18軟件工程基本原理-3實(shí)行嚴(yán)格的產(chǎn)品控制盡量避免修改需求修改需求必須在嚴(yán)格的管理下進(jìn)行----配置管理軟件工程基本原理-3實(shí)行嚴(yán)格的產(chǎn)品控制19軟件危機(jī)與軟件工程課件20軟件工程基本原理-4采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)—自頂向下,逐步求精面向?qū)ο笤O(shè)計(jì)技術(shù)—思想而非僅為技術(shù)軟件工程基本原理-4采用現(xiàn)代程序設(shè)計(jì)技術(shù)21軟件工程基本原理-5結(jié)果應(yīng)能清楚地審查度量是管理的基礎(chǔ)形成自己的管理數(shù)據(jù)資料庫(kù),盡量精確地對(duì)系統(tǒng)進(jìn)行計(jì)劃、測(cè)量、修正軟件工程基本原理-5結(jié)果應(yīng)能清楚地審查22軟件工程基本原理-6開發(fā)小組人員應(yīng)少而精I(xiàn)BM的紐約時(shí)報(bào)項(xiàng)目(1971):22個(gè)月內(nèi)寫了83000行程序,在1年的運(yùn)行過程中只找出了25個(gè)錯(cuò)誤,主要的程序員平均每年編寫1個(gè)錯(cuò)誤和10000行代碼成功原因:該項(xiàng)目是IBM的樣本項(xiàng)目每個(gè)程序員都是尖子中的尖子技術(shù)支持極為強(qiáng)大,編譯器作者隨叫隨到項(xiàng)目領(lǐng)導(dǎo)F.TerryBaker是一個(gè)極好的管理者和領(lǐng)導(dǎo)者,“天才程序員”軟件工程基本原理-6開發(fā)小組人員應(yīng)少而精23軟件工程基本原理-6(續(xù))一個(gè)好的程序員的效率是普通程序員的4-5倍開發(fā)小組人員增多,由于交流討論問題所造成的通信開銷急劇增加(特別是程序員使用其他程序員所開發(fā)的模塊)軟件工程基本原理-6(續(xù))一個(gè)好的程序員的效率是普通程序員的24軟件工程基本原理-7不斷改進(jìn)軟件工程實(shí)踐發(fā)展和采用新技術(shù)收集相關(guān)數(shù)據(jù)軟件工程基本原理-7不斷改進(jìn)軟件工程實(shí)踐25軟件生產(chǎn)中的問題:

----本質(zhì)的和偶發(fā)的硬件限制光傳播速度制造工藝:電子能通過的最窄的寬度為3個(gè)原子的直徑

軟件:沒有銀彈軟件生產(chǎn)中的問題:

----本質(zhì)的和偶26軟件開發(fā)中的困難困難:本質(zhì)的(固有的)和偶發(fā)的(非固有的)

軟件的本質(zhì)困難(每一種的原因及后果)復(fù)雜性一致性可變性不可見性軟件開發(fā)中的困難困難:本質(zhì)的(固有的)和偶發(fā)的(非固有的)27軟件開發(fā)中的困難:復(fù)雜性(1)原因:1.如果程序占N個(gè)字,則可能的狀態(tài)有216*N種:非線性增長(zhǎng)產(chǎn)品的不同塊之間是要相互影響(如全局變量)軟件開發(fā)中的困難:復(fù)雜性(1)原因:28軟件開發(fā)中的困難:復(fù)雜性(2)后果:軟件產(chǎn)品很難理解,開發(fā)小組成員間不能進(jìn)行良好的溝通,造成開發(fā)超時(shí)和超支,并且造成說明文檔中出現(xiàn)的錯(cuò)誤、影響對(duì)軟件過程的管理

維護(hù)過程變得很復(fù)雜,除非維護(hù)人員對(duì)產(chǎn)品真正理解軟件開發(fā)中的困難:復(fù)雜性(2)后果:29軟件開發(fā)中的困難:復(fù)雜性(3)對(duì)策:結(jié)構(gòu)化方法:自頂向下,逐步求精面向?qū)ο蠓椒?封裝、消息驅(qū)動(dòng)、繼承、復(fù)用能夠減少?gòu)?fù)雜性,從而提高可維護(hù)性,但并不能將軟件復(fù)雜性完全消除軟件開發(fā)中的困難:復(fù)雜性(3)對(duì)策:30軟件開發(fā)中的困難:一致性(1)設(shè)計(jì)軟件時(shí)與現(xiàn)有系統(tǒng)的接口一致性在設(shè)計(jì)新系統(tǒng)時(shí),軟件設(shè)計(jì)師與其它設(shè)備的設(shè)計(jì)師之間的一致性軟件開發(fā)中的困難:一致性(1)設(shè)計(jì)軟件時(shí)與現(xiàn)有系統(tǒng)的接口一致31軟件開發(fā)中的困難:一致性(2)原因:普遍存在的誤解:軟件是系統(tǒng)中一種最容易與別的設(shè)備進(jìn)行接口的成分后果:軟件獲得了一種不必要的復(fù)雜性,而這種復(fù)雜性不是由軟件自身的結(jié)構(gòu)引起的軟件開發(fā)中的困難:一致性(2)原因:32軟件開發(fā)中的困難:可變性(1)軟件需要改變的原因:1.軟件是現(xiàn)實(shí)世界的模擬,軟件要隨著現(xiàn)實(shí)世界的改變而改變用戶對(duì)軟件功能的擴(kuò)展要求,超越原來的設(shè)計(jì)軟件改變的最有吸引力的地方是軟件比硬件更容易改變成功的軟件能夠超越支持其運(yùn)行的硬件的生存期,在更換硬件后繼續(xù)使用軟件開發(fā)中的困難:可變性(1)軟件需要改變的原因:33軟件開發(fā)中的困難:可變性(2)后果:從長(zhǎng)遠(yuǎn)來看,對(duì)產(chǎn)品進(jìn)行大面積的維護(hù)是不明智的,從頭開始對(duì)軟件重新編碼有進(jìn)成本更低,但人們對(duì)軟件本質(zhì)的忽視而常常要求對(duì)軟件進(jìn)行在的改動(dòng)軟件開發(fā)中的困難:可變性(2)后果:34軟件開發(fā)中的困難:不可見性(1)原因(難以將代碼與實(shí)際的軟件對(duì)應(yīng)起來):目前不存在一種普遍接受的方法來對(duì)一個(gè)完整的軟件產(chǎn)品進(jìn)行描述,或者對(duì)產(chǎn)品做出某種概述,現(xiàn)有的各種說明工具(如UML、數(shù)據(jù)流圖、程序結(jié)構(gòu)圖)極少有平面的,更別說是分層的,圖表中有太多的交叉,難以一下子給出軟件的全貌軟件開發(fā)中的困難:不可見性(1)原因(難以將代碼與實(shí)際的軟件35軟件開發(fā)中的困難:不可見性(2)后果:1.沒有一種圖表能將軟件的各個(gè)方面都體現(xiàn)出來,并且也沒有一種方法能夠確定在使用一種形象化描述方法對(duì)產(chǎn)品進(jìn)行描述時(shí),我們遺漏了哪些2.不能對(duì)軟件進(jìn)行形象化描述不僅使軟件難于理解,而且極大地阻礙了軟件專家之間的溝通軟件開發(fā)中的困難:不可見性(2)后果:36沒有銀彈(1)對(duì)于軟件的本質(zhì)問題,我們無法解決,無法找到一種在生產(chǎn)上快速取得大數(shù)量級(jí)提高的方法,即銀彈沒有銀彈(1)對(duì)于軟件的本質(zhì)問題,我們無法解決,無法找到一種37沒有銀彈(2)對(duì)于軟件的偶發(fā)問題是可以解決的

Brooks認(rèn)為生產(chǎn)軟件的最困難的部分在需求階段、規(guī)格說明和設(shè)計(jì)階段,而不是實(shí)現(xiàn)階段,建議我們改變軟件的生產(chǎn)方式:在任何可能的情況下購(gòu)買已經(jīng)開發(fā)好的軟件,而不是定制開發(fā)使用快速原型和增量式建造技術(shù)培養(yǎng)偉大的設(shè)計(jì)者沒有銀彈(2)對(duì)于軟件的偶發(fā)問題是可以解決的38改進(jìn)軟件過程(1)“軟件開發(fā)的根本問題在于人們不能對(duì)軟件過程進(jìn)行管理”美國(guó)國(guó)防部在位于匹茲堡的卡耐基.梅隆大學(xué)成立了軟件工程研究所(softwareengineeringInstitute,SEI)SEI的一個(gè)最主要的成功是建立了能力成熟度模型(CapabilityMaturityModel,CMM)國(guó)際標(biāo)準(zhǔn)化組織(ISO)也制定了相應(yīng)的ISO-9000系列標(biāo)準(zhǔn)、ISO/IEC15504等

改進(jìn)軟件過程(1)“軟件開發(fā)的根本問題在于人們不能對(duì)軟件過程39改進(jìn)軟件過程(2)

能力成熟度模型CMM是一組用于改進(jìn)軟件過程的相關(guān)策略,它與實(shí)際使用的軟件生命周期模型沒有關(guān)系(成熟度是對(duì)軟件過程本身的度量),CMM模型包括:

1.用于軟件的SW—CMM2.用于人力資源管理的P—CMM3.用于系統(tǒng)工程的SE—CMM4.用于集成產(chǎn)品開發(fā)的IPD—CMM5.用于軟件收集的SA—CMM

為避免不一致和冗余,1997年將前4個(gè)模型統(tǒng)一為CMMI

改進(jìn)軟件過程(2)能力成熟度模型CMM是一組用于改40改進(jìn)軟件過程(3)軟件過程不僅包括軟件生產(chǎn)的各種技術(shù)和工具,也包括技術(shù)方面和管理方面的內(nèi)容

SW—CMM是基于以下觀點(diǎn)的:新技術(shù)本身并不能導(dǎo)致產(chǎn)量和利潤(rùn)的增加,我們的問題主要出現(xiàn)在軟件過程管理上

SW—CMM模型的策略是改進(jìn)軟件過程的管理,相信技術(shù)的提高是一個(gè)自然的結(jié)果,軟件過程做為一個(gè)整體所獲得的改進(jìn)將導(dǎo)致較高質(zhì)量的軟件的產(chǎn)生,并且將會(huì)有較少項(xiàng)目超時(shí)或超支

改進(jìn)軟件過程(3)軟件過程不僅包括軟件生產(chǎn)的各種技術(shù)和工具,41CMM軟件過程改進(jìn)不可能在一夜之間實(shí)現(xiàn),SW-CMM模型對(duì)過程的改變是逐步的,該模型定義了5個(gè)成熟度級(jí)別,一個(gè)軟件組織通過每一步的細(xì)微演變,將自己的成熟度級(jí)別提高到更高一級(jí)上CMM軟件過程改進(jìn)不可能在一夜之間實(shí)現(xiàn),SW-CMM模型對(duì)過42成熟度級(jí)別1(初始級(jí))有效的軟件過程管理方法在本質(zhì)上沒有獲得使用,軟件開發(fā)成功與否依賴于當(dāng)前的軟件開發(fā)人員整個(gè)開發(fā)過程沒有計(jì)劃,不可預(yù)測(cè),軟件開發(fā)經(jīng)常超時(shí)和超支許多措施都是在軟件開發(fā)遇到困難進(jìn)采取的,而不是事先計(jì)劃好的(在這樣的組織里,“高技術(shù)”只能引起更大的混亂)

成熟度級(jí)別1(初始級(jí))有效的軟件過程管理方法在本質(zhì)上沒有獲43成熟度級(jí)別2(可重復(fù)級(jí))

使用了基本的軟件項(xiàng)目管理措施1.根據(jù)從類似產(chǎn)品中獲得的經(jīng)驗(yàn)對(duì)新的產(chǎn)品進(jìn)行計(jì)劃和管理2.使用了基本的測(cè)量技術(shù)(包括對(duì)花費(fèi)和工作進(jìn)度表的仔細(xì)跟蹤)3.項(xiàng)目中的測(cè)量為以后項(xiàng)目時(shí)間和費(fèi)用表的制定提供現(xiàn)實(shí)的依據(jù)4.通過測(cè)量,管理人員能夠及時(shí)發(fā)現(xiàn)問題,并立刻采取措施阻止這些問題演化成大的危機(jī)成熟度級(jí)別2(可重復(fù)級(jí))使用了基本的軟件項(xiàng)目管理措施44成熟度級(jí)別3(已定義級(jí))軟件開發(fā)過程的完全文檔化1.軟件開發(fā)過程在所有的管理的技術(shù)方面都有明確的定義2.在任何可能的地方不斷努力改進(jìn)軟件開發(fā)過程3.以評(píng)審方式來保證軟件質(zhì)量4.引進(jìn)CASE技術(shù)來進(jìn)一步提高軟件質(zhì)量的軟件生產(chǎn)力

成熟度級(jí)別3(已定義級(jí))軟件開發(fā)過程的完全文檔化45成熟度級(jí)別4(已管理級(jí))為每個(gè)項(xiàng)目設(shè)計(jì)了質(zhì)量目標(biāo)和生產(chǎn)目標(biāo)1.在軟件開發(fā)過程中對(duì)這兩項(xiàng)指標(biāo)不斷進(jìn)行測(cè)量,當(dāng)與目標(biāo)有不可接受的偏離時(shí),則能夠糾正措施對(duì)其進(jìn)行糾正2.設(shè)立統(tǒng)計(jì)質(zhì)量控制(如每千行代碼的錯(cuò)誤數(shù)),確保管理者能夠區(qū)別質(zhì)量和生產(chǎn)標(biāo)準(zhǔn)的隨機(jī)偏離及有意的違背

成熟度級(jí)別4(已管理級(jí))為每個(gè)項(xiàng)目設(shè)計(jì)了質(zhì)量目標(biāo)和生產(chǎn)目標(biāo)46成熟度級(jí)別5(優(yōu)化級(jí))

持續(xù)改進(jìn)軟件過程

1.人們用靜態(tài)質(zhì)量和過程控制技術(shù)對(duì)軟件組織進(jìn)行指引,在每個(gè)項(xiàng)目中獲取的知識(shí)在以后的項(xiàng)目中可得到利用2.開發(fā)過程形成了一個(gè)回饋性的良性循環(huán),從而使軟件生產(chǎn)和軟件質(zhì)量獲得不斷提高

成熟度級(jí)別5(優(yōu)化級(jí))持續(xù)改進(jìn)軟件過程47CMM總結(jié)(1)軟件組織改進(jìn)自己的軟件過程,需要:1.努力對(duì)組織當(dāng)前的軟件過程有一個(gè)理解2.對(duì)想要獲得的軟件過程進(jìn)行明確的闡述

3.確定為實(shí)現(xiàn)過程提高要采取的措施,并確定措施實(shí)現(xiàn)的先后順序4.制定一個(gè)實(shí)現(xiàn)過程提高的計(jì)劃并實(shí)施該計(jì)劃

CMM總結(jié)(1)軟件組織改進(jìn)自己的軟件過程,需要:48CMM總結(jié)(2)CMM總結(jié)(2)49CMM總結(jié):KPA(1)關(guān)鍵過程區(qū)(KPA):組織在努力實(shí)現(xiàn)下一個(gè)級(jí)別進(jìn)要努力實(shí)現(xiàn)的目標(biāo)成熟度級(jí)別2的KPA:

1.配置控制2.軟件質(zhì)量保證3.項(xiàng)目計(jì)劃4.項(xiàng)目追蹤5.需求管理CMM總結(jié):KPA(1)關(guān)鍵過程區(qū)(KPA):組織在努力實(shí)現(xiàn)50CMM總結(jié):KPA(2)級(jí)別5的KPA

1.錯(cuò)誤預(yù)防2.技術(shù)更新3.過程變化管理級(jí)別2與級(jí)別5的KPA比較

級(jí)別2:錯(cuò)誤發(fā)現(xiàn)與糾正級(jí)別5:錯(cuò)誤預(yù)防

CMM總結(jié):KPA(2)級(jí)別5的KPA51CMM提升經(jīng)驗(yàn)(1)花費(fèi)時(shí)間:從級(jí)別1到級(jí)別2:3到5年從級(jí)別2到級(jí)別3:1.5年到3年

SEI開發(fā)出一系列的調(diào)查表,做為評(píng)估的基礎(chǔ),評(píng)估的目的是指出軟件組織當(dāng)前軟件過程中的不足,并且指明軟件組織改進(jìn)其過程應(yīng)采用的方法CMM提升經(jīng)驗(yàn)(1)花費(fèi)時(shí)間:52CMM提升經(jīng)驗(yàn)(2)最初目標(biāo):美國(guó)國(guó)防部生產(chǎn)軟件的合同商的軟件過程進(jìn)行評(píng)估,到1998年為止,任何想與空軍簽訂合同的軟件商必須達(dá)到CMM3級(jí)以上CMM提升經(jīng)驗(yàn)(2)最初目標(biāo):美國(guó)國(guó)防部生產(chǎn)軟件的合同商的軟53軟件過程改進(jìn)的其他努力(1)ISO9000,ISO90011.

ISO9000的原則是:與該標(biāo)準(zhǔn)保持一致并不能保證生產(chǎn)出高質(zhì)量的產(chǎn)品,但這樣可以減少生產(chǎn)出質(zhì)量低劣的產(chǎn)品的可能2.和CMM有部分重疊,但并不完全相同3.不是過程改進(jìn),而強(qiáng)調(diào)使用文字和圖片對(duì)整個(gè)過程進(jìn)行記錄以確保整個(gè)過程的一致性和可理解性,重量在測(cè)量方法和節(jié)奏4.與歐洲公司簽定合同必通過ISO9000認(rèn)證,越來越多的美國(guó)公司也要求該認(rèn)證,如通用公司軟件過程改進(jìn)的其他努力(1)ISO9000,ISO900154軟件過程改進(jìn)的其他努力(2)ISO/IEC155041.軟件過程提高能力測(cè)定(SPIE):由英國(guó)國(guó)防部門提出,1997年由國(guó)際標(biāo)準(zhǔn)化組織委員會(huì)和國(guó)際電工學(xué)會(huì)接手,改稱ISO/IEC155042.包括過程改進(jìn)和軟件采購(gòu)3.擴(kuò)展和實(shí)現(xiàn)了CMM和ISO90004.是一個(gè)框架而不是方法軟件過程改進(jìn)的其他努力(2)ISO/IEC1550455軟件過程改進(jìn)的成本和效益(1)休斯飛機(jī)公司軟件工程部門,從CMM2提升到CMM3(1987-1990),花費(fèi)50萬美元,每年能節(jié)省2000萬美元位于Raytheon的裝備部隊(duì)從1988年的級(jí)別1增加到1993年的級(jí)別3,產(chǎn)品增加了2倍,用于過程改進(jìn)的每1美元,能獲得7.70美元的回報(bào)軟件過程改進(jìn)的成本和效益(1)休斯飛機(jī)公司軟件工程部門,從C56軟件過程改進(jìn)的成本和效益(2)SEI對(duì)13個(gè)參加了CMM研究的大的軟件組織的報(bào)告軟件過程改進(jìn)的成本和效益(2)SEI對(duì)13個(gè)參加了CMM研究57軟件過程改進(jìn)的成本和效益(3)34個(gè)摩托羅拉的政府電子部項(xiàng)目的統(tǒng)計(jì)結(jié)果軟件過程改進(jìn)的成本和效益(3)34個(gè)摩托羅拉的政府電子部項(xiàng)目58軟件危機(jī)與軟件工程軟件危機(jī)與軟件工程59軟件危機(jī)0美元支票 一位主管收到了一張由計(jì)算機(jī)開出的0美元的賬單,在嘲笑了“愚蠢的計(jì)算機(jī)”后他將賬單丟進(jìn)了垃圾桶,一個(gè)月后,又一張賬單寄來了,還標(biāo)志著30天的逾期,這樣的情形持續(xù)了4個(gè)月,最后還帶來了一封信,警告如果再不付賬的話,將會(huì)采取法律行動(dòng),由于擔(dān)心自己的信用度,這個(gè)主管在一個(gè)軟件工程師的建議下,寄出了一張0美元的支票,最后一張0美元的收據(jù)送到了,該主管小心翼翼地將這張不同尋常的收據(jù)保存起來以備將來查詢。軟件危機(jī)0美元支票60軟件危機(jī)(續(xù))有錯(cuò)誤的愛國(guó)者導(dǎo)彈 1991年海灣戰(zhàn)爭(zhēng)中,一枚飛毛腿導(dǎo)彈穿過了愛國(guó)者反導(dǎo)彈的防御,擊中了沙特阿拉伯的Dhahran附件的一個(gè)兵營(yíng),造成28名美國(guó)人死亡,98人受傷。這個(gè)錯(cuò)誤是由累積的定時(shí)錯(cuò)誤引起的,愛國(guó)者導(dǎo)彈每次只能工作幾小時(shí),超過這個(gè)時(shí)間后,系統(tǒng)時(shí)鐘就會(huì)復(fù)位??杀氖切碌能浖诙觳胚\(yùn)到。

軟件危機(jī)(續(xù))有錯(cuò)誤的愛國(guó)者導(dǎo)彈61軟件危機(jī)(續(xù))美國(guó)國(guó)內(nèi)稅收處20世紀(jì)年代讓Sperry公司建立一套聯(lián)邦稅收表格自動(dòng)處理系統(tǒng),該系統(tǒng)被證明不適合當(dāng)前的工作量,花費(fèi)幾乎是預(yù)算的2倍,到1996年,共花費(fèi)了40億美元,但情況并沒改善。原因是“沒有充分計(jì)劃就錯(cuò)誤行事”。軟件危機(jī)(續(xù))美國(guó)國(guó)內(nèi)稅收處20世紀(jì)年代讓Sperry公司建62軟件危機(jī)的表現(xiàn)超出預(yù)算時(shí)間和成本 研究表明,每8個(gè)新的大型軟件中就有2個(gè)會(huì)被取消,軟件開發(fā)時(shí)間平均超出計(jì)劃的50%,而軟件開發(fā)中的主要成本是人力資源成本,進(jìn)度的落后意味著成本的增加用戶對(duì)生產(chǎn)出的軟件不滿意 開發(fā)人員往往不注重或不善于和客戶交流,找出客戶真正需要的東西,匆忙地進(jìn)行開發(fā),在開地過程中又不能從客戶那里得到反饋信息,最后生產(chǎn)出的軟件和客戶想要的相差很遠(yuǎn),難免出現(xiàn)糾紛。軟件危機(jī)的表現(xiàn)超出預(yù)算時(shí)間和成本63軟件危機(jī)的表現(xiàn)(續(xù))軟件有殘存的錯(cuò)誤 研究表明,所有的大型系統(tǒng)中,大約有3/4的系統(tǒng)有運(yùn)行問題,要么不是像預(yù)料的工作,就是根本不能使用軟件產(chǎn)品不可維護(hù) 不能改正錯(cuò)誤 在原有模塊上不能增加新的功能 不能增加新的模塊軟件危機(jī)的表現(xiàn)(續(xù))軟件有殘存的錯(cuò)誤64軟件危機(jī)的表現(xiàn)(續(xù))文檔資料不完整 軟件文檔是交流平臺(tái),管理工具,必須和軟件同步更新軟件生產(chǎn)率的提高跟不上硬件的發(fā)展速度

摩爾定律:每隔18個(gè)月計(jì)算機(jī)硬件的運(yùn)算速度提高一倍,價(jià)格下降一半

軟件:手工開發(fā)為主軟件危機(jī)的表現(xiàn)(續(xù))文檔資料不完整65軟件危機(jī)的表現(xiàn)(續(xù))軟件成本在計(jì)算機(jī)系統(tǒng)總成本中的比例不斷提高而軟件 維護(hù)的成本占軟件的成本也越來越高軟件危機(jī)的表現(xiàn)(續(xù))軟件成本在計(jì)算機(jī)系統(tǒng)總成本中的比例不斷提66引起軟件危機(jī)的原因軟件開發(fā)無計(jì)劃性 沒有經(jīng)過仔細(xì)考慮就匆忙開發(fā),出現(xiàn)問題才想辦法補(bǔ)救,不能保證軟件開發(fā)進(jìn)度和預(yù)算,不能保證軟件質(zhì)量,在進(jìn)度落后時(shí),盲目增加人手,結(jié)果適得其反引起軟件危機(jī)的原因軟件開發(fā)無計(jì)劃性67引起軟件危機(jī)的原因(續(xù))軟件需求不充分 沒有將問題搞清楚就匆忙上馬,在開發(fā)過程中又不能和客戶有效地溝通,許多問題在交付軟件時(shí)才集中地爆發(fā)出來,這時(shí)候已經(jīng)是大勢(shì)已去,難以挽回了(和數(shù)值計(jì)算軟件和平時(shí)學(xué)習(xí)語(yǔ)言編寫的程序不同,在實(shí)際的軟件開發(fā)中,首先應(yīng)該滿足的是客戶的需要,開發(fā)軟件不是為了展示個(gè)人的技巧。)引起軟件危機(jī)的原因(續(xù))軟件需求不充分68引起軟件危機(jī)的原因(續(xù))軟件開發(fā)過程無規(guī)范 開發(fā)過程沒有統(tǒng)一的方法和規(guī)范 不重視文檔 各開發(fā)人員之間的接口沒有統(tǒng)一規(guī)劃引起軟件危機(jī)的原因(續(xù))軟件開發(fā)過程無規(guī)范69引起軟件危機(jī)的原因(續(xù))軟件產(chǎn)品無評(píng)測(cè)手段個(gè)人提交產(chǎn)品時(shí)沒有進(jìn)行測(cè)試 模塊之間接口沒有測(cè)試 整個(gè)系統(tǒng)沒有進(jìn)行整體測(cè)試 忽略壓力及性能測(cè)試

引起軟件危機(jī)的原因(續(xù))軟件產(chǎn)品無評(píng)測(cè)手段70軟件危機(jī)解決之道:軟件工程1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在聯(lián)邦德國(guó)召開的國(guó)際學(xué)術(shù)會(huì)議上第一次提出了“軟件危機(jī)”(softwarecrisis)這個(gè)名詞。

1968年秋季,北約的科技委員會(huì)召集了近50名一流的編程人員、計(jì)算機(jī)科學(xué)家和工業(yè)界巨頭,討論和制定擺脫“軟件危機(jī)”的對(duì)策。在那次會(huì)議上第一次提出了軟件工程(softwareengineering)這個(gè)概念用工程化的理念、方法進(jìn)行軟件開發(fā)軟件危機(jī)解決之道:軟件工程1968年北大西洋公約組織的計(jì)算機(jī)71軟件工程的定義軟件工程[IEE93]將系統(tǒng)的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程;上述方法的研究軟件工程的定義軟件工程[IEE93]72軟件工程基本原理B.W.Boehm提出7條原理,互相獨(dú)立,最小集合其他軟件工程原理在此基礎(chǔ)上組合、蘊(yùn)含、派生軟件工程基本原理B.W.Boehm提出73軟件工程基本原理-1用分階段的生命周期計(jì)劃嚴(yán)格管理不成功的軟件中有一半左右是由于計(jì)劃不同造成的應(yīng)該將軟件生命周期劃分成若干個(gè)階段,并相應(yīng)制定出切實(shí)可行的計(jì)劃,并按計(jì)劃對(duì)軟件的開發(fā)和維護(hù)進(jìn)行管理六類計(jì)劃:項(xiàng)目概要計(jì)劃,里程碑計(jì)劃,項(xiàng)目控制計(jì)劃,產(chǎn)品控制計(jì)劃,驗(yàn)證計(jì)劃,運(yùn)行維護(hù)計(jì)劃軟件工程基本原理-1用分階段的生命周期計(jì)劃嚴(yán)格管理74軟件工程基本原理-2堅(jiān)持進(jìn)行階段評(píng)審統(tǒng)計(jì)表明,大部分錯(cuò)誤是在編碼之前造成的錯(cuò)誤發(fā)現(xiàn)與改正越晚,所需付出的代價(jià)也越高(見下頁(yè))堅(jiān)持階段評(píng)審,可以避免錯(cuò)誤的“水波效應(yīng)”軟件工程基本原理-2堅(jiān)持進(jìn)行階段評(píng)審75各階段改正錯(cuò)誤的相對(duì)花費(fèi)各階段改正錯(cuò)誤的相對(duì)花費(fèi)76軟件工程基本原理-3實(shí)行嚴(yán)格的產(chǎn)品控制盡量避免修改需求修改需求必須在嚴(yán)格的管理下進(jìn)行----配置管理軟件工程基本原理-3實(shí)行嚴(yán)格的產(chǎn)品控制77軟件危機(jī)與軟件工程課件78軟件工程基本原理-4采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)—自頂向下,逐步求精面向?qū)ο笤O(shè)計(jì)技術(shù)—思想而非僅為技術(shù)軟件工程基本原理-4采用現(xiàn)代程序設(shè)計(jì)技術(shù)79軟件工程基本原理-5結(jié)果應(yīng)能清楚地審查度量是管理的基礎(chǔ)形成自己的管理數(shù)據(jù)資料庫(kù),盡量精確地對(duì)系統(tǒng)進(jìn)行計(jì)劃、測(cè)量、修正軟件工程基本原理-5結(jié)果應(yīng)能清楚地審查80軟件工程基本原理-6開發(fā)小組人員應(yīng)少而精I(xiàn)BM的紐約時(shí)報(bào)項(xiàng)目(1971):22個(gè)月內(nèi)寫了83000行程序,在1年的運(yùn)行過程中只找出了25個(gè)錯(cuò)誤,主要的程序員平均每年編寫1個(gè)錯(cuò)誤和10000行代碼成功原因:該項(xiàng)目是IBM的樣本項(xiàng)目每個(gè)程序員都是尖子中的尖子技術(shù)支持極為強(qiáng)大,編譯器作者隨叫隨到項(xiàng)目領(lǐng)導(dǎo)F.TerryBaker是一個(gè)極好的管理者和領(lǐng)導(dǎo)者,“天才程序員”軟件工程基本原理-6開發(fā)小組人員應(yīng)少而精81軟件工程基本原理-6(續(xù))一個(gè)好的程序員的效率是普通程序員的4-5倍開發(fā)小組人員增多,由于交流討論問題所造成的通信開銷急劇增加(特別是程序員使用其他程序員所開發(fā)的模塊)軟件工程基本原理-6(續(xù))一個(gè)好的程序員的效率是普通程序員的82軟件工程基本原理-7不斷改進(jìn)軟件工程實(shí)踐發(fā)展和采用新技術(shù)收集相關(guān)數(shù)據(jù)軟件工程基本原理-7不斷改進(jìn)軟件工程實(shí)踐83軟件生產(chǎn)中的問題:

----本質(zhì)的和偶發(fā)的硬件限制光傳播速度制造工藝:電子能通過的最窄的寬度為3個(gè)原子的直徑

軟件:沒有銀彈軟件生產(chǎn)中的問題:

----本質(zhì)的和偶84軟件開發(fā)中的困難困難:本質(zhì)的(固有的)和偶發(fā)的(非固有的)

軟件的本質(zhì)困難(每一種的原因及后果)復(fù)雜性一致性可變性不可見性軟件開發(fā)中的困難困難:本質(zhì)的(固有的)和偶發(fā)的(非固有的)85軟件開發(fā)中的困難:復(fù)雜性(1)原因:1.如果程序占N個(gè)字,則可能的狀態(tài)有216*N種:非線性增長(zhǎng)產(chǎn)品的不同塊之間是要相互影響(如全局變量)軟件開發(fā)中的困難:復(fù)雜性(1)原因:86軟件開發(fā)中的困難:復(fù)雜性(2)后果:軟件產(chǎn)品很難理解,開發(fā)小組成員間不能進(jìn)行良好的溝通,造成開發(fā)超時(shí)和超支,并且造成說明文檔中出現(xiàn)的錯(cuò)誤、影響對(duì)軟件過程的管理

維護(hù)過程變得很復(fù)雜,除非維護(hù)人員對(duì)產(chǎn)品真正理解軟件開發(fā)中的困難:復(fù)雜性(2)后果:87軟件開發(fā)中的困難:復(fù)雜性(3)對(duì)策:結(jié)構(gòu)化方法:自頂向下,逐步求精面向?qū)ο蠓椒?封裝、消息驅(qū)動(dòng)、繼承、復(fù)用能夠減少?gòu)?fù)雜性,從而提高可維護(hù)性,但并不能將軟件復(fù)雜性完全消除軟件開發(fā)中的困難:復(fù)雜性(3)對(duì)策:88軟件開發(fā)中的困難:一致性(1)設(shè)計(jì)軟件時(shí)與現(xiàn)有系統(tǒng)的接口一致性在設(shè)計(jì)新系統(tǒng)時(shí),軟件設(shè)計(jì)師與其它設(shè)備的設(shè)計(jì)師之間的一致性軟件開發(fā)中的困難:一致性(1)設(shè)計(jì)軟件時(shí)與現(xiàn)有系統(tǒng)的接口一致89軟件開發(fā)中的困難:一致性(2)原因:普遍存在的誤解:軟件是系統(tǒng)中一種最容易與別的設(shè)備進(jìn)行接口的成分后果:軟件獲得了一種不必要的復(fù)雜性,而這種復(fù)雜性不是由軟件自身的結(jié)構(gòu)引起的軟件開發(fā)中的困難:一致性(2)原因:90軟件開發(fā)中的困難:可變性(1)軟件需要改變的原因:1.軟件是現(xiàn)實(shí)世界的模擬,軟件要隨著現(xiàn)實(shí)世界的改變而改變用戶對(duì)軟件功能的擴(kuò)展要求,超越原來的設(shè)計(jì)軟件改變的最有吸引力的地方是軟件比硬件更容易改變成功的軟件能夠超越支持其運(yùn)行的硬件的生存期,在更換硬件后繼續(xù)使用軟件開發(fā)中的困難:可變性(1)軟件需要改變的原因:91軟件開發(fā)中的困難:可變性(2)后果:從長(zhǎng)遠(yuǎn)來看,對(duì)產(chǎn)品進(jìn)行大面積的維護(hù)是不明智的,從頭開始對(duì)軟件重新編碼有進(jìn)成本更低,但人們對(duì)軟件本質(zhì)的忽視而常常要求對(duì)軟件進(jìn)行在的改動(dòng)軟件開發(fā)中的困難:可變性(2)后果:92軟件開發(fā)中的困難:不可見性(1)原因(難以將代碼與實(shí)際的軟件對(duì)應(yīng)起來):目前不存在一種普遍接受的方法來對(duì)一個(gè)完整的軟件產(chǎn)品進(jìn)行描述,或者對(duì)產(chǎn)品做出某種概述,現(xiàn)有的各種說明工具(如UML、數(shù)據(jù)流圖、程序結(jié)構(gòu)圖)極少有平面的,更別說是分層的,圖表中有太多的交叉,難以一下子給出軟件的全貌軟件開發(fā)中的困難:不可見性(1)原因(難以將代碼與實(shí)際的軟件93軟件開發(fā)中的困難:不可見性(2)后果:1.沒有一種圖表能將軟件的各個(gè)方面都體現(xiàn)出來,并且也沒有一種方法能夠確定在使用一種形象化描述方法對(duì)產(chǎn)品進(jìn)行描述時(shí),我們遺漏了哪些2.不能對(duì)軟件進(jìn)行形象化描述不僅使軟件難于理解,而且極大地阻礙了軟件專家之間的溝通軟件開發(fā)中的困難:不可見性(2)后果:94沒有銀彈(1)對(duì)于軟件的本質(zhì)問題,我們無法解決,無法找到一種在生產(chǎn)上快速取得大數(shù)量級(jí)提高的方法,即銀彈沒有銀彈(1)對(duì)于軟件的本質(zhì)問題,我們無法解決,無法找到一種95沒有銀彈(2)對(duì)于軟件的偶發(fā)問題是可以解決的

Brooks認(rèn)為生產(chǎn)軟件的最困難的部分在需求階段、規(guī)格說明和設(shè)計(jì)階段,而不是實(shí)現(xiàn)階段,建議我們改變軟件的生產(chǎn)方式:在任何可能的情況下購(gòu)買已經(jīng)開發(fā)好的軟件,而不是定制開發(fā)使用快速原型和增量式建造技術(shù)培養(yǎng)偉大的設(shè)計(jì)者沒有銀彈(2)對(duì)于軟件的偶發(fā)問題是可以解決的96改進(jìn)軟件過程(1)“軟件開發(fā)的根本問題在于人們不能對(duì)軟件過程進(jìn)行管理”美國(guó)國(guó)防部在位于匹茲堡的卡耐基.梅隆大學(xué)成立了軟件工程研究所(softwareengineeringInstitute,SEI)SEI的一個(gè)最主要的成功是建立了能力成熟度模型(CapabilityMaturityModel,CMM)國(guó)際標(biāo)準(zhǔn)化組織(ISO)也制定了相應(yīng)的ISO-9000系列標(biāo)準(zhǔn)、ISO/IEC15504等

改進(jìn)軟件過程(1)“軟件開發(fā)的根本問題在于人們不能對(duì)軟件過程97改進(jìn)軟件過程(2)

能力成熟度模型CMM是一組用于改進(jìn)軟件過程的相關(guān)策略,它與實(shí)際使用的軟件生命周期模型沒有關(guān)系(成熟度是對(duì)軟件過程本身的度量),CMM模型包括:

1.用于軟件的SW—CMM2.用于人力資源管理的P—CMM3.用于系統(tǒng)工程的SE—CMM4.用于集成產(chǎn)品開發(fā)的IPD—CMM5.用于軟件收集的SA—CMM

為避免不一致和冗余,1997年將前4個(gè)模型統(tǒng)一為CMMI

改進(jìn)軟件過程(2)能力成熟度模型CMM是一組用于改98改進(jìn)軟件過程(3)軟件過程不僅包括軟件生產(chǎn)的各種技術(shù)和工具,也包括技術(shù)方面和管理方面的內(nèi)容

SW—CMM是基于以下觀點(diǎn)的:新技術(shù)本身并不能導(dǎo)致產(chǎn)量和利潤(rùn)的增加,我們的問題主要出現(xiàn)在軟件過程管理上

SW—CMM模型的策略是改進(jìn)軟件過程的管理,相信技術(shù)的提高是一個(gè)自然的結(jié)果,軟件過程做為一個(gè)整體所獲得的改進(jìn)將導(dǎo)致較高質(zhì)量的軟件的產(chǎn)生,并且將會(huì)有較少項(xiàng)目超時(shí)或超支

改進(jìn)軟件過程(3)軟件過程不僅包括軟件生產(chǎn)的各種技術(shù)和工具,99CMM軟件過程改進(jìn)不可能在一夜之間實(shí)現(xiàn),SW-CMM模型對(duì)過程的改變是逐步的,該模型定義了5個(gè)成熟度級(jí)別,一個(gè)軟件組織通過每一步的細(xì)微演變,將自己的成熟度級(jí)別提高到更高一級(jí)上CMM軟件過程改進(jìn)不可能在一夜之間實(shí)現(xiàn),SW-CMM模型對(duì)過100成熟度級(jí)別1(初始級(jí))有效的軟件過程管理方法在本質(zhì)上沒有獲得使用,軟件開發(fā)成功與否依賴于當(dāng)前的軟件開發(fā)人員整個(gè)開發(fā)過程沒有計(jì)劃,不可預(yù)測(cè),軟件開發(fā)經(jīng)常超時(shí)和超支許多措施都是在軟件開發(fā)遇到困難進(jìn)采取的,而不是事先計(jì)劃好的(在這樣的組織里,“高技術(shù)”只能引起更大的混亂)

成熟度級(jí)別1(初始級(jí))有效的軟件過程管理方法在本質(zhì)上沒有獲101成熟度級(jí)別2(可重復(fù)級(jí))

使用了基本的軟件項(xiàng)目管理措施1.根據(jù)從類似產(chǎn)品中獲得的經(jīng)驗(yàn)對(duì)新的產(chǎn)品進(jìn)行計(jì)劃和管理2.使用了基本的測(cè)量技術(shù)(包括對(duì)花費(fèi)和工作進(jìn)度表的仔細(xì)跟蹤)3.項(xiàng)目中的測(cè)量為以后項(xiàng)目時(shí)間和費(fèi)用表的制定提供現(xiàn)實(shí)的依據(jù)4.通過測(cè)量,管理人員能夠及時(shí)發(fā)現(xiàn)問題,并立刻采取措施阻止這些問題演化成大的危機(jī)成熟度級(jí)別2(可重復(fù)級(jí))使用了基本的軟件項(xiàng)目管理措施102成熟度級(jí)別3(已定義級(jí))軟件開發(fā)過程的完全文檔化1.軟件開發(fā)過程在所有的管理的技術(shù)方面都有明確的定義2.在任何可能的地方不斷努力改進(jìn)軟件開發(fā)過程3.以評(píng)審方式來保證軟件質(zhì)量4.引進(jìn)CASE技術(shù)來進(jìn)一步提高軟件質(zhì)量的軟件生產(chǎn)力

成熟度級(jí)別3(已定義級(jí))軟件開發(fā)過程的完全文檔化103成熟度級(jí)別4(已管理級(jí))為每個(gè)項(xiàng)目設(shè)計(jì)了質(zhì)量目標(biāo)和生產(chǎn)目標(biāo)1.在軟件開發(fā)過程中對(duì)這兩項(xiàng)指標(biāo)不斷進(jìn)行測(cè)量,當(dāng)與目標(biāo)有不可接受的偏離時(shí),則能夠糾正措施對(duì)其進(jìn)行糾正2.設(shè)立統(tǒng)計(jì)質(zhì)量控制(如每千行代碼的錯(cuò)誤數(shù)),確保管理者能夠區(qū)別質(zhì)量和生產(chǎn)標(biāo)準(zhǔn)的隨機(jī)偏離及有意的違背

成熟度級(jí)別4(已管理級(jí))為每個(gè)項(xiàng)目設(shè)計(jì)了質(zhì)量目標(biāo)和生產(chǎn)目標(biāo)104成熟度級(jí)別5(優(yōu)化級(jí))

持續(xù)改進(jìn)軟件過程

1.人們用靜態(tài)質(zhì)量和過程控制技術(shù)對(duì)軟件組織進(jìn)行指引,在每個(gè)項(xiàng)目中獲取的知識(shí)在以后的項(xiàng)目中可得到利用2.開發(fā)過程形成了

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論