亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺論基于不同語言的軟件流程再造

        2012-04-29 00:44:03饒建農(nóng)湯杰
        電腦知識與技術(shù) 2012年20期
        關(guān)鍵詞:逆向工程

        饒建農(nóng) 湯杰

        摘要:隨著計算機技術(shù)的飛速發(fā)展,軟件系統(tǒng)的更新就成了用戶必須要面對的問題。該課題探討運用軟件流程再造方法如何在原有系統(tǒng)的基礎(chǔ)上開發(fā)新的系統(tǒng)。實驗結(jié)果表明,如果編程語言間在結(jié)構(gòu)和內(nèi)置函數(shù)上存在很大差異,那么從原有的系統(tǒng)中可以獲得其所描述的程序功能。

        關(guān)鍵詞:遺贈系統(tǒng);軟件流程再造;逆向工程;計算機輔助軟件工程(CASE);統(tǒng)一建模語言(UML)

        中圖分類號:TP311文獻標(biāo)識碼:A文章編號:1009-3044(2012)20-4875-04

        Software Process Reengineering Based on Different Languages

        RAO Jian-nong, TANG Jie

        (Department of Computer Science, Shaozhou Normal Branch School, Shaoguan University, Shaoguan 512026, China)

        Abstract: With the rapid development of computer technology, the software system updates became users have to face problems.This top ic discussed using the software process reengineering method in the original system how developed on the base of the new system.The ex perimental results show that, if the programming language in the structure and internal function differ greatly from the original, so the sys tem can obtain the described procedure function.

        Key words: legacy systems; software re-engineering; reverse engineering; computer-aided software engineering(CASE); unified modeling language(UML)

        1介紹

        許多公司,存在著舊的軟件系統(tǒng)仍然提供必要的商業(yè)服務(wù)的現(xiàn)象。這種系統(tǒng)被稱為遺贈系統(tǒng)。這種遺贈系統(tǒng)的維護帶來了三個顯著的問題:系統(tǒng)通常由不同的程序員調(diào)整過;系統(tǒng)的調(diào)整通常是每過一段時間之后進行的,可能是10到20年;多數(shù)情況下都缺少系統(tǒng)文件。

        因此,對于個人或者公司來說完整理解整個系統(tǒng)是不可能的。當(dāng)這些問題在未來達到某種程度,當(dāng)維護成本昂貴或者太復(fù)雜的時候,系統(tǒng)就需要更新。

        當(dāng)更新遺贈系統(tǒng)時,有三種方法可供選擇:

        第一種叫作“cold turkey”,也就是拋棄舊的系統(tǒng),開發(fā)新的系統(tǒng)。

        第二種就是在不改變舊系統(tǒng)功能的基礎(chǔ)上,重新組織和構(gòu)建系統(tǒng)。這項工作被稱為軟件流程再造。

        第三種觀點就是在舊系統(tǒng)仍然使用的過程中,按照逐漸增加的功能慢慢地重建系統(tǒng)。這種觀點被稱為“chicken little”。

        第二種方法是優(yōu)先考慮的,因為它相比開發(fā)一項全新的系統(tǒng)有兩個主要的優(yōu)勢:減少了風(fēng)險和成本。

        2軟件流程再造的概念

        2.1軟件流程再造的介紹

        改變軟件系統(tǒng),不改變其功能,稱為軟件再造。軟件再造和通常的軟件開發(fā)比較,不同的是早期開發(fā)的系統(tǒng)被用作系統(tǒng)再造過程中的一種輸入,如圖1所示。

        圖1軟件流程再造過程

        軟件改造主要是使系統(tǒng)具有更強的可維護性和穩(wěn)定性,以此來延長軟件的使用壽命,減少維護成本。有時軟件改造由于新的要求是必須要進行的,而這一要求就不包括在原系統(tǒng)內(nèi)。新的要求比如說有:改變原有系統(tǒng)運行環(huán)境或者需要執(zhí)行新的功能。

        現(xiàn)有的系統(tǒng)可以用于產(chǎn)生軟件規(guī)格,以此來理解新系統(tǒng)。同時現(xiàn)有的系統(tǒng)也可用于轉(zhuǎn)換系統(tǒng)的的運行語言(比如說從C++到Java)。由于系統(tǒng)可維護性和可檢驗性需求的日益增長,軟件流程再造領(lǐng)域變得越來越重要。

        2.2軟件流程再造的過程

        軟件再造的目的是建立一個過程,在此過程中,幾個階段是可以定義的。軟件再造將這一過程分解成五個關(guān)鍵的階段:初步清單分析、封裝、應(yīng)用分析、產(chǎn)品標(biāo)準(zhǔn)化和設(shè)計恢復(fù)。

        2.2.1初步清單分析

        在軟件改造進行之前,對于現(xiàn)有系統(tǒng)的目錄分析必須進行。這樣做是為了確定整個系統(tǒng)再造結(jié)果的范圍。在這個階段中,開發(fā)系統(tǒng)組件的詳細目錄是不必要的。主要目的是測定在這一過程中軟件應(yīng)當(dāng)達到的程度。所需系統(tǒng)的需求規(guī)格說明也將在這一階段產(chǎn)生。

        2.2.2封包

        封包對流程改造是必要的,因為它確定所有的系統(tǒng)是被識別的。這一階段將指導(dǎo)系統(tǒng)識別所有可能出現(xiàn)的組件,同時也會發(fā)現(xiàn)不是系統(tǒng)組成部分的組件,可能使用到軟件工具,可能產(chǎn)生自動分析。使用手工和自動分析相結(jié)合的分析方式將會在最短的時間內(nèi)提供最精確的詳細目錄數(shù)量。

        2.2.3應(yīng)用分析

        當(dāng)應(yīng)用分析執(zhí)行的時候,有兩個屬性需要考慮:支持系統(tǒng)功能需求的能力;系統(tǒng)的設(shè)計和使用技術(shù)。這個階段為流程再造過程中什么需要重點改進提供了洞察力,主要目的是更好地了解功能實現(xiàn)和如何提高系統(tǒng)的技術(shù)質(zhì)量。

        2.2.4產(chǎn)品標(biāo)準(zhǔn)化

        產(chǎn)品標(biāo)準(zhǔn)化把一個現(xiàn)有的系統(tǒng)轉(zhuǎn)變成一個執(zhí)行起來更簡單的系統(tǒng),在功能和技術(shù)方面更接近于現(xiàn)有系統(tǒng)。通過這一階段,軟件在維護和運行方面變得更有效,系統(tǒng)對于來自于內(nèi)外部的壓力也會變得更敏感。舉例來講,當(dāng)系統(tǒng)的功能和技術(shù)方面得到完善的時候,合并系統(tǒng)中新的組件也變得更容易。

        產(chǎn)品標(biāo)準(zhǔn)化的主要目的是通過不同的程序員使用不同的運行方式和技術(shù),經(jīng)過幾年的系統(tǒng)更新之后完善現(xiàn)有系統(tǒng)。

        2.2.5設(shè)計恢復(fù)

        改造過程的最后階段就是設(shè)計恢復(fù)。設(shè)計恢復(fù)通過利用合并元素轉(zhuǎn)變成CASE工具的可能性,抓取現(xiàn)有系統(tǒng)設(shè)計中的元素。這一階段提供了正確地驗證系統(tǒng)功能和技術(shù)方面的能力。產(chǎn)生于這一階段的文件描述了系統(tǒng)的幾個功能:系統(tǒng)的主要組成部分、提供系統(tǒng)功能的技術(shù)、使用該系統(tǒng)的應(yīng)用程序、與其他系統(tǒng)的接口和系統(tǒng)的體系結(jié)構(gòu)。

        2.3軟件再造過程中的活動

        在軟件流程再造的每一個階段,合并活動是可能的。有五個可以解釋和研究的活動:源代碼轉(zhuǎn)化、運行結(jié)構(gòu)升級、運行模塊、數(shù)據(jù)再造和逆向工程。

        2.3.1源代碼轉(zhuǎn)化

        源代碼轉(zhuǎn)化是軟件再造中最簡單的形式。源代碼轉(zhuǎn)化的原因可能是缺乏維護和支持系統(tǒng)的專業(yè)化人員,或者是缺乏對硬件平臺的更新。源代碼轉(zhuǎn)化可以分成兩個不同的種類,源代碼翻譯和源代碼轉(zhuǎn)換。

        2.3.2運行結(jié)構(gòu)升級

        由于計算機硬件的限制,內(nèi)存的最優(yōu)化成為許多計算機程序有復(fù)雜結(jié)構(gòu)的原因之一。程序結(jié)構(gòu)不足的另一個原因是程序員在軟件開發(fā)中有限的知識和技術(shù)。因此,程序結(jié)構(gòu)的完善,可以使程序更容易被理解和維護。

        程序結(jié)構(gòu)的完善可以自動完成。通過自動分析可以生成一張圖表,顯示程序運行的流程。簡化和轉(zhuǎn)換技術(shù)可以應(yīng)用到生成的圖表而不改變其語義。通過這種技術(shù),不能使用的代碼被識別出來并被刪除。一旦簡化完成,新的系統(tǒng)應(yīng)運而生。

        2.3.3程序模塊化

        程序模塊化是重組程序的過程,因此相關(guān)的程序部分被聚集在模塊或者對象中。程序模塊化通過檢測代碼手工完成。不同的工具能夠幫助實現(xiàn)瀏覽和可視化,但是自動化的過程實際上是不可能的。

        程序模塊化的實現(xiàn)是為了簡化維護工作,提高程序的理解,加強程序各部分之間的耦合。在程序模塊化的過程中可能產(chǎn)生幾種不同類型的模塊,包括:數(shù)據(jù)抽象化、硬件模塊、功能模塊和程序支持模塊。

        2.3.4數(shù)據(jù)流程再造

        數(shù)據(jù)流程再造是在系統(tǒng)中分析和重新組織數(shù)據(jù)結(jié)構(gòu)的過程(有時是數(shù)據(jù)評價),使得系統(tǒng)更容易理解。這種再造可能是從一個文件為基礎(chǔ)的系統(tǒng)轉(zhuǎn)換到一個數(shù)據(jù)管理為基礎(chǔ)的系統(tǒng)或從一個數(shù)據(jù)庫管理系統(tǒng)轉(zhuǎn)換到另外一個數(shù)據(jù)庫管理系統(tǒng)。軟件的改變可能影響到數(shù)據(jù)存儲,數(shù)據(jù)格式和數(shù)據(jù)值。數(shù)據(jù)再造的目的是建立易于管理的數(shù)據(jù)環(huán)境。

        2.3.5逆向工程

        逆向工程是正向工程的相反表達。正向工程通常被認為是從高級理論說明向低級詳細執(zhí)行轉(zhuǎn)換的過程。逆向工程的主要目的是提高軟件系統(tǒng)的可維護性和可理解性。當(dāng)從一個系統(tǒng)的源代碼中提煉出一個系統(tǒng)的設(shè)計和規(guī)格時,可以使用逆向工程。

        通過自動化分析搜集來的注釋和信息儲存在系統(tǒng)信息儲備庫中。信息儲備庫用來生成不同種類的文件,比如程序和數(shù)據(jù)結(jié)構(gòu)圖表。當(dāng)系統(tǒng)設(shè)計文件生成之后,仍然可以向信息儲備庫中增加新的信息。這樣做是為了重新生成系統(tǒng)規(guī)格。

        逆向工程和正向工程可以有相同的步驟,但步驟的順序是相反的,如圖2所示。

        圖2逆向工程與正向工程

        2.4技術(shù)支持

        軟件設(shè)計中最常用的輔助技術(shù)是計算機輔助軟件工程(CASE)。逆向工程學(xué)正快速的成為未來CASE工具使用中重要的組成部分。CASE工具為設(shè)計和文件編制傳統(tǒng)結(jié)構(gòu)編程技術(shù),提供了自動的方法。CASE工具可被用于從源代碼中生成UML圖表,同時從UML圖表中產(chǎn)生新的源代碼。

        CASE工具在軟件再造過程中的作用是很重要的,結(jié)合手工分析源代碼,能提高生產(chǎn)力,保證系統(tǒng)的高質(zhì)量。

        3實例分析與實施

        該文以某公司開發(fā)的電子鎖系統(tǒng)作為研究用例。該系統(tǒng)用磁卡和智能卡作為電子鑰匙,是用基于MS-DOS系統(tǒng)的C語言開發(fā)的。由于計算機技術(shù)的發(fā)展,現(xiàn)有系統(tǒng)已經(jīng)不能滿足市場的需要,因此要再造系統(tǒng)。新系統(tǒng)用Visual Basic語言開發(fā),運行在Win dows平臺之上,新設(shè)計模型用UML開發(fā)。

        3.1目的

        案例研究的主要目的是獲得對現(xiàn)有系統(tǒng)的更多認識,同時發(fā)現(xiàn)代碼和新系統(tǒng)重新執(zhí)行的重要算法。檢查和評估現(xiàn)有系統(tǒng)的功能導(dǎo)向結(jié)構(gòu)是為了在面向?qū)ο蟮姆绞较略O(shè)計新的結(jié)構(gòu)。這樣能夠發(fā)現(xiàn)和檢查重要文件的信息,同時刪除不相關(guān)的文件。

        3.2實施

        為了實現(xiàn)案例研究的目的,采用了2.2節(jié)中所提到的軟件流程再造的方法。

        實施包括對帶有文件描述和組件圖表的現(xiàn)有系統(tǒng)的概述。對現(xiàn)有系統(tǒng)的進一步分析也包括刪除舊文件,調(diào)查剩余文件。最后,解決新設(shè)計的開發(fā)和完成對UML圖表的解釋。

        3.2.1文件描述

        經(jīng)過初步目錄分析,獲得現(xiàn)有系統(tǒng)的基本情況:文件數(shù)量和文件種類,同時產(chǎn)生需求規(guī)格。

        3.2.2組件圖表

        為了獲得對相關(guān)文件如何連接的理解,可以使用組件圖表。組件是程序中的獨立部分,它的任務(wù)就是處理邏輯上連接起來的數(shù)據(jù)。

        在本案例中,為了更好的理解如何設(shè)計程序,采用了UML圖表,如圖3所示。

        在UML模塊中,管理員和用戶的身份是可識別的。管理員有權(quán)增加,刪除和更新與系統(tǒng)連接的數(shù)據(jù)庫。數(shù)據(jù)庫儲存所有來自于系統(tǒng)的相關(guān)數(shù)據(jù)。用戶得到所有卡片或者卡片組和編碼卡片的信息,但是用戶無權(quán)增加,刪除和更新數(shù)據(jù)庫。

        3.2.3數(shù)據(jù)庫的應(yīng)用

        為了了解所有文檔數(shù)據(jù),對程序結(jié)構(gòu)進行了改進,同時使用數(shù)據(jù)流程改造工程。

        數(shù)據(jù)庫用于儲存文檔數(shù)據(jù)信息。這些信息來源于源代碼和數(shù)據(jù)文件。采用數(shù)據(jù)庫后,獲得和保存信息變得更容易、更有效,而且信息更具結(jié)構(gòu)化,也更容易了解系統(tǒng)的總體內(nèi)容。此外,通用函數(shù)連接到數(shù)據(jù)庫也更容易。這就減少了系統(tǒng)增加文件時,改變源代碼的需要。

        3.3過程分析

        根據(jù)節(jié)2所述,軟件流程再造的方法分成不同的階段和行為。這些階段和行為在再造的過程有些被使用,有些沒被使用,如表1所示。

        表1研究案例中的階段和行為

        4結(jié)論

        實驗表明:軟件流程再造是一個非常有潛力的領(lǐng)域。流程再造不僅僅是翻譯源代碼,更主要的是更新程序的功能。理論上講,從功能導(dǎo)向的程序語言轉(zhuǎn)換到主體導(dǎo)向的程序語言是非常復(fù)雜的,甚至是不可能的,除了語法上的不同,還有完全不同的程序結(jié)構(gòu)。

        通過案例的實施,達到了兩個目的:第一個就是軟件更新到什么程度要重寫新的代碼;第二個目的,語言轉(zhuǎn)換時產(chǎn)生問題的原因——大量的源代碼被刪除。

        另外,暴露出來的其他問題:如何鑒別系統(tǒng)中重要的部分、如何獲得非結(jié)構(gòu)系統(tǒng)的整體圖表、如何決定系統(tǒng)文件是否可靠。

        參考文獻:

        [1] Ian Sommerville.Software Engineering[M].6th ed.Addison-Wesley,2001.

        [2] Howard Wilbert Miller.Legacy Software Systems[M].Digital Press,1998

        [3] Linda Wills,Philip Newcomb.Reverse Engineering[M].Kluwer academic publishers,1996.

        [4] John W Satzinger,Robert B Jackson,Stehpen D Burd.Systems Analysis and Design in a Changing World[M].北京:機械工業(yè)出版社,2004.

        [5]鄭人杰,殷人昆,陶永雷.實用軟件工程[M].北京:清華大學(xué)出版社,1997.

        猜你喜歡
        逆向工程
        基于Geomagic的汽車內(nèi)門把手逆向設(shè)計
        基于臉型特征數(shù)據(jù)的防霾口罩造型設(shè)計研究
        中國市場(2017年7期)2017-04-01 13:09:06
        應(yīng)用型大學(xué)本科數(shù)字化設(shè)計制造綜合實訓(xùn)教學(xué)改革與探索
        基于小轎車車門拉手的逆向建模設(shè)計
        科技視界(2016年27期)2017-03-14 22:45:40
        一種改進的點云數(shù)據(jù)組合精簡算法
        基于Hibernate逆向工程對企業(yè)組織建模研究
        逆向工程技術(shù)在高職模具專業(yè)創(chuàng)新能力培養(yǎng)中的應(yīng)用
        科技視界(2016年22期)2016-10-18 15:22:03
        分析汽車行業(yè)中逆向工程的汽車儀表板開發(fā)
        Q6兒童假人頸部有限元模型的建立與驗證
        人體骨骼三維模型重建技術(shù)的研究
        科技視界(2015年29期)2015-10-19 11:13:59
        麻豆成年视频在线观看| 成人综合婷婷国产精品久久蜜臀| 人人妻人人爽人人做夜欢视频九色| 亚洲一区二区三区久久不卡| 在线观看免费视频发布白白色| 亚洲 小说区 图片区 都市| 亚洲日韩精品无码专区网站| 狠狠色综合播放一区二区| 国产美女高潮流的白浆久久| 久久精品色福利熟妇丰满人妻91| 天堂а√在线最新版中文在线 | 久久精品中文字幕第23页| 人妻丰满少妇一二三区| 亚洲一区二区三区精品| 国产av麻豆mag剧集| 欧美日韩国产一区二区三区地区| 午夜日本理论片最新片| 国产亚洲成性色av人片在线观| 欧洲精品免费一区二区三区| 亚洲欧美日韩国产一区二区精品| 国产一区二三区中文字幕| 色天使久久综合网天天| 人妻影音先锋啪啪av资源| 天堂AV无码AV毛片毛| 女同一区二区三区在线观看| 久久久精品一区aaa片| 国产成人精品三级91在线影院 | 中文无码一区二区三区在线观看| 国产不卡一区二区三区免费视 | 亚洲综合伊人久久综合| 成人艳情一二三区| 欧美 国产 日产 韩国 在线| 99久久国语露脸国产精品| 美艳善良的丝袜高跟美腿| 69sex久久精品国产麻豆| 国产精品久久1024| 不卡av一区二区在线| 欧美牲交videossexeso欧美| 久久中文字幕av一区二区不卡| av成人资源在线播放| 国产精品久久久久久人妻无|