秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

當(dāng)前位置首頁 > 汽車/機械/制造 > 機械軟件
搜柄,搜必應(yīng)! 快速導(dǎo)航 | 使用教程  [會員中心]

軟件工程基礎(chǔ)之07軟件維護

文檔格式:PPT| 30 頁|大小 501.50KB|積分 10|2024-11-01 發(fā)布|文檔ID:250121213
第1頁
下載文檔到電腦,查找使用更方便 還剩頁未讀,繼續(xù)閱讀>>
1 / 30
此文檔下載收益歸作者所有 下載文檔
  • 版權(quán)提示
  • 文本預(yù)覽
  • 常見問題
  • 單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,Footer Text,*,/23,第七章 軟件維護,軟件維護概述,1,軟件維護技術(shù),5,軟件維護過程模型,3,應(yīng)注意的問題,2,小結(jié),6,軟件維護概述,軟件維護的基本概念,軟件維護的基本類型,維護的困難性,軟件維護的定義,IEEE/EIA 12207ISO/IEC2008,中對軟件維護的定義是:軟件維護是指,由于軟件產(chǎn)品出現(xiàn)問題或需要改進而對代碼及相關(guān)文檔的修改,,其目的是對現(xiàn)有軟件產(chǎn)品進行修改的同時保持其完整性軟件維護的必要性,軟件維護能夠改正錯誤軟件維護能夠改善設(shè)計軟件維護能夠?qū)崿F(xiàn)軟件的改進軟件維護能夠?qū)崿F(xiàn)與其他系統(tǒng)的交互軟件維護能夠為使用不同的硬件、軟件、系統(tǒng)的新性能以及通訊設(shè)備等而對軟件進行改進軟件維護能夠完成遺留系統(tǒng)的移植軟件退出使用遺留系統(tǒng):仍能夠使用的舊系統(tǒng),有時對于業(yè)務(wù)運行來說至關(guān)重要原因:過時的語言或技術(shù)實現(xiàn)、昂貴的系統(tǒng)支持導(dǎo)致維護昂貴、結(jié)構(gòu)性差軟件維護的成本,軟件維護階段一般要消耗軟件生命周期中經(jīng)費開支的,大部分,軟件維護的費用占軟件總預(yù)算的比例:,70,年代的,35%40%,80,年代上升為,40%60%,90,年代已經(jīng)占,70%,80%,軟件維護的基本類型,維護的類型有,四,種:,糾錯,性維護,適應(yīng)性維護,完善性維護,預(yù)防性維護,國外的統(tǒng)計數(shù)字表明,完善性維護占全部維護活動的,50%,66%,,糾錯性維護占,17%,21%,,適應(yīng)性維護占,18%,25%,,其他維護活動只占,4%,左右,糾錯性維護,在軟件交付使用后,因開發(fā)時測試的不徹底、不完全,必然會有部分,隱藏的錯誤,遺留到運行階段。

    設(shè)計錯誤、編碼錯誤、數(shù)據(jù)錯誤、文檔錯誤,這些隱藏下來的錯誤在某些特定的使用環(huán)境下就會暴露出來為了,識別和糾正軟件錯誤、改正軟件性能上的缺陷、排除實施中的誤用,應(yīng)當(dāng)進行的診斷和改正錯誤的過程,就叫做糾錯性維護適應(yīng)性維護,在使用過程中,,外部環(huán)境(新的硬、軟件配置),數(shù)據(jù)環(huán)境(數(shù)據(jù)庫、數(shù)據(jù)格式、數(shù)據(jù)輸入,/,輸出方式、數(shù)據(jù)存儲介質(zhì)),網(wǎng)絡(luò)環(huán)境等其他可能發(fā)生的變化為使軟件,適應(yīng)外部、數(shù)據(jù)、網(wǎng)絡(luò)的變化,,而去修改軟件的過程就叫做適應(yīng)性維護完善性維護,在軟件的使用過程中,用戶往往會對軟件提出,新的功能與性能要求,為了滿足,新的功能與性能要求,,需要修改或再開發(fā)軟件,,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性這種情況下進行的維護活動叫做完善性維護實踐表明,在幾種維護活動中,,完善性維護所占的比重最大,即大部分維護工作是改變和加強軟件,而不是糾錯完善性維護不一定是救火式的緊急維修,而可以是有計劃、有預(yù)謀的一種再開發(fā)活動預(yù)防性維護,預(yù)防性維護是防止問題發(fā)生而事先維護,目的是為了提高軟件的可維護性、可靠性等,為以后進一步改進軟件打下良好基礎(chǔ)體系結(jié)構(gòu)不良、數(shù)據(jù)結(jié)構(gòu)不理想、文檔不全、缺少變更記錄等。

    預(yù)防性維護定義為:,采用適當(dāng)?shù)姆椒▽π枰S護的軟件或軟件中的,某一部分(重新)進行設(shè)計、編碼和測試,逆向工程、軟件再工程等軟件維護中應(yīng)注意的問題(一),技術(shù)方面,程序的理解:有限理解,測試:完整測試消耗大,往往選擇回歸測試、局部測試軟件運行中,協(xié)調(diào)測試困難影響分析,可維護性,影響分析,影響分析是對修改的影響進行完整分析,衡量消耗的可接受程度目標(biāo):,決定,改變的范圍,這對合理計劃和完成工作有重要意義,對完成工作,所需的資源,進行精確的估計分析改變的,費用,/,效益比,由于對軟件進行變更往往是牽一發(fā)而動全身的,因此如果給出了一個變更,必須考慮到關(guān)聯(lián)性的,復(fù)雜情況,可維護性,可維護性是指通過一定的手段,使軟件可以被維護、改進、改動或修正,以滿足特定的需求的方便程度決定要素:,可理解性,可測試性,可修改性,可移植性,可重用性,環(huán)境要素:,維護文檔,運行環(huán)境,維護組織,維護質(zhì)量,軟件維護中應(yīng)注意的問題(二),管理方面,契合組織的目標(biāo),:,延長軟件生命、軟件升級、改進的需要,但投資回報不明確權(quán)衡消耗與收益人力資源:吸引和維持軟件維護隊伍二等公民”誤區(qū),過程:需要開發(fā)過程沒有的活動,如逆向工程,管理挑戰(zhàn),如何組織維護活動:責(zé)任到人,外包:有效控制是重點,確定服務(wù)的范圍以及合約細節(jié)是挑戰(zhàn)。

    軟件維護中應(yīng)注意的問題(三),維護費用估算,參數(shù)模型,M=P+K e,(cd),M,是維護用的總工作量,,P,是生產(chǎn)性工作量,,K,是經(jīng)驗常數(shù),,c,是復(fù)雜程度,,d,是維護人員對軟件的熟悉程度生產(chǎn)性成本包括分析評價、修改設(shè)計和編碼等非生產(chǎn)性成本包括程序理解、數(shù)據(jù)結(jié)構(gòu)解釋、接口特點和性能限度等基于經(jīng)驗,專家判斷、類推、工作分解結(jié)構(gòu),軟件維護過程模型,IEEE,維護模型圖,分類與鑒別階段,分析階段,設(shè)計階段,實現(xiàn)階段,系統(tǒng)測試階段,驗收測試階段,交付階段,修改輸入,軟件維護技術(shù),程序的理解,軟件再工程,軟件逆向工程,程序的理解,為了有效維護,需要閱讀和理解程序,方法:,1,、文檔理解、代碼理解、注釋理解,2,、代碼瀏覽工具(,Source Insight,等),程序理解的任務(wù):以軟件維護、升級和再工程為目的,在不同的抽象級別上建立基本軟件的概念模型,包括從代碼本身的模型到基本應(yīng)用領(lǐng)域的模型,即,建立從問題,/,應(yīng)用域到程序設(shè)計,/,實現(xiàn)域的映射集,程序理解的具體任務(wù),通過檢查單個的程序設(shè)計結(jié)構(gòu),程序被表示成,抽象語法樹、符號表或普通源文本包括手工代碼閱讀、人工提取、程序分析、靜態(tài)分析和動態(tài)分析等。

    盡量做到程序,隱含信息,的顯性表示及程序,內(nèi)部關(guān)系,的可視化如控制流、數(shù)據(jù)流分析、程序視圖構(gòu)造等從源代碼中,提取信息,,并存放在通用的數(shù)據(jù)庫中,然后通過查詢語言對數(shù)據(jù)庫進行查詢檢查程序構(gòu)造過程中的,結(jié)構(gòu)關(guān)系,,明確表示程序組成部分之間的依賴關(guān)系識別程序的,高層概念,,如標(biāo)準(zhǔn)算法、數(shù)據(jù)結(jié)構(gòu)、語法及語義匹配等軟件再工程,定義,軟件再工程(,Re-engineering,)指對現(xiàn)有軟件進行仔細審查和改造,對其進行,重新構(gòu)造,,使之成為一個新的形式,同時包括隨之產(chǎn)生的,對新形式的實現(xiàn),軟件再工程模型,數(shù)據(jù)重構(gòu),正向工程,庫存目錄分析,代碼重構(gòu),逆向工程,文檔重構(gòu),應(yīng)用系統(tǒng)的庫存目錄:系統(tǒng)規(guī)模、使用年限、業(yè)務(wù)重要程度等信息根據(jù)相關(guān)信息選擇再工程業(yè)務(wù),后分配資源系統(tǒng)可以正常運作,并可預(yù)見能夠支撐至終點,文檔不變文檔必須更新,但資源有限,部分重構(gòu)系統(tǒng)關(guān)鍵業(yè)務(wù),必須完全重構(gòu),則完全重構(gòu)某些老程序的體系結(jié)構(gòu)比較合理,但是,一些模塊的編碼方式卻是難于理解、測試和維護的代碼重構(gòu):不改變系統(tǒng)行為,只是對程序結(jié)構(gòu)進行改變和優(yōu)化,使其易于理解、測試和維護方法:分析源代碼,標(biāo)記與程序設(shè)計概念相違背的部分,重構(gòu)新代碼評審和測試。

    全范圍在工程活動,對當(dāng)前數(shù)據(jù)體系結(jié)構(gòu)進行分解,定義必要的數(shù)據(jù)模型,表示數(shù)據(jù)對象和屬性,進行質(zhì)量評審如數(shù)據(jù)結(jié)構(gòu)較差,進行再工程數(shù)據(jù)結(jié)構(gòu)改變影響體系結(jié)構(gòu)和代碼,,慎重,也稱為,革,新或,改,造整個 系統(tǒng)代碼、數(shù)據(jù)重構(gòu)正向工程過程應(yīng)用現(xiàn)代軟件工程的概念、原理、技術(shù)和方法,重新開發(fā)現(xiàn)有的某些應(yīng)用系統(tǒng)在大多數(shù)情況下,經(jīng)過正向工程過程后,得,出的軟件,不僅重新實現(xiàn)了現(xiàn)有系統(tǒng)的功能,而且增加了新功能,提高了整體性能軟件逆向工程,軟件逆向工程(,Software Reverse Engineering,)是分析目標(biāo)系統(tǒng),識別系統(tǒng)的構(gòu)件及其交互關(guān)系,并且,通過高層抽象或其他形式來展現(xiàn)目標(biāo)系統(tǒng),的過程方法:分析系統(tǒng),抽象系統(tǒng)和展現(xiàn)系統(tǒng),從而實現(xiàn)協(xié)助用戶理解系統(tǒng)的目的設(shè)計恢復(fù)的過程逆向工程過程,逆向工程主要內(nèi)容,一、數(shù)據(jù)的逆向工程,二、處理的逆向工程,三、用戶界面的逆向工程,四、逆向工程的工具,數(shù)據(jù)的逆向過程,一、數(shù)據(jù)結(jié)構(gòu)提取,1,、模式分析:通過分析現(xiàn)有的結(jié)構(gòu)化模式推出隱含的構(gòu)造與約束,以提供一個原始的物理模式2,、程序分析:分析應(yīng)用程序以及其他一些過程(如:觸發(fā)器)的代碼,以得到隱含的數(shù)據(jù)結(jié)構(gòu)和完整性約束。

    3,、數(shù)據(jù)分析:分析數(shù)據(jù),以得到暗含的數(shù)據(jù)結(jié)構(gòu)以及特性的數(shù)據(jù)模式,同時,對一些假設(shè)進行驗證4,、模式集成:合并上述過程所得到的不同模式,最終得到完整的邏輯模式,其中包含隱式和顯式的結(jié)構(gòu)和約束二、數(shù)據(jù)結(jié)構(gòu)的概念化,分為以下幾個步驟:去除過時的和技術(shù)性的結(jié)構(gòu)以及重命名;提取相關(guān)的語義信息;對被優(yōu)化的構(gòu)造進行識別和變形,(逆優(yōu)化);檢索每一個實現(xiàn)構(gòu)造中的源概念結(jié)構(gòu);以及規(guī)范化處理的逆向過程,為了理解過程抽象,需要在,不同的抽象級別,(系統(tǒng)級、程序級、構(gòu)件級、模式級和語句級)分析代碼,對大型系統(tǒng),通常用半自動方法完成逆向工程使用自動化工具幫助軟件工程師理解現(xiàn)有代碼的語義,然后將該過程的結(jié)果傳遞給重構(gòu)和正向工程工具以完成再工程過程用戶界面的逆向工程,弄清幾個問題:,界面必須處理的,基本動作,是什么?,系統(tǒng)對這些,動作的行為反應(yīng),的簡要描述是什么?,有哪些,界面的等價概念,是相關(guān)的?,逆向過程的工具,靜態(tài)模型逆向工具,Rational Rose,Rigi,JBPAS,動態(tài)模型逆向工具,SCED,ISVis,Borland Together,理論和技術(shù)還不夠完善,工具支持很重要,但是無法完全依賴本章小結(jié),軟件維護可以分為,糾錯性維護、適應(yīng)性維護、完善性維護、預(yù)防性維護,。

    軟件維護實踐中經(jīng)常會遇到各種困難,需要在技術(shù)、管理方面進行考慮,并對維護費用進行估算軟件維護按IEEE 維護過程模型可以分為,七個階段,程序的理解,對軟件維護具有重要意義,程序理解的任務(wù)就是要揭示程序的功能與實現(xiàn)機制軟件的再工程,是對現(xiàn)有軟件進行仔細審查和改造,進行重新構(gòu)造,最終成為一個新的形式,六種活動構(gòu)成了再工程的循環(huán)模型軟件逆向工程,包括數(shù)據(jù)逆向工程、處理逆向工程和用戶界面逆向工程作業(yè),為什么需要軟件維護?簡述軟件維護的主要種類簡述軟件可維護性中軟件自身的因素和軟件維護環(huán)境兩方面的內(nèi)容簡述,IEEE,軟件維護過程模型試從不同抽象級別闡述應(yīng)該如何理解程序,應(yīng)得到什么輸出什么是軟件的逆向工程?簡述其意義選擇你認為是最困難的一種逆向工程活動進行闡述,具體分析其難點所在什么是軟件的再工程?簡述其主要步驟。

    點擊閱讀更多內(nèi)容
    賣家[上傳人]:功夫足球
    資質(zhì):實名認證