




已閱讀5頁(yè),還剩68頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SOFTWARE ENGINEERING,福州大學(xué)軟件學(xué)院計(jì)算機(jī)教研室,軟件維護(hù) (Software maintenance),王燦輝,SOFTWARE ENGINEERING,軟件維護(hù)是指軟件系統(tǒng)交付使用以后對(duì)它所做的改變,也是軟件生命周期中最后一個(gè)階段(不屬于開發(fā)階段)。 The maintenance phase focuses on change that is associated with error correction, adaptations required as the softwares environment evolves,and changes due to enhancements brought by changing customer requirements.,軟件維護(hù) (Software maintenance),SOFTWARE ENGINEERING,The maintenance phase reapplies the steps of the definition and development phases,but does so in the context of existing software. 統(tǒng)計(jì)資料表明:大部分的維護(hù)工作是由用戶的需求改變而引起的,而不是由可靠性問題引起的。,軟件維護(hù) (Software maintenance),SOFTWARE ENGINEERING,軟件維護(hù) (Software maintenance),軟件維護(hù)是軟件生命周期中歷時(shí)最長(zhǎng),人力和資源耗費(fèi)最多的一個(gè)階段,也是研究最少的一個(gè)階段。,SOFTWARE ENGINEERING,軟件維護(hù) (Software maintenance),SOFTWARE ENGINEERING,Corrective maintenance changes the software to correct defects. Adaptive maintenance results in modification to the software to accommodate change to its environment. Perfective maintenance extends the software beyond its original functional requirements. Preventive maintenance,often called software reengineering,makes changes to computer programs so that they can be more easily corrected,adapted,and enhanced.,軟件維護(hù)分類,SOFTWARE ENGINEERING,軟件維護(hù)分類,SOFTWARE ENGINEERING,讀懂他人編寫的程序通常相當(dāng)困難,特別是一些非結(jié)構(gòu)化程序。如果只有程序代碼而沒有文檔說明問題將會(huì)十分嚴(yán)重。 軟件人員經(jīng)常流動(dòng),所以當(dāng)要求對(duì)軟件進(jìn)行維護(hù)時(shí),不可能依靠原開發(fā)人員提供對(duì)軟件的解釋(即使可能有時(shí)也因時(shí)間太久而導(dǎo)致原開發(fā)人員無法提供幫助)。 沒有文檔、文檔嚴(yán)重不足,文檔難于理解,或文檔與程序不一致。 通過多種版本或發(fā)行,要追蹤軟件的演化變得很困難,甚至不可能。,軟件維護(hù)中的問題(1),SOFTWARE ENGINEERING,絕大多數(shù)軟件在設(shè)計(jì)時(shí)不考慮以后可能的改變。除非采用功能獨(dú)立的模塊化設(shè)計(jì)方法,否則軟件修改將是困難的,而且還容易引入新的錯(cuò)誤。 追蹤軟件的建立過程非常困難。 維護(hù)被看作是毫無吸引力的工作,高水平的程序員自然不愿主動(dòng)去做,而公司也舍不得讓高水平的程序員去做。帶著低沉情緒的低水平的程序員只會(huì)把維護(hù)工作搞得一塌糊涂。 維護(hù)將會(huì)產(chǎn)生不良的副作用,不論是修改代碼、數(shù)據(jù)或文檔,都有可能產(chǎn)生新的錯(cuò)誤。,軟件維護(hù)中的問題(2),SOFTWARE ENGINEERING,影響軟件維護(hù)的因素包括:人員因素,技術(shù)因素和管理因素,程序自身的因素,具體如下: 系統(tǒng)的規(guī)模。系統(tǒng)規(guī)模越大,維護(hù)越困難。 系統(tǒng)的年齡。系統(tǒng)運(yùn)行時(shí)間越長(zhǎng),在維護(hù)中結(jié)構(gòu)的多次修改會(huì)造成維護(hù)的困難。 系統(tǒng)的結(jié)構(gòu)。不合理的程序結(jié)構(gòu)會(huì)帶來維護(hù)困難。 使用軟件工程方法開發(fā)的軟件,雖然不能保證維護(hù)沒有問題,但可以減少維護(hù)的工作量,并提高質(zhì)量。,影響軟件維護(hù)的因素,SOFTWARE ENGINEERING,軟件維護(hù)是既破財(cái)又費(fèi)神的工作??吹靡姷拇鷥r(jià)是那些為了維護(hù)而投入的人力與財(cái)力。而看不見的維護(hù)代價(jià)則更加高昂,我們稱之為“機(jī)會(huì)成本”,即為了得到某種東西所必須放棄的東西。 把很多程序員和其它資源用于維護(hù)工作,必然會(huì)耽誤新產(chǎn)品的開發(fā)甚至?xí)适C(jī)遇,這種代價(jià)是無法估量的。,軟件維護(hù)費(fèi)用,SOFTWARE ENGINEERING,軟件維護(hù)費(fèi)用不斷上升,從上世紀(jì)六十年代的40%左右到目前超過60%。 維護(hù)一行源代碼的代價(jià)大概是開發(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ù)雜性);d:對(duì)該軟件熟悉程度的度量。,軟件維護(hù)費(fèi)用,SOFTWARE ENGINEERING,軟件的可維護(hù)性,軟件的可維護(hù)性可以定義為:軟件能夠被理解、改正、適應(yīng)和完善以適應(yīng)新的環(huán)境的難易程度。 如果軟件是可測(cè)試的,可理解的,可修改的,可移植的,可靠的,有效的和可用的,則說該軟件是可維護(hù)的。,SOFTWARE ENGINEERING,軟件的維護(hù)任務(wù),軟件的維護(hù)任務(wù)包括: 建立維護(hù)機(jī)構(gòu) 編制維護(hù)報(bào)告(軟件問題報(bào)告和軟件修改報(bào)告) 為維護(hù)請(qǐng)求規(guī)定工作流程 維護(hù)的技術(shù)工作(修改設(shè)計(jì),復(fù)審設(shè)計(jì),編碼,單元測(cè)試、集成測(cè)試(含回歸測(cè)試),有效性測(cè)試,最終復(fù)審) 記錄和保存維護(hù)活動(dòng)的相關(guān)信息 對(duì)維護(hù)進(jìn)行評(píng)價(jià),SOFTWARE ENGINEERING,軟件維護(hù)的副作用,所謂軟件維護(hù)的副作用(maintenance side effects),就是指由于修改而導(dǎo)致的錯(cuò)誤或其他多余動(dòng)作的發(fā)生。 修改代碼的副作用(回歸測(cè)試可減少編碼副作用) 修改數(shù)據(jù)的副作用 修改文檔的副作用 在軟件再次交付使用之前,對(duì)整個(gè)軟件配置進(jìn)行評(píng)審將能大大減少文檔的副作用。,SOFTWARE ENGINEERING,福州大學(xué)軟件學(xué)院計(jì)算機(jī)教研室,再生工程,王燦輝,SOFTWARE ENGINEERING,再生工程,如果希望提高已有軟件的質(zhì)量并且提高商業(yè)競(jìng)爭(zhēng)力,卻又無法靠維護(hù)來實(shí)現(xiàn),只好對(duì)已有軟件進(jìn)行全部或者部分的改造,這種活動(dòng)叫再生工程(Reengineering)。 再生過程也叫改造工程,它不是從現(xiàn)有的軟件中恢復(fù)設(shè)計(jì)信息,而是利用這些信息去改變或重建現(xiàn)存的系統(tǒng),盡最大努力來提高它的整體質(zhì)量。,SOFTWARE ENGINEERING,再生工程,再生工程與維護(hù)的共同之處是沒有拋棄原有的軟件。如果把維護(hù)比作“修修補(bǔ)補(bǔ)”,那么再生工程就算是“痛改前非”。再生工程并不見得一定比維護(hù)的代價(jià)要高,但再生工程在將來獲取的利益卻要比通過維護(hù)得到的多。 再生工程(Reengineering)的三種類型: 重構(gòu)(Restructure)、 逆向工程(Reverse Engineering)和 前向工程(Forward Engineering)。,SOFTWARE ENGINEERING,再生工程-重構(gòu),重構(gòu)一般是指通過修改代碼或數(shù)據(jù)以使軟件符合新的要求。重構(gòu)通常并不推翻原有軟件的體系結(jié)構(gòu),主要是改造一些模塊和數(shù)據(jù)結(jié)構(gòu)。重構(gòu)的一些好處如下: (1)使軟件的質(zhì)量更高,或使軟件順應(yīng)新的潮流(標(biāo)準(zhǔn))。 (2)使軟件的后續(xù)(升級(jí))版本的生產(chǎn)率更高。 (3)降低后期的維護(hù)代價(jià)。 要注意的是,在代碼重構(gòu)和數(shù)據(jù)重構(gòu)之后,一定要重構(gòu)相應(yīng)的文檔。,SOFTWARE ENGINEERING,逆向工程,軟件的逆向工程就是分析一個(gè)程序的過程,以最大努力去建立比源代碼抽象層次更高的程序表達(dá)式。逆向工程也是一個(gè)設(shè)計(jì)的恢復(fù)過程。 逆向工程來源于硬件世界。硬件廠商總想弄到競(jìng)爭(zhēng)對(duì)手產(chǎn)品的設(shè)計(jì)和制造“奧秘”。但是又得不到現(xiàn)成的檔案,只好拆卸對(duì)手的產(chǎn)品并進(jìn)行分析,企圖從中獲取有價(jià)值的東西。 軟件的逆向工程在道理上與硬件的相似。但在很多時(shí)候,軟件的逆向工程并不是針對(duì)競(jìng)爭(zhēng)對(duì)手的,而是針對(duì)自己公司多年前的產(chǎn)品。期望從老產(chǎn)品中提取系統(tǒng)設(shè)計(jì)、需求說明等有價(jià)值的信息。,SOFTWARE ENGINEERING,前向工程,前向工程也稱預(yù)防性維護(hù),由Miller倡導(dǎo)。他把這個(gè)術(shù)語解釋成“為了明天的需要,把今天的方法應(yīng)用到昨天的系統(tǒng)上”。 乍看起來,主動(dòng)去改造一個(gè)目前運(yùn)行得正常的軟件系統(tǒng)簡(jiǎn)直就是“惹事生非”。但是軟件技術(shù)發(fā)展如此迅速,與其等待一個(gè)有價(jià)值的產(chǎn)品逐漸老死,還不如主動(dòng)去更新,以獲取更大的收益。其道理就同打預(yù)防性針一樣。所以,預(yù)防性維護(hù)是“吃小虧占大便宜”的事。,SOFTWARE ENGINEERING,福州大學(xué)軟件學(xué)院計(jì)算機(jī)教研室,變更管理,王燦輝,SOFTWARE ENGINEERING,變更管理,變更是不可避免的。大多數(shù)變更是合理的。 不受控制的一系列變更輕而易舉就能使一個(gè)運(yùn)行良好的軟件項(xiàng)目變得混亂。 由于在開發(fā)軟件時(shí)會(huì)產(chǎn)生很多工作產(chǎn)品,所以必須唯一標(biāo)識(shí)每一個(gè)工作產(chǎn)品。 變更管理,通常也叫軟件配置管理(SCM)是貫穿于整個(gè)軟件過程的普適性活動(dòng)。區(qū)別于軟件維護(hù)僅發(fā)生在軟件交付給用戶以后。,SOFTWARE ENGINEERING,變更管理,軟件配置管理(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è)軟件過程的軟件質(zhì)量保證活動(dòng)。 軟件配置管理(SCM)計(jì)劃:定義了變更管理的項(xiàng)目策略。,SOFTWARE ENGINEERING,變更管理,軟件配置項(xiàng):是在軟件工程過程中創(chuàng)建的信息(程序、數(shù)據(jù)、文檔、軟件工具)。 基線:已經(jīng)通過正式評(píng)審和批準(zhǔn)的規(guī)格說明或產(chǎn)品,它可以作為進(jìn)一步開發(fā)的基礎(chǔ),并且只有通過正式的變更控制規(guī)程才能修改它。 基線是軟件開發(fā)中的里程碑。 SCM過程:配置對(duì)象標(biāo)識(shí);變更控制;版本控制;配置審核;狀態(tài)報(bào)告;,SOFTWARE ENGINEERING,福州大學(xué)軟件學(xué)院計(jì)算機(jī)教研室,軟件度量,王燦輝,SOFTWARE ENGINEERING,軟件度量,如果不進(jìn)行測(cè)量,就沒法確定我們是否在改進(jìn),只能根據(jù)主觀評(píng)價(jià)來做判斷。 度量時(shí),先收集基本的質(zhì)量數(shù)據(jù)和生產(chǎn)率數(shù)據(jù),往后分析這些數(shù)據(jù),與過去的平均值進(jìn)行比較,通過評(píng)估來確定是否已經(jīng)有質(zhì)量和生產(chǎn)率的提高。 度量也可以用來查明問題區(qū)域,以便確定合適的補(bǔ)救措施,并改進(jìn)軟件過程。,SOFTWARE ENGINEERING,軟件度量,只有度量是直觀的且易于計(jì)算時(shí)才會(huì)被使用。若需要大量的“計(jì)數(shù)”,且需要復(fù)雜的計(jì)算,則該度量不可能得到廣泛采納。 度量可以應(yīng)用于軟件過程中,目的是持續(xù)地改進(jìn)軟件過程。度量應(yīng)用于項(xiàng)目管理可以改進(jìn)項(xiàng)目工作流程和技術(shù)活動(dòng)。,SOFTWARE ENGINEERING,軟件度量基于功能的度量,利用基于軟件信息域可數(shù)的(直接)測(cè)度和軟件復(fù)雜性評(píng)估的經(jīng)驗(yàn)關(guān)系來計(jì)算功能點(diǎn)。 信息域及加權(quán)因子:外部輸入數(shù)、外部輸出數(shù)、外部查詢數(shù)、內(nèi)部邏輯文件數(shù)、外部接口文件數(shù)。 功能點(diǎn)FP=總計(jì)*(0.65+0.01+Fi),SOFTWARE ENGINEERING,福州大學(xué)軟件學(xué)院計(jì)算機(jī)教研室,軟件質(zhì)量 (Software Quality),王燦輝,SOFTWARE ENGINEERING,Software Quality,軟件工程的目標(biāo)是提高軟件的質(zhì)量與生產(chǎn)率,最終實(shí)現(xiàn)軟件的工業(yè)化生產(chǎn)。 質(zhì)量是軟件需求方最關(guān)心的問題,生產(chǎn)率是軟件供應(yīng)方最關(guān)心的問題。質(zhì)量與生產(chǎn)率之間有著內(nèi)在的聯(lián)系,高生產(chǎn)率必須以質(zhì)量合格為前提。,SOFTWARE ENGINEERING,Software Quality,如果一個(gè)軟件產(chǎn)品向其終端用戶提供了實(shí)質(zhì)性的益處,他們可能愿意忍受偶爾的可靠性和性能問題。,SOFTWARE ENGINEERING,Software Quality,從短期效益看,追求高質(zhì)量會(huì)延長(zhǎng)軟件開發(fā)時(shí)間并且增大費(fèi)用,似乎降低了生產(chǎn)率。從長(zhǎng)期效益看,高質(zhì)量將保證軟件開發(fā)的全過程更加規(guī)范流暢,大大降低了軟件的維護(hù)代價(jià),實(shí)質(zhì)上是提高了生產(chǎn)率,同時(shí)可獲得很好的信譽(yù)。 質(zhì)量與生產(chǎn)率之間不存在根本的對(duì)立,好的軟件工程方法可以同時(shí)提高質(zhì)量與生產(chǎn)率。,SOFTWARE ENGINEERING,Software Quality,對(duì)開發(fā)人員而言,如果非得在質(zhì)量與生產(chǎn)率之間分個(gè)主次不可,那么應(yīng)該是質(zhì)量第一,生產(chǎn)率第二。這是因?yàn)椋海?)質(zhì)量直接體現(xiàn)在軟件的每段程序中,高質(zhì)量自然是開發(fā)人員的技術(shù)追求,也是職業(yè)道德的要求。(2)高質(zhì)量對(duì)所有的用戶都有價(jià)值,而高生產(chǎn)率只對(duì)開發(fā)方有意義。(3)如果一開始就追求高生產(chǎn)率,容易使人急功近利,留下隱患。寧可進(jìn)度慢些,也要保證每個(gè)環(huán)節(jié)的質(zhì)量,以圖長(zhǎng)遠(yuǎn)利益。,SOFTWARE ENGINEERING,Software Quality,“零缺陷”質(zhì)量管理的觀念來源于一些國(guó)際上著名的硬件生產(chǎn)廠商。盡管軟件的開發(fā)與硬件生產(chǎn)有極大的差別,但我們?nèi)钥梢詮摹傲闳毕荨辟|(zhì)量管理中得到啟迪。 “零缺陷”質(zhì)量管理至少有兩個(gè)核心內(nèi)容:一是高目標(biāo),二是可執(zhí)行的規(guī)范。 軟件的高質(zhì)量主要是設(shè)計(jì)出來的,不是“管”出來的,更不能依賴質(zhì)量檢查。為此程序員要充分了解軟件的質(zhì)量因素,只有提高設(shè)計(jì)水平,才能開發(fā)出高質(zhì)量的軟件。,SOFTWARE ENGINEERING,Software Quality,軟件的質(zhì)量因素很多,如正確性,性能與效率、可靠性、容錯(cuò)性、易用性、靈活性、可理解性與簡(jiǎn)潔性、可復(fù)用性和可擴(kuò)充性、可維護(hù)性等等。有些因素相互重疊,有些則相抵觸,真要提高質(zhì)量可不是一件容易的事!,SOFTWARE ENGINEERING,Software Quality,如:健壯性是軟件的一個(gè)質(zhì)量因素,指的是在硬件發(fā)生故障、輸入的數(shù)據(jù)無效或操作錯(cuò)誤等意外情況下,軟件系統(tǒng)能做出適當(dāng)響應(yīng)的程度。 程序員在編寫實(shí)現(xiàn)方法的代碼時(shí),既應(yīng)該考慮效率,也應(yīng)該考慮健壯性。通常需要在健壯性與效率之間做出適當(dāng)?shù)恼壑?。必須認(rèn)識(shí)到,對(duì)于任何一個(gè)實(shí)用軟件來說,健壯性都是不可忽略的質(zhì)量指標(biāo)。,SOFTWARE ENGINEERING,Software Quality,與明確定義的功能和性能需求的一致性 與明確成文的開發(fā)標(biāo)準(zhǔn)的一致性 與所有專業(yè)開發(fā)的軟件所期望的隱含的特性(如:健壯性、可維護(hù)性、良好的界面風(fēng)格、可移植性等)的一致性,SOFTWARE ENGINEERING,軟件質(zhì)量 (Software Quality),軟件質(zhì)量是難于定量度量的軟件屬性,但是仍然能夠提出許多重要的軟件質(zhì)量指標(biāo),這些指標(biāo)主要從管理的角度對(duì)軟件質(zhì)量進(jìn)行度量。 The factors that affect software quality can be categorized in two broad groups: Factors that can be directly measured (e.g.,defects per function point) and Factors that can be measured only indirectly(e.g.,usability or maintainability),SOFTWARE ENGINEERING,軟件質(zhì)量 (Software Quality),軟件質(zhì)量指標(biāo)往往互相矛盾。例如:采用容錯(cuò)技術(shù)=提供可靠性=但占用較多的存儲(chǔ)空間和執(zhí)行時(shí)間=降低時(shí)空效率,增加軟件系統(tǒng)維護(hù)的困難 =因此應(yīng)綜合平衡,SOFTWARE ENGINEERING,軟件質(zhì)量(Software Quality)(McCalls Software Quality Factors),Portability Reusability Interoperability,Product Transition,Product Revision,Product Operation,Maintainability Flexibility Testability,Correctness Reliability Usability Integrity Efficiency,SOFTWARE ENGINEERING,軟件質(zhì)量(Software Quality)(McCalls Software Quality Factors),SOFTWARE ENGINEERING,軟件質(zhì)量(Hewlett-Packards Software Quality Factors),Hewlett-Packard has developed a set of software quality factors that has been given the acronym FURPSfunctionality, usability, reliability, performance, and supportability.,SOFTWARE ENGINEERING,軟件質(zhì)量(Hewlett-Packards Software Quality Factors),Supportability combines the ability to extend the program(extensibility),adaptability,and serviceability(these three attributes represent a more common term-maintainability), as well as testability,compatibility,configurability(the ability to organize and control elements of the software configuration),the ease with which a system can be installed,and the ease with which problems can be localized.,SOFTWARE ENGINEERING,軟件質(zhì)量 (Software Quality),為了在軟件開發(fā)過程中保證軟件的質(zhì)量,主要采取下述措施: 復(fù)審(至少在每個(gè)開發(fā)階段結(jié)束前一次) 復(fù)查(在每個(gè)開發(fā)階段開始前) 管理復(fù)審 測(cè)試 軟件質(zhì)量在產(chǎn)品或系統(tǒng)中是事先設(shè)計(jì)好的,而不是事后強(qiáng)加的。,SOFTWARE ENGINEERING,軟件質(zhì)量 (Software Quality),質(zhì)量檢查并不是要等到項(xiàng)目結(jié)束時(shí)才執(zhí)行唯一的一次,應(yīng)該在每個(gè)實(shí)踐環(huán)節(jié)都要執(zhí)行。對(duì)應(yīng)于進(jìn)度表,在每個(gè)里程碑到達(dá)時(shí)執(zhí)行質(zhì)量檢查比較合理。 做好檢查工作并不是件容易的事。自古以來“上有政策,下有對(duì)策”。 虛假的質(zhì)量檢查還不如不檢查。,SOFTWARE ENGINEERING,軟件優(yōu)化,軟件的優(yōu)化是指優(yōu)化軟件的各個(gè)質(zhì)量因素,如提高運(yùn)行速度,提高對(duì)內(nèi)存資源的利用率,使用戶界面更加友好,使三維圖形的真實(shí)感更強(qiáng)等等。 想做好優(yōu)化工作,首先要讓開發(fā)人員都有正確的認(rèn)識(shí):優(yōu)化工作不是可有可無的事情,而是必須要做的事情。當(dāng)優(yōu)化工作成為一種責(zé)任時(shí),程序員才會(huì)不斷改進(jìn)軟件中的算法,數(shù)據(jù)結(jié)構(gòu)和程序組織,從而提高軟件質(zhì)量。,SOFTWARE ENGINEERING,軟件優(yōu)化,優(yōu)化工作的復(fù)雜之處是很多目標(biāo)存在千絲萬縷的關(guān)系。當(dāng)不能夠使所有的目標(biāo)都得到優(yōu)化時(shí),就需要“折衷”策略。 軟件中的折衷策略是指通過協(xié)調(diào)各個(gè)質(zhì)量因素,實(shí)現(xiàn)整體質(zhì)量的最優(yōu)。就象黨支部副書記扮演和事佬的角色:“為了使整個(gè)組織具有最好的戰(zhàn)斗力,我們要重用幾個(gè)人,照顧一些人,在萬不得已的情況下委屈一批人”。,SOFTWARE ENGINEERING,軟件優(yōu)化,軟件折衷的重要原則是不能使某一方損失關(guān)鍵的職能,更不可以象“舍魚而取熊掌”那樣拋棄一方。 人都有惰性,如果允許濫用折衷的話,那么一當(dāng)碰到困難,人們就會(huì)用拆東墻補(bǔ)西墻的方式去折衷,不再下苦功去做有意義的優(yōu)化。所以我們有必要為折衷制定嚴(yán)正的立場(chǎng):在保證其它因素不變差的前提下,使某些因素變得更好。,SOFTWARE ENGINEERING,福州大學(xué)軟件學(xué)院計(jì)算機(jī)教研室,軟件質(zhì)量保證 (Software Quality Assurance),王燦輝,SOFTWARE ENGINEERING,The software engineering approach works toward a single goal:to produce high-quality software. Some software developer continue to believe that software quality is something you begin to worry about after code has been generated. Nothing could be further from the truth! Software quality assurance(SQA) is an umbrella activity that is applied throughout the software process.,軟件質(zhì)量保證 (Software Quality Assurance),SOFTWARE ENGINEERING,SQA encompasses(1)a quality management approach,(2)effective software engineering technology(methods and tools),(3)formal technical reviews that are applied throughout the software process,(4)a multi-tiered testing strategy,(5)control of software documentation and the changes made to it,(6)a procedure to assure compliance with software development standard(when applicable),and (7)measurement and reporting mechanisms.,軟件質(zhì)量保證 (Software Quality Assurance),SOFTWARE ENGINEERING,質(zhì)量保證策略的發(fā)展大致可以分為三個(gè)階段: 以檢測(cè)為重點(diǎn) 以過程管理為重點(diǎn)(如:ISO9001體系認(rèn)證) 以新產(chǎn)品開發(fā)為重點(diǎn) 可見,軟件質(zhì)量保證應(yīng)該從產(chǎn)品計(jì)劃和設(shè)計(jì)開始,直到投入使用和售后服務(wù)的軟件生存周期的每一個(gè)階段中的每一個(gè)步驟,每一個(gè)有關(guān)的人,包括軟件開發(fā)人員、項(xiàng)目經(jīng)理、銷售人員和用戶都來嚴(yán)把質(zhì)量關(guān),只有這樣才能保證軟件的高質(zhì)量,這就是現(xiàn)代軟件質(zhì)量保證的基本策略。,質(zhì)量保證策略,SOFTWARE ENGINEERING,SQA是一項(xiàng)有計(jì)劃的、系統(tǒng)的、規(guī)范性的活動(dòng),主要包括: 技術(shù)方法的應(yīng)用; 正式技術(shù)評(píng)審(FTR)的實(shí)施; 軟件測(cè)試; 標(biāo)準(zhǔn)的執(zhí)行; 修改的控制; 度量; 記錄和記錄保存。,軟件質(zhì)量保證活動(dòng),SOFTWARE ENGINEERING,軟件能力成熟度模型CMM(Capability Maturity Model)是由美國(guó)卡內(nèi)基-梅隆大學(xué)軟件工程研究所(CMU/SEI)推出的評(píng)估軟件能力與成熟度的一套標(biāo)準(zhǔn)。并提供了軟件過程評(píng)估和軟件能力評(píng)價(jià)兩種評(píng)估方法和軟件成熟度提問單。4年之后,SEI將軟件過程成熟度框架進(jìn)化為軟件能力成熟度模型(Capability Maturity Model For Software,簡(jiǎn)稱SW-CMM)。,軟件能力成熟度模型(CMM),SOFTWARE ENGINEERING,該標(biāo)準(zhǔn)基于眾多軟件專家的實(shí)踐經(jīng)驗(yàn),側(cè)重于軟件開發(fā)過程的管理及工程能力的提高與評(píng)估,是國(guó)際上流行的軟件生產(chǎn)過程標(biāo)準(zhǔn)和軟件企業(yè)成熟度等級(jí)認(rèn)證標(biāo)準(zhǔn),它更代表了一種管理哲學(xué)在軟件工業(yè)中的應(yīng)用。 目前,CMM認(rèn)證已經(jīng)成為世界公認(rèn)的軟件產(chǎn)品進(jìn)入國(guó)際市場(chǎng)的通行證。,軟件能力成熟度模型(CMM),SOFTWARE ENGINEERING,一個(gè)軟件過程是指人們開發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品所采取的一系列活動(dòng)。其中軟件相關(guān)產(chǎn)品包括項(xiàng)目計(jì)劃、設(shè)計(jì)文檔、源代碼、測(cè)試用例和用戶手冊(cè)等。軟件產(chǎn)品的質(zhì)量主要取決于產(chǎn)品開發(fā)和維護(hù)的軟件過程的質(zhì)量。一個(gè)有效的、可視的軟件過程能夠?qū)⑷肆Y源、物理設(shè)備和實(shí)施方法結(jié)合成一個(gè)有機(jī)的整體,并為軟件工程師和高級(jí)管理者提供實(shí)際項(xiàng)目的狀態(tài)和性能,從而可以監(jiān)督和控制軟件過程的進(jìn)行。,CMM基本概念:軟件過程,SOFTWARE ENGINEERING,軟件過程能力是軟件過程本身具有的按預(yù)定計(jì)劃生產(chǎn)產(chǎn)品的固有能力。一個(gè)組織的軟件過程能力為組織提供了預(yù)測(cè)軟件項(xiàng)目開發(fā)的數(shù)據(jù)基礎(chǔ)。軟件過程性能是軟件過程執(zhí)行的實(shí)際結(jié)果。一個(gè)項(xiàng)目的軟件過程性能決定于內(nèi)部子過程的執(zhí)行狀態(tài),只有每個(gè)子過程的性能得到改善,相應(yīng)的成本、進(jìn)度、功能和質(zhì)量等性能目標(biāo)才能得到控制。由于特定項(xiàng)目的屬性和環(huán)境限制,項(xiàng)目的實(shí)際性能并不能充分反映組織的軟件過程能力,但成熟的軟件過程可弱化和預(yù)見不可控制的過程因素(如客戶需求變化或技術(shù)變革等)。,CMM基本概念 軟件過程能力與性能,SOFTWARE ENGINEERING,軟件過程成熟度是指一個(gè)軟件過程被明確定義、管理、度量和控制的有效程度。成熟意味著軟件過程能力持續(xù)改善的過程,成熟度代表軟件過程能力改善的潛力。 成熟度等級(jí)用來描述某一成熟度等級(jí)上的組織特征,每一等級(jí)都為下一等級(jí)奠定基礎(chǔ),過程的潛力只有在一定的基礎(chǔ)之上才能夠被充分發(fā)揮。 成熟級(jí)別的改善包括管理者和軟件從業(yè)者基本工作方式的改變,組織成員依據(jù)建立的軟件過程標(biāo)準(zhǔn)執(zhí)行并監(jiān)控軟件過程,一旦來自組織和管理上的障礙被清除后,有關(guān)技術(shù)和過程的改善進(jìn)程能迅速推進(jìn)。,CMM基本概念:軟件過程成熟度,SOFTWARE ENGINEERING,CMM將軟件過程的成熟度分為5個(gè)級(jí)別(Maturity Levels),如圖所示,5個(gè)等級(jí)分別是: 1、初始級(jí)(Initial) 2、可重復(fù)級(jí)(Repeatable) 3、已定義級(jí)(Defined) 4、已管理級(jí)(Managed) 5、優(yōu)化級(jí)(Optimizing),CMM基本概念 軟件過程的成熟度等級(jí),SOFTWARE ENGINEERING,初始級(jí)(Initial):企業(yè)一般不具備穩(wěn)定的軟件開發(fā)與維護(hù)環(huán)境。項(xiàng)目成功與否在很大程度上取決于是否有杰出的項(xiàng)目經(jīng)理和經(jīng)驗(yàn)豐富的開發(fā)團(tuán)隊(duì)。此時(shí),項(xiàng)目經(jīng)常超出預(yù)算和不能按期完成,組織的軟件過程能力不可預(yù)測(cè)。,CMM基本概念 軟件過程的成熟度等級(jí),SOFTWARE ENGINEERING,可重復(fù)級(jí)(Repeatable) :在可重復(fù)級(jí),開發(fā)組織建立了管理軟件項(xiàng)目的方針以及為貫徹執(zhí)行這些方針的措施。組織基于在已開發(fā)的類似項(xiàng)目的經(jīng)驗(yàn),對(duì)新項(xiàng)目進(jìn)行策劃和管理。組織的軟件過程能力可描述為有紀(jì)律的、并且項(xiàng)目過程處于項(xiàng)目管理系統(tǒng)的有效控制之下。,CMM基本概念 軟件過程的成熟度等級(jí),SOFTWARE ENGINEERING,已定義級(jí)(Defined):在已定義級(jí),開發(fā)組織形成了管理軟件開發(fā)和維護(hù)活動(dòng)的本組織的標(biāo)準(zhǔn)軟件過程,包括軟件工程過程和軟件管理過程。并依據(jù)所制定的標(biāo)準(zhǔn)定義自己的軟件過程進(jìn)行項(xiàng)目管理和控制。組織的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 推動(dòng)提升中級(jí)經(jīng)濟(jì)師的試題及答案
- 重要市政工程案例試題及答案
- 2025年工程項(xiàng)目管理重要試題及答案
- 環(huán)保行業(yè)試題題庫(kù)
- 2025年公共工程管理試題及答案
- 2025年中級(jí)經(jīng)濟(jì)師考試復(fù)習(xí)壓力管理技巧與試題及答案
- 幼兒園小學(xué)保護(hù)視力主題班會(huì)學(xué)做眼保健操預(yù)防近視課件
- 品牌與輿論的互動(dòng)關(guān)系研究計(jì)劃
- 開展社團(tuán)交流活動(dòng)計(jì)劃
- 肉毒毒素專業(yè)培訓(xùn)課件
- 拆除橋梁施工合同模板
- GB/T 44679-2024叉車禁用與報(bào)廢技術(shù)規(guī)范
- 汽車質(zhì)量問題匯報(bào)-8D報(bào)告培訓(xùn)材料
- 法律服務(wù)方案
- 拆窗戶個(gè)人安全免責(zé)協(xié)議書
- 天津市小升初英語真題(含答案)5
- 2024年陜西省西安工大附中丘成桐少年班初試數(shù)學(xué)試卷
- 農(nóng)村承包種植合同范本
- 亞低溫治療的護(hù)理課件
- 美容美發(fā)開業(yè)慶典總經(jīng)理致辭
- 《中華人民共和國(guó)政府采購(gòu)法》培訓(xùn)講義
評(píng)論
0/150
提交評(píng)論