聊天機(jī)器人技術(shù)的研究與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  聊天機(jī)器人技術(shù)的研究與實(shí)現(xiàn)</p><p>  學(xué) 生 姓 名:    </p><p>  學(xué) 院: </p><p>  專 業(yè): </

2、p><p>  班 級(jí): </p><p>  學(xué) 號(hào): </p><p>  指 導(dǎo) 教 師:      </p><p>  審 閱 教 師:

3、 </p><p>  完 成 日 期: </p><p><b>  摘要</b></p><p>  隨著信息技術(shù)的發(fā)展,隨著社會(huì)的不斷進(jìn)步,各個(gè)領(lǐng)域?qū)π畔⒒枨蟛粩嘣黾?,同時(shí)智能化水平也在不斷提升,計(jì)算機(jī)已經(jīng)成為了我們?nèi)粘I?/p>

4、中必不可少的一樣?xùn)|西,就像一件必不可少的家用電器一樣。有了電腦,我們就可以上網(wǎng)看新聞、看視頻、玩游戲等,通過(guò)電腦來(lái)打發(fā)我們無(wú)聊的時(shí)間已經(jīng)成為了越來(lái)越多的人的選擇。計(jì)算機(jī)的用途也在隨著信息技術(shù)的發(fā)展而發(fā)展,在上世紀(jì)八十年代就誕生了一種可以跟人聊天的智能計(jì)算機(jī)軟件,我們稱之為聊天機(jī)器人。</p><p>  本文主要介紹聊天機(jī)器人技術(shù)的研究與實(shí)現(xiàn)。本系統(tǒng)在Win 7操作系統(tǒng)下,采用Visual Studio 2012

5、軟件開發(fā)平臺(tái),使用C#語(yǔ)言進(jìn)行程序編寫。通過(guò)關(guān)鍵詞分句的設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì),實(shí)現(xiàn)了人與計(jì)算機(jī)的智能對(duì)話模式。</p><p>  關(guān)鍵詞:聊天機(jī)器人;智能計(jì)算機(jī);聊天</p><p><b>  Abstract</b></p><p>  With the development of information technology, wit

6、h the development of society, in all fields of information technology increasing demand, at the same time, the intelligent level is rising, the computer has become the essential thing in our daily life, as a essential fo

7、r household appliances. With the computer, we can read news online, watch videos, play games, to send us the boring time by computer has become more and more people choice. The use of computers in along with the developm

8、ent of in</p><p>  Research and implementation of this paper mainly introduces the chat robot technology. The system in Win 7 operating system, using Visual Studio 2012 software development platform, using t

9、he C# programming language. Program design by the design method of keyword clause, realizes the intelligent dialogue mode of man and computer.</p><p>  Keywords: chat robot ; Intelligent computer ; Chat</

10、p><p><b>  目 錄</b></p><p>  聊天機(jī)器人技術(shù)的研究與實(shí)現(xiàn)1</p><p><b>  摘要2</b></p><p>  Abstract3</p><p><b>  目 錄4</b></p>&l

11、t;p><b>  1 緒論1</b></p><p>  1.1課題開發(fā)的背景1</p><p>  1.2 國(guó)內(nèi)外發(fā)展現(xiàn)狀1</p><p>  1.3 課題開發(fā)的意義3</p><p>  1.4 本章小結(jié)3</p><p><b>  2 可行性分析5<

12、/b></p><p>  2.1 技術(shù)可行性5</p><p>  2.2 經(jīng)濟(jì)可能性5</p><p>  2.3 操作可能性6</p><p>  2.4 開發(fā)工具6</p><p>  2.4.1 Visual Studio 20126</p><p>  2.4.2 C

13、#程序設(shè)計(jì)語(yǔ)言7</p><p><b>  3 系統(tǒng)分析12</b></p><p>  3.1 需求分析12</p><p>  3.2 B/S三層構(gòu)架13</p><p><b>  4 系統(tǒng)設(shè)計(jì)16</b></p><p>  4.1 程序設(shè)計(jì)分析16&l

14、t;/p><p>  4.2 程序展示16</p><p>  5系統(tǒng)測(cè)試與維護(hù)20</p><p>  5.1 系統(tǒng)的配置20</p><p>  5.2 系統(tǒng)的維護(hù)20</p><p>  5.3 系統(tǒng)測(cè)試21</p><p><b>  6 結(jié)論23</b>&

15、lt;/p><p><b>  參考文獻(xiàn)24</b></p><p><b>  1 緒論</b></p><p><b>  課題開發(fā)的背景</b></p><p>  自從上世紀(jì)中葉第一臺(tái)計(jì)算機(jī)誕生以來(lái),計(jì)算機(jī)越來(lái)越走進(jìn)人們的生活當(dāng)中,特別是隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,把全世界的人

16、們緊密的聯(lián)系在一起,大大的擴(kuò)展了計(jì)算機(jī)的功能,人們?cè)絹?lái)越離不開計(jì)算機(jī)了。如今,作為網(wǎng)絡(luò)應(yīng)用之一的聊天工具,越來(lái)越受到人們的歡迎和重視?,F(xiàn)在已有的聊天軟件不勝枚舉,流行的主要有MSN Messenger、QQ等。</p><p>  MSN Messenger來(lái)自于軟件巨頭微軟,其實(shí)力當(dāng)然不容小覷。目前最新版本為MSN9,能夠?qū)崿F(xiàn)文本、手寫、語(yǔ)音、視頻等多種溝通方式,可以預(yù)見(jiàn)在不久的將來(lái),聊天軟件將成為人們通過(guò)因特

17、網(wǎng)相互聯(lián)系和娛樂(lè)的主要平臺(tái)。 由于MSN Messenger協(xié)議是公開的,因此第三方軟件開發(fā)者能通過(guò)協(xié)議寫出自己的程序與網(wǎng)絡(luò)交互,于是MSN機(jī)器人應(yīng)運(yùn)而生。MSN機(jī)器人是以MSN聯(lián)系人的形式出現(xiàn)的,只要你添加相關(guān)機(jī)器人的MSN帳號(hào),就可以像與真人聊天一樣與機(jī)器人聊天,并可查詢地圖、股票、天氣預(yù)報(bào)、電視節(jié)目等信息。</p><p>  隨著我國(guó)計(jì)算機(jī)技術(shù)、互聯(lián)網(wǎng)行業(yè)的快速發(fā)展,計(jì)算機(jī)的開發(fā)應(yīng)用已滲透到各個(gè)領(lǐng)域,成

18、為各行各業(yè)必不可少的工具,而且日趨普及。隨著網(wǎng)絡(luò)的興起,越來(lái)越多的人依賴網(wǎng)絡(luò),因此聊天機(jī)器人應(yīng)運(yùn)而生。聊天機(jī)器人是以聯(lián)系人的形式出現(xiàn)的,只要你添加相關(guān)機(jī)器人的賬號(hào),就可以像與真人聊天一樣與機(jī)器人聊天,并可查詢地圖、股票、天氣預(yù)報(bào)、電視節(jié)目等信息。目前,知名的聊天機(jī)器人有:一枝獨(dú)秀的MSN機(jī)器人小i,專業(yè)的MSN股票機(jī)器人牛牛,國(guó)內(nèi)則如騰訊的QQ機(jī)器人小Q,但在功能上和MSN的系列機(jī)器人相比有一定差距。</p><p&

