freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

清華軟件工程:第13章軟件維護(hù)與再工程-資料下載頁(yè)

2025-02-09 18:08本頁(yè)面
  

【正文】 是難于理解、測(cè)試和維護(hù)的。在這種情況下,可以重構(gòu)可疑模塊的代碼。 – 為了完成代碼重構(gòu)活動(dòng),首先用重構(gòu)工具分析源代碼,標(biāo)注出和結(jié)構(gòu)化程序設(shè)計(jì)概念相違背的部分。然后重構(gòu)有問題的代碼 (此項(xiàng)工作可自動(dòng)進(jìn)行 )。最后,復(fù)審和測(cè)試生成的重構(gòu)代碼 (以保證沒有引入異常 )并更新代碼文檔。 57 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 軟件再工程過程 ? 數(shù)據(jù)重構(gòu) – 數(shù)據(jù)重構(gòu)發(fā)生在相當(dāng)?shù)偷某橄髮哟紊?,它是一種全范圍的再工程活動(dòng)。在大多數(shù)情況下,數(shù)據(jù)重構(gòu)始于逆向工程活動(dòng),分解當(dāng)前使用的數(shù)據(jù)體系結(jié)構(gòu),必要時(shí)定義數(shù)據(jù)模型,標(biāo)識(shí)數(shù)據(jù)對(duì)象和屬性,并從軟件質(zhì)量的角度復(fù)審現(xiàn)存的數(shù)據(jù)結(jié)構(gòu)。 58 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 軟件再工程過程 ? 正向工程 – 正向工程過程應(yīng)用軟件工程的原理、概念、技術(shù)和方法來重新開發(fā)某個(gè)現(xiàn)有的應(yīng)用系統(tǒng)。在大多數(shù)情況下,被再工程的軟件不僅重新實(shí)現(xiàn)現(xiàn)有系統(tǒng)的功能,而且加入了新功能和提高了整體性能。 59 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 逆向工程 ? 逆向工程是把軟件源程序還原為軟件文檔或軟件設(shè)計(jì)的過程。通過逆向工程,可以從更高的抽象度來觀察軟件。抽象度的多少可由抽象的層次,文檔的完整性,工具等因素決定。 ? 逆向工程來源于硬件世界。硬件廠商總想弄到競(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à)值的信息。 60 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 逆向工程 ? 逆向工程導(dǎo)出的信息可分為四個(gè)抽象層次 – 實(shí)現(xiàn)級(jí) :包括程序的抽象語法樹、符號(hào)表等信息; – 結(jié)構(gòu)級(jí) :包括反映程序分量之間相互依賴關(guān)系的信息,如調(diào)用圖、結(jié)構(gòu)圖等; – 功能級(jí) :包括反映程序段功能及程序段之間關(guān)系的信息; – 領(lǐng)域級(jí) :包括反映程序分量或程序諸實(shí)體與應(yīng)用領(lǐng)域概念之間對(duì)應(yīng)關(guān)系的信息。對(duì)于一項(xiàng)具體的維護(hù)任務(wù),一般不必導(dǎo)出所有抽象級(jí)別上的信息。如代碼重構(gòu)任務(wù),只需獲得實(shí)現(xiàn)級(jí)信息即可。 61 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 逆向工程 ? 根據(jù)源程序的類別不同,逆向工程還可以分為: 對(duì)用戶界面的逆向工程 、 對(duì)數(shù)據(jù)的逆向工程和對(duì)理解的逆向工程 。 ? 現(xiàn)代的軟件一般都擁有華麗的界面,當(dāng)準(zhǔn)備對(duì)舊的軟件進(jìn)行用戶界面的逆向工程時(shí),必須先理解舊軟件的用戶界面,并且刻畫出界面的結(jié)構(gòu)和行為。 62 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 逆向工程 ? 對(duì)數(shù)據(jù)的逆向工程:由于程序中存在許多不同種類的數(shù)據(jù),例如內(nèi)部的數(shù)據(jù)結(jié)構(gòu),以及底層的數(shù)據(jù)庫(kù)和外部的文件。其中對(duì)內(nèi)部的數(shù)據(jù)結(jié)構(gòu)的逆向工程可以通過檢查程序代碼以及變量來完成;而對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)的重構(gòu)可通過建立一個(gè)初始的對(duì)象模型,確定侯選鍵,精化實(shí)驗(yàn)性的類,定義一般化,以及發(fā)現(xiàn)關(guān)聯(lián)來完成。 ? 對(duì)理解的逆向工程,為了去理解過程的抽象,代碼的分析必須在不同的層次進(jìn)行:系統(tǒng),程序,部件,模式和語句。對(duì)于大型系統(tǒng),逆向工程通常用半自動(dòng)化的方法來完成。 63 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 逆向工程 ? 逆向工程中用于恢復(fù)信息的方法主要有四類 – 用戶指導(dǎo)下的搜索與變換 :這類方法用于導(dǎo)出實(shí)現(xiàn)級(jí)和結(jié)構(gòu)級(jí)信息。這類方法一般可產(chǎn)生模塊的略圖( outline)、流程圖和交叉訪問表。 – 變換方法 :這類方法可用于恢復(fù)實(shí)現(xiàn)級(jí)、結(jié)構(gòu)級(jí)和功能級(jí)的信息。這類方法可用工具實(shí)現(xiàn),如靜態(tài)分析,調(diào)用圖、控制流圖生成等。 64 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 逆向工程 – 基于領(lǐng)域知識(shí)的方法 :這類方法用于恢復(fù)功能級(jí)和領(lǐng)域級(jí)信息。領(lǐng)域知識(shí)用規(guī)則庫(kù)表示,用已確定或假定的領(lǐng)域概念與代碼之間的對(duì)應(yīng)關(guān)系,推導(dǎo)進(jìn)一步的假設(shè),最后導(dǎo)出程序的功能。這類方法的不確定性很大,目前尚無成熟的工具。 – 鉛板恢復(fù) :這類方法僅適用于推導(dǎo)實(shí)現(xiàn)級(jí)和結(jié)構(gòu)級(jí)信息。這類方法用于識(shí)別程序設(shè)計(jì)“鉛板”或公共結(jié)構(gòu),鉛板既可是一個(gè)簡(jiǎn)單算法(如二變量互換),也可是相對(duì)復(fù)雜的成分(如冒泡排序)。 65 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 習(xí)題 ? 請(qǐng)討論使軟件維護(hù)成本居高不下的因素。如何盡可能降低這些因素的影響 ? ? 一個(gè)大型大學(xué)有一個(gè)大型計(jì)算機(jī)系統(tǒng),用于存儲(chǔ)和管理所有學(xué)生和教職工的信息。該系統(tǒng):已經(jīng)使用了 25年,它采用 cobol結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)開發(fā),并與關(guān)系數(shù)據(jù)庫(kù)通信;它運(yùn)行在一臺(tái) IBM主機(jī)上;有 50多萬行代碼。該系統(tǒng)已經(jīng)進(jìn)行過多次修改,既有經(jīng)過策劃的修改,也有快速修改,現(xiàn)在維護(hù)的成本過高。認(rèn)識(shí)到有這些問題,大學(xué)希望利用面向?qū)ο蟮拈_發(fā)優(yōu)勢(shì),但是不幸的是,維護(hù)這個(gè)系統(tǒng)的 90%以上的員工都是新人,并不熟悉系統(tǒng)的實(shí)現(xiàn)。請(qǐng)確定軟件維護(hù)人員需要完成的任務(wù)。 66 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 習(xí)題 ? 軟件維護(hù)過程是如何進(jìn)行的?為什么要進(jìn)行軟件可維護(hù)性分析? ? 考慮你在近幾年從事過的任何工作,描述你在其中工作的業(yè)務(wù)過程。使用 BPR模型來建議對(duì)該過程的改變以使其更為高效。 ? 對(duì)業(yè)務(wù)過程再工程的功效進(jìn)行研究,給出對(duì)該方法的正面的和負(fù)面的論據(jù)。 67 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 習(xí)題 ? 提出一種對(duì)紙和墨水或傳統(tǒng)的電子文檔的替代物,它可作為文檔重構(gòu)的基礎(chǔ)。[提示:考慮新的能夠用于傳達(dá)軟件的目的的描述技術(shù)。] ? 獲取三個(gè)逆向工程工具的產(chǎn)品文獻(xiàn),并給出它們的特征。 ? 在重構(gòu)和正向工程之間存在的細(xì)微不同是什么? ? 如何說服正在開發(fā)新系統(tǒng)的客戶在可重用性和可測(cè)試性上增加預(yù)算? ? 分析一下當(dāng)前主流 IDE對(duì)逆向工程,重構(gòu)和正向工程的支持程度。 68 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程 演講完畢,謝謝觀看!
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1