六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學(xué)習(xí)啦 > 論文大全 > 學(xué)科論文 > 計(jì)算機(jī)論文 > 計(jì)算機(jī)軟件設(shè)計(jì)的探討論文

計(jì)算機(jī)軟件設(shè)計(jì)的探討論文

時(shí)間: 堅(jiān)烘964 分享

計(jì)算機(jī)軟件設(shè)計(jì)的探討論文

  計(jì)算機(jī)技術(shù)的發(fā)展帶來了全社會的變革,人們的生活對計(jì)算機(jī)的依賴越來越強(qiáng),所使用的軟件也越來越復(fù)雜,對開發(fā)軟件所使用的技術(shù)也要求越來越高。下面是學(xué)習(xí)啦小編給大家推薦的計(jì)算機(jī)軟件設(shè)計(jì)的探討論文,希望大家喜歡!

  計(jì)算機(jī)軟件設(shè)計(jì)的探討論文篇一

  《淺談計(jì)算機(jī)軟件重構(gòu)技術(shù)》

  摘要:本文闡述了軟件重構(gòu)技術(shù)的現(xiàn)狀,研究意義和發(fā)展前景。

  關(guān)鍵詞:軟件重構(gòu) 原型開發(fā) 簡化 復(fù)用 測試

  1、軟件重構(gòu)的定義

  軟件維護(hù)最初最貼切的形容就是“打補(bǔ)丁”,所有的維護(hù)工作采用的都是一種消極但快速的方法。如果發(fā)現(xiàn)系統(tǒng)有問題,維護(hù)人員就快速找到這個(gè)問題,然后修改源代碼,解決這個(gè)問題。如果要添加一個(gè)新的功能,那就找到一個(gè)相似的模塊,修改代碼以后放進(jìn)去。這樣反復(fù)多次之后,系統(tǒng)變得越來越臃腫,越來越難于理解,維護(hù)也越來越艱難、越來代價(jià)越高。人們期望解決這一問題的根本辦法,于是軟件重構(gòu)技術(shù)應(yīng)運(yùn)而生。通過這種技術(shù),使得編碼更加謹(jǐn)慎合理,編碼時(shí)如果非常小心,則代碼會具有良好的形狀和味道,在修改添加代碼前,通過查看代碼的形狀和味道來決定是否進(jìn)行更新。如果代碼不容易被理解,則必須重構(gòu)代碼以使得維護(hù)變得容易,再進(jìn)行相應(yīng)的擴(kuò)展和更新。

  軟件重構(gòu)是指在不改變軟件的功能和外部可見性的情況下,為了改善軟件的結(jié)構(gòu),提高清晰性、可擴(kuò)展性和可重用性而對軟件進(jìn)行的改造。簡而言之,重構(gòu)就是改進(jìn)已經(jīng)寫好的軟件的設(shè)計(jì)。也就是說,改進(jìn)后的軟件其原有的功能和行為都不改變,改變的僅僅是程序內(nèi)部的編碼。重構(gòu)是在源代碼級別上進(jìn)行的,目的是使原有的代碼在重構(gòu)后具有良好的程序結(jié)構(gòu)。

  2、軟件重構(gòu)的意義

  計(jì)算機(jī)技術(shù)的發(fā)展帶來了全社會的變革,人們的生活對計(jì)算機(jī)的依賴越來越強(qiáng),所使用的軟件也越來越復(fù)雜,對開發(fā)軟件所使用的技術(shù)也要求越來越高。面向?qū)ο箝_發(fā)方法等有利于軟件利用的方法和技術(shù)得到了廣泛的運(yùn)用。但同時(shí)也顯示出一些弊端。為了開發(fā)出使用方便,利于維護(hù)的軟件系統(tǒng),軟件開發(fā)人員希望把初始系統(tǒng)設(shè)計(jì)得盡可能的完美、靈活、具有良好的可擴(kuò)展性。這不僅要求軟件開發(fā)人員具有較高的軟件設(shè)計(jì)能力,而且,再完美的設(shè)計(jì)也不可能完全適應(yīng)未來的需求變化。解決這一問題的方法是軟件工程中的原型開發(fā)方法,在原型開發(fā)方法中,系統(tǒng)開發(fā)人員首先快速開發(fā)出一個(gè)系統(tǒng)原型提供給用戶使用,通過用戶在使用過程中的不斷反饋來對系統(tǒng)進(jìn)行修改直到最后開發(fā)出系統(tǒng)的成熟版本。軟件擴(kuò)展是在軟件重構(gòu)的基礎(chǔ)上完成的。在需要擴(kuò)展時(shí),使用軟件重構(gòu)方法和重構(gòu)工具,采取提取抽象數(shù)據(jù)類型、提取接口等技術(shù)對代碼結(jié)構(gòu)進(jìn)行改造,以利于軟件的維護(hù)、功能的增加等活動。

  對于已經(jīng)投入使用的系統(tǒng),由于需求、業(yè)務(wù)、法規(guī)等因素的變化,也會因此而改變,需要在原有的系統(tǒng)上進(jìn)行修改和擴(kuò)充。在維護(hù)過程中可能會遇到設(shè)計(jì)風(fēng)格不一致、過時(shí)的編程語言、系統(tǒng)文檔過時(shí),不完整和難于理解的問題。這時(shí)候,為也延長舊系統(tǒng)的生命周期,降低系統(tǒng)維護(hù)成本。就可以采用以原有系統(tǒng)進(jìn)行重構(gòu)的方法對軟件進(jìn)行重構(gòu),使其在改善程序結(jié)構(gòu)的基礎(chǔ)上適應(yīng)需求的變化。

  軟件重構(gòu)也能為程序員的編碼帶來好處,首先,可以簡化設(shè)計(jì),重構(gòu)允許系統(tǒng)設(shè)計(jì)剛好滿足現(xiàn)有需求,不必過多考慮未來的需求,降低了系統(tǒng)設(shè)計(jì)的復(fù)雜程度,當(dāng)有新的需求時(shí),可以利用重構(gòu)技術(shù),快速進(jìn)行設(shè)計(jì)擴(kuò)展。其次,可以增強(qiáng)程序的可讀性,便于理解他人的編程目的,利于快速開發(fā)軟件系統(tǒng)。再者,軟件重構(gòu)可以使程序的結(jié)構(gòu)更加清晰,減少編程過程中出現(xiàn)的問題,并且,由于重構(gòu)是建立在嚴(yán)格的測試之上的,所以能夠快速發(fā)現(xiàn)問題。將復(fù)雜的軟件測試分解為遞進(jìn)式的簡單測試,降低了測試的復(fù)雜度。最重要的是重構(gòu)可以使得代碼的可理解性大大提高,原因在于,重構(gòu)技術(shù)支持更小的類、更短的方法、更少的局部變量、更小的系統(tǒng)耦合,重構(gòu)可以讓程序員養(yǎng)成良好的編程習(xí)慣。

  3、軟件重構(gòu)的研究現(xiàn)狀

  軟件重構(gòu)的研究緊緊圍繞以下幾個(gè)方面展開,目前已經(jīng)取得了一些成果。

  (1)基本重構(gòu)方法和復(fù)合重構(gòu)方法的研究,如Opdyke針對C++語言定義的一組基本重構(gòu)方法,在其中定義的每個(gè)基本重構(gòu)方法中,由前提條件和執(zhí)行動作組成。在進(jìn)行重構(gòu)時(shí)以每個(gè)基本方法為重構(gòu)的最小單位。通過執(zhí)行動作對程序的修改步驟進(jìn)行描述,前提條件是用來保證程序行為的不變。將這些基本重構(gòu)方法組合起來形成復(fù)合重構(gòu),就可以用來解決復(fù)雜的重構(gòu)問題。Roberts等人受Opdyke研究的啟發(fā),對基本重構(gòu)方法進(jìn)行了改進(jìn),增加了后置條件約束,討論了復(fù)合結(jié)構(gòu)中基本重構(gòu)之間的依賴性問題,提出了計(jì)算復(fù)合重構(gòu)前置條件的計(jì)算方法,并開發(fā)了針對Smalltalk的重構(gòu)輔助工具。

  (2)不良程序結(jié)構(gòu)的探查和整理。如冗余代碼探查和消除、類層次的整理、橫切關(guān)注的探查和封裝等。其中冗余代碼的探查和消除主要使用字符串比較的方法,類層次的整理主要使用“漸進(jìn)增加類”算法實(shí)現(xiàn),而橫切叛黨的探查和封裝主要使用面向方面范型進(jìn)行研究和實(shí)踐。

  (3)程序理解方法和工具。要進(jìn)行軟件維護(hù)和軟件重構(gòu)必須在理解程序結(jié)構(gòu)的基礎(chǔ)上施行。除了針對程序代碼中的不良程序結(jié)構(gòu)進(jìn)行探查,還需要圍繞程序的設(shè)計(jì)模型進(jìn)行分析。如Pauw等人開發(fā)的Ovation系統(tǒng),使用了執(zhí)行模式視圖在不同的抽象層次上對程序的執(zhí)行進(jìn)行可視化,并對生成的模型進(jìn)行一些操作。Storey等人開發(fā)Rigi逆向工程環(huán)境則使用有向圖表示軟件構(gòu)件和它們之間的關(guān)系。

  (4)面向典型設(shè)計(jì)的重構(gòu)方法。如Tokuda和Batory探討了采用手工方式對程序應(yīng)用設(shè)計(jì)模式的重構(gòu)的方法,他們通過實(shí)驗(yàn)指出:一個(gè)典型的系統(tǒng)在使用重構(gòu)和引入設(shè)計(jì)模式后,可以明顯地增加軟件質(zhì)量。Tonella和Potrich提出了從C++代碼中自動抽取UML交互圖的方法。這個(gè)基于靜態(tài)的程序分析技術(shù)的方法,基本可以描述在任何輸入下程序的結(jié)果。將對象交互圖的抽取過程分兩步:第一步,從源碼中推斷出程序所創(chuàng)建的對象和程序中變量;第二步,把方法的每一個(gè)調(diào)用分解成交互過程中包含的發(fā)送類和接收類。

  (5)軟件重構(gòu)輔助工具。如Opdyke開發(fā)的重構(gòu)輔助工具C++重構(gòu)工具,Roberts等人開發(fā)的Smalltalk Refactory Browser等。這些工具雖然沒能成為實(shí)用的工具,但卻是后續(xù)研發(fā)工作的基礎(chǔ)。

點(diǎn)擊下頁還有更多>>>計(jì)算機(jī)軟件設(shè)計(jì)的探討論文

2718143