中秋節(jié)作文結(jié)尾佳句(中秋節(jié)作文結(jié)尾怎么寫) 如何申請visa信用卡(信用卡開通visa) 八寶粥的配料和做法(八寶粥的配料和做法大全) Activex控件無法安裝解決辦法(activex控件裝入失敗) 怎么趕上早上六點(diǎn)的飛機(jī)?(怎么趕上早上六點(diǎn)的飛機(jī)航班) 魚珠膠的作用是什么(魚珠膠是什么膠水) 過年的時候 給親戚朋友們拜年要注意些啥?(過年哪些親戚需拜年) 烤香腸的做法(臺式烤香腸的做法) 大月氏讀yue還是rou(大月像高達(dá)) 菏澤商標(biāo)注冊流程有哪些?(菏澤商標(biāo)注冊流程有哪些企業(yè)) 怎樣養(yǎng)成牛奶肌(怎樣養(yǎng)成牛奶肌?) 三年級語文閱讀理解訓(xùn)練題及答案(三年級語文閱讀) 如何破解無線路由密碼(如何破解無線路由密碼設(shè)置) 深圳獅王教育(獅王教育) 手機(jī)QQ怎么免費(fèi)設(shè)置聊天背景(手機(jī)qq怎么設(shè)置聊天背景全部一樣) 品管員工自我評價(品管員工作職責(zé)) 摧枯拉朽怎么解釋(摧枯拉朽的解釋是什么) 《世界第一等》尤克里里譜-吉他譜(世界第一等吉他簡譜) 炒面的做法簡單好吃(炒面的做法) 拉鏈拉不動怎么辦、有什么妙招(拉鏈拉不動怎么辦,有什么妙招可以解決) ps的羽化是怎么使用的(ps羽化有幾種方法) pixiv加速器哪個好用(加速器哪個好用) 男人補(bǔ)腎吃什么最好(男人補(bǔ)腎吃什么最好?) win7系統(tǒng)下劍靈客戶端BNS崩潰報告錯誤的處理(劍靈總是客戶端錯誤) 成功人生的標(biāo)記是什么(成功人生) usdt是什么幣(usdt是什么幣是哪個的) iTunes Store是什么 iTunes Store怎么用(itunes store是什么東西) chip away是什么意思(chip是什么意思) 美發(fā)編發(fā)發(fā)型(美發(fā)編發(fā)發(fā)型女) 古詩游子吟ppt課件(游子吟古詩圖片) 蘑菇怎么拼讀(蘑菇怎么拼讀音節(jié)) 武尸奪戰(zhàn)力指數(shù)(武尸) 歐倫堡皮鞋的保養(yǎng)護(hù)理(歐倫堡皮鞋的保養(yǎng)護(hù)理是什么) 漢化補(bǔ)丁怎么用(vray漢化補(bǔ)丁怎么用) 千元以上回音壁音響推薦(回音壁音響5 1推薦) 皮凍家常做法(皮凍家常做法視頻) 推薦幾個非常好聽且適合睡覺聽的鋼琴曲(推薦幾個非常好聽且適合睡覺聽的鋼琴曲子) 減肥器材抖抖機(jī)有用嗎(減肥器材) vs是什么意思(vs是什么意思 漢語) 創(chuàng)建在線考試需要用到什么軟件?(在線考試的軟件有哪些) 葫蘆絲吹奏方法技巧?(葫蘆絲吹奏方法) 練習(xí)倒立的好方法(練倒立的技巧) 油茶的做法(油茶的做法和功效與作用) 《口袋西游》游戲評測(《口袋西游》游戲評測怎么樣) 喝白酒有哪些好處?(喝白酒有哪些好處呢) 初三作文 華為手機(jī)文件夾加密碼如何設(shè)置(華為手機(jī)文件夾加密碼如何設(shè)置密碼保護(hù)) 黃花梨木圖片大全 黃花梨木鑒別技巧(黃花梨木的鑒別方法) 四面體的體積公式有哪些(四面體的體積公式) 侍弄怎么拼音(侍弄拼音怎么讀音)
您的位置:首頁 >要聞 >

反向工程的合法性條件有哪些(反向工程)

導(dǎo)讀 關(guān)于反向工程的合法性條件有哪些,反向工程這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!1、首先

關(guān)于反向工程的合法性條件有哪些,反向工程這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!

1、首先聲明是轉(zhuǎn)來的,因為我回答你這個問題帶了個網(wǎng)址,就一直提示"敏感"回答不上0?引言??? 隨著計算機(jī)技術(shù)的迅速發(fā)展,計算機(jī)技術(shù)應(yīng)用的領(lǐng)域也逐漸擴(kuò)大,人們希望計算機(jī)這一智能體能夠解決各個領(lǐng)域的更多、更復(fù)雜的問題,從而也對計算機(jī)軟件產(chǎn)品的功能、質(zhì)量、開發(fā)成本和時間提出了越來越多的要求,軟件技術(shù)受到了前所未有的挑戰(zhàn)。