19、gt;  1.2 國(guó)內(nèi)外發(fā)展現(xiàn)狀</p><p>  世界上最早的聊天機(jī)器人誕生于20世紀(jì)80年代,名為“阿爾貝特”,用BASIC語(yǔ)言編寫而成。今天的互聯(lián)網(wǎng)上,已出現(xiàn)“比利”、“艾麗斯”等聊天機(jī)器人等,中文的如“白絲魔理沙”、“烏賊娘”等由網(wǎng)友制作的聊天機(jī)器人。據(jù)悉,還有一個(gè)“約翰·列儂人工智能計(jì)劃”,以再現(xiàn)當(dāng)年“甲殼蟲”樂(lè)隊(duì)主唱的風(fēng)采為目標(biāo)。</p><p>  1950年,圖

20、靈在哲學(xué)刊物《思維》上發(fā)表“計(jì)算機(jī)器與智能”的文章,提出了后來(lái)經(jīng)典的圖靈測(cè)試——交談能檢驗(yàn)智能,如果一臺(tái)計(jì)算機(jī)能像人一樣對(duì)話,它就能像人一樣思考。他由此獲稱“人工智能之父”。</p><p>  1991年,美國(guó)科學(xué)家兼慈善家休·勒布納設(shè)立人工智能年度比賽——勒布納獎(jiǎng),號(hào)稱是對(duì)圖靈測(cè)試的第一種實(shí)踐,旨在獎(jiǎng)勵(lì)最擅長(zhǎng)模仿人類真實(shí)對(duì)話場(chǎng)景的機(jī)器人。</p><p>  2008年,勒布

21、納獎(jiǎng)人工智能獎(jiǎng)最后一輪10月12日在英國(guó)雷丁大學(xué)展開。艾爾博特等6種軟件程序擊敗另外7種程序,獲決賽資格。艾爾博特與12個(gè)陌生人交談,力圖讓他們相信它是“人”。一番爭(zhēng)論、笑聲過(guò)后,這一電腦程序成功騙過(guò)3人,在今年人工智能比賽中拔得頭籌,朝“成為史上第一臺(tái)能思考的機(jī)器”目標(biāo)更近一步。</p><p>  MSN機(jī)器人是一項(xiàng)能夠帶給用戶良好信息體驗(yàn)的技術(shù)產(chǎn)品――基于人工智能技術(shù)的開發(fā)、研究和應(yīng)用,為成千上萬(wàn)用戶提供新

22、穎實(shí)用的網(wǎng)絡(luò)服務(wù)。MSN機(jī)器人技術(shù)日漸成熟,其中著名的如贏思軟件公司開發(fā)的小I機(jī)器人。</p><p>  2004年贏思先后在全球知名的即時(shí)通訊(IM)平臺(tái)MSN、“騰訊QQ”及Yahoo Messenger上推出了小I智能機(jī)器人;小I以其強(qiáng)大的聊天功能和各類資訊信息的提供一時(shí)間成為各大IM平臺(tái)的新寵,用戶量突破800萬(wàn),在人工智能機(jī)器人及信息服務(wù)領(lǐng)域獲得了前所未有的突破。</p><p&g

23、t;  2006年2月,憑借在機(jī)器人領(lǐng)域多年的積累以及強(qiáng)大的技術(shù)實(shí)力,贏思軟件成為微軟全球戰(zhàn)略合作伙伴及微軟官方機(jī)器人平臺(tái),攜手微軟打造最強(qiáng)大的機(jī)器人應(yīng)用平臺(tái)。目前公司已推出小I聊天、MSN群、小I地圖、小I天氣、小I收視指南、小I問(wèn)答等多項(xiàng)應(yīng)用,提供了多種個(gè)性化功能和服務(wù),性能穩(wěn)定,應(yīng)用廣泛。</p><p>  世界上最早的聊天機(jī)器人誕生于20世紀(jì)80年代,這款機(jī)器人名為“阿爾貝特”,用BASIC語(yǔ)言編寫而成

24、。</p><p>  1950年,圖靈在哲學(xué)刊物《思維》(Mind)上發(fā)表了“計(jì)算機(jī)器與智能”的文章,提出了后來(lái)經(jīng)典的圖靈測(cè)試——交談能檢驗(yàn)智能,如果一臺(tái)計(jì)算機(jī)能像人一樣對(duì)話,它就能像人一樣思考。他由此獲稱“人工智能之父”。</p><p>  1991年,美國(guó)科學(xué)家兼慈善家休·勒布納設(shè)立人工智能年度比賽——勒布納獎(jiǎng),號(hào)稱是對(duì)圖靈測(cè)試的第一種實(shí)踐,旨在獎(jiǎng)勵(lì)最擅長(zhǎng)模仿人類真實(shí)對(duì)話

25、場(chǎng)景的機(jī)器人。</p><p>  比賽分為金、銀、銅三等獎(jiǎng)。如果程序不僅能以文本方式通過(guò)交談測(cè)試,在音頻和視頻測(cè)試中也能過(guò)關(guān),則獲金獎(jiǎng),贏得10萬(wàn)美元和一枚18K黃金制金牌;如果它能在更長(zhǎng)時(shí)間文本談話中迷惑住至少半數(shù)裁判,則獲銀獎(jiǎng);如果未達(dá)到以上標(biāo)準(zhǔn),則每年測(cè)試中迷惑住最多裁判的程序贏得2000美元和一枚銅牌。從1991年首屆比賽至今,尚無(wú)程序達(dá)到金獎(jiǎng)或者銀獎(jiǎng)標(biāo)準(zhǔn)。</p><p>  

26、2008年,勒布納獎(jiǎng)人工智能獎(jiǎng)最后一輪比賽10月12日在英國(guó)雷丁大學(xué)展開。艾爾博特等6種軟件程序擊敗另外7種程序,獲得決賽資格。艾爾博特與12個(gè)陌生人交談,力圖讓他們相信它是“人”。一番爭(zhēng)論、笑聲過(guò)后,這一電腦程序成功騙過(guò)3人,在今年人工智能比賽中拔得頭籌,朝“成為史上第一臺(tái)能思考的機(jī)器”目標(biāo)更近一步。</p><p>  1.3 課題開發(fā)的意義</p><p>  聊天機(jī)器人產(chǎn)生的原因是

27、,研發(fā)者把自己感興趣的回答放到數(shù)據(jù)庫(kù)中,當(dāng)一個(gè)問(wèn)題被拋給聊天機(jī)器人時(shí),它通過(guò)算法,從數(shù)據(jù)庫(kù)中找到最貼切的答案,回復(fù)給它的聊伴。</p><p>  此外,聊天機(jī)器人的成功之處在于,研發(fā)者將大量網(wǎng)絡(luò)流行的俏皮語(yǔ)言加入詞庫(kù),當(dāng)你發(fā)送的詞組和句子被詞庫(kù)識(shí)別后,程序?qū)⑼ㄟ^(guò)算法把預(yù)先設(shè)定好的回答回復(fù)給你。而詞庫(kù)的豐富程度、回復(fù)的速度,是一個(gè)聊天機(jī)器人能不能得到大眾喜歡的重要因素。千篇一律的回答不能得到大眾青睞,中規(guī)中矩的話

