《軟件工程》教學(xué)09軟件維護(hù)等省公開(kāi)課一等獎(jiǎng)全國(guó)示范課微課金獎(jiǎng)?wù)n件_第1頁(yè)
《軟件工程》教學(xué)09軟件維護(hù)等省公開(kāi)課一等獎(jiǎng)全國(guó)示范課微課金獎(jiǎng)?wù)n件_第2頁(yè)
《軟件工程》教學(xué)09軟件維護(hù)等省公開(kāi)課一等獎(jiǎng)全國(guó)示范課微課金獎(jiǎng)?wù)n件_第3頁(yè)
《軟件工程》教學(xué)09軟件維護(hù)等省公開(kāi)課一等獎(jiǎng)全國(guó)示范課微課金獎(jiǎng)?wù)n件_第4頁(yè)
《軟件工程》教學(xué)09軟件維護(hù)等省公開(kāi)課一等獎(jiǎng)全國(guó)示范課微課金獎(jiǎng)?wù)n件_第5頁(yè)
已閱讀5頁(yè),還剩68頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

福州大學(xué)·軟件學(xué)院·計(jì)算機(jī)教研室軟件維護(hù)(Softwaremaintenance)王燦輝第1頁(yè)軟件維護(hù)是指軟件系統(tǒng)交付使用以后對(duì)它所做改變,也是軟件生命周期中最終一個(gè)階段(不屬于開(kāi)發(fā)階段)。Themaintenancephasefocusesonchangethatisassociatedwitherrorcorrection,adaptationsrequiredasthesoftware’senvironmentevolves,andchangesduetoenhancementsbroughtbychangingcustomerrequirements.軟件維護(hù)(Softwaremaintenance)第2頁(yè)Themaintenancephasereappliesthestepsofthedefinitionanddevelopmentphases,butdoessointhecontextofexistingsoftware.統(tǒng)計(jì)資料表明:大部分維護(hù)工作是由用戶(hù)需求改變而引發(fā),而不是由可靠性問(wèn)題引發(fā)。軟件維護(hù)(Softwaremaintenance)第3頁(yè)軟件維護(hù)(Softwaremaintenance)軟件維護(hù)是軟件生命周期中歷時(shí)最長(zhǎng),人力和資源花費(fèi)最多一個(gè)階段,也是研究最少一個(gè)階段。第4頁(yè)軟件維護(hù)(Softwaremaintenance)第5頁(yè)Correctivemaintenancechangesthesoftwaretocorrectdefects.Adaptivemaintenanceresultsinmodificationtothesoftwaretoaccommodatechangetoitsenvironment.Perfectivemaintenanceextendsthesoftwarebeyonditsoriginalfunctionalrequirements.Preventivemaintenance,oftencalledsoftwarereengineering,makeschangestocomputerprogramssothattheycanbemoreeasilycorrected,adapted,andenhanced.軟件維護(hù)分類(lèi)第6頁(yè)軟件維護(hù)分類(lèi)第7頁(yè)讀懂他人編寫(xiě)程序通常相當(dāng)困難,尤其是一些非結(jié)構(gòu)化程序。假如只有程序代碼而沒(méi)有文檔說(shuō)明問(wèn)題將會(huì)十分嚴(yán)重。軟件人員經(jīng)常流動(dòng),所以當(dāng)要求對(duì)軟件進(jìn)行維護(hù)時(shí),不可能依靠原開(kāi)發(fā)人員提供對(duì)軟件解釋?zhuān)词箍赡苡袝r(shí)也因時(shí)間太久而造成原開(kāi)發(fā)人員無(wú)法提供幫助)。沒(méi)有文檔、文檔嚴(yán)重不足,文檔難于了解,或文檔與程序不一致。經(jīng)過(guò)各種版本或發(fā)行,要追蹤軟件演化變得很困難,甚至不可能。軟件維護(hù)中問(wèn)題(1)第8頁(yè)絕大多數(shù)軟件在設(shè)計(jì)時(shí)不考慮以后可能改變。除非采取功效獨(dú)立模塊化設(shè)計(jì)方法,不然軟件修改將是困難,而且還輕易引入新錯(cuò)誤。追蹤軟件建立過(guò)程非常困難。維護(hù)被看作是毫無(wú)吸引力工作,高水平程序員自然不愿主動(dòng)去做,而企業(yè)也舍不得讓高水平程序員去做。帶著低沉情緒低水平程序員只會(huì)把維護(hù)工作搞得一塌糊涂。維護(hù)將會(huì)產(chǎn)生不良副作用,不論是修改代碼、數(shù)據(jù)或文檔,都有可能產(chǎn)生新錯(cuò)誤。軟件維護(hù)中問(wèn)題(2)第9頁(yè)影響軟件維護(hù)原因包含:人員原因,技術(shù)原因和管理原因,程序本身原因,詳細(xì)以下:系統(tǒng)規(guī)模。系統(tǒng)規(guī)模越大,維護(hù)越困難。系統(tǒng)年紀(jì)。系統(tǒng)運(yùn)行時(shí)間越長(zhǎng),在維護(hù)中結(jié)構(gòu)屢次修改會(huì)造成維護(hù)困難。系統(tǒng)結(jié)構(gòu)。不合理程序結(jié)構(gòu)會(huì)帶來(lái)維護(hù)困難。使用軟件工程方法開(kāi)發(fā)軟件,即使不能確保維護(hù)沒(méi)有問(wèn)題,但能夠降低維護(hù)工作量,并提升質(zhì)量。影響軟件維護(hù)原因第10頁(yè)軟件維護(hù)是既破財(cái)又費(fèi)神工作??吹靡?jiàn)代價(jià)是那些為了維護(hù)而投入人力與財(cái)力。而看不見(jiàn)維護(hù)代價(jià)則愈加高昂,我們稱(chēng)之為“機(jī)會(huì)成本”,即為了得到某種東西所必須放棄東西。把很多程序員和其它資源用于維護(hù)工作,必定會(huì)耽擱新產(chǎn)品開(kāi)發(fā)甚至?xí)适C(jī)遇,這種代價(jià)是無(wú)法估量。軟件維護(hù)費(fèi)用第11頁(yè)軟件維護(hù)費(fèi)用不停上升,從上世紀(jì)六十年代40%左右到當(dāng)前超出60%。維護(hù)一行源代碼代價(jià)大約是開(kāi)發(fā)40倍!維護(hù)工作量模型:

