版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 鋼琴網(wǎng)系統(tǒng)</b></p><p><b> 目 錄</b></p><p><b> 1 引言2</b></p><p> 1.1 設(shè)計(jì)背景2</p><p> 1.2 現(xiàn)狀分析3</p><p> 1.3
2、 實(shí)現(xiàn)功能3</p><p> 2 確定開發(fā)環(huán)境4</p><p> 2.1 語言環(huán)境4</p><p> 2.2 開發(fā)框架4</p><p> 2.3 開發(fā)環(huán)境5</p><p> 2.3.1 語言環(huán)境、數(shù)據(jù)庫、服務(wù)器5</p><p> 2.3.2 symfony框架
3、環(huán)境6</p><p> 3 系 統(tǒng) 概 述8</p><p> 3.1 鋼琴網(wǎng)系統(tǒng)的作用8</p><p> 3.2鋼琴網(wǎng)系統(tǒng)設(shè)計(jì)思想8</p><p> 3.3 鋼琴網(wǎng)系統(tǒng)存在的問題現(xiàn)狀9</p><p> 4 需 求 分 析10</p><p> 4.1 現(xiàn)狀分析
4、10</p><p> 4.2 系統(tǒng)的結(jié)構(gòu)10</p><p> 4.3 技術(shù)要求11</p><p> 4.4 運(yùn)行環(huán)境11</p><p> 5 鋼琴網(wǎng)系統(tǒng)設(shè)計(jì)12</p><p> 5.1鋼琴網(wǎng)系統(tǒng)結(jié)構(gòu)功能12</p><p> 5.2 網(wǎng)站結(jié)構(gòu)12</p&g
5、t;<p> 5.3數(shù)據(jù)庫的分析與設(shè)計(jì)14</p><p> 5.4 主要功能模塊14</p><p> 5.5鋼琴網(wǎng)系統(tǒng)實(shí)現(xiàn)15</p><p> 5.5.1 系統(tǒng)結(jié)構(gòu)15</p><p> 5.5.2 開發(fā)工具15</p><p> 6 具體設(shè)計(jì)及實(shí)現(xiàn)16</p>
6、<p> 6.1系統(tǒng)用戶瀏覽模塊實(shí)現(xiàn)16</p><p> 6.2 用戶注冊、登錄和權(quán)限管理的實(shí)現(xiàn)18</p><p> 6.2.1登錄模塊18</p><p> 6.2.2注冊頁面19</p><p> 6.3實(shí)現(xiàn)用戶發(fā)布信息功能模塊19</p><p> 6.4系統(tǒng)運(yùn)行截圖19
7、</p><p> 6.4.1鋼琴網(wǎng)系統(tǒng)登錄界面19</p><p> 6.4.2考試系統(tǒng)考試主界面20</p><p> 6.4.3用戶瀏覽新聞、琴行等界面21</p><p> 6.3.4用戶提交信息界面22</p><p> 6.4.5后臺管理界面22</p><p>
8、 6.4.6查詢及結(jié)果界面23</p><p> 7 系統(tǒng)測試與調(diào)試23</p><p> 7.1 測試目的及任務(wù)23</p><p> 7.2 測試方法23</p><p> 7.3 系統(tǒng)調(diào)試23</p><p> 7.3.1 系統(tǒng)調(diào)試的常用方法23</p><p>
9、 8 結(jié)果與分析24</p><p><b> 9 致 謝25</b></p><p> 10 參考文獻(xiàn)26</p><p><b> 11 附錄27</b></p><p><b> 1 引言</b></p><p> 互聯(lián)網(wǎng)現(xiàn)已成
10、為我們生活中不可缺少的部分,網(wǎng)絡(luò)以其無可比擬的時(shí)效性和廉價(jià)性吸引了無數(shù)商家的眼球?,F(xiàn)代商務(wù)網(wǎng)絡(luò)已經(jīng)成為必不可少的一種產(chǎn)品宣傳的方式。但是公司性的網(wǎng)站只是單純的產(chǎn)品展示,會讓用戶很難了解到除產(chǎn)品以外的其他信息,例如用戶在選擇產(chǎn)品的時(shí)候想知道大眾的意向,想在線和其他人交流,產(chǎn)品行業(yè)的最新動態(tài)等,用戶想了解這些不得不轉(zhuǎn)向其他的網(wǎng)站瀏覽,這樣就大大降低了網(wǎng)站本身的商業(yè)價(jià)值。所以我這里將產(chǎn)品展示、用戶發(fā)布、瀏覽相關(guān)信息、用戶交流等都融合在鋼琴網(wǎng)系
11、統(tǒng)里。</p><p> 隨著計(jì)算機(jī)及其網(wǎng)絡(luò)技術(shù)的飛速發(fā)展和社會信息化水平的不斷提高,計(jì)算機(jī)在教育測量和評價(jià)過程也得到了廣泛的應(yīng)用。Internet正是順應(yīng)著這一新的趨勢,以舉火燎原之勢席卷全球,深入人們生產(chǎn)生活的各個(gè)發(fā)面。與傳統(tǒng)產(chǎn)品展示系統(tǒng)相比,讓用戶可以發(fā)布自己的信息,一方面用戶可以得到經(jīng)濟(jì)上的回報(bào),另一方面直接的幫助了網(wǎng)站管理員豐富了網(wǎng)站的內(nèi)容。通過鋼琴網(wǎng)系統(tǒng),用戶可以直接通過瀏覽網(wǎng)站了解到最新的鋼琴價(jià)格
12、、琴行信息、自己所在地區(qū)的培訓(xùn)信息、鋼琴相關(guān)的服務(wù)信息,當(dāng)然用戶也可以發(fā)布自己的商業(yè)信息,這樣網(wǎng)站就不僅僅具有產(chǎn)品展示的商業(yè)價(jià)值,用戶也可以了解到更多相關(guān)的產(chǎn)業(yè)信息,在線交流分享自己的見解。這樣鋼琴網(wǎng)相比于普通的商業(yè)網(wǎng)站將更加具有用戶黏度,更加能吸引用戶的使用,網(wǎng)站本身的商業(yè)價(jià)值也將的到提升。</p><p><b> 1.1 設(shè)計(jì)背景</b></p><p>
13、背景故事:王先生家住在武昌,工作穩(wěn)定,家庭幸福。最近王先生和妻子達(dá)成共識,決定讓6歲的女兒練習(xí)鋼琴,于是準(zhǔn)備給女兒買一架鋼琴供女兒練習(xí)。王先生在網(wǎng)上搜索了一下,大多與鋼琴相關(guān)的信息都是一些商業(yè)性的宣傳網(wǎng)站,只有鋼琴的宣傳信息,覺得宣傳的意味太重,鋼琴的價(jià)格在中國也不算小數(shù)目,要買當(dāng)然要謹(jǐn)慎。于是不得不向熟人打聽,求助。到琴行買了鋼琴后,才發(fā)現(xiàn)要找搬家公司搬運(yùn)剛鋼琴,而琴行附帶的搬運(yùn)服務(wù)價(jià)格又很貴,于是不得不請琴行的搬運(yùn)車將鋼琴運(yùn)回家。鋼
14、琴買回家后,需要聯(lián)系女兒的鋼琴老師,在浩如煙海的培訓(xùn)信息中想找到自己新人的培訓(xùn)信息可不簡單,于是王先生花了整整一天的休息時(shí)間找來了鋼琴老師。女兒練琴還沒幾天,老師就反映鋼琴的音律有問題,需要調(diào)律,于是又上網(wǎng)尋找鋼琴調(diào)律師。女兒練了半年,王先生覺得女兒很反感練習(xí)鋼琴,王先生和妻子也不愿意強(qiáng)迫孩子,于是花了上萬元的鋼琴閑置在家。綜合一下,王先生從想給女兒買鋼琴開始就面臨一系列的問題:1.選擇合適的鋼琴,包括價(jià)格、品牌(涉及模塊:鋼琴選購、琴
15、行信息);2.了解行業(yè)信息,例如了解品牌的行業(yè)口碑、性能等(涉及模塊:行業(yè)新聞、鋼琴選購、用戶評價(jià)、留言等);3.決定買</p><p><b> 1.2 現(xiàn)狀分析</b></p><p> 目前國內(nèi)樂器市場潛力巨大,而鋼琴素有樂器之王的美稱,它作為一種高檔、優(yōu)雅的樂器自然受到大眾的追捧,銷售鋼琴所產(chǎn)生的商業(yè)利益也很大,商家也都在不遺余力的宣傳。商家所選擇的宣傳平
16、臺主要是自己企業(yè)的網(wǎng)站,這樣的宣傳成本低,維護(hù)難度相對較小,但是對于用戶的需求卻得不到滿足。用戶在涉足樂器這個(gè)行業(yè)的時(shí)候就像了解更多的相關(guān)信息,而學(xué)習(xí)的過程就是不斷的了解行業(yè)信息,和網(wǎng)友交流,觀察大眾的評價(jià)等等。所以我認(rèn)為可以將宣傳重點(diǎn)放在用戶的需求上,用戶在瀏覽宣傳資料的同時(shí)能夠自我成長,注重用戶的需求才是網(wǎng)站的生存之道,也是網(wǎng)站能不能實(shí)現(xiàn)商業(yè)價(jià)值的重要體現(xiàn)。因此我將鋼琴網(wǎng)的定位定位在門戶性質(zhì)的鋼琴網(wǎng)站,整合各種信息于一體,滿足用戶的
17、需求,甚至還可以擴(kuò)展到所有樂器的銷售宣傳和用戶交流。</p><p><b> 1.3 實(shí)現(xiàn)功能</b></p><p> 1.用戶瀏覽各種信息,包括鋼琴的選購、行業(yè)新聞、服務(wù)信息、培訓(xùn)信息、琴行信息等等;</p><p> 2.用戶注冊成為注冊用戶(包括個(gè)人用戶和企業(yè)用戶);</p><p> 3.注冊用戶發(fā)布
18、和管理(更新、刪除)自己發(fā)布的信息;</p><p> 4.用戶搜索想找自己想要的鋼琴(鋼琴搜索);</p><p> 5.按不同的需求選擇鋼琴(價(jià)格、型號、品牌等)</p><p> 6.管理員管理用戶,授予用戶不同的權(quán)限;</p><p> 7. 上傳文件時(shí)重命名文件名(“當(dāng)前時(shí)間”+“_文件名”)sfValidatorFile類
19、中修改generateFilename()方法;</p><p> 8.刪除物理文件;在刪除數(shù)據(jù)庫記錄的同時(shí)刪除服務(wù)器文件夾中的對應(yīng)物理文件</p><p> 9.管理員審核用戶發(fā)布的消息,更新網(wǎng)站內(nèi)容;</p><p><b> 2 確定開發(fā)環(huán)境</b></p><p> 在系統(tǒng)實(shí)施之前很重要的一項(xiàng)工作就是確定
20、系統(tǒng)的開發(fā)環(huán)境。系統(tǒng)規(guī)模的大小、需求、個(gè)人對編程語言的熟悉和愛好等等都決定著系統(tǒng)的開發(fā)環(huán)境。</p><p><b> 2.1 語言環(huán)境</b></p><p> PHP是一種易于學(xué)習(xí)和使用的服務(wù)器端腳本語言。只需要很少的編程知識你就能使用PHP建立一個(gè)真正交互的WEB站點(diǎn)。PHP是能讓你生成動態(tài)網(wǎng)頁的工具之一。PHP代表:超文本預(yù)處理器(PHP: Hyperte
21、xt Preprocessor)。PHP是完全免費(fèi)的,不用花錢,你可以從PHP官方站點(diǎn)(http://www.php.net)自由下載。PHP遵守 GNU公共許可(GPL),在這一許可下誕生了許多流行的軟件諸如Linux和Emacs。你可以不受限制的獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。PHP在大多數(shù)Unix平臺,GUN/Linux和微軟Windows平臺上均可以運(yùn)行。怎樣在Windows環(huán)境的PC機(jī)器或Unix機(jī)器上安裝PHP的
22、資料可以在PHP官方站點(diǎn)上找到,同時(shí)其學(xué)習(xí)和安裝過程很簡單。</p><p> 雖然在大學(xué)的課程中沒有系統(tǒng)的學(xué)習(xí)過PHP語言,但是我實(shí)習(xí)的過程中使用的語言正式PHP,因此在實(shí)習(xí)的過程中我自學(xué)了PHP語言并且結(jié)合symfony的框架進(jìn)行開發(fā)工作,另外一方面的原因是PHP國內(nèi)的技術(shù)力量并不是集中現(xiàn)在并不是分散在成熟企業(yè)中,而是主要分布在網(wǎng)絡(luò)新手,技術(shù)愛好者,部分中小企業(yè),教育機(jī)構(gòu),作為新手的我當(dāng)然想選擇一門簡單易學(xué)
23、的語言,所以本次畢業(yè)論文我選擇的是PHP語言作為編程語言。</p><p><b> 2.2 開發(fā)框架</b></p><p> 如今的PHP框架層出不窮,其中有些比其他的更加惹人耳目。我不是這方面的專家,甚至不能熟練地使用其中的一種,所以在這里我也不想討論哪些算是框架,哪些不算框架。這里我要選擇的是哪一中框架能讓我快速的學(xué)會使用并高效的進(jìn)行項(xiàng)目開發(fā)。</p
24、><p> 隨著Ruby on Rails的火爆,PHP這個(gè)流行的Web應(yīng)用腳本語言也出現(xiàn)了大量的新一代開發(fā)框架。與此同時(shí),國內(nèi)PHP開發(fā)者也開始緊跟國外發(fā)展,推出了不同的開發(fā)框架。在RoR流行之前,PHP領(lǐng)域也有不少開發(fā)框架,例如Mojavi、WACT、PHPMvc和Seagull等。這些框架雖然也采用了MVC模式、數(shù)據(jù)庫抽象層等技術(shù)。但由于當(dāng)時(shí)PHP本身不像現(xiàn)在這樣流行,所以這些框架都沒有得到大量應(yīng)用,最終歸于
25、沉寂。而在感受到RoR提供的快速開發(fā)能力后,PHP社區(qū)像被注入了興奮劑。各種應(yīng)用技術(shù)和開發(fā)框架層出不窮。</p><p> Symfony正是這些新涌現(xiàn)的PHP框架中的佼佼者。ymfony是一個(gè)非常成熟的框架,大量利用了已有的開源項(xiàng)目。Symfony使用Mojavi的核心代碼實(shí)現(xiàn)了框架的MVC模式,利用 Propel作為數(shù)據(jù)庫抽象層。Symfony不僅功能強(qiáng)大,而且對Ajax有全面的支持。加上官方網(wǎng)站提供的大量
26、文檔和教程,并擁有一個(gè)活躍的社區(qū),因 此受到許多開發(fā)者的歡迎。</p><p> 對于希望選擇一個(gè)框架作為企業(yè)內(nèi)部系統(tǒng)基礎(chǔ)架構(gòu)的企業(yè)來說,Symfony的成熟度、豐富的文檔和活躍的社區(qū)都是值得考慮的。畢竟企業(yè)內(nèi)部系統(tǒng)更為看重的是穩(wěn)定性和長期的支持。</p><p> 綜合以上原因和個(gè)人對各種框架的使用熟練程度,symfony理所當(dāng)然的成為了我的首選。</p><p&
27、gt;<b> 2.3 開發(fā)環(huán)境</b></p><p> 2.3.1 語言環(huán)境、數(shù)據(jù)庫、服務(wù)器</p><p> XAMPP(Apache+MySQL+PHP+PERL)是一個(gè)功能強(qiáng)大的建站集成軟件包。這個(gè)軟件包原來的名字是LAMPP,但是為了避免誤解,最新 的幾個(gè)版本就改名為 XAMPP 了。它可以在Windows、Linux、Solaris三種操作系統(tǒng)下安
28、裝使用,支持多語言:英文、簡體中文、繁體中文、韓文、俄文、日文等。</p><p> 許多人通過他們自己的經(jīng)驗(yàn)認(rèn)識到安裝 Apache 服務(wù)器是件不容易的事兒。如果您想添加 MySQL、PHP 和 Perl,那就更難了。XAMPP 是一個(gè)易于安裝且包含 MySQL、PHP 和 Perl 的 Apache 發(fā)行版。XAMPP 的確非常容易安裝和使用:只需下載,解壓縮,啟動即可安裝PHP、MySQL數(shù)據(jù)庫和Apac
29、he服務(wù)器,非常方便。</p><p> 2.3.2 symfony框架環(huán)境</p><p> 在安裝了Xampp之后,下面我們就可以著手安裝symfony框架了。Symfony是一個(gè)基于MVC模式的面向?qū)ο蟮腜HP5框架。Symfony允許在一個(gè)web應(yīng)用中分離事務(wù)控制,服務(wù)邏輯和表示層。同時(shí),它還包含了 很多工具和類用以縮短開發(fā)復(fù)雜的網(wǎng)絡(luò)應(yīng)用的時(shí)間?;谧罴裌eb開發(fā)實(shí)踐,已經(jīng)有多
30、個(gè)網(wǎng)站完全采用此框架開發(fā),symfony的目的是加速Web應(yīng)用的創(chuàng) 建與維護(hù)。它的特點(diǎn)如下:1.簡單的模板功能;2.緩存管理;3.自定義URL; 4.多語言與I18N支持;5.采用對象模型與MVC分離;6.Ajax支持。 </p><p> Symfony的安裝過程是在線完成的,其過程相當(dāng)復(fù)雜,在這里就不做贅述了,下面我將著重闡述一下symfony的各種特點(diǎn)在項(xiàng)目開發(fā)中的應(yīng)用。</p><p
31、> 1.模板功能。在symfony的框架環(huán)境下,通過運(yùn)行symfony命令在模型層就能生成大量數(shù)據(jù)模型對數(shù)操作的方法,在視圖層可以用實(shí)例方便的調(diào)用這些方法。模板也是通過symfony命令得到的,它包含了查詢對應(yīng)頁面需要顯示的數(shù)據(jù)內(nèi)容,只需要一句簡單的symfony命令就能快速的得到一些簡單的頁面,如果想進(jìn)一步的開發(fā)和美化,只需要在其基礎(chǔ)上進(jìn)行深化就可以了而不需要進(jìn)行繁瑣的編碼得到初始的系統(tǒng)框架,這樣就大大加快的開發(fā)的效率。<
32、;/p><p> 2.緩存管理。symfony提供一套靈活的服務(wù)器端緩存系統(tǒng)。對YAML文件進(jìn)行的簡單直觀的設(shè)置,就允許將整個(gè)頁面,動作或局部模板的響應(yīng)結(jié)果,以及模板片斷保存到文件中。底層數(shù)據(jù)改變時(shí),可有選擇性得刪除部分緩存。刪除部分緩存的操作可以用命令行和特殊的動作方法實(shí)現(xiàn)。symfony也提供一套簡單的方法實(shí)現(xiàn)客戶端緩存,該方法利用了HTTP頭。本章將講述這些內(nèi)容,介紹如何監(jiān)控緩存帶來的性能提升。</p&
33、gt;<p> 3.自定義URL。自定義URL可以美化系統(tǒng)的URL外觀。我們都知道,url中的關(guān)鍵詞對搜索引擎排名中的重要作用。如果以關(guān)鍵詞為域名的網(wǎng)站,那排名就很容易排到前面去,所以這也從另一個(gè)角度說明一個(gè)行業(yè)詞之類的域名本身還具有seo價(jià)值。漂亮的URL外觀不僅能便于搜索引擎的收錄,而且在用戶體驗(yàn)方面也發(fā)揮著重要的作用,例如用戶可以直接從URL信息上了解自己瀏覽的是什么行業(yè)、什么類型的網(wǎng)站等等。</p>
34、<p> 4.多語言與I18N支持。I18N就是Internationalization(國際化)的縮寫,其原因是I和n之間一共有18個(gè)字母。對于叫成熟的網(wǎng)站系統(tǒng)國際化是不可避免的。例如一個(gè)門戶型的網(wǎng)站,用戶人群不僅包括中國人,還包括很多外國人,為了符合特殊人群的閱讀習(xí)慣,語言國際化不可避免。</p><p> 5.采用對象模型與MVC分離。symfony完整實(shí)現(xiàn)了MVC三層,封裝了所有東西,包括
35、 $POST,$GET 數(shù)據(jù),異常處理,調(diào)試功能,數(shù)據(jù)檢測;包含強(qiáng)大的緩存功能,自動加載Class,symfony還具有很強(qiáng)大的view層操 作,能夠零碎的包含單個(gè)多個(gè)文件;非常強(qiáng)大的配置功能,使用yml配置能夠控制所有框架和程序運(yùn)行行為,能夠很隨意的定義各種自己的 class,并且symfony能夠自動加載(auto load)這些class,能夠在程序中隨意調(diào)用;包含強(qiáng)大的多層級項(xiàng)目和應(yīng)用管理:Project --> Appl
36、ication --> Module --> Action,能夠滿足一個(gè)項(xiàng)目下多個(gè)應(yīng)用的需要。模型是指從現(xiàn)實(shí)世界中挖掘出來的對象模型,是應(yīng)用邏輯的反映。模型封裝了數(shù)據(jù)和對數(shù)據(jù)的操作,是實(shí)際進(jìn)行數(shù)據(jù)處理的計(jì)算的地方。視圖是應(yīng)用和用戶之間的接 口,它負(fù)責(zé)將應(yīng)用顯現(xiàn)給用戶和顯示模型的狀態(tài)??刂破髫?fù)責(zé)視圖和模型之間的交互,控制對用戶輸入的響應(yīng)響應(yīng)方式和流程,它主要負(fù)責(zé)兩方面的動作:把用戶的 請求分發(fā)到相應(yīng)的模型;將模型的改變及時(shí)反應(yīng)
37、到視圖上。MVC將這些對象分離以提高靈活性和復(fù)用性。</p><p> 6.Ajax支持。AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。Ajax應(yīng)用程序的優(yōu)勢在于: 1. 通過異步模式,提升了用戶體驗(yàn);2. 優(yōu)化了瀏覽器和服務(wù)器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占用;3. Ajax引擎在客
38、戶端運(yùn)行,承擔(dān)了一部分本來由服務(wù)器承擔(dān)的工作,從而減少了大用戶量下的服務(wù)器負(fù)載。</p><p><b> 3 系 統(tǒng) 概 述</b></p><p> 3.1 鋼琴網(wǎng)系統(tǒng)的作用</p><p> 鋼琴網(wǎng)的作用是方便用戶獲取鋼琴相關(guān)的各種服務(wù)信息,例如鋼琴的選購,鋼琴相關(guān)的各種服務(wù)信息、行業(yè)信息等等。鋼琴網(wǎng)還可以供企業(yè)級用戶發(fā)布和展示自己
39、的產(chǎn)品信息,獲取商業(yè)利益。</p><p> 用戶對象涉及面很大,主要包括想培養(yǎng)孩子鋼琴興趣的家長,對鋼琴知識和曲譜有興趣的學(xué)生,有能力做鋼琴服務(wù)行業(yè)的個(gè)人和企業(yè),鋼琴樂器銷售的企業(yè)甚至是賦閑在家的鋼琴老師,與鋼琴相關(guān)的在這里應(yīng)有盡有。</p><p> 3.2鋼琴網(wǎng)系統(tǒng)設(shè)計(jì)思想</p><p> 鋼琴網(wǎng)系統(tǒng)主要包括系統(tǒng)的登陸、用戶瀏覽、用戶發(fā)布信息、后臺管理
40、系統(tǒng)和在管理員審核用戶發(fā)布的信息等。</p><p> 首先是系統(tǒng)登陸功能,在symfony框架開發(fā)中大量運(yùn)用到了插件(plugin)。這里我用的是sfGuardPlugin,它是專用來管理用戶權(quán)限管理,分組的插件,它的方便就是很方便的管理用戶,安全性也很好,但是不足的就是沒有用戶注冊的頁面,因此我通過閱讀相關(guān)文檔手動加上了用戶注冊頁面。</p><p> 用戶瀏覽信息的設(shè)計(jì)主要是用戶
41、界面和體驗(yàn)的設(shè)計(jì)。用戶在瀏覽信息時(shí)怎么樣才能讓用戶最大量的獲得相關(guān)信息,相關(guān)的信息在一個(gè)頁面就可以看到,從而節(jié)約大量的操作,這里我采用組件的形式,將可以重用的信息單獨(dú)封裝成組件,在需要用的地方直接調(diào)用即可,同時(shí)又減少了工作量(重復(fù)編碼)。</p><p> 用戶發(fā)布信息是先通過分析各種用戶可能想發(fā)布的信息,將其抽象成數(shù)據(jù)庫的表結(jié)構(gòu),將注冊用戶提交的信息存儲在數(shù)據(jù)庫中,通過管理員審核將其發(fā)布在鋼琴網(wǎng)上。</
42、p><p> 后臺管理系統(tǒng)的設(shè)計(jì)。感謝Symfony框架強(qiáng)大的自動完成功能。通過運(yùn)行相應(yīng)命令symfony可以根據(jù)數(shù)據(jù)庫定義生成后臺管理程序,能實(shí)現(xiàn)大部分的管理要求,而且可以加入自定義的管理動作。</p><p> 管理員是很和注冊用戶發(fā)布的信息的設(shè)計(jì)。通過在各種發(fā)布信息的表結(jié)構(gòu)中預(yù)定義一個(gè)show屬性,用戶提交信息的時(shí)候默認(rèn)為0,網(wǎng)站管理員通過后臺管理界面對需要審核的信息進(jìn)行審核,同意發(fā)
43、布的信息將其show屬性修改為1,在前臺程序中查詢條件中加入條件為show屬性為1的信息進(jìn)行查詢,顯示。</p><p> 3.3 鋼琴網(wǎng)系統(tǒng)存在的問題現(xiàn)狀</p><p> 因?yàn)殚_發(fā)經(jīng)驗(yàn)的不足,鋼琴網(wǎng)還存在著很大的改進(jìn)空間。例如用戶的提交流程略顯繁瑣,用戶使用流程不優(yōu)化,有些也確實(shí)是技術(shù)上的原因,種種這些都需要未來花大力氣來學(xué)習(xí)和修改??偨Y(jié)了一下,系統(tǒng)還存在著如下的問題需要改進(jìn):&l
44、t;/p><p> 1.在批量上傳對象的多張圖片時(shí),如果最多一次可以上傳四張圖片,而用戶實(shí)際只上傳了一張圖片。剩下的三張圖片雖然沒有選擇上傳的文件,但是也保存到了數(shù)據(jù)庫中,其中文件名的字段為空,這樣現(xiàn)任不合理。</p><p> 2.搜索引擎的局限性;現(xiàn)在已經(jīng)做好的搜索引擎只能搜索鋼琴對象而不能搜索全站的信息(例如新聞、琴行等),而且還存在的問題就是輸入中文搜索的時(shí)候搜索不到任何內(nèi)容,問題
45、可能出在將數(shù)據(jù)庫的記錄存儲到data/piano.dev.index目錄下的文件中時(shí)對字符格式進(jìn)行了轉(zhuǎn)化,中文字符被轉(zhuǎn)換成了其他的字符類型,所以在搜索中文字符關(guān)鍵字的時(shí)候就搜索不到記錄對象。</p><p> 3.權(quán)限的管理流程的問題;當(dāng)一個(gè)企業(yè)用戶想要發(fā)表自己的企業(yè)信息時(shí),先要注冊一個(gè)企業(yè)用戶類型的賬戶,經(jīng)過管理員的審核之后才授予其相應(yīng)發(fā)布權(quán)限,當(dāng)權(quán)限授予之后,用戶發(fā)表的信息還要得到管理員的審核才能發(fā)布到前臺
46、顯示,整個(gè)過程稍嫌繁瑣,用戶注冊提交信息列成還需要進(jìn)一步的優(yōu)化。 </p><p><b> 4 需 求 分 析</b></p><p><b> 4.1 現(xiàn)狀分析</b></p><p> 用戶對象涉及面很大,主要包括想培養(yǎng)孩子鋼琴興趣的家長,對鋼琴知識和曲譜有興趣的學(xué)生,有能力做鋼琴服務(wù)行業(yè)的個(gè)人和企業(yè),鋼琴樂器
47、銷售的企業(yè)甚至是賦閑在家的鋼琴老師,與鋼琴相關(guān)的在這里應(yīng)有盡有。</p><p> 目前國內(nèi)樂器市場潛力巨大,而鋼琴素有樂器之王的美稱,它作為一種高檔、優(yōu)雅的樂器自然受到大眾的追捧,銷售鋼琴所產(chǎn)生的商業(yè)利益也很大,商家也都在不遺余力的宣傳。商家所選擇的宣傳平臺主要是自己企業(yè)的網(wǎng)站,這樣的宣傳成本低,維護(hù)難度相對較小,但是對于用戶的需求卻得不到滿足。用戶在涉足樂器這個(gè)行業(yè)的時(shí)候就像了解更多的相關(guān)信息,而學(xué)習(xí)的過程
48、就是不斷的了解行業(yè)信息,和網(wǎng)友交流,觀察大眾的評價(jià)等等。所以我認(rèn)為可以將宣傳重點(diǎn)放在用戶的需求上,用戶在瀏覽宣傳資料的同時(shí)能夠自我成長,注重用戶的需求才是網(wǎng)站的生存之道,也是網(wǎng)站能不能實(shí)現(xiàn)商業(yè)價(jià)值的重要體現(xiàn)。因此我將鋼琴網(wǎng)的定位定位在門戶性質(zhì)的鋼琴網(wǎng)站,整合各種信息于一體,滿足用戶的需求,甚至還可以擴(kuò)展到所有樂器的銷售宣傳和用戶交流。</p><p> 本系統(tǒng)所使用的開發(fā)語言PHP5是位于服務(wù)器端的腳本運(yùn)行環(huán)境
49、,通過這種環(huán)境,用戶可以創(chuàng)建和運(yùn)行動態(tài)的交互式 Web 服務(wù)器應(yīng)用程序,如交互式的動態(tài)網(wǎng)頁,包括使用 HTML 表單收集和處理信息,上傳與下載等等。更重要的是,PHP5支持面向?qū)ο蟮木幊陶Z言,能夠很好的抽象顯示業(yè)務(wù)邏輯,加快開發(fā)速率。Symfony框架在歐洲已經(jīng)是很成熟的中型站點(diǎn)開發(fā)框架,其可以根據(jù)定義好的數(shù)據(jù)模型自動生成對該模型的各種操作方法和模型對象之間的關(guān)系關(guān)聯(lián)方法。從而節(jié)省大量的硬編碼時(shí)間,加快開發(fā)速率,這也是我為什么選擇sym
50、fony框架的主要原因。</p><p><b> 4.2 系統(tǒng)的結(jié)構(gòu)</b></p><p> symfony框架提供了一種將各種單獨(dú)的數(shù)據(jù)模型設(shè)置成單獨(dú)的模塊一面影響各自之間的數(shù)據(jù)處理。這里鋼琴網(wǎng)的系統(tǒng)可以大致分為四大模塊:1.用戶注冊、登錄模塊(sfGuardPlugin),2.顯示信息,用戶瀏覽模塊;3.用戶發(fā)布信息模塊;4后臺管理模塊,其中后臺管理又分為
51、信息管理和用戶管理。</p><p><b> 4.3 技術(shù)要求</b></p><p> 1.語言基礎(chǔ),熟悉PHP5的語言特性和其各種函數(shù)的使用;</p><p> 2.?dāng)?shù)據(jù)庫設(shè)計(jì)基礎(chǔ),理解數(shù)據(jù)模型之間的各種邏輯關(guān)系,例如一對一、一對多、多對多關(guān)系的數(shù)據(jù)庫表示、程序語言的實(shí)現(xiàn)等;</p><p> 3.編程思想
52、,對MVC的編程思想有很深的認(rèn)識;它不同于傳統(tǒng)的面向過程的開發(fā),它將程序嚴(yán)格的劃分為三層,即模型層、控制層、視圖層。各層之間相互依存,但是作用各不相同。</p><p> 4.外語基礎(chǔ)(英文),因?yàn)閲鴥?nèi)關(guān)于symfony框架的參考文章很有限,大部分的參考文獻(xiàn)是來自于國外的網(wǎng)站、論壇,因此在研究symfony框架時(shí)要具備一定的英文閱讀能力。</p><p><b> 4.4 運(yùn)
53、行環(huán)境</b></p><p> 為了保證系統(tǒng)運(yùn)行的效率和可靠性,系統(tǒng)Web服務(wù)器端應(yīng)具有較高的軟硬件配置,客戶端的要求不是很高。此應(yīng)用程序可廣泛運(yùn)行于互聯(lián)網(wǎng)。其運(yùn)行要求如下:</p><p> 服務(wù)器端: Apache,IE 5.5/6.0,MySQL數(shù)據(jù)庫,symfony1.2 ,php5.14以上。</p><p> 客戶端: Windows
54、98/2000/XP,Internet Explorer(IE)等</p><p> 本系統(tǒng)在WindowsXP +Apache+FireFox3.04下調(diào)試通過。</p><p><b> 5 鋼琴網(wǎng)系統(tǒng)設(shè)計(jì)</b></p><p> 5.1鋼琴網(wǎng)系統(tǒng)結(jié)構(gòu)功能</p><p> 鋼琴網(wǎng)系統(tǒng)包括:用戶瀏覽信息,注
55、冊、登錄和管理自己發(fā)布的信息。系統(tǒng)用戶可以選擇注冊和不注冊兩種方式使用。對于為注冊用戶只提供瀏覽功能,對注冊用戶提供發(fā)布和刪除自己的信息。其中注冊用戶又分為個(gè)人用戶和企業(yè)用戶,個(gè)人用戶可以發(fā)布自己的服務(wù)信息,企業(yè)用戶可以發(fā)布自己的產(chǎn)品、服務(wù)信息。用戶登錄后可以打不自己的信息,等待網(wǎng)站管理員的審核,現(xiàn)實(shí)用戶發(fā)布的信息。系統(tǒng)的具體功能框架如圖4-1所示:</p><p> 圖5-1 鋼琴網(wǎng)系統(tǒng)功能框架圖</
56、p><p><b> 5.2 網(wǎng)站結(jié)構(gòu)</b></p><p> 功能需求已經(jīng)確定,下面根據(jù)系統(tǒng)的功能需求確定整個(gè)網(wǎng)站結(jié)構(gòu)。鋼琴網(wǎng)系統(tǒng)的網(wǎng)站結(jié)構(gòu)如下圖所示:</p><p> 圖5-2 網(wǎng)站結(jié)構(gòu)圖</p><p> 5.3數(shù)據(jù)庫的分析與設(shè)計(jì)</p><p> 因?yàn)殇撉倬W(wǎng)中數(shù)據(jù)的涵蓋面很大,包
57、括新聞、鋼琴、琴行、服務(wù)信息、用戶等數(shù)十個(gè)主要對象和其附屬對象,例如新聞表,其附屬表包括新聞分類表和評論表。而我所選取的開發(fā)框架symfony將數(shù)據(jù)庫的定義全部寫在schema.yml文件中,在該文件中可以定義各種實(shí)體的數(shù)據(jù)庫表結(jié)構(gòu),包括實(shí)體的主鍵、外鍵定義,實(shí)體之間的關(guān)系定義等。然后再運(yùn)行相關(guān)命令,根據(jù)在schema.yml文件中定義的數(shù)據(jù)模型生成互相關(guān)聯(lián)的數(shù)據(jù)模型,這樣就可以在控制層方便的實(shí)現(xiàn)各個(gè)實(shí)體之間的關(guān)系。</p>
58、<p> 5.4 主要功能模塊</p><p> 系統(tǒng)主要功能模塊及功能圖如下:</p><p> 圖5-3 鋼琴模塊圖</p><p> 圖5-4 曲譜模塊圖</p><p> 5.5鋼琴網(wǎng)系統(tǒng)實(shí)現(xiàn)</p><p> 5.5.1 系統(tǒng)結(jié)構(gòu)</p><p> 由于該
59、系統(tǒng)面向總校和分布于全國各地的教學(xué)中心,因此在系統(tǒng)結(jié)構(gòu)上采用B/S結(jié)構(gòu)相結(jié)合的多層軟件體系結(jié)構(gòu)。域網(wǎng)內(nèi)部快速的信息處理, B/S結(jié)構(gòu)具有較好的網(wǎng)絡(luò)擴(kuò)展性和兼容性,以B/S結(jié)構(gòu)能滿足地理位置分散、通訊介質(zhì)各異的應(yīng)用。采用多層體系結(jié)構(gòu)可以將數(shù)據(jù)庫、業(yè)務(wù)邏輯、用戶界面分離開,這樣做的優(yōu)點(diǎn)是:可伸縮性好、可管理性強(qiáng)、可重用性好、部署應(yīng)用程序的代價(jià)比較小。</p><p> 5.5.2 開發(fā)工具</p>&
60、lt;p> 鋼琴網(wǎng)系統(tǒng)使用的編程語言是PHP語言,數(shù)據(jù)庫為MySQL,服務(wù)器為Apache和symfony的開發(fā)框架。PHP雖然不是真正的面向?qū)ο蟮恼Z言,但是在PHP5之后加入了面向?qū)ο蟮奶匦?,而且它作為一種開源的語言,經(jīng)過世界范圍內(nèi)使用者的豐富和完善,在安全性和穩(wěn)定性上已經(jīng)能夠滿足大中型項(xiàng)目的需求。MySQL數(shù)據(jù)庫主要應(yīng)用在中型規(guī)模的項(xiàng)目,目前企業(yè)級的項(xiàng)目大多數(shù)都是用MySQL數(shù)據(jù)庫。Symfony的框架適合于大中型企業(yè)級的項(xiàng)
61、目開發(fā),其開發(fā)過程完全體現(xiàn)了MVC的開發(fā)思想,結(jié)合鋼琴網(wǎng)的定位——綜合性的門戶網(wǎng)站,所以這里我采用了symfony的框架進(jìn)行開發(fā),其活躍的社區(qū)和數(shù)目繁多的插件都是我選擇symfony框架的原因。</p><p><b> 6 具體設(shè)計(jì)及實(shí)現(xiàn)</b></p><p> 6.1系統(tǒng)用戶瀏覽模塊實(shí)現(xiàn)</p><p> 前面提到鋼琴網(wǎng)系統(tǒng)的實(shí)現(xiàn)是
62、利用MVC的設(shè)計(jì)模式來實(shí)現(xiàn)其體系結(jié)構(gòu)的,它將交互式應(yīng)用分為三層:模型(model)、視圖(view)和控制器(controller)三個(gè)部分。其中模型層是依據(jù)schma.yml文件中定義的數(shù)據(jù)庫模型通過運(yùn)行相關(guān)命令生成的。其中封裝了對象模型的數(shù)據(jù)和對數(shù)據(jù)進(jìn)行的操作。視圖是用戶和應(yīng)用之間的接口,它負(fù)責(zé)兩個(gè)方面:將用戶的請求分發(fā)到相應(yīng)的模型和將模型的改變及時(shí)反映到視圖上,而視圖的作用就是作為用戶的操作界面和應(yīng)用的輸出。</p>
63、<p> 系統(tǒng)用戶可以瀏覽的信息大致可以分為新聞、鋼琴信息、服務(wù)信息和曲譜信息,其在前臺顯示的原理大致相同,這里我以鋼琴信息瀏覽的實(shí)現(xiàn)為例子進(jìn)行說明。當(dāng)管理員在后臺發(fā)布了一個(gè)鋼琴信息并將其存入了數(shù)據(jù)庫,那么在前臺界面怎么得到鋼琴的信息并將其顯示出來呢?</p><p> 對于鋼琴對象的數(shù)據(jù)和對其的操作全部封裝在模型層,模型層包括對鋼琴對象的添加、刪除、修改、查詢、處理和它相關(guān)聯(lián)對象之間的關(guān)系等等的
64、方法。模型層是通過schema.yml文件中的數(shù)據(jù)定義在symfony框架中運(yùn)行相關(guān)命令得到的,這里我著重就控制層和視圖層說明一下其實(shí)現(xiàn)用戶瀏覽的實(shí)現(xiàn)方式。</p><p> 1. 首先是鋼琴主頁面,在鋼琴模塊的控制層里面的executeIndex()方法負(fù)責(zé)從模型層得到所有符合查詢條件的鋼琴對象,代碼如下:</p><p> public function executeIndex(
65、sfWebRequest $request)</p><p><b> {</b></p><p> $c = new Criteria();</p><p> $c->addAscendingOrderByColumn(PianoPeer::ID);//按鋼琴的ID號排序</p><p> $c->
66、add(PianoPeer::SHOW, 1);//查詢所有show字段為1的鋼琴</p><p> $this->piano_list = PianoPeer::doSelect($c);//將查詢到的鋼琴對象集放在piano_list對象中</p><p> $this->pager = new sfPropelPager('Piano',6);//運(yùn)用
67、pager對象定義每頁最多顯示6個(gè)鋼琴對象</p><p> $this->pager->setCriteria($c);</p><p> $this->pager->setPage($this->getRequestParameter('page', 1));</p><p> $this->pager-
68、>init();</p><p><b> }</b></p><p> 視圖層(indexSuccess.php)代碼:</p><p> <div class="piano_b" ></p><p> <h2>鋼琴選購</h2></p>
69、<p><b> <br></b></p><p> <?php foreach ($pager->getResults() as $piano): ?></p><p> <div class="piano_b_1" style="float:left;width:20%;&quo
70、t;></p><p> <a href="<?php echo url_for('piano_show',$piano) ?>"><img src="/uploads/pianos/<?php echo $piano->getLogo() ?>" alt="<?php echo $pi
71、ano->getName() ?> logo" border="0" height=100 width="110" /></a></p><p> <p><a href="<?php echo url_for('piano_show',$piano) ?>">
72、<?php echo $piano->getBrand().$piano->getName()."@@@".$piano->getPrice(); ?></a></p></p><p><b> </div></b></p><p> 2.顯示鋼琴對象屬性的頁面:</p&g
73、t;<p> 當(dāng)用戶點(diǎn)擊了一個(gè)鋼琴的鏈接,URL將其ID號傳遞到show()方法,按照該ID號查詢得到ID好為當(dāng)前ID號的鋼琴,再通過調(diào)用鋼琴模型里的方法獲取該鋼琴的各個(gè)屬性。控制層代碼:</p><p> public function executeShow(sfWebRequest $request)</p><p><b> {</b>&l
74、t;/p><p> $this->piano = $this->getRoute()->getObject();</p><p> $c = new Criteria();</p><p> $c->add(PianopicturePeer::PIANO_ID, $request->getParameter('id')
75、);</p><p> $c->addAscendingOrderByColumn(PianopicturePeer::ID);</p><p> $c->setLimit(8);</p><p> $this->pianopictures = PianopicturePeer::doSelect($c);</p><p&
76、gt; $this->services = $this->piano->getServices();</p><p> $this->user = $this->piano->getUser();</p><p><b> }</b></p><p> 6.2 用戶注冊、登錄和權(quán)限管理的實(shí)現(xiàn)</
77、p><p> 在symfony框架的項(xiàng)目開發(fā)中大量運(yùn)用到了插件,插件是世界各地的程序愛好者或軟件從業(yè)人員按照其規(guī)定的編碼標(biāo)準(zhǔn)開發(fā)的,能夠方便的移植到項(xiàng)目開發(fā)中的已完成的應(yīng)用。如果在項(xiàng)目中自己獨(dú)立開發(fā)像登錄模塊這樣安全性要求較高的模塊難免存在安全性的隱患,而在symfony的插件體制中,可以允許項(xiàng)目大量運(yùn)用已存在的并且運(yùn)行很穩(wěn)定的插件,而且還加快了項(xiàng)目開發(fā)的速度,所以這里我選取的是在symfony框架項(xiàng)目開發(fā)中運(yùn)用得
78、非常頻繁的一款插件sfGuardPlugin,它提供了用戶登錄、權(quán)限管理等功能,還能根據(jù)實(shí)際需求擴(kuò)展其用途。</p><p><b> 6.2.1登錄模塊</b></p><p> 登錄模塊的實(shí)現(xiàn)代碼:</p><p><b> <html></b></p><p><b&g
79、t; <head></b></p><p> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></p><p> <link href="/css/pinao.css" rel="st
80、ylesheet" type="text/css"/></p><p><b> </head></b></p><p> <form action="<?php echo url_for('@sf_guard_signin') ?>" method="
81、post"></p><p> <?php echo $form['username']->renderRow(array('class'=>'text1')); ?></p><p> <?php echo $form['password']->renderRow(ar
82、ray('class'=>'text1')); ?></p><p> <?php echo $form['remember']->renderRow(); ?></p><p> <!--<input type="submit" value="登 錄" /
83、>--></p><p> <input type="image" src="/images/Index2_13.jpg" style="vertical-align:middle;"/><span style="color:#bd1d11; margin-left:5px;">|</spa
84、n><a href="####" style="color:#d31f11;margin-left:10px;">忘記密碼</a></p><p><b> </form></b></p><p><b> </html></b></p>
85、<p><b> 6.2.2注冊頁面</b></p><p> 在sfGuardPlugin插件中并沒有提供用戶注冊的功能,所以這里我自建了一張用于存儲用戶詳細(xì)信息的sf_guard_user_profile表,用戶注冊時(shí)用到的表單是由兩個(gè)表單部分組成的:sf_guard_user表單和sf_guard_user_profile表單,該插件提供了擴(kuò)展功能的接口。感謝sfGu
86、ardPlugin,因?yàn)閟fGuardUserForm.class是繼承自sfGuardUserAdminForm.class的,而在sfGuardUserAdminForm.class中已經(jīng)為我們要創(chuàng)建的模型sfGuardUserProfile預(yù)定義好了接口,在sfGuardUserAdminForm.class中已經(jīng)存在判斷sfGuardUserProfile是否存在的判斷語句,如果存在就是用mergeForm()方法將userpr
87、ofile的Form嵌入到User表單中,所以在使用new新創(chuàng)建用戶的時(shí)候,$form可以直接包含用戶詳細(xì)信息的創(chuàng)建。</p><p> 6.3實(shí)現(xiàn)用戶發(fā)布信息功能模塊</p><p> 根據(jù)系統(tǒng)設(shè)計(jì)用戶可以在鋼琴網(wǎng)中發(fā)布自己的企業(yè)信息、服務(wù)信息,當(dāng)管理員授予注冊用戶相應(yīng)權(quán)限后該用戶可以在對應(yīng)頁面提交自己的信息。Symfony框架中的表單是根據(jù)模型生成的,例如用戶發(fā)布的信息表單被抽象成
88、了InfoForm.class.php類,在該類中可以自定義該表單的屬性和外觀等。</p><p><b> 6.4系統(tǒng)運(yùn)行截圖</b></p><p> 6.4.1鋼琴網(wǎng)系統(tǒng)登錄界面</p><p> 鋼琴網(wǎng)系統(tǒng)登錄界面如圖6-1所示。</p><p> 圖6-1鋼琴網(wǎng)系統(tǒng)登錄界面</p><
89、;p> 6.4.2考試系統(tǒng)考試主界面</p><p> 鋼琴網(wǎng)主頁如圖6-2所示。</p><p> 圖6-2 鋼琴網(wǎng)主頁</p><p> 6.4.3用戶瀏覽新聞、琴行等界面 </p><p> 新聞主頁界面如圖6-3所示。</p><p> 圖6-3 新聞主頁界面</p><p
90、> 用戶瀏覽新聞界面如圖6-4所示。</p><p> 圖6-4 用戶瀏覽新聞界面</p><p> 6.3.4用戶提交信息界面</p><p> 用戶提交鋼琴信息界面如圖6-5所示。</p><p> 圖6-5 提交鋼琴信息</p><p> 6.4.5后臺管理界面</p><p
91、> 后臺管理界面如圖6-6所示。</p><p> 圖6-6后臺管理界面</p><p> 6.4.6查詢及結(jié)果界面</p><p> 查詢及結(jié)果界面顯示如圖6-7所示。</p><p> 圖6-7查詢及結(jié)果界面</p><p><b> 7 系統(tǒng)測試與調(diào)試</b></p&
92、gt;<p> 7.1 測試目的及任務(wù)</p><p> 測試的任務(wù)是發(fā)現(xiàn)系統(tǒng)中所存在的尚未解決的問題,只有及時(shí)的發(fā)現(xiàn)問題才能有效的解決問題。測試的目標(biāo)是暴露程序中的錯誤,因此測試在程序設(shè)計(jì)中有著極其重要的地位。</p><p> 測試階段的根本任務(wù)是發(fā)現(xiàn)并改正軟件中的錯誤。設(shè)計(jì)測試方案是測試階段的關(guān)鍵技術(shù)問題,其基本目標(biāo)是選用盡可能少的高效測試數(shù)據(jù),作到盡可能完善的測
93、試,從而盡可能多地發(fā)現(xiàn)軟件中的錯誤。</p><p><b> 7.2 測試方法</b></p><p> 黑盒測試和白盒測試是軟件測試的兩類不同方法。測試任何產(chǎn)品都有兩種方法:如果已經(jīng)知道了產(chǎn)品應(yīng)該具有的功能可以通過測試來檢驗(yàn)是否每個(gè)功能都能正常使用;如果知道產(chǎn)品內(nèi)部工作過程,可以通過測試來檢驗(yàn)產(chǎn)品內(nèi)部動作是否按照規(guī)格說明說的規(guī)定正常進(jìn)行。</p>
94、<p><b> 7.3 系統(tǒng)調(diào)試</b></p><p> 7.3.1 系統(tǒng)調(diào)試的常用方法</p><p> 一般來說,調(diào)試可以通過以下幾種方式:一個(gè)是從頭至尾將程序運(yùn)行一邊找到錯誤,二是回溯法,再一個(gè)就是原因排除法。無論采用什么方法,調(diào)試的根本目標(biāo)都是尋找軟件錯誤的原因并改正之。這個(gè)目標(biāo)是通過把系統(tǒng)地評估,直覺和運(yùn)氣組合起來實(shí)現(xiàn)的。</p&
95、gt;<p> 軟件測試是在軟件投入運(yùn)行之前,對軟件需求分析,設(shè)計(jì)規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。它是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,或者說軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測試?yán)樱▽ο到y(tǒng)進(jìn)行操作,看是否能有其預(yù)期的輸出結(jié)果)并利用這些測試?yán)尤ミ\(yùn)行程序,以發(fā)現(xiàn)程序錯誤的過程。</p><p> 軟檢測試是軟件交給用戶使用之前一個(gè)必不可少的過
96、程。它在軟件開發(fā)過程中橫跨兩個(gè)階段:通常在編寫出每個(gè)模塊后就對它做單元測試,模塊的編寫者與測試者是同一個(gè)人。在每個(gè)模塊都完成單元測試之后,對軟件系統(tǒng)進(jìn)行各種綜合測試,通常由專門的測試人員承擔(dān)這項(xiàng)工作。 </p><p><b> 8 結(jié)果與分析</b></p><p> 通過對鋼琴網(wǎng)系統(tǒng)的測試和調(diào)試,現(xiàn)有的系統(tǒng)還訊在這諸多的問題,這些問題主要包括兩個(gè)方面:一是設(shè)計(jì)
97、經(jīng)驗(yàn)不足導(dǎo)致業(yè)務(wù)邏輯的不合理;二是開發(fā)技術(shù)的欠缺,一些功能在現(xiàn)有的開發(fā)工具是能夠?qū)崿F(xiàn)的但是目前還沒有完全開發(fā)出來;總結(jié)一下現(xiàn)有的鋼琴網(wǎng)系統(tǒng)還存在這如下幾個(gè)問題:</p><p> 1.批量上傳的問題。在批量上傳對象的多張圖片時(shí),如果最多一次可以上傳4張圖片,而實(shí)際用戶之上傳了一張圖片。剩下的三張圖片雖然沒有“瀏覽”,但是也對保存到數(shù)據(jù)庫中,其中文件名字段為空,這樣顯然不合理;</p><p&
98、gt; 2.搜索引擎的局限性。現(xiàn)已經(jīng)做好的搜索引擎只能搜索鋼琴對象而不能搜索全站的內(nèi)容(新聞、琴行等),而且還存在的問題就是輸入中文的時(shí)候搜索不到任何內(nèi)容,問題可能出在將數(shù)據(jù)庫記錄存儲到data/piano.dev.index目錄下的文件中時(shí)進(jìn)行了字符轉(zhuǎn)換,中文字符轉(zhuǎn)換成了其他字符類型,所以在搜索中文關(guān)鍵字的時(shí)候搜索不到記錄對象;</p><p> 3.頁面跳轉(zhuǎn)的問題。例如用戶提交表單之后轉(zhuǎn)向哪里,全站的用戶
99、提交后的頁面跳轉(zhuǎn)已經(jīng)做了修改,可能還存在個(gè)別地方的遺漏,我這里重點(diǎn)要說的跳轉(zhuǎn)問題是:當(dāng)未登錄用戶訪問到一個(gè)頁面需要相應(yīng)權(quán)限才能訪問時(shí),用戶登錄后應(yīng)該返回到他登錄之前所訪問的頁面而不是主頁。</p><p> 4.設(shè)計(jì)的局限性。在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的時(shí)候,只考慮到了讓用戶發(fā)布琴行、品牌信息、鋼琴信息,但是在添加琴行信息時(shí)要添加與鋼琴品牌之間的關(guān)系,也就是說要添加該琴行銷售的哪些鋼琴的品牌,如果用戶提交的品牌信息不夠全
100、面或者管理員編輯的品牌信息不夠全面,發(fā)布琴行信息的用戶就無法建立與某一品牌之間的聯(lián)系,因?yàn)閿?shù)據(jù)庫中沒有其想要與之建立聯(lián)系的品牌信息,這樣用戶就必須到品牌模塊添加新的品牌信息,這樣的操作很不方便。</p><p> 5.權(quán)限的管理流程的問題。以前考慮權(quán)限管理的時(shí)候想著只要能實(shí)現(xiàn)就行,可是現(xiàn)在可以實(shí)現(xiàn)權(quán)限管理了卻發(fā)現(xiàn)存在著很大的問題。當(dāng)一個(gè)企業(yè)用戶想要發(fā)布一個(gè)琴行信息時(shí),其先要注冊,然后等待管理員核實(shí)、授權(quán)后才能發(fā)
101、布琴行信息,提交成功后還要等待系統(tǒng)管理員激活所發(fā)布的信息,整個(gè)過程稍顯繁瑣,很容易造成用戶的流失。</p><p> 6.后臺界面。后臺界面一直覺得很不友好,而且單頁顯示的信息量也很少,造成管理上的不方便;</p><p> 7.根據(jù)管理員在后臺批量激活用戶發(fā)布信息的方法也可以實(shí)現(xiàn)批量授予新注冊用戶權(quán)限的功能。</p><p><b> 9 致 謝
102、</b></p><p> 鋼琴網(wǎng)系統(tǒng)及畢業(yè)論文是在我的畢業(yè)指導(dǎo)老師的親切關(guān)懷和悉心指導(dǎo)下完成的。她嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵著我。從論文題目的選擇到項(xiàng)目的最終完成,老師都始終給予我細(xì)心的指導(dǎo)和不懈的支持。兩年多來,老師不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時(shí)還在思想、生活上給我以無微不至的關(guān)懷,在此謹(jǐn)老師老師致以誠摯的謝意和崇高的敬意。 </p>&
103、lt;p> 在此,我還要感謝在一起愉快的度過和我同寢室的各位可愛的同學(xué),正是由于你們的幫助和支持,我才能克服一個(gè)一個(gè)的困難和疑惑,直至本次畢業(yè)論文的順利完成。特別感謝我的和我一個(gè)班的楊莉同學(xué),她對本課題做了不少工作,包括開發(fā)系統(tǒng)時(shí)給我的巨大啟發(fā)和后期的測試工作,都給予我不少的幫助。</p><p> 在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我
104、無言的幫助,在這里請接受我誠摯的謝意!最后我還要感謝培養(yǎng)我長大含辛茹苦的父母,謝謝你們!</p><p><b> 10 參考文獻(xiàn)</b></p><p> [1] 法比安.波唐西耶 江樂等譯.《symfony權(quán)威指南》. 2008-07出版 電子工業(yè)出版社</p><p> [2] 王軍 譯.《PHP5 in practice》. 2
105、007-07出版.人民郵電出版社</p><p> [3] 法比安.波唐西耶.《Practical symfony》. 2008-07出版 電子工業(yè)出版社</p><p> [4] 奎格利.《PHP與MySQL案例剖析》. 2007-12出版.人民郵電出版社</p><p> [5] 聶慶鵬.《PHP+MySQL動態(tài)網(wǎng)站開發(fā)與全程實(shí)例》. 2007-10出版
106、. 清華大學(xué)出版社</p><p> [6] 杜江.《PHP5與MySQL5 Web開發(fā)技術(shù)詳解》(含光盤). 2007-11出版.電子工業(yè)出版社 </p><p> [7] Luke Welling.《php和mysql web開發(fā)》(原書第4版). 2009-02出版.機(jī)械工業(yè)出版社 </p><p> [8] 陳爭航.《PHP5+MySQL5 Web應(yīng)用
107、開發(fā)寶典》.2008-01出版.電子工業(yè)出版社</p><p> [9] 梅隆尼.《PHP、MySQL和Apache編程導(dǎo)學(xué)》(原書第4版). 2009-01出版.機(jī)械工業(yè)出版社</p><p> [10] 翁燁暉.《PHP5+MySQL網(wǎng)站開發(fā)基礎(chǔ)與應(yīng)用》. 2008-09出版.清華大學(xué)出版社</p><p> [11] 黃炳強(qiáng).《PHP5+MySQL網(wǎng)站開
108、發(fā)實(shí)例精講》(附盤). 2007-07出版.人民郵電出版社</p><p> [12] 丁月光,孫更新,閆吉輝.《PHP+MySQL動態(tài)網(wǎng)站開發(fā)》(附盤). 2008-11出版.清華大學(xué)出版社</p><p> [13] 陸昌輝.《PHP Web開發(fā)快速入門及實(shí)例精選》. 2008-04出版.電子工業(yè)出版社 </p><p> [14] 李立功 趙揚(yáng).《MY
109、SQL程序設(shè)計(jì)與數(shù)據(jù)庫管理》. 2001-02出版.科學(xué)出版社 </p><p> [15] 趙增敏.《PHP+MySQL+Dreamweaver8動態(tài)網(wǎng)站開發(fā)從基礎(chǔ)到實(shí)踐》(含光盤). 2007-07出版.電子工業(yè)出版社</p><p><b> 11 附錄</b></p><p><b> 參考的網(wǎng)站有:</b>
110、</p><p> http://www.csdn.net/ 中國程序員網(wǎng)站的ASP技術(shù)論壇.</p><p> http://www.programfan.com/ 編程愛好者網(wǎng)站的ASP技術(shù)文章.</p><p> http://www.5ud.com/ 無憂網(wǎng)站的網(wǎng)絡(luò)考試系統(tǒng).</p><p> http://www.ccafc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼琴網(wǎng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文
- 畢業(yè)論文e網(wǎng)在線購物系統(tǒng)
- 鋼琴本科生畢業(yè)論文
- 鋼琴---本科生畢業(yè)論文
- 網(wǎng)癮畢業(yè)論文
- 鋼琴調(diào)律畢業(yè)論文范文
- 局域網(wǎng)畢業(yè)論文
- 博客網(wǎng)設(shè)計(jì)畢業(yè)論文
- 局域網(wǎng)畢業(yè)論文
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng)
- vpn校園網(wǎng)畢業(yè)論文
- 校園網(wǎng)建設(shè)畢業(yè)論文
- 畢業(yè)論文解析“網(wǎng)紅經(jīng)濟(jì)”
- wlan校園網(wǎng)畢業(yè)論文
- 校園網(wǎng)組建畢業(yè)論文
- bjdwoua局域網(wǎng)畢業(yè)論文
- 招生信息網(wǎng)畢業(yè)論文
- 校園網(wǎng)設(shè)計(jì)畢業(yè)論文
- 局域網(wǎng)組建畢業(yè)論文
- 無線局域網(wǎng)畢業(yè)論文
評論
0/150
提交評論