28、語(yǔ)也不會(huì)引起人們共鳴。此外,只要程序啟動(dòng),聊士們24小時(shí)在線隨叫隨到,堪稱貼心之至。</p><p><b>  1.4 本章小結(jié)</b></p><p>  本章主要通過(guò)對(duì)課題的背景、發(fā)展現(xiàn)狀和開發(fā)意義三個(gè)角度進(jìn)行了分析。通過(guò)上文可以看出聊天機(jī)器人的設(shè)計(jì)開發(fā)已經(jīng)成為了熱門話題,人們經(jīng)常通過(guò)與聊天機(jī)器人對(duì)話進(jìn)行情緒的發(fā)泄與尋求安慰。</p><p&

29、gt;<b>  2 可行性分析</b></p><p>  在系統(tǒng)調(diào)查和業(yè)務(wù)流程分析的基礎(chǔ)上,針對(duì)新系統(tǒng)的開發(fā)是否具備必要性和可能性,對(duì)新系統(tǒng)的開發(fā)從技術(shù)、經(jīng)濟(jì)、社會(huì)的方面進(jìn)行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。并且可行性研究主要集中在以下三個(gè)方面:</p><p><b&g

30、t;  2.1 技術(shù)可行性</b></p><p>  隨著互聯(lián)網(wǎng)時(shí)代的到來(lái)以及數(shù)碼相機(jī)的普及,越來(lái)越多的人在生活中、吃飯時(shí),旅途中都喜歡用相機(jī)記錄下當(dāng)時(shí)的場(chǎng)景。再加上現(xiàn)在的智能手機(jī)功能越來(lái)越強(qiáng)大,幾乎所有手機(jī)都有照相功能,所以拍照幾乎成了人們?nèi)粘I钪斜夭豢缮俚囊徊糠帧?</p><p>  根據(jù)本系統(tǒng)的功能需求,采用C#語(yǔ)言進(jìn)行程序開發(fā)。開發(fā)平臺(tái)選取微軟的Visual St

31、udio 2012程序設(shè)計(jì)平臺(tái)。C#語(yǔ)言與VC平臺(tái)都是相當(dāng)成熟的技術(shù),因此在技術(shù)層面上,本系統(tǒng)的實(shí)現(xiàn)是完全可行的。</p><p><b>  2.2 經(jīng)濟(jì)可能性</b></p><p>  本環(huán)節(jié)通過(guò)分析新系統(tǒng)的成本效益,其中包括估計(jì)項(xiàng)目開發(fā)的成本,開發(fā)費(fèi)用和今后的運(yùn)行、維護(hù)費(fèi)用以及新系統(tǒng)將獲得的效益,估算開發(fā)成本是否高于項(xiàng)目預(yù)期的全部經(jīng)費(fèi)。下面具體列出了成本和效益

32、的分析:</p><p><b> ?。?)支出 </b></p><p>  本系統(tǒng)的開發(fā)只需要系統(tǒng)的程序設(shè)計(jì)費(fèi)用,使用者將程序安裝到計(jì)算機(jī)中就可以實(shí)現(xiàn)人與計(jì)算機(jī)的智能聊天功能。</p><p><b> ?。?)效益</b></p><p>  本系統(tǒng)的效益主要是供使用者打發(fā)無(wú)聊時(shí)間,作為一款?yuàn)?/p>

33、樂(lè)程序,如果此程序能夠?yàn)閺V大使用者帶來(lái)快樂(lè)就實(shí)現(xiàn)了其效益。</p><p>  由以上可知,本系統(tǒng)在經(jīng)濟(jì)上是可行的。</p><p><b>  2.3 操作可能性</b></p><p>  本系統(tǒng)是非常簡(jiǎn)單的人機(jī)對(duì)話系統(tǒng),將程序安裝在計(jì)算機(jī)上之后,打開程序,在聊天框中輸入聊天信息,本系統(tǒng)就可以對(duì)用戶發(fā)送的聊天信息進(jìn)行智能回復(fù)。對(duì)于任何一個(gè)能

34、夠熟練使用計(jì)算機(jī)的人都是可以輕松操作本程序。所以本系統(tǒng)在操作上是完全可行的。</p><p><b>  2.4 開發(fā)工具</b></p><p>  2.4.1 Visual Studio 2012</p><p>  Visual Studio是微軟公司推出的開發(fā)環(huán)境。是最流行的Windows平臺(tái)應(yīng)用程序開發(fā)環(huán)境。</p>&

35、lt;p>  2012年9月12日微軟在西雅圖發(fā)布Visual Studio 2012。其實(shí)早在8月16日Visual Studio 2012和.NET Framework 4.5已經(jīng)可以下載,微軟負(fù)責(zé)Visual Studio部門的公司副總裁Jason Zander還發(fā)表博客,列舉了升級(jí)到Visual Studio 2012版的12大理由。當(dāng)時(shí)還主要是分發(fā)給MSDN訂閱用戶。9月1日批量許可(VL)發(fā)布。而在12號(hào)這天面向全球用

36、戶上市。</p><p>  應(yīng)用程序的新紀(jì)元已經(jīng)到來(lái),這一點(diǎn)毋庸置疑。 利用聯(lián)網(wǎng)設(shè)備和基于云的服務(wù),您可以獲得比以往任何時(shí)候都更 </p><p>  獨(dú)立的開發(fā)人員隨時(shí)隨地都可以進(jìn)行連接,向不計(jì)其數(shù)的用戶提供您所構(gòu)建優(yōu)秀的應(yīng)用程序。 而大型敏捷的開發(fā)團(tuán)隊(duì)則可以獲得明顯的業(yè)務(wù)優(yōu)勢(shì)——執(zhí)行效率越快,優(yōu)勢(shì)越明顯。</p><p>  這就是為什么說(shuō) Visual St

37、udio 2012是我們到目前為止最卓越的版本。 它的目的就是幫助您在貴在創(chuàng)意、重在速度的市場(chǎng)中發(fā)展壯大。 讓我們來(lái)看一看它幫助您將創(chuàng)意快速轉(zhuǎn)化為應(yīng)用程序的一些方法。</p><p>  Visual Studio 2012新增了一些可以增進(jìn)團(tuán)隊(duì)生產(chǎn)力的新功能。這些新功能包括:</p><p>  · intellitrace in production.開發(fā)者一般無(wú)法使用本地調(diào)