M=P+K.e(c-d),其中,

M:用于維護(hù)工作總工作量;P:生產(chǎn)性工作量(維護(hù)時(shí)對(duì)軟件分析、評(píng)價(jià)、設(shè)計(jì)、修改和編碼所需要工作量);K:經(jīng)驗(yàn)常數(shù);c:軟件復(fù)雜程度度量(如未采取結(jié)構(gòu)化設(shè)計(jì)和缺乏文檔所引發(fā)復(fù)雜性);d:對(duì)該軟件熟悉程度度量。軟件維護(hù)費(fèi)用第12頁(yè)軟件可維護(hù)性軟件可維護(hù)性能夠定義為:軟件能夠被了解、更正、適應(yīng)和完善以適應(yīng)新環(huán)境難易程度。假如軟件是可測(cè)試,可了解,可修改,可移植,可靠,有效和可用,則說(shuō)該軟件是可維護(hù)。第13頁(yè)軟件維護(hù)任務(wù)軟件維護(hù)任務(wù)包含:建立維護(hù)機(jī)構(gòu)編制維護(hù)匯報(bào)(軟件問(wèn)題匯報(bào)和軟件修改匯報(bào))為維護(hù)請(qǐng)求要求工作流程維護(hù)技術(shù)工作(修改設(shè)計(jì),復(fù)審設(shè)計(jì),編碼,單元測(cè)試、集成測(cè)試(含回歸測(cè)試),有效性測(cè)試,最終復(fù)審)統(tǒng)計(jì)和保留維護(hù)活動(dòng)相關(guān)信息對(duì)維護(hù)進(jìn)行評(píng)價(jià)第14頁(yè)軟件維護(hù)副作用所謂軟件維護(hù)副作用(maintenancesideeffects),就是指因?yàn)樾薷亩斐慑e(cuò)誤或其它多出動(dòng)作發(fā)生。修改代碼副作用(回歸測(cè)試可降低編碼副作用)修改數(shù)據(jù)副作用修改文檔副作用在軟件再次交付使用之前,對(duì)整個(gè)軟件配置進(jìn)行評(píng)審將能大大降低文檔副作用。第15頁(yè)福州大學(xué)·軟件學(xué)院·計(jì)算機(jī)教研室再生工程王燦輝第16頁(yè)再生工程假如希望提升已經(jīng)有軟件質(zhì)量而且提升商業(yè)競(jìng)爭(zhēng)力,卻又無(wú)法靠維護(hù)來(lái)實(shí)現(xiàn),只好對(duì)已經(jīng)有軟件進(jìn)行全部或者部分改造,這種活動(dòng)叫再生工程(Reengineering)。再生過(guò)程也叫改造工程,它不是從現(xiàn)有軟件中恢復(fù)設(shè)計(jì)信息,而是利用這些信息去改變或重建現(xiàn)存系統(tǒng),盡最大努力來(lái)提升它整體質(zhì)量。第17頁(yè)再生工程再生工程與維護(hù)共同之處是沒(méi)有拋棄原有軟件。假如把維護(hù)比作“修修補(bǔ)補(bǔ)”,那么再生工程就算是“痛改前非”。再生工程并不見(jiàn)得一定比維護(hù)代價(jià)要高,但再生工程在未來(lái)獲取利益卻要比經(jīng)過(guò)維護(hù)得到多。再生工程(Reengineering)三種類(lèi)型:

重構(gòu)(Restructure)、

逆向工程(ReverseEngineering)和

前向工程(ForwardEngineering)。第18頁(yè)再生工程--重構(gòu)重構(gòu)普通是指經(jīng)過(guò)修改代碼或數(shù)據(jù)以使軟件符合新要求。重構(gòu)通常并不推翻原有軟件體系結(jié)構(gòu),主要是改造一些模塊和數(shù)據(jù)結(jié)構(gòu)。重構(gòu)一些好處以下:

(1)使軟件質(zhì)量更高,或使軟件順應(yīng)新時(shí)尚(標(biāo)準(zhǔn))。

(2)使軟件后續(xù)(升級(jí))版本生產(chǎn)率更高。

(3)降低后期維護(hù)代價(jià)。要注意是,在代碼重構(gòu)和數(shù)據(jù)重構(gòu)之后,一定要重構(gòu)對(duì)應(yīng)文檔。第19頁(yè)逆向工程軟件逆向工程就是分析一個(gè)程序過(guò)程,以最大努力去建立比源代碼抽象層次更高程序表示式。逆向工程也是一個(gè)設(shè)計(jì)恢復(fù)過(guò)程。逆向工程起源于硬件世界。硬件廠商總想弄到競(jìng)爭(zhēng)對(duì)手產(chǎn)品設(shè)計(jì)和制造“奧秘”。不過(guò)又得不到現(xiàn)成檔案,只好拆卸對(duì)手產(chǎn)品并進(jìn)行分析,企圖從中獲取有價(jià)值東西。軟件逆向工程在道理上與硬件相同。但在很多時(shí)候,軟件逆向工程并不是針對(duì)競(jìng)爭(zhēng)對(duì)手,而是針對(duì)自己企業(yè)多年前產(chǎn)品。期望從老產(chǎn)品中提取系統(tǒng)設(shè)計(jì)、需求說(shuō)明等有價(jià)值信息。第20頁(yè)前向工程前向工程也稱(chēng)預(yù)防性維護(hù),由Miller提倡。他把這個(gè)術(shù)語(yǔ)解釋成“為了明天需要,把今天方法應(yīng)用到昨天系統(tǒng)上”。乍看起來(lái),主動(dòng)去改造一個(gè)當(dāng)前運(yùn)行得正常軟件系統(tǒng)簡(jiǎn)直就是“惹事生非”。不過(guò)軟件技術(shù)發(fā)展如此快速,與其等候一個(gè)有價(jià)值產(chǎn)品逐步老死,還不如主動(dòng)去更新,以獲取更大收益。其道理就同打預(yù)防性針一樣。所以,預(yù)防性維護(hù)是“吃小虧占大廉價(jià)”事。第21頁(yè)福州大學(xué)·軟件學(xué)院·計(jì)算機(jī)教研室變更管理王燦輝第22頁(yè)變更管理變更是不可防止。大多數(shù)變更是合理。不受控制一系列變更輕而易舉就能使一個(gè)運(yùn)行良好軟件項(xiàng)目變得混亂。因?yàn)樵陂_(kāi)發(fā)軟件時(shí)會(huì)產(chǎn)生很多工作產(chǎn)品,所以必須唯一標(biāo)識(shí)每一個(gè)工作產(chǎn)品。變更管理,通常也叫軟件配置管理(SCM)是貫通于整個(gè)軟件過(guò)程普適性活動(dòng)。區(qū)分于軟件維護(hù)僅發(fā)生在軟件交付給用戶(hù)以后。第23頁(yè)變更管理軟件配置管理(SCM)活動(dòng)目標(biāo):標(biāo)識(shí)變更;控制變更;確保正確地實(shí)現(xiàn)變更;向利害相關(guān)人員匯報(bào)變更。軟件配置管理(SCM)是一組在計(jì)算機(jī)軟件整個(gè)生存周期內(nèi)管理變更活動(dòng),能夠把SCM看作是應(yīng)用于整個(gè)軟件過(guò)程軟件質(zhì)量確?;顒?dòng)。軟件配置管理(SCM)計(jì)劃:定義了變更管理項(xiàng)目策略。第24頁(yè)變更管理軟件配置項(xiàng):是在軟件工程過(guò)程中創(chuàng)建信息(程序、數(shù)據(jù)、文檔、軟件工具)。基線:已經(jīng)經(jīng)過(guò)正式評(píng)審和同意規(guī)格說(shuō)明或產(chǎn)品,它能夠作為深入開(kāi)發(fā)基礎(chǔ),而且只有經(jīng)過(guò)正式變更控制規(guī)程才能修改它?;€是軟件開(kāi)發(fā)中里程碑。SCM過(guò)程:配置對(duì)象標(biāo)識(shí);變更控制;版本控制;配置審核;狀態(tài)匯報(bào);第25頁(yè)福州大學(xué)·軟件學(xué)院·計(jì)算機(jī)教研室軟件度量王燦輝第26頁(yè)軟件度量假如不進(jìn)行測(cè)量,就沒(méi)法確定我們是否在改進(jìn),只能依據(jù)主觀評(píng)價(jià)來(lái)做判斷。度量時(shí),先搜集基本質(zhì)量數(shù)據(jù)和生產(chǎn)率數(shù)據(jù),往后分析這些數(shù)據(jù),與過(guò)去平均值進(jìn)行比較,經(jīng)過(guò)評(píng)定來(lái)確定是否已經(jīng)有質(zhì)量和生產(chǎn)率提升。度量也能夠用來(lái)查明問(wèn)題區(qū)域,方便確定適當(dāng)補(bǔ)救辦法,并改進(jìn)軟件過(guò)程。第27頁(yè)軟件度量只有度量是直觀且易于計(jì)算時(shí)才會(huì)被使用。若需要大量“計(jì)數(shù)”,且需要復(fù)雜計(jì)算,則該度量不可能得到廣泛采納。度量能夠應(yīng)用于軟件過(guò)程中,目標(biāo)是連續(xù)地改進(jìn)軟件過(guò)程。度量應(yīng)用于項(xiàng)目管理能夠改進(jìn)項(xiàng)目工作流程和技術(shù)活動(dòng)。第28頁(yè)軟件度量—基于功效度量利用基于軟件信息域可數(shù)(直接)測(cè)度和軟件復(fù)雜性評(píng)定經(jīng)驗(yàn)關(guān)系來(lái)計(jì)算功效點(diǎn)。信息域及加權(quán)因子:外部輸入數(shù)、外部輸出數(shù)、外部查詢(xún)數(shù)、內(nèi)部邏輯文件數(shù)、外部接口文件數(shù)。功效點(diǎn)FP=總計(jì)*(0.65+0.01+∑Fi)第29頁(yè)福州大學(xué)·軟件學(xué)院·計(jì)算機(jī)教研室軟件質(zhì)量(SoftwareQuality)王燦輝第30頁(yè)SoftwareQuality軟件工程目標(biāo)是提升軟件質(zhì)量與生產(chǎn)率,最終實(shí)現(xiàn)軟件工業(yè)化生產(chǎn)。質(zhì)量是軟件需求方最關(guān)心問(wèn)題,生產(chǎn)率是軟件供給方最關(guān)心問(wèn)題。質(zhì)量與生產(chǎn)率之間有著內(nèi)在聯(lián)絡(luò),高生產(chǎn)率必須以質(zhì)量合格為前提。第31頁(yè)SoftwareQuality假如一個(gè)軟件產(chǎn)品向其終端用戶(hù)提供了實(shí)質(zhì)性益處,他們可能愿意忍受偶然可靠性和性能問(wèn)題。第32頁(yè)SoftwareQuality從短期效益看,追求高質(zhì)量會(huì)延長(zhǎng)軟件開(kāi)發(fā)時(shí)間而且增大費(fèi)用,似乎降低了生產(chǎn)率。從長(zhǎng)久效益看,高質(zhì)量將確保軟件開(kāi)發(fā)全過(guò)程愈加規(guī)范流暢,大大降低了軟件維護(hù)代價(jià),實(shí)質(zhì)上是提升了生產(chǎn)率,同時(shí)可取得很好信譽(yù)。質(zhì)量與生產(chǎn)率之間不存在根本對(duì)立,好軟件工程方法能夠同時(shí)提升質(zhì)量與生產(chǎn)率。第33頁(yè)SoftwareQuality對(duì)開(kāi)發(fā)人員而言,假如非得在質(zhì)量與生產(chǎn)率之間分個(gè)主次不可,那么應(yīng)該是質(zhì)量第一,生產(chǎn)率第二。這是因?yàn)椋海?)質(zhì)量直接表達(dá)在軟件每段程序中,高質(zhì)量自然是開(kāi)發(fā)人員技術(shù)追求,也是職業(yè)道德要求。(2)高質(zhì)量對(duì)全部用戶(hù)都有價(jià)值,而高生產(chǎn)率只對(duì)開(kāi)發(fā)方有意義。(3)假如一開(kāi)始就追求高生產(chǎn)率,輕易使人急功近利,留下隱患。寧可進(jìn)度慢些,也要確保每個(gè)步驟質(zhì)量,以圖久遠(yuǎn)利益。第34頁(yè)SoftwareQuality“零缺點(diǎn)”質(zhì)量管理觀念起源于一些國(guó)際上著名硬件生產(chǎn)廠商。盡管軟件開(kāi)發(fā)與硬件生產(chǎn)有極大差異,但我們?nèi)阅軌驈摹傲闳秉c(diǎn)”質(zhì)量管理中得到啟迪?!傲闳秉c(diǎn)”質(zhì)量管理最少有兩個(gè)關(guān)鍵內(nèi)容:一是高目標(biāo),二是可執(zhí)行規(guī)范。軟件高質(zhì)量主要是設(shè)計(jì)出來(lái),不是“管”出來(lái),更不能依賴(lài)質(zhì)量檢驗(yàn)。為此程序員要充分了解軟件質(zhì)量原因,只有提升設(shè)計(jì)水平,才能開(kāi)發(fā)出高質(zhì)量軟件。

