版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第四部分
軟件維護與管理問題什么是軟件結(jié)構(gòu)化維護?軟件維護有哪些方法?軟件維護有哪些類型?什么是軟件項目管理?軟件項目管理包括哪些內(nèi)容?第11章軟件維護軟件維護工作處于軟件生命期的最后階段維護階段是軟件生存期中最長的一個階段,所花費的人力、物力最多,其花費高達整個軟件生命期花費的約60-70%11.1軟件維護概述軟件維護主要工作就是在軟件運行和維護階段對軟件產(chǎn)品所進行必要的調(diào)整和修改維護的原因:在運行中發(fā)現(xiàn)在測試階段未能發(fā)現(xiàn)的潛在軟件錯誤和設(shè)計缺陷;根據(jù)實際情況,需要改進軟件設(shè)計,以增強軟件的功能,提高軟件的性能;要求在某環(huán)境下已運行的軟件能適應(yīng)特定的硬件、軟件、外部設(shè)備和通信設(shè)備等新的工作環(huán)境,或是要求適應(yīng)已變動的數(shù)據(jù)或文件;為使投入運行的軟件與其它相關(guān)的程序有良好的接口,以利于協(xié)同工作;為使運行軟件的應(yīng)用范圍得到必要的擴充11.1軟件維護概述特點:軟件維護是軟件生產(chǎn)性活動中延續(xù)時間最長、工作量最大的活動軟件維護不僅工作量大、任務(wù)重,甚至引入新的錯誤軟件維護活動實際是一個修改和簡化了的軟件開發(fā)過程軟件維護和軟件開發(fā)一樣,都需要采用軟件工程原理和方法11.1軟件可維護性軟件的可維護性是衡量軟件(產(chǎn)品)維護容易程度的一種軟件質(zhì)量屬性軟件可維護性定義為軟件的可理解、可測試、可修改性的難易程度特性:可理解性可測試性可修改性可靠性可移植性可使用性效率11.3軟件維護活動的類型糾錯性維護(CorrectiveMaintenance):對在測試階段未能發(fā)現(xiàn)的,在軟件投入使用后才逐漸暴露出來的錯誤的測試、診斷、定位、糾錯以及驗證、修改的回歸測試過程。糾錯性維護占整個維護工作的21%。完善性維護(PerfectiveMaintenance):為了滿足這些日益增長的新要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性等。完善性維護所占的比重最大,大約占總維護量的50%以上。適應(yīng)性維護:為了適應(yīng)計算機的飛速發(fā)展,使軟件適應(yīng)外部新的硬件和軟件環(huán)境或者數(shù)據(jù)環(huán)境(數(shù)據(jù)庫、數(shù)據(jù)格式、數(shù)據(jù)輸入/輸出方式、數(shù)據(jù)存儲介質(zhì))發(fā)生的變化,而進行修改軟件的過程。適應(yīng)性維護占整個維護工作的25%。預(yù)防性維護(PreventiveMaintenance):為了提高軟件的可維護性和可靠性等,主動為以后進一步維護軟件打下良好基礎(chǔ)的維護活動。大約占總維護量的5%。11.4軟件維護技術(shù)與過程面向維護的技術(shù)——涉及到軟件開發(fā)的所有階段。維護支援技術(shù)——支持軟件維護階段的技術(shù)。維護檔案記錄——做好維護檔案記錄,才能為維護評價提供有效的數(shù)據(jù)。維護評價——確定維護的質(zhì)量和成本軟件維護過程維護申請制定維護計劃進行維護活動建立維護文檔復審/評價維護軟件維護機構(gòu)維護申請維護負責人配置管理員維護人員系統(tǒng)監(jiān)督員維護管理員軟件維護申請報告維護申請單(MRF,MaintenanceRequestForm),或稱為軟件問題報告(SPR,SoftwareProblemReport),提交給軟件維護機構(gòu)軟件變更報告(SCR,SoftwareChangeReport),SCR的內(nèi)容包括:①所需修改變動的性質(zhì);②申請修改的優(yōu)先級;③為滿足該維護申請報告,所需的工作量(人員數(shù)、時間數(shù));④預(yù)計修改后的結(jié)果。維護工作流程確認維護類型實施相應(yīng)維護維護評審維護流程較低嚴重(救火)不嚴重改正性完成維護的軟件和配置錯誤分析評價錯誤程度適應(yīng)/完善/預(yù)防性開發(fā)項目表開發(fā)方案最高問題分析實施維護評審/評價改錯安排改錯項目表改錯方案維護文檔維護需求判斷維護類型評價優(yōu)先程度維護開發(fā)安排用戶/維護人員確認維護需求(根據(jù)安排)(根據(jù)安排)實施維護①修改軟件需求說明②修改軟件設(shè)計③設(shè)計評審④對源程序做必要的修改⑤單元測試⑥集成測試(回歸測試)⑦確認測試⑧軟件配置評審等維護評審①在目前情況下,設(shè)計、編碼、測試中的哪些方面可以改進?②哪些維護資源應(yīng)該有而沒有?③工作中主要的或次要的障礙是什么?④從維護申請的類型來看,是否應(yīng)當有預(yù)防性維護?維護方法非結(jié)構(gòu)化維護:只有源代碼,沒有或少量的文檔,維護活動只能從閱讀、理解、分析程序源代碼開始。通過閱讀和分析程序源代碼來理解系統(tǒng)的功能、結(jié)構(gòu)、數(shù)據(jù)、接口、設(shè)計約束等。需要花費大量的人力、物力,而且很容易出錯,很難保證程序的正確性。結(jié)構(gòu)化維護:存在軟件開發(fā)各階段的文檔,這對于理解和掌握軟件的功能、性能、結(jié)構(gòu)、數(shù)據(jù)、接口和約束有很大幫助。從需求文檔弄清系統(tǒng)功能、性能的改變。從設(shè)計文檔檢查和修改設(shè)計。根據(jù)設(shè)計改動源代碼,并從測試文檔的測試用例進行回歸測試。減少維護人員的精力和花費,提高軟件維護效率。11.5提高軟件的可維護性提高軟件可維護性,可以從兩方面考慮:在軟件開發(fā)期的各個階段、各項開發(fā)活動進行的同時,應(yīng)該提高軟件可維護性,保證軟件產(chǎn)品在發(fā)布之日有盡可能高水準的可維護性在軟件維護期進行維護活動的同時,也要兼顧提高軟件的可維護性,更不能對可維護性產(chǎn)生負面影響技術(shù)途徑:建立完整的文檔明確質(zhì)量標準采用易于維護的技術(shù)和工具加強可維護性復審面向?qū)ο蟮能浖S護面向?qū)ο蠓缎蜆O大地提高了軟件可維護性設(shè)計良好的對象能體現(xiàn)概念上的封裝特性,即獨立性對象良好的獨立性對象的信息隱蔽技術(shù)困難:面向?qū)ο蟮念惖睦^承性對于開發(fā)來說是好的特性,但對某一對象的維護會因繼承關(guān)系涉及到其他部分,并不能做到真正意義上的獨立面向?qū)ο筌浖亩鄳B(tài)性和動態(tài)聯(lián)編特性小結(jié)軟件維護的基本目標和任務(wù)是改正錯誤、增加功能、提高質(zhì)量、優(yōu)化軟件、延長軟件壽命,以及提高軟件產(chǎn)品價值。軟件維護活動可分為改正性維護、完善性維護、適應(yīng)性維護和預(yù)防性維護四種類型。軟件維護過程主要有提交維護申請報告、確定軟件維護工作流程、編制軟件維護文檔和評價軟件維護性能。軟件的可理解性、可測試性和可修改性是定義軟件可維護性的基本要素。文檔是影響軟件可維護性的決定因素。提高軟件可維護性的技術(shù)途徑主要有建立完整的軟件文檔、確立正確的質(zhì)量指標、采用易維護的開發(fā)/維護的方法和工具,以及加強可維護性復審等。第12章軟件項目管理軟件項目管理概述軟件工程管理度量軟件風險管理軟件配置管理軟件項目估算的分解技術(shù)軟件質(zhì)量管理軟件項目進度管理12.1軟件項目管理概述項目是指一系列獨特的、復雜的并相互關(guān)聯(lián)的活動。項目參數(shù)包括項目范圍、質(zhì)量、成本、時間、資源。項目三維管理:時間維:即把整個項目的生命周期劃分為若干個階段,從而進行階段管理。知識維:即針對項目生命周期的各個不同階段,采用和研究不同的管理技術(shù)方法。
保障維:即對項目人力、財力、物力、信息等后勤保障管理。項目管理特點項目管理是一項比較復雜的工作項目管理具有創(chuàng)造性項目管理的對象是項目或被當作項目來處理的作業(yè)項目負責人(或項目經(jīng)理)在項目管理中起著非常重要的作用項目管理需要集權(quán)領(lǐng)導和建立專門的項目組織
項目管理的方法、工具和手段具有先進性、開放性項目的五個階段啟動階段:用戶提出需求,開發(fā)人員進行需求分析,確定可行性,編寫項目實施計劃。計劃階段:創(chuàng)建項目范圍文檔和項目計劃,項目范圍詳細描述項目范圍。
實施階段:實施階段意味著項目正在進一步設(shè)計、編碼、測試,小組成員正在創(chuàng)造項目需要的可交付產(chǎn)品。控制階段:項目經(jīng)理開始監(jiān)督小組成員的工作,將項目的進度、任務(wù)和預(yù)算控制在正常的范圍內(nèi)。
收尾階段:項目負責人和用戶批準和簽署項目,交付產(chǎn)品。項目的收尾階段標志著項目的正式結(jié)束。軟件項目管理任務(wù)軟件項目管理涉及對人員、過程、產(chǎn)品和項目本身等管理過程中發(fā)生的事件的計劃和監(jiān)控。軟件項目管理的任務(wù)包括:制定項目實施計劃對人員進行組織、分工成本管理質(zhì)量管理軟件開發(fā)管理軟件項目管理范圍軟件項目管理是軟件工程的保護性和支持性活動,持續(xù)貫穿于整個軟件的定義、開發(fā)和維護過程之中。軟件項目管理的目的是為了按照預(yù)定的進度、費用等要求,成功地組織與實施軟件的工程化生產(chǎn),完成軟件(產(chǎn)品)的開發(fā)和維護任務(wù)。范圍包括四個方面:組織管理成本管理進度管理質(zhì)量管理組織管理軟件開發(fā)過程是人的智力密集型勞動,所以項目開發(fā)成功一個很重要的因素是人。目的之一就是通過吸引、培養(yǎng)、鼓勵和留住有創(chuàng)造力的、技術(shù)水平高的人才,增強軟件組織承擔日益繁重的軟件開發(fā)的能力。軟件項目的參與者也稱為項目的共利益者:高級管理者項目(技術(shù))管理者開發(fā)人員客戶最終用戶軟件工程管理的內(nèi)容內(nèi)容:項目管理過程管理項目開發(fā)過程要做的工作:項目職責(ProjectFunction):不與軟件開發(fā)過程的特定階段相關(guān)聯(lián)活動(Activity)或任務(wù)(Task):與軟件開發(fā)過程的特定階段相聯(lián)系?;顒邮且粋€較大的工作單元,可以包含一系列任務(wù)。項目職責的管理過程根據(jù)項目的目標和范圍(用戶和開發(fā)者共同確定),考慮可選的解決方案,定義技術(shù)和管理的約束;進行合理(盡可能準確)的成本估算、有效的風險評估、適當?shù)捻椖咳蝿?wù)劃分或給出意義明確的項目進度標志等;制定一份詳細的軟件項目管理計劃。軟件項目管理計劃文檔計劃階段的主要任務(wù)是擬定軟件項目管理計劃書(SPMP,SoftwareProjectManagementPlan)軟件項目管理計劃(SPMP)的目標是提供一個框架內(nèi)容:需要做的事:軟件項目實施計劃,包括進度安排、質(zhì)量保證措施等;需要的資源:軟件項目資源需求和資源計劃,資源包括時間、硬件、軟件、人員和組織機構(gòu)等;需要的經(jīng)費:對軟件項目的規(guī)模、開發(fā)和維護成本估計。SPMP中軟件產(chǎn)品的進展情況可以通過一個“里程碑(Milestone)”來反映。SPMP類型項目實施計劃:包括軟件目標、功能、進度、資源和費用等多個方面的一個綜合性計劃;質(zhì)量保證計劃:包括軟件開發(fā)各個階段的質(zhì)量要求和質(zhì)量保證活動;軟件測試計劃:規(guī)定各種測試活動的任務(wù)、方法、進度、資源和人員等;文檔編制計劃:規(guī)定項目開發(fā)各個階段應(yīng)編制的文檔種類、內(nèi)容和標準等;用戶培訓計劃:包括對用戶培訓的目標、要求和進度等;綜合支持計劃:描述軟件開發(fā)所需的各個方面的支持,以及如何獲得和利用這些支持等;軟件分發(fā)計劃:軟件產(chǎn)品如何交付的說明。SPMP文檔標準規(guī)范1引言1.1項目概述1.2項目交付1.3軟件項目管理計劃的演變1.4參考資料1.5術(shù)語和縮寫詞2項目組織2.1過程模型2.2組織結(jié)構(gòu)2.3組織邊界和接口2.4項目責任3管理過程3.1管理目標和優(yōu)先級3.2假設(shè)、依賴性和限制3.3風險管理3.4監(jiān)督與控制機制3.5人員計劃4技術(shù)過程4.1方法、工具和技術(shù)4.2軟件文檔4.3項目支持功能5工作包、進度和預(yù)算5.1工作包5.2依賴性5.3資源要求5.4預(yù)算和資源分配5.5進度表6附加部分12.2軟件工程管理度量軟件工程管理最重要的內(nèi)容是項目管理和過程管理,其基本目標是提高軟件生產(chǎn)的效率和保證軟件的質(zhì)量。軟件工程管理度量主要分為項目度量和過程度量兩大類。軟件項目度量是戰(zhàn)術(shù)性活動,目的在于輔助項目開發(fā)的控制和決策,改進軟件產(chǎn)品的質(zhì)量。軟件過程度量是戰(zhàn)略性活動,目的在于改進企業(yè)的軟件開發(fā)過程,提高開發(fā)生產(chǎn)率。軟件度量過程測度測量數(shù)據(jù)收集軟件過程軟件項目軟件產(chǎn)品度量度量計算測量度量評價軟件過程度量軟件過程度量對于組織提高其整體的過程成熟度能夠提供很大的幫助,并給出一組軟件過程度量規(guī)則:(1)解釋度量數(shù)據(jù)時使用常識,并考慮組織的敏感性。(2)提供測量和度量結(jié)果的反饋。(3)不要使用度量評價個人。(4)制定清晰的目標和為達到目標而要使用的度量。(5)綜合考慮度量。軟件項目度量軟件項目度量使得軟件項目組織能夠?qū)σ粋€待開發(fā)的軟件進行估算、計劃和組織實施。例如,包括軟件規(guī)模和成本的估計、質(zhì)量控制和評估、生產(chǎn)率評估等軟件項目度量常用在估算階段軟件項目度量的目的是雙重的利用軟件項目度量能夠?qū)﹂_發(fā)進度進行必要的調(diào)整,同時可以避免延遲,并減少潛在的問題及風險,從而使得開發(fā)時間減到最少。可利用軟件項目度量在項目進行過程中評估產(chǎn)品質(zhì)量,必要時可調(diào)整技術(shù)方法以提高質(zhì)量。12.3軟件風險管理對策:項目風險需要識別、分析、應(yīng)對和監(jiān)控整個項目的風險管理應(yīng)有一個計劃可考慮前人總結(jié)出來的風險應(yīng)對策略管理步驟;風險識別風險估計風險管理策略風險解決風險監(jiān)控風險識別軟件風險:項目風險技術(shù)風險商業(yè)風險檢查內(nèi)容:產(chǎn)品規(guī)模風險——檢查與軟件總體規(guī)模相關(guān)的風險;商業(yè)影響風險——檢查與管理或市場的約束相關(guān)的風險;與客戶相關(guān)的風險——檢查與客戶素質(zhì)和溝通能力相關(guān)的風險;過程風險——檢查與軟件過程定義和開發(fā)相關(guān)的風險;技術(shù)風險——檢查與軟件的復雜性和系統(tǒng)所包含的技術(shù)成熟度相關(guān)的風險;開發(fā)環(huán)境風險——檢查與開發(fā)工具的可用性和質(zhì)量相關(guān)的風險;人員結(jié)構(gòu)和經(jīng)驗風險風險預(yù)測風險預(yù)測,又可稱為風險估計(RiskEstimation):包括風險發(fā)生的可能性建立風險可能性尺度使用的是概率尺度風險發(fā)生所產(chǎn)生的后果估計風險對產(chǎn)品和項目的影響使用定性的描述三個因素:風險的性質(zhì)、范圍和時間風險管理(規(guī)避)風險駕馭考慮風險出現(xiàn)的概率產(chǎn)生的影響處理風險的策略風險監(jiān)控評估風險成本12.4軟件配置管理軟件配置(SoftwareConfiguration)是一個軟件各種形式、各種版本的文檔和程序的總稱軟件配置管理(SCM,SoftwareConfigurationManagement)是對軟件變更(或稱為進化)過程的管理變更不可避免管理變更的能力是項目成敗的關(guān)鍵基本概念軟件變更新的商業(yè)或市場條件,引起產(chǎn)品需求或業(yè)務(wù)流程(規(guī)則)的變化。新的客戶需要,要求修改軟件系統(tǒng)產(chǎn)生的數(shù)據(jù)、產(chǎn)品提供的功能,或基于計算機系統(tǒng)提供的服務(wù)。改組或減小企業(yè)規(guī)模,導致項目優(yōu)先級或軟件工程隊伍結(jié)構(gòu)的變化。預(yù)算或進度的限制,導致系統(tǒng)或產(chǎn)品的重定義。軟件配置項計算機程序(源程序和執(zhí)行代碼)軟件(產(chǎn)品)文檔(技術(shù)文檔和用戶文檔)以及數(shù)據(jù)基本概念各個階段產(chǎn)品的復審時間均稱為基線(BaseLines)基線是軟件過程中的里程碑,其標志就是有一個或多個SCI的交付重要原則:基線之前變更自由,基線之后必須嚴格變更管理所有基線SCI被放置到項目配置數(shù)據(jù)庫(或稱為中心數(shù)據(jù)庫)中軟件配置管理活動配置管理規(guī)劃定義哪些SCI需要管理,以及識別這些SCI的形式模式說明由誰負責配置管理規(guī)程,并把受控SCI提交給配置管理團隊用于變更控制和版本管理的配置管理策略描述配置管理過程的記錄,以及該記錄應(yīng)該被維護的形式描述配置管理所使用的工具和使用這些工具的過程定義將用于記錄配置信息的配置數(shù)據(jù)庫變更管理:啟動變更過程版本和發(fā)布管理版本發(fā)布管理負責確定發(fā)布時間、分發(fā)渠道、編制和管理發(fā)布文檔,以及協(xié)助安裝新的版本SCM中心存儲庫SCM中心存儲庫是一組機制和數(shù)據(jù)結(jié)構(gòu)功能:數(shù)據(jù)完整性信息共享工具集成數(shù)據(jù)集成推行方法文檔標準化12.4.3版本管理版本是記錄特定對象各個可選狀態(tài)的快照。版本管理是為滿足不同需求,對同一產(chǎn)品或系統(tǒng)進行局部的改進和改型所產(chǎn)生的產(chǎn)品或系統(tǒng)系列的變更情況進行記錄、跟蹤、維護和控制的過程。版本管理的任務(wù)就是對對象的歷史演變過程進行記錄和維護。發(fā)布版本是分發(fā)給用戶的系統(tǒng)版本。版本管理的主要功能有:集中管理檔案和安全授權(quán)機制軟件版本升級管理加鎖功能版本內(nèi)容比較版本管理的作用:有效記錄不同版本的演變過程及對不同版本進行有效管理,以盡可能少的數(shù)據(jù)冗余記錄各版本。版本管理主要是為版本的標識、編輯和檢索等設(shè)計一個規(guī)程,以保證版本信息的有效管理。版本標識的內(nèi)容包括版本號、基于屬性的標識和基于變更的標識。版本發(fā)布管理負責確定發(fā)布時間、分發(fā)渠道、編制和管理發(fā)布文檔,以及協(xié)助安裝新的版本。發(fā)布版本不僅僅是本系統(tǒng)的可執(zhí)行代碼,還包括配置文件、數(shù)據(jù)文件、安裝程序、電子和書面文檔、包裝和相關(guān)宣傳。版本管理的主要模型:線型版本管理模型樹型版本管理模型有向無環(huán)圖版本管理模型線性版本管理模型按版本出現(xiàn)的先后次序排列的一種簡單模型。一個對象的版本聚集在一起組成一個版本集,版本集中的元素之間滿足“successor-of”的有序關(guān)系。版本集中的元素是全序關(guān)系,新元素只能朝一個方向上增加。樹型版本管理模型中各版本的出現(xiàn)呈現(xiàn)樹狀結(jié)構(gòu)。一個對象的版本聚集的版本集中的元素之間滿足“successor-of”的有序關(guān)系。版本集中的元素是半序關(guān)系,即一個版本可以有多個后繼版本。有向無環(huán)圖版本管理模型中各版本的出現(xiàn)呈現(xiàn)無循環(huán)圖的結(jié)構(gòu)。一個對象的版本聚集在一起組成一個版本集,版本集中的元素之間滿足“successor-of”的有序關(guān)系。版本集中的元素是半序關(guān)系,即一個版本可以有多個后繼版本。一個版本可以有多個前驅(qū)版本。版本管理的常用方法有:向前版本管理法只完整的存儲原始版本數(shù)據(jù),后繼的版本僅存儲與前驅(qū)版本的差。優(yōu)點是數(shù)據(jù)冗余少,生成新版本簡單。缺點是對原始版本以外的所有版本的訪問都必須依據(jù)一定的算法臨時生成相應(yīng)的版本,比較繁瑣。向后版本管理法只完整存儲最新版本數(shù)據(jù),其他版本只存儲其與后繼版本之間的差。優(yōu)點是數(shù)據(jù)冗余少,而且一般情況下對新版本的訪問頻度較高,效率比向前版本管理法高。缺點是每次生成的新版本都是完整的版本,比較費時和復雜,訪問新版本以外版本時也必須依據(jù)一定的算法臨時生成相應(yīng)的版本。有限記錄版本管理法為每個對象保留有限數(shù)量的不同版本進行版本管理,在新版本生成時,系統(tǒng)自動廢除一些老版本??梢灾赜闷湔加械目臻g,從而不會擴大數(shù)據(jù)庫所占用的總空間。關(guān)鍵版本管理法可以將版本分為關(guān)鍵版本和非關(guān)鍵版本在生成數(shù)據(jù)庫的新版本之時,可以廢除某個非關(guān)鍵版本,以減少其所占有的存儲空間,但不允許系統(tǒng)自動廢除某一關(guān)鍵版本。設(shè)計版本的重新組織利用已有的多個數(shù)據(jù)庫版本融合出一個新的數(shù)據(jù)庫版本。版本集是通過修改一個已存在的實體而產(chǎn)生的版本,同一實體的不同版本實質(zhì)上是相似的。版本選擇是通過創(chuàng)建一個新的實體以表示相同功能的實體而產(chǎn)生的,兩個選擇之間可能沒有任何共同之處。版本之間只是部分的修改,且修改多集中在一些記錄上,可以采用“記錄級版本”的方法。若兩個選擇之間的差別較大,應(yīng)采用“文件級版本”的方法。在記錄級版本法中,用一個唯一的記錄標識來標識每條物理記錄,并作為該記錄在數(shù)據(jù)庫中的物理地址。一個版本文件由歷史索引、當前版本文件和舊版本文件3個內(nèi)部文件支持。這3個文件組織成一個樹型結(jié)構(gòu),其中歷史索引是根,其孩子是記錄級版本順序號,不同的版本順序號通過鍵與當前版本文件和舊版本文件連接,表示版本的變遷情況。在文件級版本法中,每個選擇用一個文件的命名集合來表示,對集合中每個文件,在文件名后用一個后綴序號表示。如:cmp.1——表示原始版本cmp.2…對于每個文件下,可以采用子序列1.1、1.2、1.3的形式加以擴充。C/S體系中一般采用版本的不同類型實現(xiàn)版本管理,即多種語義版本模式,由公有數(shù)據(jù)庫、若干項目數(shù)據(jù)庫和若干私有數(shù)據(jù)庫組成。這種版本模式用三種不同的語義類型加以區(qū)分:發(fā)布版本:發(fā)布版本駐留在公有數(shù)據(jù)庫中,不能刪除和修改保護權(quán)限。其他對象對發(fā)布版本的使用是安全的。工作版本:工作版本也是不能修改的。它可由創(chuàng)建者來修改,可以駐留在私有數(shù)據(jù)庫中,也可以駐留在項目數(shù)據(jù)庫中。工作版本通過檢驗進入公有數(shù)據(jù)庫后,就成為發(fā)布版本。過渡版本:過渡版本駐留在私有數(shù)據(jù)庫中,禁止該私有數(shù)據(jù)庫外的其他對象訪問。一個過渡版本可以從工作版本或發(fā)布版本中派生出來,也可以通過自動升級成為工作版本。12.5軟件項目規(guī)模估算軟件項目估算是軟件項目計劃的基礎(chǔ)估算必然存在一定程度的不確定性估算要隨著項目的進展不斷地進行調(diào)整和更新過程度量和項目度量為定量估算從歷史角度提供了依據(jù)和有效的輸入軟件項目的資源:人員可復用的軟件構(gòu)件或模塊開發(fā)環(huán)境。每一項資源的四個特性:資源的描述、可用性說明、何時需要資源、事業(yè)資源的持續(xù)時間四種軟件資源Bennatan建議:成品構(gòu)件:從第三方獲得的或在以前的項目中已經(jīng)進行過內(nèi)部開發(fā)的已有軟件。具有完全經(jīng)驗的構(gòu)件:為以前項目開發(fā)的,且與當前項目具有相似的規(guī)格說明、設(shè)計、代碼或測試數(shù)據(jù)的構(gòu)件。具有部分經(jīng)驗的構(gòu)件:為以前項目開發(fā)的,且與當前項目有關(guān)的構(gòu)件,但要做實質(zhì)上的修改。新構(gòu)件:必須要專門開發(fā)的構(gòu)件。軟件規(guī)模度量軟件過程的直接度量:成本工作量產(chǎn)品的直接度量:代碼行(LOC)運行速度某段時間內(nèi)報告的缺陷產(chǎn)品的間接度量:功能質(zhì)量復雜性有效性可靠性可維護性其他特性12.5.2軟件項目規(guī)模度量1.代碼行代碼行(LOC)或千條代碼行(KLOC)每千行代碼的錯誤數(shù)、缺陷數(shù)、成本、文檔頁數(shù)每人·月錯誤數(shù)每人·月千行代碼數(shù)每頁文檔的成本問題:代碼只是整個的一小部分不同的語言實現(xiàn)同一個軟件產(chǎn)品將導致不同的代碼行數(shù)計算代碼行數(shù)往往不是很準確并非所有的代碼都交付給用戶代碼行數(shù)在軟件產(chǎn)品開發(fā)完全結(jié)束后才能確定2.軟件科學源于軟件科學基本度量原理的度量軟件產(chǎn)品規(guī)模的方法計算軟件產(chǎn)品中(單一)操作數(shù)和運算符的數(shù)目3.可測量數(shù)據(jù)FFP度量方法文件Fi、流Fl和過程Pr
S=Fi+Fl+
Pr
C=b×S不適合用于強調(diào)功能和控制的大型數(shù)據(jù)庫領(lǐng)域4.功能點功能點(FP,F(xiàn)unctionPoints)度量方法使用軟件產(chǎn)品提供的功能測量作為規(guī)范值信息域值有輸入項數(shù)Inp、輸出項數(shù)Out、查詢項數(shù)Inq、主文件數(shù)Maf和接口數(shù)Inf計算功能點數(shù)FP最簡單的公式如下:FP=4×Inp+5×Out+4×Inq+10×Maf+7×Inf信息度量項的系數(shù),可以根據(jù)軟件復雜性分成的簡單、平均和復雜三個等級來選擇度量項不同級別功能點分配值度量項簡單級平均級復雜級Inp346Out457Inq346Maf71015Inf5710功能點估算步驟確定軟件產(chǎn)品中每個度量項,即Inp,Out,Inq,Maf,Inf的功能點數(shù)確定對應(yīng)等級是簡單、平均還是復雜級,即每個信息度量項的系數(shù)一個未調(diào)整的功能點UFP計算技術(shù)復雜性因子TCF14種技術(shù)因素每一個因素分配一個從0(無影響)到5(影響最大)這14個技術(shù)因子的影響值相加得到總的影響度DITCF=0.65+0.01×DI擴展的功能點數(shù)FP從以下計算得到:FP=UFP×TCF5.面向?qū)ο蟮亩攘繄鼍澳_本的數(shù)量關(guān)鍵類的數(shù)量支持類的數(shù)量每個關(guān)鍵類的平均支持類數(shù)量子系統(tǒng)的數(shù)量12.6軟件項目估算的分解技術(shù)基于問題分解的估算基于過程分解的估算12.6.1基于問題分解的估算步驟:界定的軟件范圍軟件分解為可以被單獨估算的問題或者功能估算每一個問題/功能的LOC,F(xiàn)FP或FP對每個功能或每個信息域的計算值都估算出樂觀值Sopt,可能值Sm,悲觀值Spess計算估算變量(規(guī)模)的期望值EV=(Sopt+4×Sm+Spess
)/6將基線生產(chǎn)率度量估算成本及工作量例12.1基于LOC的方法估算問題描述:一個計算機輔助設(shè)計(CAD,ComputerAidedDesign)應(yīng)用軟件的開發(fā)成本。該CAD系統(tǒng)運行在工作站上,并與各種計算機圖形外設(shè),如鼠標、數(shù)字化儀、高分辨率彩色顯示器,以及激光打印機有接口。主要功能模塊CAD軟件有用戶界面及控制機制二維幾何分析三維幾何分析數(shù)據(jù)庫管理計算機圖形顯示控制外設(shè)控制設(shè)計分析模塊功能代碼行估計功能LOC估算功能LOC估算用戶界面及控制機制2300計算機圖形顯示控制4950二維幾何分析5300外設(shè)控制2100三維幾何分析7800設(shè)計分析模塊8400數(shù)據(jù)庫管理3350總LOC估算34200成本與工作量這類系統(tǒng)的平均生產(chǎn)率是620LOC/pm如果一個勞動力價格是10000美元/月,則每行代碼的成本約為16美元(10000÷620≈16)根據(jù)LOC估算及歷史生產(chǎn)率數(shù)據(jù),總的項目成本估算約為547200美元(34200×16=547200),工作量估算約為55人·月(34200÷620≈56)舉例:用功能點FP方法估算估算軟件的輸入、輸出、查詢、主文件和外部接口用平均級加權(quán)因子的未調(diào)整的FP估算信息域值樂觀值可能值悲觀值估算計數(shù)加權(quán)因子FP計數(shù)輸入20243024496輸出12152216580查詢16222822488主文件44541040外部接口2232714總FP計數(shù)值318計算復雜度調(diào)整因子估算表調(diào)整因子值調(diào)整因子值調(diào)整因子值數(shù)據(jù)通信2聯(lián)機數(shù)據(jù)輸入3安裝方便5分布式數(shù)據(jù)處理0終端用戶效率5操作方便5性能計算4聯(lián)機更新3可移植性4高負荷的硬件3計算復雜性4可維護性5高處理率5重用性4DI值52舉例:用功能點FP方法估算估算14個技術(shù)加權(quán)因子,并計算復雜度調(diào)整因子DI得出FP的估算值:FP=318×(0.65+0.01×52)=372這類系統(tǒng)組織的平均生產(chǎn)率是6.5FP/pm。如果一個勞動力價格是10000美元/月,則每個FP的成本約為1539美元。根據(jù)功能點估算及歷史生產(chǎn)率數(shù)據(jù),總的項目成本估算約為572508美元(372×1539=572508)工作量估算約為57人·月(372÷6.5≈56)12.6.2基于過程分解的估算步驟:得到軟件功能描述估算出每個軟件功能的每個過程活動所需的工作量,并編制成估算表將平均勞動力價格用來估算每一個活動的工作量,得到成本估算估算每一個功能及軟件過程活動的成本及工作量例12.3基于過程的CAD系統(tǒng)規(guī)模估算活動用戶通信計劃風險分析工程
建造
發(fā)布用戶評估總和子任務(wù)分析設(shè)計編碼測試功能用戶界面及控制機制0.52.50.45n/a8.4二維幾何分析0.7540.62n/a7.35三維幾何分析0.5413n/a8.5數(shù)據(jù)庫管理0.5311.5n/a6.0計算機圖形顯示控制0.530.751.5n/a5.75外設(shè)控制0.2520.51.5n/a4.25設(shè)計分析模塊0.520.52.0n/a5.0總計0.250.250.253.520.54.7516.546.0如果一個勞動力價格是10000美元/月,則總的項目成本估算是460000美元,工作量估算是46個人·月。如果需要做更詳細的預(yù)算,每一個軟件過程活動可以關(guān)聯(lián)不同的勞動力價格。12.6.3經(jīng)驗估算技術(shù)專家類比推斷技術(shù)專家通過比較目標產(chǎn)品與他曾經(jīng)親身參與過的產(chǎn)品項目,區(qū)別兩者的異同,而得到估算結(jié)果由底向上估算方法把產(chǎn)品分解成許多更小的部分,先對每個部分的工作量和成本進行估算,然后把它們組合得到一個總的估算數(shù)據(jù)COCOMO(COnstructiveCOstMOdel,構(gòu)造性成本模型)中級COCOMO估算模型基于對象點的估算計算對象點:(1)用戶界面數(shù),(2)報表數(shù),(3)構(gòu)造應(yīng)用可能需要的構(gòu)件數(shù)確定三個復雜度級別之一,即簡單級、中等級和困難級求和后得到了總的對象點數(shù)對象類型簡單級中等級困難級界面123報表258構(gòu)件10中級COCOMO估算模型估算復用的百分比,并調(diào)整對象點數(shù):NOP=對象點×[(100-復用的百分比)/100]確定生產(chǎn)率的值PROD=NOP/人·月得到項目工作量的估算值:
估算工作量=NOP/PROD開發(fā)者的經(jīng)驗/能力非常低低正常高非常高環(huán)境成熟度/能力非常低低正常高非常高PROD47132550中級COCOMO估算模型基于代碼行的估算首先用千條代碼行數(shù)(KLOC)度量產(chǎn)品長度確定開發(fā)模式,有三種模式:組織型(Organic,小型、較簡單型)、半獨立型(Semidetached,中等規(guī)模型)和嵌入型(Embedded,復雜型)計算正常工作量E(以人月為單位)和正常開發(fā)時間T(以月為單位)正常工作量(E)=a×(KLOC)b
正常開發(fā)時間(T)=c×(正常工作量)da,b,c,d取值由開發(fā)模式而定項目開發(fā)模式abcd組織型(簡單型)3.21.052.50.38半獨立型(中等規(guī)模型)3.01.122.50.35嵌入型(復雜型)2.81.202.50.32中級COCOMO估算模型正常的工作量E和開發(fā)時間T還必須與15個軟件開發(fā)工作量調(diào)節(jié)因子(EAF,EffortAdjustmentFactor)相乘每個調(diào)節(jié)因子可以有6個值,分別是非常低、低、正常、高、非常高和極高。15個工作量調(diào)節(jié)因子(EAF)值工作量調(diào)節(jié)因子(EAF)因
素非常低低正常高非常高極高產(chǎn)品屬性軟件要求的可靠性0.750.881.01.151.40-數(shù)據(jù)庫規(guī)模-0.941.01.081.16-產(chǎn)品復雜度0.700.851.01.151.301.65計算機屬性執(zhí)行時間限制--1.01.111.301.66主存限制--1.01.061.211.56開發(fā)環(huán)境易變性-0.871.01.151.30-計算機響應(yīng)時間-0.871.01.071.15-人員屬性分析能力1.461.191.00.860.71-應(yīng)用領(lǐng)域的經(jīng)驗1.291.131.00.910.82-程序員的能力1.421.161.00.860.70-開發(fā)環(huán)境的使用經(jīng)驗1.211.101.00.90--程序語言使用經(jīng)驗1.141.071.00.95--項目屬性現(xiàn)代軟件技術(shù)使用程度1.241.101.00.910.82-軟件工具的使用程度1.241.101.00.910.83-要求的開發(fā)進度1.231.081.01.041.10-例12.4一個基于微處理器的通信處理軟件規(guī)模估算該通信處理軟件用于可靠的電子基金傳輸網(wǎng)絡(luò),具有性能、開發(fā)速度和接口方面的要求,符合嵌入型模式的描述,估算有10000條源代碼行,即10KLOC。該項目的具體情況和工作量調(diào)節(jié)因子(EAF)的取值中級COCOMO工作量調(diào)節(jié)因子因
素情
況等級工作量乘數(shù)軟件要求的可靠性數(shù)據(jù)庫規(guī)模產(chǎn)品復雜度執(zhí)行時間限制主存限制開發(fā)環(huán)境易變性計算機周轉(zhuǎn)時間分析能力應(yīng)用領(lǐng)域的經(jīng)驗程序員的能力開發(fā)環(huán)境的使用經(jīng)驗程序語言的使用經(jīng)驗現(xiàn)代軟件技術(shù)使用程度軟件工具的使用程度要求的開發(fā)進度軟件故障會帶來嚴重的后果20000字節(jié)通信處理70%的時間可用64KB中的45KB(70%)基于商用微處理器硬件平均周轉(zhuǎn)時間為兩小時優(yōu)秀的高級分析員兩年優(yōu)秀的程序員兩年六個月大多數(shù)技術(shù)使用一年處于基本的小型機工具級九個月高低非常高高高正常正常高正常高正常低高低正常1.150.941.301.111.061.001.000.861.000.861.001.100.911.101.00正常工作量E=2.8×101.20=44.4(人月)正常開發(fā)時間T=2.5×44.40.32=8.4(月)將15個工作量調(diào)節(jié)因子相乘,結(jié)果為1.35。該項目的總估算為:E=44.4×1.35=59.9(人月)T=8.4×1.35=11.3(月)成本估算管理跟蹤實際的開發(fā)工作量,并把它們與預(yù)測值進行比較軟件質(zhì)量保證(SQA)小組獨立對開發(fā)周期和成本估算再次進行估算分析12.7軟件質(zhì)量管理軟件質(zhì)量管理手段:技術(shù)手段改進測試方法,提高測試效率,提高軟件質(zhì)量改進開發(fā)過程,使各種錯誤不會或很少引入軟件開發(fā)過程管理手段技術(shù)手段能力有限軟件質(zhì)量概念軟件質(zhì)量屬性包括循環(huán)復雜度、內(nèi)聚性、功能點數(shù)量、代碼行數(shù)質(zhì)量分為:設(shè)計質(zhì)量:指設(shè)計者為一個產(chǎn)品規(guī)定的特征系統(tǒng)的需求規(guī)格說明設(shè)計一致性質(zhì)量:指在制造產(chǎn)品的過程中遵守設(shè)計規(guī)格說明的程度實現(xiàn)問題用戶滿意度=合格的產(chǎn)品+好的質(zhì)量+按預(yù)算和進度交付軟件質(zhì)量管理軟件的質(zhì)量檢測屬于一種粗放式的質(zhì)量管理形式事后檢測的方式軟件質(zhì)量保證指軟件生產(chǎn)過程包含的一系列質(zhì)量保證活動體現(xiàn)了軟件質(zhì)量全面控制(TQC,TotalQualityControl)的核心思想遵循的PDCA(Plan-Do-Check-Action)循環(huán)所建議的“計劃—實施—檢測—措施”的順序軟件質(zhì)量認證把對個別產(chǎn)品的質(zhì)量保證擴展到對軟件企業(yè)(組織)整體資質(zhì)的認證ISO9000軟件質(zhì)量保證(SQA)SQA小組SQA活動:準備SQA計劃參與和監(jiān)督軟件過程評審記錄報告SQA計劃ANSI/IEEEStd.983-1986SQA計劃1計劃目的2參考文獻3管理3.1組織3.2任務(wù)3.3責任4文檔4.1目的4.2軟件工程文檔4.3其他文檔5標準、實踐和約定51目的5.2約定6復審和審計6.1目的6.2需求復審6.2.1軟件需求復審6.2.2設(shè)計復審6.2.3軟件驗證和確認復審6.2.4功能審計6.2.5物理審計6.2.6過程內(nèi)部審計6.2.7管理復審7測試8問題報告和改正行動9工具、技術(shù)和方法10代碼控制11媒體控制12供應(yīng)商控制13記錄收集、維護和保留14培訓15風險管理軟件質(zhì)量度量軟件質(zhì)量的定義和測量:正確性:軟件完成所要求的功能的程度千行代碼(KLOC)的缺陷數(shù)缺陷是按標準時間段來計數(shù)的,一般是一年可維護性:遇到錯誤時程序能夠被修改的容易程度平均變更時間(mean-time-to-change,MTTC)完整性:一個系統(tǒng)對安全性攻擊的抵抗能力完整性=∑[1–(危險性×(1-安全性))]可用性:使用的容易程度進行量化可靠性:在規(guī)定的條件和時間內(nèi),軟件完成規(guī)定功能的能力缺陷排除效率:軟件團隊排除軟件故障的能力缺陷排除效率缺陷排除效率(defectremovalefficiency,DRE)是在項目級和過程級都有意義的質(zhì)量度量定義:DRE=E/(E+D)其中E是軟件交付給用戶之前發(fā)現(xiàn)的錯誤數(shù),D是軟件交付之后發(fā)現(xiàn)的缺陷數(shù)軟件可靠性定義:軟件可靠性是在給定的時間內(nèi),按照(系統(tǒng)規(guī)格說明書)規(guī)定的條件,軟件成功運行的概率。軟件可靠性分為五級分級故障后果工作量調(diào)節(jié)因子很低低正常高很高工作略有不便有損失,但容易彌補彌補損失比較困難有重大的經(jīng)濟損失危及人的生命0.750.881.001.151.40評測可靠性的方法可靠性與軟件的故障密切相關(guān)可靠性理論:R(t)可以表示為程序運行時間t和故障率λ(單位時間內(nèi)程序運行失敗的次數(shù))的指數(shù)函數(shù)R(t)=e-λtR(t)1.0tλ1<λ2<λ3λ1λ2λ3評測可靠性的方法衡量可靠性的方法是直接計算軟件平均故障時間(MTTF,MeanTimeToFailure)MTTF可以是故障率的倒數(shù),即MTTF=l/λ統(tǒng)可靠性(RSYS)是軟件、硬件和運行操作三種可靠性(分別是RS,RH,ROP)的綜合反映RSYS=RS·RH·ROPλSYS=λS+λH+λOPMTTFSYS=l/(λS+λH+λOP)軟件容錯技術(shù)容錯性是軟件可靠性的子屬性之一容錯軟件,即具有抗故障能力的軟件,處理錯誤的方法有三種:①屏蔽錯誤——把錯誤屏蔽掉,使之不致產(chǎn)生危害②修復錯誤——能在一定程度上,使軟件從錯誤狀態(tài)恢復到正常狀態(tài)③減少影響——能在一定程度上,使軟件完成預(yù)定的功能冗余(Redundancy)技術(shù):以額外的資源消耗換取系統(tǒng)的正常運行”。常用的冗余技術(shù)有:結(jié)構(gòu)冗余:利用多余的結(jié)構(gòu)來換取可靠性的提高時間冗余:檢測程序,如看門狗信息冗余:附加的冗余信息(如奇偶碼、循環(huán)碼等誤差校正碼),檢測和糾正傳輸或運算中可能出現(xiàn)的錯誤靜態(tài)、動態(tài)冗余結(jié)構(gòu)系統(tǒng)示例表決器┇M1M2Mn備用備用主用┇M1M2Mn軟件復審軟件復審是軟件錯誤的過濾器軟件復審可以認為是凈化分析、設(shè)計和編程等過程所產(chǎn)生的軟件產(chǎn)品的必要手段復審分:技術(shù)復審:越在早期發(fā)現(xiàn)錯誤越容易改正,代價也越低正式的技術(shù)復審技術(shù)復審小組由審查組長、作者和評審員組成以會議形式進行完整的技術(shù)復審過程一般由準備、介紹情況、閱讀資料、開審查會、返工和復查六個步驟組成審查會的目的是發(fā)現(xiàn)錯誤而不是改正錯誤管理復審程序準確性證明軟件測試只能證明程序有錯,無法證明無錯準確性證明能夠減少測試的工作量目前只能進行某些程序段的證明常見的方法輸入-輸出斷言法最弱前置條件法結(jié)構(gòu)歸納法軟件質(zhì)量認證標準軟件質(zhì)量認證(SQC)ISO9000標準系列
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《醫(yī)藥數(shù)理統(tǒng)計方法》題庫
- 《市場營銷學》期末復習章節(jié)試題及答案
- 第3單元 封建時代的歐洲(高頻非選擇題25題)(解析版)
- 八下期末考拔高測試卷(3)(原卷版)
- 第24課 人民解放戰(zhàn)爭的勝利(解析版)
- 《電鍍工藝流程》課件
- 院線電影投資發(fā)行合同三篇
- 七夕情人節(jié)課件15
- 酒店管理中的設(shè)備設(shè)施管理
- 高一的軍訓心得筆記10篇
- 移動發(fā)布推介會服務(wù)方案
- 供應(yīng)商產(chǎn)品質(zhì)量監(jiān)督管理制度
- 單位工程、分部工程、分項工程及檢驗批劃分方案
- 器樂Ⅰ小提琴課程教學大綱
- 主債權(quán)合同及不動產(chǎn)抵押合同(簡化版本)
- 服裝廠安全生產(chǎn)責任書
- JGJ202-2010建筑施工工具式腳手架安全技術(shù)規(guī)范
- 液壓爬模系統(tǒng)作業(yè)指導書
- 2018-2019學年北京市西城區(qū)人教版六年級上冊期末測試數(shù)學試卷
- SFC15(發(fā)送)和SFC14(接收)組態(tài)步驟
- LX電動單梁懸掛說明書
評論
0/150
提交評論