38、試會(huì)話來(lái)調(diào)試生成程序,因此重現(xiàn),診斷和解決生成程序的問(wèn)題非常困難。 而通過(guò)新的intellitrace in production功能,開發(fā)團(tuán)隊(duì)可以通過(guò)運(yùn)行powershell命令來(lái)激活intellitracecollector來(lái)收集數(shù)據(jù),然后intellitrace會(huì)將數(shù)據(jù)傳輸給開發(fā)團(tuán)隊(duì)。開發(fā)者就可以使用這些信息在一個(gè)類似于本地調(diào)試會(huì)話的會(huì)話中調(diào)試程序。intellitrace in production僅為Visual Studio

39、 2012旗艦版客戶提供。</p><p>  · task/suspend resume這個(gè)功能解決了困擾多年的中斷問(wèn)題。假設(shè)開發(fā)者正在試圖解決某個(gè)問(wèn)題或者bug,然后領(lǐng)導(dǎo)需要你做其他事情,開發(fā)者不得不放下手頭工作,然后過(guò)幾小時(shí)以后才能回來(lái)繼續(xù)調(diào)試代碼。task/suspend resume功能會(huì)保存所有的工作(包括斷點(diǎn))到visual studio team foundation server (t

40、fs)。開發(fā)者回來(lái)之后,點(diǎn)擊幾下鼠標(biāo),即可恢復(fù)整個(gè)會(huì)話。</p><p>  · 代碼檢閱功能。新的代碼檢閱功能允許開發(fā)者可以將代碼發(fā)送給另外的開發(fā)者檢閱。啟用“查蹤”后,可以確保修改的代碼會(huì)被送到高級(jí)開發(fā)者那里檢閱,得到確認(rèn)。</p><p>  · powerpoint storyboarding 工具。這個(gè)新工具是為了方便開發(fā)者和客戶之間的交流而設(shè)計(jì)。使用powe

41、rpoint插件,開發(fā)者可以生成程序mockups,這會(huì)幫助客戶于開發(fā)者就客戶所需的功能進(jìn)行交流。</p><p><b>  云功能:</b></p><p>  以前,每個(gè)人都需要維護(hù)一臺(tái)服務(wù)器。 光是擴(kuò)展容量便占用了基礎(chǔ)架構(gòu)投資的一大半。 而擁有了云功能,您可以利用云環(huán)境中動(dòng)態(tài)增加存儲(chǔ)空間和計(jì)算能力的功能快速訪問(wèn)無(wú)數(shù)虛擬服務(wù)器。 Visual Studio 提供

42、了新的工具來(lái)讓您將應(yīng)用程序發(fā)布到 Windows Azure(包括新模板和發(fā)布選項(xiàng)),并且支持分布式緩存,維護(hù)時(shí)間更少。</p><p>  2.4.2 C#程序設(shè)計(jì)語(yǔ)言</p><p>  微軟c#語(yǔ)言定義主要是從C和C++繼承而來(lái)的,而且語(yǔ)言中的許多元素也反映了這一點(diǎn)。C#在設(shè)計(jì)者從C++繼承的可選選項(xiàng)方面比Java要廣泛一些(比如說(shuō)structs),它還增加了自己新的特點(diǎn)(比方說(shuō)源代

43、碼版本定義).但它還太不成熟,不可能擠垮Java、C#還需要進(jìn)化成一種開發(fā)者能夠接受和采用的語(yǔ)言。而微軟當(dāng)前為它的這種新語(yǔ)言大造聲勢(shì)也是值得注意的。目前大家的反應(yīng)是:“這是對(duì)Java的反擊” 。</p><p>  C#更象Java一些,雖然微軟在這個(gè)問(wèn)題上保持沉默。這也是意料中的事情,我覺(jué)得,因?yàn)镴ava近來(lái)很成功而使用Java的公司都報(bào)告說(shuō)它們?cè)谏a(chǎn)效率上比C++獲得了提高。</p><p

44、>  Java所帶來(lái)的巨大影響和大家對(duì)它的廣泛接受已經(jīng)由工作于這種語(yǔ)言和平臺(tái)之上的程序員數(shù)量明顯的說(shuō)明了(估計(jì)世界范圍內(nèi)共有兩百五十萬(wàn)程序員使用Java)。由這種語(yǔ)言寫成的應(yīng)用程序的數(shù)量是令人驚訝的并已經(jīng)滲透了每一個(gè)級(jí)別的計(jì)算,包括無(wú)線計(jì)算和移動(dòng)電話(比如日本發(fā)明的Java電話)。C#能夠在用戶領(lǐng)域獲得這樣的禮遇嗎?我們必須等待并觀望,就象已經(jīng)由SSI公司的CEO和主席Kalpathi S. Suresh指出來(lái)的那樣:"

45、我發(fā)現(xiàn)所有這些都是漸進(jìn)的。如果C#不存在,我們總能回到Java或C和C++。這些都不完全是新技術(shù),它們?cè)诟蟮囊饬x上來(lái)說(shuō)只是大公司制造的市場(chǎng)噱頭。我們必須給他們時(shí)間安頓下來(lái)看看這些是不是真的對(duì)IT工業(yè)有什么影響。"</p><p>  C#最引人入勝的地方是它和Java的不同,而不是相似的地方.這一節(jié)(和這個(gè)系列第二部分的大部分地方)講述了C#實(shí)現(xiàn)的和Java不同的地方或者Java根本沒(méi)有的特點(diǎn).<

46、;/p><p><b>  動(dòng)態(tài)查閱</b></p><p>  C# 4.0 新增 dynamic關(guān)鍵字,提供動(dòng)態(tài)編程(dynamic programming),把既有的靜態(tài)對(duì)象標(biāo)記為動(dòng)態(tài)對(duì)象,類似javascript, Python 或 Ruby。</p><p>  dynamic calc = GetCalculator();</p&

47、gt;<p>  int sum = calc.Add(10, 20);</p><p>  具名參數(shù)與可選參數(shù)public StreamReader OpenFile(</p><p>  string path,</p><p>  int bufferSize =1024)</p><p><b>  {<

48、/b></p><p><b>  ...</b></p><p><b>  }</b></p><p>  調(diào)用 OpenFile 時(shí), 順序可以完全顛倒:</p><p>  OpenFile(bufferSize:4096, path:"foo.txt");<

49、/p><p><b>  中間代碼:</b></p><p>  微軟在用戶選擇何時(shí)MSIL應(yīng)該編譯成機(jī)器碼的時(shí)候是留了很大的余地.微軟公司很小心的聲稱MSIL不是解釋性的,而是被編譯成了機(jī)器碼.它也明白許多--如果不是大多數(shù)的話--程序員認(rèn)為Java程序要不可避免的比C編寫的任何東西都要慢.而這種實(shí)現(xiàn)方式?jīng)Q定了基于MSIL的程序(指的是用C#,Visual Basic,

50、"Managed C++"--C++的一個(gè)符合CLS的版本--等語(yǔ)言編寫的程序)將在性能上超過(guò)"解釋性的"Java代碼.當(dāng)然,這一點(diǎn)還需要得到事實(shí)證明,因?yàn)镃#和其他生成MSIL的編譯器還沒(méi)有發(fā)布.但是Java JIT編譯器的普遍存在使得Java和C#在性能上相對(duì)相同.象"C#是編譯語(yǔ)言而Java是解釋性的,"之類的聲明只是商業(yè)技巧.Java的中間代碼和MSIL都是中間的匯編形