第35頁(yè)SoftwareQuality軟件質(zhì)量原因很多,如正確性,性能與效率、可靠性、容錯(cuò)性、易用性、靈活性、可了解性與簡(jiǎn)練性、可復(fù)用性和可擴(kuò)充性、可維護(hù)性等等。有些原因相互重合,有些則相抵觸,真要提升質(zhì)量可不是一件輕易事!第36頁(yè)SoftwareQuality如:健壯性是軟件一個(gè)質(zhì)量原因,指是在硬件發(fā)生故障、輸入數(shù)據(jù)無(wú)效或操作錯(cuò)誤等意外情況下,軟件系統(tǒng)能做出適當(dāng)響應(yīng)程度。程序員在編寫(xiě)實(shí)現(xiàn)方法代碼時(shí),既應(yīng)該考慮效率,也應(yīng)該考慮健壯性。通常需要在健壯性與效率之間做出適當(dāng)折衷。必須認(rèn)識(shí)到,對(duì)于任何一個(gè)實(shí)用軟件來(lái)說(shuō),健壯性都是不可忽略質(zhì)量指標(biāo)。第37頁(yè)SoftwareQuality與明確定義功效和性能需求一致性與明確成文開(kāi)發(fā)標(biāo)準(zhǔn)一致性與全部專(zhuān)業(yè)開(kāi)發(fā)軟件所期望隱含特征(如:健壯性、可維護(hù)性、良好界面格調(diào)、可移植性等)一致性第38頁(yè)軟件質(zhì)量(SoftwareQuality)軟件質(zhì)量是難于定量度量軟件屬性,不過(guò)依然能夠提出許多主要軟件質(zhì)量指標(biāo),這些指標(biāo)主要從管理角度對(duì)軟件質(zhì)量進(jìn)行度量。Thefactorsthataffectsoftwarequalitycanbecategorizedintwobroadgroups:Factorsthatcanbedirectlymeasured(e.g.,defectsperfunctionpoint)andFactorsthatcanbemeasuredonlyindirectly(e.g.,usabilityormaintainability)第39頁(yè)軟件質(zhì)量(SoftwareQuality)軟件質(zhì)量指標(biāo)往往相互矛盾。比如:采取容錯(cuò)技術(shù)==》提供可靠性==》但占用較多存放空間和執(zhí)行時(shí)間==》降低時(shí)空效率,增加軟件系統(tǒng)維護(hù)困難