2、傳統(tǒng)的軟件工程主要關(guān)注新軟件的分析與設(shè)計,但隨著軟件系統(tǒng)的規(guī)模和復(fù)雜度日益增長,軟件的生命周期越來越長,軟件開發(fā)的很大一部分工作集中于維護(hù)和改造現(xiàn)有的軟件系統(tǒng),而這些現(xiàn)有系統(tǒng)的需求、設(shè)計決策、業(yè)務(wù)規(guī)則、歷史數(shù)據(jù)等統(tǒng)稱為遺產(chǎn)系統(tǒng)(LS,Legacy System),LS是一種巨大的、長期的投資,因為如何充分利用這些有用的資產(chǎn)對新系統(tǒng)的開發(fā)顯得尤其重要。

3、另一方面,隨著Internet技術(shù)的普及,Web用戶增多,很多軟件廠商需要將系統(tǒng)移植到Web上,進(jìn)一步加劇了對軟件維護(hù)的需求。

4、實踐研究表明,軟件資源預(yù)算的50%~80%消耗在對現(xiàn)有系統(tǒng)的維護(hù)上,而軟件維護(hù)者理解程序源代碼的時間要占整個軟件維護(hù)的47%~62%。

5、軟件維護(hù)已經(jīng)成為軟件工程面臨的重要課題之一,而正確和全面地理解軟件系統(tǒng)是對軟件進(jìn)行維護(hù)的前提,軟件逆向工程應(yīng)運(yùn)而生,成為軟件工程領(lǐng)域的一個新興分支,其目標(biāo)就是開發(fā)幫助人們理解已有軟件系統(tǒng)的方法、工具,為軟件系統(tǒng)的維護(hù)和演化提供支持。

6、??? 文中主要介紹逆向工程的基本概念、主要步驟、分析方法、研究現(xiàn)狀、存在的問題以及發(fā)展方向。

7、1 逆向工程的基本概念??? “逆向工程”這個名詞最早出現(xiàn)在對硬件產(chǎn)品的分析中,人們分析硬件產(chǎn)品以便改進(jìn)自己的產(chǎn)品。

8、M.G.Rekoffir將逆向工程定義為:對一個復(fù)雜的硬件系統(tǒng)實施有條理的檢查,以開發(fā)出關(guān)于這個系統(tǒng)的一組規(guī)范說明的過程。

9、在把這個概念應(yīng)用到軟件系統(tǒng)過程中,研究人員發(fā)現(xiàn)利用其中的許多方法可以獲得對系統(tǒng)以及系統(tǒng)結(jié)構(gòu)的理解。

10、然而,對一個硬件系統(tǒng)實施逆向工程,一般是為了得到這個系統(tǒng)的復(fù)制品,對一個軟件系統(tǒng)實施逆向工程,一般是為了獲得對這個系統(tǒng)在設(shè)計層次上的理解,以便于系統(tǒng)的維護(hù)、鞏固、移植、改進(jìn)。

11、??? 軟件逆向工程的基本原理是抽取軟件系統(tǒng)的主要部分而隱藏細(xì)節(jié),然后使用抽取出的實體在高層上描述軟件系統(tǒng)。

12、在軟件工程領(lǐng)域,迄今為止沒有統(tǒng)一的逆向工程定義,較為通用的是Elliot Chikofsky和Cross1990年定義的逆向工程的相關(guān)術(shù)語。

13、軟件工程通常被認(rèn)為是開發(fā)一個新的系統(tǒng),盡管軟件工程也包括逆向工程和再工程,為了避免對軟件工程含義的誤解,引進(jìn)了正向工程的概念。

14、??? (1)正向工程(Forward Engineering):從系統(tǒng)的高層抽象和邏輯上獨(dú)立于實現(xiàn)的設(shè)計到系統(tǒng)的物理設(shè)計的傳統(tǒng)過程,具體地說是從用戶的需求到高層設(shè)計,再到底層設(shè)計,最后到實現(xiàn)的過程。

15、??? (2)逆向工程(Reverse Engineering):對系統(tǒng)進(jìn)行分析,以確定系統(tǒng)的組件和組件之間的相互作用,以其他形式表示系統(tǒng),或在較高的抽象層次上表示系統(tǒng)的過程。

16、值得說明的是,在對一個系統(tǒng)實施逆向工程時,并不改變這個系統(tǒng)本身,也不包括在此系統(tǒng)上構(gòu)建新的系統(tǒng)的過程。