51、式的語(yǔ)言,它們?cè)谶\(yùn)行時(shí)或其它的時(shí)候被編譯成機(jī)器代碼.</p><p><b>  命名空間中的申明:</b></p><p>  當(dāng)你創(chuàng)建一個(gè)程序的時(shí)候,你在一個(gè)命名空間里創(chuàng)建了一個(gè)或多個(gè)類.同在這個(gè)命名空間里(在類的外面)你還有可能聲明界面,枚舉類型和結(jié)構(gòu)體.必須使用using關(guān)鍵字來(lái)引用其他命名空間的內(nèi)容.</p><p><b>

52、;  基本的數(shù)據(jù)類型</b></p><p>  C#擁有比C,C++或者Java更廣泛的數(shù)據(jù)類型.這些類型是bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double,和decimal.象Java一樣,所有這些類型都有一個(gè)固定的大小.又象C和C++一樣,每個(gè)數(shù)據(jù)類型都有有符號(hào)和無(wú)符號(hào)兩種類型.與Java相同的是,一個(gè)

53、字符變量包含的是一個(gè)16位的Unicode字符.C#新的數(shù)據(jù)類型是decimal數(shù)據(jù)類型,對(duì)于貨幣數(shù)據(jù),它能存放28位10進(jìn)制數(shù)字.</p><p><b>  兩個(gè)基本類:</b></p><p>  一個(gè)名叫object的類是所有其他類的基類.而一個(gè)名叫string的類也象object一樣是這個(gè)語(yǔ)言的一部分.作為語(yǔ)言的一部分存在意味著編譯器有可能使用它--無(wú)論何時(shí)

54、你在程序中寫入一句帶引號(hào)的字符串,編譯器會(huì)創(chuàng)建一個(gè)string對(duì)象來(lái)保存它.</p><p><b>  參數(shù)傳遞:</b></p><p>  方法可以被聲明接受可變數(shù)目的參數(shù).缺省的參數(shù)傳遞方法是對(duì)基本數(shù)據(jù)類型進(jìn)行值傳遞.ref關(guān)鍵字可以用來(lái)強(qiáng)迫一個(gè)變量通過(guò)引用傳遞,這使得一個(gè)變量可以接受一個(gè)返回值.out關(guān)鍵字也能聲明引用傳遞過(guò)程,與ref不同的地方是,它指明這

55、個(gè)參數(shù)并不需要初始值.</p><p><b>  與COM的集成:</b></p><p>  C#對(duì)Windows程序最大的賣點(diǎn)可能就是它與COM的無(wú)縫集成了,COM就是微軟的Win32組件技術(shù).實(shí)際上,最終有可能在任何.NET語(yǔ)言里編寫COM客戶和服務(wù)器端.C#編寫的類可以子類化一個(gè)已存在的COM組件;生成的類也能被作為一個(gè)COM組件使用,然后又能使用,比方說(shuō),

56、JScript語(yǔ)言子類化它從而得到第三個(gè)COM組件.這種現(xiàn)象的結(jié)果是導(dǎo)致了一個(gè)運(yùn)行環(huán)境的產(chǎn)生,在這個(gè)環(huán)境里的組件是網(wǎng)絡(luò)服務(wù),可用任何.NET語(yǔ)言子類化.</p><p><b>  索引下標(biāo):</b></p><p>  一個(gè)索引與屬性除了不使用屬性名來(lái)引用類成員而是用一個(gè)方括號(hào)中的數(shù)字來(lái)匿名引用(就象用數(shù)組下標(biāo)一樣)以外是相似的.</p><p&

57、gt;  public class ListBox: Control {</p><p>  private string[] items;</p><p>  public string this[int index] {</p><p><b>  get {</b></p><p>  return items[i

58、ndex];</p><p><b>  }</b></p><p><b>  set {</b></p><p>  items[index] = value;</p><p>  Repaint();</p><p><b>  }</b><

59、/p><p><b>  }</b></p><p><b>  }</b></p><p>  可以用一個(gè)循環(huán)器來(lái)匿名引用字符串內(nèi)部數(shù)組成員,就象下面這樣:</p><p>  ListBox listBox = ...;</p><p>  listBox[0] = &quo

60、t;hello";</p><p>  Console.WriteLine(listBox[0]);</p><p><b>  代理和反饋:</b></p><p>  一個(gè)代理對(duì)象包括了訪問(wèn)一個(gè)特定對(duì)象的特定方法所需的信息.只要把它當(dāng)成一個(gè)聰明的方法指針就行了.代理對(duì)象可以被移動(dòng)到另一個(gè)地方,然后可以通過(guò)訪問(wèn)它來(lái)對(duì)已存在的方法進(jìn)行

61、類型安全的調(diào)用.一個(gè)反饋方法是代理的特例.event關(guān)鍵字用在將在事件發(fā)生的時(shí)候被當(dāng)成代理調(diào)用的方法聲明中。</p><p><b>  3 系統(tǒng)分析</b></p><p><b>  3.1 需求分析</b></p><p>  需求分析也稱可行性研究,是決策部門在采取一項(xiàng)重大改革或投資行動(dòng)之前,對(duì)該項(xiàng)目的必要性和可能

62、性進(jìn)行分析與論證的活動(dòng)??尚行苑治鲆驯粡V泛應(yīng)用于新產(chǎn)品開發(fā)、基建、工業(yè)企業(yè)、交通運(yùn)輸、商業(yè)設(shè)施等項(xiàng)目投資的多個(gè)領(lǐng)域。在展開一項(xiàng)開發(fā)行動(dòng)之前,必須對(duì)用戶提出的目標(biāo)的必要性和可能性進(jìn)行必要的論證。</p><p>  在系統(tǒng)調(diào)查分析的基礎(chǔ)上,針對(duì)新系統(tǒng)的開發(fā)是否具備必要性和可能性,對(duì)新系統(tǒng)的開發(fā)從技術(shù)、經(jīng)濟(jì)、社會(huì)的方面進(jìn)行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r(jià)在盡可能短的時(shí)

63、間內(nèi)確定問(wèn)題是否能夠解決。</p><p>  根據(jù)本系統(tǒng)操作流程,了解了各層對(duì)象的功能需求,分析得出了本系統(tǒng)使用者的使用流程圖,如圖下所示:</p><p>  圖3.1 聊天機(jī)器人使用流程圖</p><p>  3.2 B/S三層構(gòu)架</p><p>  本系統(tǒng)采用B/S模式,服務(wù)器采用著名的web服務(wù)器端軟件apache,該http服務(wù)

64、器有著良好的跨平臺(tái)性和安全性,可以運(yùn)行在包括windows、linux、mac等操作系統(tǒng)上。用戶客戶端使用各種瀏覽器都能夠進(jìn)行正常的瀏覽和操作。需要注意的是在程序的開發(fā)過(guò)程中,程序和路徑相關(guān)的要考慮到不同的操作系統(tǒng)的文件目錄結(jié)構(gòu)。</p><p>  B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),就是只安裝維護(hù)一個(gè)服務(wù)器(Server),而客戶端采用瀏覽器(Browse)運(yùn)行軟件。它是隨著In