===》所以應(yīng)綜合平衡第40頁(yè)軟件質(zhì)量(SoftwareQuality)—(McCall’sSoftwareQualityFactors)PortabilityReusabilityInteroperabilityProductTransitionProductRevisionProductOperationMaintainabilityFlexibilityTestabilityCorrectnessReliabilityUsabilityIntegrityEfficiency第41頁(yè)軟件質(zhì)量(SoftwareQuality)—(McCall’sSoftwareQualityFactors)第42頁(yè)軟件質(zhì)量—(Hewlett-Packard’sSoftwareQualityFactors)Hewlett-PackardhasdevelopedasetofsoftwarequalityfactorsthathasbeengiventheacronymFURPS—functionality,usability,reliability,performance,andsupportability.第43頁(yè)軟件質(zhì)量—(Hewlett-Packard’sSoftwareQualityFactors)Supportabilitycombinestheabilitytoextendtheprogram(extensibility),adaptability,andserviceability(thesethreeattributesrepresentamorecommonterm--maintainability),aswellastestability,compatibility,configurability(theabilitytoorganizeandcontrolelementsofthesoftwareconfiguration),theeasewithwhichasystemcanbeinstalled,andtheeasewithwhichproblemscanbelocalized.第44頁(yè)軟件質(zhì)量(SoftwareQuality)為了在軟件開(kāi)發(fā)過(guò)程中確保軟件質(zhì)量,主要采取下述辦法:復(fù)審(最少在每個(gè)開(kāi)發(fā)階段結(jié)束前一次)復(fù)查(在每個(gè)開(kāi)發(fā)階段開(kāi)始前)管理復(fù)審測(cè)試軟件質(zhì)量在產(chǎn)品或系統(tǒng)中是事先設(shè)計(jì)好,而不是事后強(qiáng)加。第45頁(yè)軟件質(zhì)量(SoftwareQuality)質(zhì)量檢驗(yàn)并不是要等到項(xiàng)目結(jié)束時(shí)才執(zhí)行唯一一次,應(yīng)該在每個(gè)實(shí)踐步驟都要執(zhí)行。對(duì)應(yīng)于進(jìn)度表,在每個(gè)里程碑抵達(dá)時(shí)執(zhí)行質(zhì)量檢驗(yàn)比較合理。做好檢驗(yàn)工作并不是件輕易事。自古以來(lái)“上有政策,下有對(duì)策”。虛假質(zhì)量檢驗(yàn)還不如不檢驗(yàn)。第46頁(yè)軟件優(yōu)化軟件優(yōu)化是指優(yōu)化軟件各個(gè)質(zhì)量原因,如提升運(yùn)行速度,提升對(duì)內(nèi)存資源利用率,使用戶(hù)界面愈加友好,使三維圖形真實(shí)感更強(qiáng)等等。想做好優(yōu)化工作,首先要讓開(kāi)發(fā)人員都有正確認(rèn)識(shí):優(yōu)化工作不是可有可無(wú)事情,而是必須要做事情。當(dāng)優(yōu)化工作成為一個(gè)責(zé)任時(shí),程序員才會(huì)不停改進(jìn)軟件中算法,數(shù)據(jù)結(jié)構(gòu)和程序組織,從而提升軟件質(zhì)量。

