在軟件生存周期中,將某種形式表示的軟件轉(zhuǎn)換成更高抽象形式表示的軟件的活動(dòng)屬于()。
A、逆向工程B
解析
答案選B
通常產(chǎn)品設(shè)計(jì)過(guò)程是一個(gè)從設(shè)計(jì)到產(chǎn)品的過(guò)程,即設(shè)計(jì)人員首先在大腦中構(gòu)思產(chǎn)品的外形、性能和大致的 技術(shù)參數(shù)等,然后在詳細(xì)設(shè)計(jì)階段完成各類數(shù)據(jù)模型,最終將這個(gè)模型轉(zhuǎn)入到研發(fā)流程中,完成產(chǎn)品的整 個(gè)設(shè)計(jì)研發(fā)周期。這就是“正向設(shè)計(jì)”過(guò)程。 而逆向工程,又名反向工程( Reverse Engineering - RE),則是一個(gè)從產(chǎn)品到設(shè)計(jì)的過(guò)程,就是根據(jù)已經(jīng) 存在的產(chǎn)品,反向推出產(chǎn)品設(shè)計(jì)數(shù)據(jù)(包括各類設(shè)計(jì)圖或數(shù)據(jù)模型)的過(guò)程。早期的船舶工業(yè)中常用的船 體放樣設(shè)計(jì)就是逆向工程的很好實(shí)例。 在軟件開(kāi)發(fā)行業(yè),基于某個(gè)軟件,以反匯編閱讀源碼的方式去推斷其數(shù)據(jù)結(jié)構(gòu)、體系結(jié)構(gòu)和程序設(shè)計(jì)信息 成為軟件逆向工程技術(shù)關(guān)注的主要對(duì)象。軟件逆向技術(shù)的目的是用來(lái)研究和學(xué)習(xí)先進(jìn)的技術(shù),特別是當(dāng)手 里沒(méi)有合適的文檔資料,而又很需要實(shí)現(xiàn)某個(gè)軟件的功能的時(shí)候。因此很多軟件開(kāi)發(fā)組織為了壟斷技術(shù), 在軟件安裝之前,要求用戶同意不去逆向研究。 根據(jù)黃柏素、梅宏組織翻譯, Roger S.Pressman編著的《軟件工程—實(shí)踐者的研究方法》第 4 版的陳述: 逆向工程抽象層次應(yīng)該盡可能高,即逆向工程過(guò)程應(yīng)該能夠?qū)С鲞^(guò)程的設(shè)計(jì)表示 (一種低層的抽象 );程序 和數(shù)據(jù)結(jié)構(gòu)信息 (稍高一點(diǎn)層次的抽象 );數(shù)據(jù)和控制流模型 (一種相對(duì)高層的抽象 );以及實(shí)體—關(guān)系模型 (一 種高層抽象 )。隨著抽象層次增高,軟件工程師獲得更有助于理解程序的信息。
軟件重構(gòu)修改源代碼和 /或數(shù)據(jù)以使得它適應(yīng)未來(lái)的變化。 通常,重構(gòu)并不修改整體的程序體系結(jié)構(gòu), 它趨 向于關(guān)注個(gè)體模塊的設(shè)計(jì)細(xì)節(jié)以及定義在模塊中的局部數(shù)據(jù)結(jié)構(gòu)。如果重構(gòu)擴(kuò)展到模塊邊界之外并涉及軟 件體系結(jié)構(gòu),則重構(gòu)變成了正向設(shè)計(jì)過(guò)程。 代碼重構(gòu)的目標(biāo)是生成可提供相同功能的設(shè)計(jì),但是該設(shè)計(jì)比原程序有更高的質(zhì)量