65、ternet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化和改進(jìn)。主要利用了不斷成熟的WWW瀏覽器技術(shù),結(jié)合多種Script語(yǔ)言(VBScript、JavaScript等)和ActiveX技術(shù),是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。 </p><p>  B/S三層體系結(jié)構(gòu)采用三層客戶/服務(wù)器結(jié)構(gòu),在數(shù)據(jù)管理層(Server)和用戶界面層(Client)增加了一層結(jié)構(gòu),稱為中間件(Middleware),使整個(gè)體系結(jié)構(gòu)成為三層。三層

66、結(jié)構(gòu)是伴隨著中間件技術(shù)的成熟而興起的,核心概念是利用中間件將應(yīng)用分為表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)存儲(chǔ)層三個(gè)不同的處理層次。三個(gè)層次的劃分是從邏輯上分的,具體的物理分法可以有多種組合。中間件作為構(gòu)造三層結(jié)構(gòu)應(yīng)用系統(tǒng)的基礎(chǔ)平臺(tái),提供了以下主要功能:負(fù)責(zé)客戶機(jī)與服務(wù)器、服務(wù)器與服務(wù)器間的連接和通信;實(shí)現(xiàn)應(yīng)用與數(shù)據(jù)庫(kù)的高效連接;提供一個(gè)三層結(jié)構(gòu)應(yīng)用的開發(fā)、運(yùn)行、部署和管理的平臺(tái)。這種三層結(jié)構(gòu)在層與層之間相互獨(dú)立,任何一層的改變不會(huì)影響其它層的功能。

67、 </p><p>  圖3.2 B/S三層體系結(jié)構(gòu)</p><p>  在B/S體系結(jié)構(gòu)系統(tǒng)中,用戶通過(guò)瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請(qǐng)求,服務(wù)器對(duì)瀏覽器的請(qǐng)求進(jìn)行處理,將用戶所需信息返回到瀏覽器。而其余如數(shù)據(jù)請(qǐng)求、加工、結(jié)果返回以及動(dòng)態(tài)網(wǎng)頁(yè)生成、對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和應(yīng)用程序的執(zhí)行等工作全部由Web Server完成。隨著Windows將瀏覽器技術(shù)植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)已成為當(dāng)今

68、應(yīng)用軟件的首選體系結(jié)構(gòu)。顯然B/S結(jié)構(gòu)應(yīng)用程序相對(duì)于傳統(tǒng)的C/S結(jié)構(gòu)應(yīng)用程序是一個(gè)非常大的進(jìn)步。</p><p>  B/S三層體系結(jié)構(gòu)的主要優(yōu)點(diǎn):</p><p>  ?B/S模式提供靈活的信息交流和信息發(fā)布服務(wù)。B/S模式借助Internet強(qiáng)大的信息發(fā)布與信息傳送能力可以有效地解決企業(yè)、高等學(xué)校內(nèi)部的大量不規(guī)則的信息交流</p><p>  ?可共享性。單個(gè)應(yīng)

69、用服務(wù)器可以為處于不同平臺(tái)的客戶應(yīng)用程序提供服務(wù),在很大程度上節(jié)省了開發(fā)時(shí)間和資金投入;</p><p>  ?較好的安全性。在這種結(jié)構(gòu)中,客戶應(yīng)用程序不能直接訪問(wèn)數(shù)據(jù),應(yīng)用服務(wù)器不僅可控制哪些數(shù)據(jù)被改變和被訪問(wèn),而且還可控制數(shù)據(jù)的改變和訪問(wèn)方式 。</p><p>  ?三層模式成為真正意義上的“瘦客戶端”,客戶端計(jì)算機(jī)不需要很高的硬件配置,也無(wú)需特殊的軟件配置要求,只要有web瀏覽器就

70、可以使用系統(tǒng)。</p><p>  ?B/S模式提供了一致的用戶界面:B/S模式的應(yīng)用軟件都是基于Web瀏覽器的,這些瀏覽器的界面都很相似。對(duì)于無(wú)用戶交互功能的頁(yè)面,用戶接觸的界面都是一致的,從而可以降低軟件的培訓(xùn)費(fèi)用。</p><p>  ?在B/S模式下,外部的用戶亦可通過(guò)通用的瀏覽器進(jìn)行訪問(wèn)。</p><p>  ?B/S模式的結(jié)構(gòu)易于擴(kuò)展:由于Web 的平臺(tái)

71、無(wú)關(guān)性,B/S模式結(jié)構(gòu)可以任意擴(kuò)展,可以從一臺(tái)服務(wù)器、幾個(gè)用戶的工作組級(jí)擴(kuò)展成為擁有成千上萬(wàn)用戶的大型系統(tǒng)。</p><p>  ?B/S模式具有更強(qiáng)的信息系統(tǒng)集成性:在B/S模式下,集成了解決企事業(yè)單位各種問(wèn)題的服務(wù),而非零散的單一功能的多系統(tǒng)模式,因而它能提供更高的工作效率。</p><p><b>  4 系統(tǒng)設(shè)計(jì)</b></p><p>

72、;  4.1 程序設(shè)計(jì)分析</p><p>  本次程序設(shè)計(jì)的原理是根據(jù)關(guān)鍵句分詞技術(shù),采用key-value鍵值對(duì)原理進(jìn)行數(shù)據(jù)的快速搜索查詢。</p><p>  key-value分布式存儲(chǔ)系統(tǒng)查詢速度快、存放數(shù)據(jù)量大、支持高并發(fā),非常適合通過(guò)主鍵進(jìn)行查詢,但不能進(jìn)行復(fù)雜的條件查詢。如果輔以Real-Time Search Engine(實(shí)時(shí)搜索引擎)進(jìn)行復(fù)雜條件檢索、全文檢索,就可以

73、替代并發(fā)性能較低的MySQL等關(guān)系型數(shù)據(jù)庫(kù),達(dá)到高并發(fā)、高性能,節(jié)省幾十倍服務(wù)器數(shù) 量的目的。以MemcacheDB、Tokyo Tyrant為代表的key-value分布式存儲(chǔ),在上萬(wàn)并發(fā)連接下,輕松地完成高速查詢。</p><p>  在系統(tǒng)程序設(shè)計(jì)中“List<String> Dic = new List<String>();”語(yǔ)句聲明了名為Dic的詞庫(kù),在詞庫(kù)中我們可以加入我們能夠

74、想到的一切問(wèn)題與對(duì)應(yīng)的答案,當(dāng)然我們選取的回答盡量要以機(jī)器人的口吻敘述,而且還應(yīng)該盡量體現(xiàn)程序的娛樂(lè)性。</p><p>  例如:“Dic.Add("你好" + "&&" + "你好");”在此語(yǔ)句下,我們輸入“你好”,系統(tǒng)就會(huì)根據(jù)我們輸入的“你好”作為key值,在詞庫(kù)中查找對(duì)應(yīng)“你好”值的相應(yīng)的回復(fù)。此語(yǔ)句已經(jīng)設(shè)定好,如果輸入“你好”