17、??? (3)重構(gòu)(Restructuring):保持系統(tǒng)外部行為(功能和語義)的前提下,在統(tǒng)一抽象層次上改變表示形式。

18、??? (4)再工程(Reengineering):通過逆向工程、重構(gòu)和正向工程對現(xiàn)有系統(tǒng)進(jìn)行審查和改造,將其重組為一種新形式。

19、??? (5)設(shè)計恢復(fù)(Design Recovery):結(jié)合目標(biāo)系統(tǒng)、領(lǐng)域知識和外部消息認(rèn)定更高層次的抽象。

20、其中,再工程、設(shè)計恢復(fù)不改變系統(tǒng),重構(gòu)改變了系統(tǒng)。

21、但不改變其功能,再工程涉及到正向工程與逆向工程的聯(lián)合使用,逆向工程解決程序的理解問題,正向工程檢驗?zāi)男┕δ苄枰黾?、保留和刪除,再工程改變了系統(tǒng)的功能和方向,是最根本和最有深遠(yuǎn)影響的擴(kuò)展。

22、??? 圖1顯示這些概念之間的關(guān)系。

23、2 主要步驟和分析方法??? 由逆向工程定義可知:軟件逆向工程的任務(wù)包括分析系統(tǒng)、抽象系統(tǒng)和展現(xiàn)系統(tǒng),從而實現(xiàn)協(xié)助用戶理解系統(tǒng)的目的。

24、??? 分析系統(tǒng)是指分析系統(tǒng)的結(jié)構(gòu)及運(yùn)行過程,但不管目標(biāo)系統(tǒng)面向何種應(yīng)用領(lǐng)域,分析系統(tǒng)不外乎是分析系統(tǒng)的靜態(tài)信息和動態(tài)信息。

25、目標(biāo)系統(tǒng)面對不同的應(yīng)用領(lǐng)域,要實現(xiàn)抽象目標(biāo)系統(tǒng)的任務(wù),需要領(lǐng)域知識和專家的經(jīng)驗。

26、展現(xiàn)系統(tǒng)最好的方式是使系統(tǒng)可視化。

27、圖1 關(guān)系圖??? 現(xiàn)有的逆向工程分析方法主要有以下4種:??? (1)詞法分析和語法分析。

28、??? 該方法主要是對程序源碼進(jìn)行分析,得到程序信息的多種有用表示,其中最常用的就是交叉引用列表。

29、通過語法分析可以得到兩類表示:分析樹(parse tree)、抽象語法樹AST(abstract syntax tree),其中AST是更復(fù)雜的程序分析工具基礎(chǔ),包含了和程序的實際內(nèi)容相關(guān)的細(xì)節(jié)。

30、??? (2)圖形化方法。

31、??? 圖形化方法包括控制流分析、數(shù)據(jù)流分析以及程序依賴圖。

32、控制流分析是在確定程序語法結(jié)構(gòu)之后進(jìn)行。

33、數(shù)據(jù)流分析關(guān)注于解決程序中從定義到使用的過程的相關(guān)的問題,比控制流分析要復(fù)雜得多。

34、程序依賴圖是數(shù)據(jù)流分析的進(jìn)一步改進(jìn),比數(shù)據(jù)流分析更復(fù)雜。

35、在程序依賴圖中,控制流和數(shù)據(jù)流依賴放在一起處理,程序依賴圖還具有這樣的結(jié)構(gòu)特性:一個程序依賴圖描述了一個控制依賴的區(qū)域。

36、??? (3)程序切片。

37、??? 切片技術(shù)來源于數(shù)據(jù)流分析方法,已經(jīng)成為很多程序理解工具的基礎(chǔ)。

38、一個程序切片是由程序中的一些語句和判定表達(dá)式組成的集合。

39、這些語句和判定表達(dá)式可能會影響在程序的某個位置上所定義或使用的變量的值。

40、利用切片技術(shù)可以將關(guān)注點(diǎn)確定在一個較小范圍而不是關(guān)注整個程序。

41、??? (4)動態(tài)分析。

42、??? 靜態(tài)分析是對程序源碼進(jìn)行分析。

43、動態(tài)分析則是在程序運(yùn)行時進(jìn)行分析,基本方法是對程序進(jìn)行植入。

44、植入是在一種在全局范圍內(nèi)更改源代碼以添加額外操作的過程。

45、這種方法的基本原理是:利用代碼的結(jié)構(gòu)信息,依據(jù)固定的規(guī)則,將軟件觸發(fā)器添加到代碼中。

本文分享完畢,希望對大家有所幫助。

標(biāo)簽:

免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!

最新文章