第47頁(yè)軟件優(yōu)化優(yōu)化工作復(fù)雜之處是很多目標(biāo)存在千絲萬(wàn)縷關(guān)系。當(dāng)不能夠使全部目標(biāo)都得到優(yōu)化時(shí),就需要“折衷”策略。軟件中折衷策略是指經(jīng)過(guò)協(xié)調(diào)各個(gè)質(zhì)量原因,實(shí)現(xiàn)整體質(zhì)量最優(yōu)。就象黨支部副書(shū)記飾演和事佬角色:“…為了使整個(gè)組織含有最好戰(zhàn)斗力,我們要重用幾個(gè)人,照料一些人,在萬(wàn)不得已情況下委屈一批人”。第48頁(yè)軟件優(yōu)化軟件折衷主要標(biāo)準(zhǔn)是不能使某一方損失關(guān)鍵職能,更不能夠象“舍魚(yú)而取熊掌”那樣拋棄一方。人都有惰性,假如允許濫用折衷話,那么一當(dāng)碰到困難,人們就會(huì)用拆東墻補(bǔ)西墻方式去折衷,不再下苦功去做有意義優(yōu)化。所以我們有必要為折衷制訂嚴(yán)正立場(chǎng):在確保其它原因不變差前提下,使一些原因變得更加好。第49頁(yè)福州大學(xué)·軟件學(xué)院·計(jì)算機(jī)教研室軟件質(zhì)量確保(SoftwareQualityAssurance)王燦輝第50頁(yè)Thesoftwareengineeringapproachworkstowardasinglegoal:toproducehigh-qualitysoftware.Somesoftwaredevelopercontinuetobelievethatsoftwarequalityissomethingyoubegintoworryaboutaftercodehasbeengenerated.Nothingcouldbefurtherfromthetruth!Softwarequalityassurance(SQA)isanumbrellaactivitythatisappliedthroughoutthesoftwareprocess.軟件質(zhì)量確保(SoftwareQualityAssurance)第51頁(yè)SQAencompasses(1)aqualitymanagementapproach,(2)effectivesoftwareengineeringtechnology(methodsandtools),(3)formaltechnicalreviewsthatareappliedthroughoutthesoftwareprocess,(4)amulti-tieredtestingstrategy,(5)controlofsoftwaredocumentationandthechangesmadetoit,(6)aproceduretoassurecompliancewithsoftwaredevelopmentstandard(whenapplicable),and(7)measurementandreportingmechanisms.軟件質(zhì)量確保(SoftwareQualityAssurance)第52頁(yè)質(zhì)量確保策略發(fā)展大致能夠分為三個(gè)階段:以檢測(cè)為重點(diǎn)以過(guò)程管理為重點(diǎn)(如:ISO9001體系認(rèn)證)以新產(chǎn)品開(kāi)發(fā)為重點(diǎn)可見(jiàn),軟件質(zhì)量確保應(yīng)該從產(chǎn)品計(jì)劃和設(shè)計(jì)開(kāi)始,直到投入使用和售后服務(wù)軟件生存周期每一個(gè)階段中每一個(gè)步驟,每一個(gè)相關(guān)人,包含軟件開(kāi)發(fā)人員、項(xiàng)目經(jīng)理、銷(xiāo)售人員和用戶(hù)都來(lái)嚴(yán)把質(zhì)量關(guān),只有這么才能確保軟件高質(zhì)量,這就是當(dāng)代軟件質(zhì)量確?;静呗?。質(zhì)量確保策略第53頁(yè)SQA是一項(xiàng)有計(jì)劃、系統(tǒng)、規(guī)范性活動(dòng),主要包含:技術(shù)方法應(yīng)用;正式技術(shù)評(píng)審(FTR)實(shí)施;軟件測(cè)試;標(biāo)準(zhǔn)執(zhí)行;修改控制;度量;統(tǒng)計(jì)和統(tǒng)計(jì)保留。軟件質(zhì)量確保活動(dòng)第54頁(yè)軟件能力成熟度模型CMM(CapabilityMaturityModel)是由美國(guó)卡內(nèi)基-梅隆大學(xué)軟件工程研究所(CMU/SEI)推出評(píng)定軟件能力與成熟度一套標(biāo)準(zhǔn)。并提供了軟件過(guò)程評(píng)定和軟件能力評(píng)價(jià)兩種評(píng)定方法和軟件成熟度提問(wèn)單。4年之后,SEI將軟件過(guò)程成熟度框架進(jìn)化為軟件能力成熟度模型(CapabilityMaturityModelForSoftware,簡(jiǎn)稱(chēng)SW-CMM)。軟件能力成熟度模型(CMM)第55頁(yè)該標(biāo)準(zhǔn)基于眾多軟件教授實(shí)踐經(jīng)驗(yàn),側(cè)重于軟件開(kāi)發(fā)過(guò)程管理及工程能力提升與評(píng)定,是國(guó)際上流行軟件生產(chǎn)過(guò)程標(biāo)準(zhǔn)和軟件企業(yè)成熟度等級(jí)認(rèn)證標(biāo)準(zhǔn),它更代表了一個(gè)管理哲學(xué)在軟件工業(yè)中應(yīng)用。當(dāng)前,CMM認(rèn)證已經(jīng)成為世界公認(rèn)軟件產(chǎn)品進(jìn)入國(guó)際市場(chǎng)通行證。軟件能力成熟度模型(CMM)第56頁(yè)一個(gè)軟件過(guò)程是指人們開(kāi)發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品所采取一系列活動(dòng)。其中軟件相關(guān)產(chǎn)品包含項(xiàng)目計(jì)劃、設(shè)計(jì)文檔、源代碼、測(cè)試用例和用戶(hù)手冊(cè)等。軟件產(chǎn)品質(zhì)量主要取決于產(chǎn)品開(kāi)發(fā)和維護(hù)軟件過(guò)程質(zhì)量。一個(gè)有效、可視軟件過(guò)程能夠?qū)⑷肆Y源、物理設(shè)備和實(shí)施方法結(jié)合成一個(gè)有機(jī)整體,并為軟件工程師和高級(jí)管理者提供實(shí)際項(xiàng)目標(biāo)狀態(tài)和性能,從而能夠監(jiān)督和控制軟件過(guò)程進(jìn)行。CMM基本概念:軟件過(guò)程第57頁(yè)軟件過(guò)程能力是軟件過(guò)程本身含有按預(yù)定計(jì)劃生產(chǎn)產(chǎn)品固有能力。一個(gè)組織軟件過(guò)程能力為組織提供了預(yù)測(cè)軟件項(xiàng)目開(kāi)發(fā)數(shù)據(jù)基礎(chǔ)。軟件過(guò)程性能是軟件過(guò)程執(zhí)行實(shí)際結(jié)果。一個(gè)項(xiàng)目標(biāo)軟件過(guò)程性能決定于內(nèi)部子過(guò)程執(zhí)行狀態(tài),只有每個(gè)子過(guò)程性能得到改進(jìn),對(duì)應(yīng)成本、進(jìn)度、功效和質(zhì)量等性能目標(biāo)才能得到控制。因?yàn)樘囟?xiàng)目標(biāo)屬性和環(huán)境限制,項(xiàng)目標(biāo)實(shí)際性能并不能充分反應(yīng)組織軟件過(guò)程能力,但成熟軟件過(guò)程可弱化和預(yù)見(jiàn)不可控制過(guò)程原因(如客戶(hù)需求改變或技術(shù)變革等)。CMM基本概念軟件過(guò)程能力與性能第58頁(yè)軟件過(guò)程成熟度是指一個(gè)軟件過(guò)程被明確定義、管理、度量和控制有效程度。成熟意味著軟件過(guò)程能力連續(xù)改進(jìn)過(guò)程,成熟度代表軟件過(guò)程能力改進(jìn)潛力。成熟度等級(jí)用來(lái)描述某一成熟度等級(jí)上組織特征,每一等級(jí)都為下一等級(jí)奠定基礎(chǔ),過(guò)程潛力只有在一定基礎(chǔ)之上才能夠被充分發(fā)揮。成熟級(jí)別改進(jìn)包含管理者和軟件從業(yè)者基本工作方式改變,組織組員依據(jù)建立軟件過(guò)程標(biāo)準(zhǔn)執(zhí)行并監(jiān)控軟件過(guò)程,一旦來(lái)自組織和管理上障礙被去除后,相關(guān)技術(shù)和過(guò)程改進(jìn)進(jìn)程能快速推進(jìn)。CMM基本概念:軟件過(guò)程成熟度第59頁(yè)CMM將軟件過(guò)程成熟度分為5個(gè)級(jí)別(MaturityLevels),如圖所表示,5個(gè)等級(jí)分別是:1、初始級(jí)(Initial)2、可重復(fù)級(jí)(Repeatable)3、已定義級(jí)(Defined)4、已管理級(jí)(Managed)5、優(yōu)化級(jí)(Optimizing)CMM基本概念軟件過(guò)程成熟度等級(jí)第60頁(yè)初始級(jí)(Initial):企業(yè)普通不具備穩(wěn)定軟件開(kāi)發(fā)與維護(hù)環(huán)境。項(xiàng)目成功是否在很大程度上取決于是否有出色項(xiàng)目經(jīng)理和經(jīng)驗(yàn)豐富開(kāi)發(fā)團(tuán)體。此時(shí),項(xiàng)目經(jīng)常超出預(yù)算和不能按期完成,組織軟件過(guò)程能力不可預(yù)測(cè)。CMM基本概念軟件過(guò)程成熟度等級(jí)第61頁(yè)可重復(fù)級(jí)(Repeatable):在可重復(fù)級(jí),開(kāi)發(fā)組織建立了管理軟件項(xiàng)目標(biāo)方針以及為落實(shí)執(zhí)行這些方針辦法。組織基于在已開(kāi)發(fā)類(lèi)似項(xiàng)目標(biāo)經(jīng)驗(yàn),對(duì)新項(xiàng)目進(jìn)行策劃和管理。組織軟件過(guò)程能力可描述為有紀(jì)律、而且項(xiàng)目過(guò)程處于項(xiàng)目管理系統(tǒng)有效控制之下。CMM基本概念軟件過(guò)程成熟度等級(jí)第62頁(yè)已定義級(jí)(Defined):在已定義級(jí),開(kāi)發(fā)組織形成了管理軟件開(kāi)發(fā)和維護(hù)活動(dòng)本組織標(biāo)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論