75、,機(jī)器人就會(huì)回復(fù)我們“你好”。其中,后者的“你好”就是key-value中的value值。通過(guò)此方法我們就能夠即快速又準(zhǔn)確的根據(jù)輸入值查找到回復(fù)值。</p><p>  如果系統(tǒng)檢測(cè)到用戶輸入的語(yǔ)句中的關(guān)鍵值在key中不存在,或者說(shuō)找不到相應(yīng)的key值,則提示用戶重新輸入或輸入其他的聊天內(nèi)容。我們可以根據(jù)詞條語(yǔ)句if (input.IndexOf(Dic[i].Substring(0,Dic[i].IndexOf

76、("&&"))) != -1)來(lái)實(shí)現(xiàn)此功能。</p><p><b>  4.2 程序展示</b></p><p> ?。?)在聊天對(duì)話框中輸入“你好”,聊天機(jī)器人就會(huì)自動(dòng)回復(fù)“你好”來(lái)回應(yīng)聊天,如下圖所示:</p><p>  圖4.1 開始與機(jī)器人聊天</p><p>  (2)用

77、戶可以像兩個(gè)陌生人剛剛見(jiàn)面時(shí)一樣,問(wèn)一下對(duì)方叫什么名字,根據(jù)系統(tǒng)的設(shè)置,機(jī)器人會(huì)回答“我叫聊天機(jī)器人啦”,如下圖所示:</p><p>  圖4.2 機(jī)器人回答自己的名字</p><p> ?。?)當(dāng)然,用戶也可以詢問(wèn)機(jī)器人的性別,本系統(tǒng)我們?cè)O(shè)置機(jī)器人為女孩,根據(jù)我們的設(shè)計(jì),機(jī)器人會(huì)回答“人家是女孩子啦”,如下圖所示:</p><p>  圖4.3 機(jī)器人回答性別問(wèn)

78、題</p><p> ?。?)可以更深層次的與機(jī)器人聊天,比如問(wèn)“她”有沒(méi)有男朋友,機(jī)器人就會(huì)回答“沒(méi)有呢,你能幫我介紹一個(gè)嗎?”,這樣的回答會(huì)使使用者感覺(jué)自己在跟真人聊天一樣,讓用戶有種互動(dòng)的感覺(jué),如下圖所示:</p><p>  圖4.4 機(jī)器人反問(wèn)問(wèn)題</p><p><b>  5系統(tǒng)測(cè)試與維護(hù)</b></p><p

79、>  聊天機(jī)器人程序在完成程序設(shè)計(jì)、投入正常運(yùn)行之后,就進(jìn)入了系統(tǒng)運(yùn)行與維護(hù)階段。</p><p><b>  5.1 系統(tǒng)的配置</b></p><p><b>  1、硬件配置要求:</b></p><p>  CPU:2GHz以上。 </p><p><b>  內(nèi)

80、存:2GB以上。</b></p><p>  硬盤:250GB以上(可用空間最好在50GB以上)。</p><p><b>  2、軟件配置要求:</b></p><p>  WINDOWS Vista/Win7中文版操作系統(tǒng)。</p><p>  本系統(tǒng)運(yùn)行:首先啟動(dòng)WINDOWS Vista/Win7,將

81、本系統(tǒng)拷貝到硬盤相應(yīng)地目錄下,用附加數(shù)據(jù)庫(kù)加載上數(shù)據(jù),運(yùn)行“EXE文件”即可。 </p><p><b>  5.2 系統(tǒng)的維護(hù)</b></p><p>  系統(tǒng)維護(hù)的目的是保證管理信息系統(tǒng)正常而可靠地運(yùn)行,并能使系統(tǒng)不斷得到改善和提高,以充分發(fā)揮作用。換言之,系統(tǒng)維護(hù)就是為了保證系統(tǒng)中的各個(gè)要素隨著環(huán)境的變化始終處于最新的、正確的工作狀態(tài)。系統(tǒng)維護(hù)的工作

82、量往往是很大的,其費(fèi)用大約占整個(gè)生命周期的60%,所以我們必須對(duì)系統(tǒng)維護(hù)給予足夠的重視。</p><p><b>  1、系統(tǒng)維護(hù)的內(nèi)容</b></p><p>  按照維護(hù)對(duì)象的不同,系統(tǒng)維護(hù)的內(nèi)容可分為以下幾類:</p><p> ?。?)系統(tǒng)應(yīng)用程序維護(hù)</p><p><b> ?。?)數(shù)據(jù)維護(hù)<

83、/b></p><p><b> ?。?)代碼維護(hù)</b></p><p><b> ?。?)硬件設(shè)備維護(hù)</b></p><p><b>  2、系統(tǒng)維護(hù)的類型</b></p><p>  系統(tǒng)維護(hù)的重點(diǎn)是系統(tǒng)應(yīng)用軟件的維護(hù)工作,按照軟件維護(hù)的不同性質(zhì),可以劃分為下面四

84、種類型: </p><p> ?。?)糾錯(cuò)性維護(hù):診斷和修正系統(tǒng)中遺留的錯(cuò)誤。</p><p> ?。?)適應(yīng)性維護(hù):使系統(tǒng)適用環(huán)境的變化而進(jìn)行的維護(hù)。</p><p> ?。?)完善性維護(hù):為滿足用戶的需求而進(jìn)行的維護(hù)。</p><p> ?。?)預(yù)防性維護(hù):為將要發(fā)生的變化或調(diào)整而進(jìn)行的主動(dòng)性維護(hù)。</p><p&

85、gt;  3、系統(tǒng)維護(hù)的組織與管理</p><p>  系統(tǒng)維護(hù)工作,首先必須建立一個(gè)維護(hù)組織,確定進(jìn)行維護(hù)工作所應(yīng)遵循的原則和規(guī)范化的過(guò)程,此外還應(yīng)建立一套適用于具體系統(tǒng)維護(hù)過(guò)程的文檔及管理措施,以及進(jìn)行復(fù)審的標(biāo)準(zhǔn)。</p><p><b>  5.3 系統(tǒng)測(cè)試</b></p><p>  在C#開發(fā)過(guò)程中采用了多種措施保證軟件質(zhì)量,但是實(shí)際

86、開發(fā)過(guò)程中還是不可避免地會(huì)產(chǎn)生差錯(cuò),系統(tǒng)中通??赡茈[藏著錯(cuò)誤和缺陷,示經(jīng)周密測(cè)試的系統(tǒng)投入運(yùn)行,將會(huì)造成難以想象的后果,因此系統(tǒng)測(cè)試是C#開發(fā)過(guò)程中為保證軟件質(zhì)量必須進(jìn)行的工作。大量統(tǒng)計(jì)資料表明,系統(tǒng)測(cè)試的工作量往往占C#開發(fā)總工作量的40%以上。因此,我們必須重視測(cè)試工作。</p><p>  由于程序中隱藏的缺陷只在特定的環(huán)境下才有可靠顯露,系統(tǒng)缺陷通常是由于對(duì)某些特定情況考慮不周造成的。因此測(cè)試不是為了表明

87、程序正確;成功的測(cè)試也不是沒(méi)有發(fā)現(xiàn)錯(cuò)誤的測(cè)試。有意義的軟件測(cè)試應(yīng)該是從“破壞”軟件系統(tǒng)的角度出發(fā),精心設(shè)計(jì)最有可以暴露程序系統(tǒng)缺陷的測(cè)試方案。因此軟件測(cè)試的目標(biāo)應(yīng)該是以盡可能少的代價(jià)和時(shí)間找出軟件系統(tǒng)中潛在的錯(cuò)誤和缺陷。</p><p>  從產(chǎn)品角度看,測(cè)試計(jì)劃中的測(cè)試項(xiàng)目包括軟件結(jié)構(gòu)中的分系統(tǒng)層、子系統(tǒng)層、功能模塊層、程序模塊層中的各類模塊,從測(cè)試本身看,分為單元測(cè)試,組合測(cè)試,確認(rèn)測(cè)試等。測(cè)試對(duì)象是隨著階段

88、而異的,最基本、最初的測(cè)試是單元測(cè)試,后面的組合測(cè)試、確認(rèn)測(cè)試都是以被測(cè)過(guò)的模塊作為測(cè)試對(duì)象的。</p><p>  在具體的測(cè)試中,一般應(yīng)遵循以下原則:由程序設(shè)計(jì)者之外的人進(jìn)行測(cè)試;測(cè)試用例應(yīng)由兩部分組成:輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;應(yīng)選用不合理的輸入數(shù)據(jù)與非法輸入測(cè)試;不僅要檢驗(yàn)程序是否實(shí)現(xiàn)預(yù)期功能,還應(yīng)檢查程序是否做了不應(yīng)該做的工作;集中測(cè)試容易出錯(cuò)的程序模塊;對(duì)程序修改以后,必須重新進(jìn)行測(cè)試。</p&g

89、t;<p>  在開發(fā)本系統(tǒng)時(shí),為了使系統(tǒng)能夠穩(wěn)定運(yùn)行,對(duì)本系統(tǒng)進(jìn)行了有針對(duì)性的全面測(cè)試,采取的方式是:</p><p> ?。?)菜單項(xiàng)測(cè)試:為了保證每一項(xiàng)下拉菜單能夠正確實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)的功能,我把相關(guān)的基礎(chǔ)數(shù)據(jù),基本上全部輸入到本系統(tǒng)中,并對(duì)每一個(gè)菜單項(xiàng)反復(fù)進(jìn)行了增加、刪除、修改等操作,從而保證了菜單功能的正確實(shí)現(xiàn)。</p><p> ?。?)數(shù)據(jù)跟蹤:完成菜單項(xiàng)測(cè)試后,我

90、又對(duì)系統(tǒng)內(nèi)的每一個(gè)數(shù)據(jù)進(jìn)行了跟蹤。經(jīng)過(guò)實(shí)踐證實(shí),說(shuō)明該功能完全正常,對(duì)其它的功能模塊也進(jìn)行了類似的設(shè)置。</p><p>  (3)綜合測(cè)試:在以上測(cè)試的基礎(chǔ)上對(duì)系統(tǒng)功能進(jìn)行了整體的測(cè)試,依次來(lái)檢驗(yàn)系統(tǒng)功能是否符合系統(tǒng)設(shè)計(jì)的要求。</p><p><b>  6 結(jié)論</b></p><p>  通過(guò)幾個(gè)月的努力,聊天機(jī)器人技術(shù)的研究與實(shí)現(xiàn)在指

91、導(dǎo)老師的全心指導(dǎo)下,在同學(xué)的積極配合與幫助下,基本功能順利完成。在數(shù)據(jù)庫(kù)的開發(fā)方面,我學(xué)到了不少關(guān)于C#和Visual Studio 2012的知識(shí)。開發(fā)時(shí)遇到了許多的困難,但是通過(guò)自己的努力,還有老師同學(xué)們的幫助,最終還是迎刃而解了。</p><p>  在系統(tǒng)的開發(fā)過(guò)程中,充分的借鑒了開源社區(qū)的優(yōu)秀代碼段和設(shè)計(jì)思想,使用面向?qū)ο蟮木幊谭绞脚cB/S 技術(shù)結(jié)合,完整的實(shí)現(xiàn)了系統(tǒng)的需求。而且使用到了模版和程序分離的

92、模式,對(duì)于系統(tǒng)管理員來(lái)說(shuō),前臺(tái)的設(shè)計(jì)工作將變的更加輕松。而優(yōu)秀的開源數(shù)據(jù)開發(fā)平臺(tái)Visual Studio 2012本身所具有的良好性能,對(duì)于繁雜而且龐大的數(shù)據(jù)處理有明顯的優(yōu)勢(shì),這就為系統(tǒng)的使用提供了穩(wěn)定性和安全性。</p><p>  然而,作為聊天機(jī)器人程序,在數(shù)據(jù)信息管理實(shí)現(xiàn)過(guò)程中,本身需要有良好的性能來(lái)防范可能出現(xiàn)的任何漏洞,對(duì)程序代碼本身的安全性要求相當(dāng)高,從這個(gè)方面來(lái)看,還需要進(jìn)一步的工作來(lái)完善,在確

93、保功能流程的前提下為用戶提供體驗(yàn)性好而且可信任的服務(wù)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]《幾種圖像相似性度量的匹配性能比較》---- 陳衛(wèi)兵</p><p>  [2]《高清晰圖片監(jiān)控在環(huán)境保護(hù)中的應(yīng)用》----中國(guó)安防行業(yè)網(wǎng)</p><p>  [3]《 Sub-pixel pr

94、ecision image matching for measuring surface displacements on mass movements using normalized cross-correlation 》-</p><p>  [4] 王趾成.軟件工程(第二版).大連理工大學(xué)出版社.2008.</p><p>  [5] 劉騰紅等.信息系統(tǒng)分析與設(shè)計(jì).科學(xué)出版社,20

95、06.</p><p>  [6] 杜斌,幸利等.軟件設(shè)計(jì)工程[M].成都:電子科技大學(xué)出版社,2005。</p><p>  [7] 方睿.實(shí)用網(wǎng)絡(luò)技術(shù)教程[M].成都:四川大學(xué)出版社,2003。</p><p>  [8] 薛華成.管理信息系統(tǒng).北京:清華大學(xué)出版社,1993.</p><p>  [9]孔鵬等.C#BUILDER完全自

96、學(xué)手冊(cè). 機(jī)械工業(yè)出版社 2007.1</p><p>  [10]全洪著.申鉉京 千慶姬譯.網(wǎng)絡(luò)游戲服務(wù)器編程[韓].人民郵電出版社 2006.1 </p><p>  [11]蘇羽、王嬡嬡.C#BUILDER網(wǎng)絡(luò)游戲建模與實(shí)現(xiàn) .北京科海電子出版社 2003.6</p><p>  [12]四維科技.沈煒 徐慧.C#BUILDER數(shù)據(jù)庫(kù)編程技術(shù).與實(shí)例人

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論