基于Go的流媒體視頻網站的設計與實現(xiàn)(定稿)_第1頁
基于Go的流媒體視頻網站的設計與實現(xiàn)(定稿)_第2頁
基于Go的流媒體視頻網站的設計與實現(xiàn)(定稿)_第3頁
基于Go的流媒體視頻網站的設計與實現(xiàn)(定稿)_第4頁
基于Go的流媒體視頻網站的設計與實現(xiàn)(定稿)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

摘要 本文講述了基于Go的流媒體視頻網站的設計與實現(xiàn)。開發(fā)這套流媒體視頻網站能讓用戶無論在視頻點播還是視頻的上傳下載都有一種完美的用戶體驗,對于高并發(fā)的場景可以輕松面對。 本系統(tǒng)采用了GoLand2019.1.3和WebStrom3.2作為前后端開發(fā)工具,選用Mysql8.0.15作為后臺數據庫。該系統(tǒng)包含了5個主要功能模塊有:視頻點播模塊,視頻管理模塊,用戶評論模塊,用戶管理模塊,流控模塊。后端采用Golang語言實現(xiàn),以及所提供優(yōu)良的nativehttp庫實現(xiàn)網絡請求。采用模塊化設計,API對接前端服務,后端分為Streaming和Scheduler模塊處理相應事務。前端采用Vue.js前端框架,結合Element-Ui對后端返回的JSON數據做處理展示。用戶通過本網站注冊、注銷、退出賬號,登錄用戶可以上傳、刪除等管理自己的視頻。游客與登錄用戶可以觀看其他人上傳的視頻,并可以評論。關鍵詞:B/S架構;前后端分離;MVC;流媒體點播系統(tǒng)

DesignandImplementationofStreamingVideoWebsiteAbstractThispaperdescribesthedesignandimplementationofastreamingvideowebsitebasedonGo.Thedevelopmentofthisstreamingmediavideowebsiteallowsuserstohaveaperfectuserexperienceinbothvideo-on-demandandvideouploadanddownload,andcaneasilyfacehigh-concurrencyscenarios.ThissystemusesGoLand2019.1.3andWebStrom3.2asthefront-enddevelopmenttools,andMysql8.0.15astheback-enddatabase.Thesystemcontains5mainfunctionalmodules:videoondemandmodule,videomanagementmodule,usercommentmodule,usermanagementmodule.ThebackendisimplementedinGolanglanguage,andtheexcellentnativehttplibraryisprovidedtoimplementnetworkrequests.Modulardesignisadopted,andtheAPIconnectstothefront-endservices.Theback-endisdividedintoStreamingandSchedulermodulestohandlethecorrespondingtransactions.Thefront-endusestheVue.jsfront-endframework,combinedwithElement-UitoprocessanddisplaytheJSONdatareturnedbytheback-end.Userscanregister,logout,andlogoutthroughthiswebsite,andthelogged-inusercanupload,delete,etc.tomanagetheirownvideos.Visitorsandlogged-inuserscanwatchvideosuploadedbyothersandcancomment.Keywords:B/Sarchitecture;front-endandback-endseparation;MVC;streamingmediaon-demandsystem.

目錄1緒論 71.1課題背景與研究意義 71.1.1課題背景 71.1.2研究意義 81.2國內外流媒體視頻點播行業(yè)的發(fā)展概況 91.2.1國內流媒體視頻點播行業(yè)發(fā)展現(xiàn)狀 91.2.2國外流媒體視頻點播行業(yè)發(fā)展現(xiàn)狀 92可行性分析 102.1技術可行性分析 102.2經濟可行性分析 102.3操作可行性分析 102.4法律可行性分析 103需求分析 113.1系統(tǒng)設計目標 113.2業(yè)務流程分析 123.3系統(tǒng)用例 133.3.1游客用例分析 133.3.2登錄用戶用例分析 153.4功能性需求分析 183.5非功能性需求分析 194概要設計 204.1系統(tǒng)模塊總體設計 204.2系統(tǒng)功能模塊圖 214.3數據庫設計 215詳細設計與實現(xiàn) 265.1系統(tǒng)的運行環(huán)境 265.2相關技術簡介 275.2.1Golang編程語言簡介 275.2.2Vue.js前端框架簡介 275.2.3Axios技術簡介 285.2.4Element-UI網站快速成型工具 285.3系統(tǒng)首頁設計 285.4系統(tǒng)功能的設計與實現(xiàn) 295.4.1用戶管理模塊的設計與實現(xiàn) 295.4.2流媒體視頻點播模塊的設計與實現(xiàn) 305.4.3視頻管理模塊的設計與實現(xiàn) 315.4.4用戶評論模塊的設計與實現(xiàn) 335.4.5流控模塊的設計與實現(xiàn) 346系統(tǒng)測試 356.1軟件測試簡介 356.2測試原則 356.3測試需求 356.4測試用例 366.5單元測試 386.6集成測試 396.7系統(tǒng)測試 396.8驗收測試 40結論 40參考文獻 41謝辭 42

1緒論1.1課題背景與研究意義1.1.1課題背景 隨著我國社會消費水平的提高,人們越來越重視生活娛樂,因此流媒體視頻點播市場得到了極大的拓展,為流媒體視頻產業(yè)的發(fā)展創(chuàng)造了許多有利的條件。流媒體的出現(xiàn)之前,如果人們想從網絡看視頻和聽音樂,他們必須下載視頻和音頻文件的計算機存儲才能點擊播放,不僅浪費了下載時間和硬盤空間,而且也不能滿足消費者的便利和確切的需要。流媒體視頻點播的發(fā)展克服了許許多多的不足之處。流媒體視頻一般指的是視頻文件的傳輸以及各種各樣壓縮技術,將影像信息放置在系統(tǒng)的后臺服務器上進行處理以及壓縮等等,以此使用戶可以在線上觀看,從而再也不用等待整個壓縮文件下載到個人計算機上??梢哉f流媒體視頻點播的技術是起源于寬帶互聯(lián)網時代,因經濟得以發(fā)展,人們愈發(fā)渴望某種新型的網絡科技來相互通信,自90年代以來,一家名為ProgressiveNetWorks的美國公司就成立了,Media在當時的互聯(lián)網上正式宣布發(fā)布,當時他們推出了一款新型的RealAudioC/S音頻接收系統(tǒng),更是在這之后的幾年間遵循了網絡流媒體技術的發(fā)展趨勢。在一九九七年的九月份的時候,這所企業(yè)改名為RealNetworks,并且前前后后的推出了RealPlayer系列流行的流媒體視頻點播的播放器,在其最繁華最好的時候,它在該領域的市場份額一度超過了百分之八十五之多,RealNetworks是流媒體視頻點播的真正祖先。但在那之后,微軟公司和蘋果公司看到了流媒體視頻點播行業(yè)的巨大潛力。一方面,它強大的競爭攻勢讓現(xiàn)實新聞感到了危機的存在,再者,從另一個方面去看,它也在不知不覺中推動了流媒體視頻點播的長遠進步,這使得流媒體視頻點播的飛速進步扎根人心。在早些時候,流媒體視頻的點播主要是應用在窄帶互聯(lián)網上。由于帶寬速度條件的各種各樣制約以及其局限性,直到二十世紀九十年代末,人們卻還只能在互聯(lián)網上看到一個很非常非常小的流媒體視頻的播放窗口。在千禧年下半年,再者因互聯(lián)網的全球性的飛速進步,寬帶不再是一個夢想。作為流媒體視頻點播技術的領頭羊,微軟、蘋果等美國公司近乎處于相同的時間向全世界推出了它們最新的流媒體視頻點播技術的寬帶解決方案??梢钥闯觯跇O其短暫的時間內,流媒體技術取得了騰飛。在貳零零四年的時候,我們可以看到流媒體的發(fā)展,我們還可以在互聯(lián)網上進行全方位的視聽接觸,真正的實現(xiàn)了一個人坐在一個房間里,環(huán)游世界。1.1.2研究意義因信息社會實現(xiàn)了騰飛,流媒體視頻點播的技術在互聯(lián)網媒體傳播中起著領頭羊的作用。包括但不限于例如流媒體視頻的點播或者遠程的教育的新型模式,以及企業(yè)中應用廣泛的視頻會議、或者是當下紅極一時的直播,誕生了許多網紅,線上新聞信息發(fā)布,大大縮短民眾獲取資訊的時間,最后是互聯(lián)網廣告等應用空前廣泛,刺激了消費,拉動了經濟的發(fā)展,更是方便了人們的在全世界的信息的互換和情感的交流。流媒體視頻的點播已然成為不僅僅國外,甚至是在我國國內寬帶建設中比重相當大的領域之一,大多數的群體對于這些流媒體點播的技術在將來發(fā)展普遍持積極樂觀想法。并且互聯(lián)網的巨頭們表示,因互聯(lián)網的用戶激烈增長,企業(yè)們更是要把握當下時機探索流媒體點播的科技技術的發(fā)展。流媒體視頻的點播技術搖身一變,儼然已經占據互聯(lián)網不可或缺的部分,進而發(fā)動了互聯(lián)網對于整體的結構的革命,促進了信息經濟的騰飛。在這幾年期間,流媒體點播的技術更是應用在全球的各個角落。較為引人注目的是在壹九九五年的時候,劃時代的互聯(lián)網流媒體播放器的問世,流媒體視頻的點播在因特網的應用呈現(xiàn)直線的激增。在國際上,各種各樣的權威機構正在對流媒體視頻的點播進行全面的深入調查。僅僅在千禧那年,在線觀看流媒體視頻的人數就爬升了六十五個百分點。而在網絡科技成熟而又發(fā)達的西方,這些流媒體視頻點播的接入量儼然高至一億多,大概占領了互聯(lián)網的用戶數量規(guī)模的1/3。而在亞洲大陸,這一數字的規(guī)模呈現(xiàn)爆發(fā)式的增加至少到達兩千余萬了,達到了因特網使用者的1/9。隨著用戶的增長,視頻流媒體的技術在互聯(lián)網上的應用逐年顯著增加。到目前來看,流媒體視頻點播的市場營收能力已展示其無比雄厚的潛能。這龐大的蛋糕吸引了無數的企業(yè)家爭先恐后的競爭。在這數年來,Apple等眾多之明企業(yè)對外宣布成立互聯(lián)網流媒體聯(lián)盟,目的是一起加速發(fā)展流媒體的市場以及優(yōu)化改變當下格局,并且制定了與之對應的標準和各種所要執(zhí)行的協(xié)議。也是當時,全球范圍內流媒體的市場和競爭態(tài)勢逐漸明朗。該如何在這個市場上獲得更大的蛋糕份額已經變?yōu)樵S許多多的企業(yè)家關注的焦點。西放國家的廠商涌入促進了我們中國流媒體市場,使得其發(fā)展愈發(fā)繁榮,不過競爭也會愈發(fā)激烈。從現(xiàn)今來看,對我國的流媒體視頻點播領域的影響更是積極向上的。目前大多數的網站是基于Java的Springboot框架或Python的Flask框架設計實現(xiàn)的。這些主流技術集成度較高,不易于了解底層,且編譯之后不是機器語言或是解釋型語言,運行效率偏慢,對于高并發(fā)的處理略微偏弱或者需要引入第三方庫才能得以實現(xiàn)。本人開發(fā)的流媒體視頻網站目標是讓用戶在視頻點播和視頻上傳下載兩方面都擁有完美的用戶體驗,并且可以輕松面對高并發(fā)的場景。1.2國內外流媒體視頻點播行業(yè)的發(fā)展概況1.2.1國內流媒體視頻點播行業(yè)發(fā)展現(xiàn)狀 據權威機構的調查結果顯示截至貳零一四那一年,中國的流媒體視頻點播的用戶的人數已經高至四億有余,同比上升二十六點八個百分點,更擁有百分之五十六點二的網民有使用流媒體視頻網站的習慣,龐大的群體刺激了國內流媒體視頻網站的行業(yè)發(fā)展,這些年來,騰訊視頻、愛奇藝、優(yōu)酷、Bilibili等流媒體網站如雨后春筍般,并呈現(xiàn)不斷增長的態(tài)勢。從2006年開始,我國第一個流媒體網站誕生后到現(xiàn)在僅僅十余年,但其在段時間內的發(fā)展卻十分的驚人。流媒體網站依托于互聯(lián)網、移動手機等新生媒體,在短時間內得到了質的提升。 相對于國外,我國流媒體網站的發(fā)展起步還是稍微較晚,且視頻質量殘次不齊,以低質視頻追逐高點擊率?;蛘咭曨l資源的同質化現(xiàn)象嚴重,除部分專業(yè)化視頻網站在內容上做得比較突出之外,其他得在視頻資源方面的個性化優(yōu)勢得不到凸顯。1.2.2國外流媒體視頻點播行業(yè)發(fā)展現(xiàn)狀 相對于國內流媒體視頻,西方的流媒體行業(yè)發(fā)展的時間更早,誕生了許許多多非常著名的流媒體視頻網站,如:YouTube、Netflix、Vimeo、Dailymotion等等數不勝數,而最具代表性的網站是Youtube和Netflix。在全球范圍內都有龐大的用戶,也基于用戶數量龐大的原因,優(yōu)質的視頻資源相對于國內也比較多,尤其是國內所被詬病的原創(chuàng)視頻的數量。 相對于國內,西方流媒體視頻是以訂閱數為主要盈利方式。在貳零一七年,Netfli與和HBO的收入分別為將近十二億美元和六十三億美元有余。訂閱收入的增長率分別為百分之五十八和百分之十點六。但是在Netflix在DVD租賃業(yè)務卻呈現(xiàn)斷崖式的下跌態(tài)勢。Netflix自二零一一年將會全面向流媒體視頻點播的業(yè)務的轉型,更是借助行業(yè)的發(fā)展紅利和自身優(yōu)異的經營布局的能力不斷向其他的國家擴張市場份額,其渠道的優(yōu)勢和全球分發(fā)的能力也逐漸顯現(xiàn)。2可行性分析2.1技術可行性分析技術上的可行性的分析主要指的是用技術的眼光分析目前的技術水平和能力是否可以順利完成所分配的開發(fā)工作任務,以及硬件的配置和軟件的配置、各類技術人員的數量、水平等能否充分的滿足開發(fā)任務工作的的需求。 我所要開發(fā)的流媒體視頻點播系統(tǒng)主要是處理視頻流數據,以當下的計算機硬件以及軟件和個人能力,可以滿足系統(tǒng)的開發(fā)與運行。本流媒體視頻網站前端采用Vue.js框架以及Element-UI的GUI組件庫、后端采用Golang作為開發(fā)語言,以及開源項目Httprouter作為后端HTTP路由、后臺數據庫采用Mysql、在前端使用Axios向后端服務器發(fā)起API請求,并通過JSON格式返回數據。2.2經濟可行性分析經濟的可行性分析旨在,例如開發(fā)本流媒體視頻點播網站所投入的資金和開發(fā)完成后,本流媒體視頻點播網站系統(tǒng)投入使用后所帶來的經濟收益進行對比和分析,確認所開發(fā)的系統(tǒng)是否會給企業(yè)帶來一定的經濟收益。隨著生活水平的提高,人們越來越注重娛樂生活的質量,對于娛樂的需求日益增大,與之對應,流媒體的發(fā)展也越顯重要。流媒體視頻點播網站是一個可以直接產生經濟效益的投資,不僅可以通過訂閱的模式為視頻的創(chuàng)作者帶來創(chuàng)收,廣告收費模式也推動了其他產業(yè)的發(fā)展。2.3操作可行性分析 本流媒體視頻點播網站采用B/S架構實現(xiàn),只需要通過瀏覽器就能訪問本系統(tǒng)。用戶面向全年齡段人群,因此操作十分簡便,只需要使用瀏覽器即可。界面采用Element-UI組件庫,設計簡約、友好,用戶可以在短時間掌握該流媒體視頻點播網站的使用方法。2.4法律可行性分析法律的可行性旨在于研究在本流媒體視頻點播系統(tǒng)開發(fā)在這一系列過程中是否可能涉及到有關合同或者侵權、責任等等與法律相違背和抵觸的問題。本流媒體視頻點播網站是本人在指導老師的指導下獨立完成的,故不存在侵權行為或者由于本系統(tǒng)帶來的法律糾紛等問題,所以在法律上是可行的。3需求分析根據系統(tǒng)開發(fā)周期的要求可以分成五個階段,分別是:計劃階段和需求分析階段、設計階段和實施階段、最后一個階段為支持階段。例如在流媒體視頻網站系統(tǒng)的進展計劃完成后,第一步是根據本流媒體視頻點播項目計劃所要求的開啟系統(tǒng)需求分析階段。3.1系統(tǒng)設計目標 系統(tǒng)規(guī)劃的總體任務是實現(xiàn)流媒體視頻點播。用戶可以對自己所創(chuàng)作的視頻進行上傳、刪除,查看觀看人數以及評論人數。用戶可以觀看瀏覽其他視頻,評論等。本系統(tǒng)在設計時應該滿足以下目標:系統(tǒng)人機界面美觀,友好且便于操做,用戶可以進行登錄、注冊、注銷操作;系統(tǒng)各個功能模塊顯示清晰,易于操作;實現(xiàn)視頻的搜索功能實現(xiàn)流媒體視頻的上傳、刪除以及視頻基本信息的填寫功能;實現(xiàn)視頻的點播功能;實現(xiàn)流媒體的流控功能,防止用戶或黑客惡意訪問系統(tǒng)從而占用帶寬和系統(tǒng)內存,提供流量控制;實現(xiàn)視頻的評論功能;實現(xiàn)視頻播放量的統(tǒng)計功能;實現(xiàn)視頻評論數統(tǒng)計功能;系統(tǒng)最大限度地實現(xiàn)易維護性和運行穩(wěn)定性;由于本流媒體視頻點播網站系統(tǒng)的設計是動態(tài)的,所以在把握控制本軟件開發(fā)的設計原則上就會顯得異常的重要。軟件開發(fā)的每一個人都務必了解在系統(tǒng)的設計基本原則,可以概括為以下的幾點:各個子組件的復用性;最大程度的簡潔,本人解決各種疑惑的大體方向都是把較為復雜的問題盡最大程度的減小,簡潔化、簡單化,這種解決方案也是我對于中間件或多層體系的最終期望和目的;對于任意一個組件的最終的代碼實現(xiàn)上應該需要展示系統(tǒng)的核心特點,因為系統(tǒng)的事物核心點僅僅只有一個,所編寫的代碼如果越靠近核心點,說明系統(tǒng)的設計就愈發(fā)簡單,最初成品的系統(tǒng)就愈發(fā)穩(wěn)定。在大多數的表表現(xiàn),任意一個組件或許不可以映射系統(tǒng)事物的核心本質,可能更需要多個組件的組合以此來相互配合,那么能夠正確使用合適的設計模式就重中之重了;靈活的拓展性,如若本流媒體視頻點播網站的設計需要具備靈活性和拓展性,在后期可以在本系統(tǒng)的架構上進行二次、三次開發(fā)。3.2業(yè)務流程分析 流媒體視頻點播網站的業(yè)務流程描述如下:游客打開網站進入主頁,點擊登錄按鈕跳轉至登錄/注冊界面。未擁有賬戶的游客輸入賬戶和密碼,點擊注冊按鈕即可在本系統(tǒng)注冊新的賬號,隨后以登錄用戶跳轉至網站主頁。已擁有賬戶的用戶輸入賬戶和密碼,點擊登錄后即可登錄本系統(tǒng),隨后以登錄用戶跳轉至網站主頁。已登錄用戶點擊右上角出現(xiàn)下拉框,有切換賬戶和退出登錄兩個選項;點擊切換賬戶選項后系統(tǒng)將為用戶退出登錄當前賬戶并跳轉至登錄頁面,并可重新登錄;點擊退出選項后系統(tǒng)將為用戶退出登錄當前賬戶,用戶可以游客身份進行其他操作。游客/登錄用戶可以從主頁中瀏覽所有已上傳至該網站的所有視頻信息。并可以點擊所感興趣的視頻跳轉至視頻播放頁面。在視頻播放頁面,游客/用戶使用HTML5播放器控制視頻的播放與暫停。視頻的下方為視頻的基本信息包括:流媒體的標題、流媒體的描述、流媒體的上傳時間、流媒體的上傳作者等。在視頻播放頁面,視頻頁面底部是用戶評論部分,游客/用戶可以查看到對于該視頻的所有評論,并且已登錄的用戶可以發(fā)表評論。已登錄用戶在網站主頁可以進入用戶視頻管理界面,在用戶視頻管理界面可以上傳視頻,填寫視頻的基本信息如視頻標題、視頻描述、上傳視頻封面等操作。在用戶視頻管理界面顯示當前用戶所上傳的所有視頻,并會對每個視頻進行播放量統(tǒng)計和每個視頻的評論數統(tǒng)計。3.3系統(tǒng)用例 系統(tǒng)的用例指的是以文字的表現(xiàn)形式的情景描述,以此表現(xiàn)某一參與者使用本網站來實現(xiàn)一些特定的目的。系統(tǒng)的用例基本思想表現(xiàn)在:從參與者、用戶的觀點來看,使用者或許并不愿意深入了解本網站的內部組件,使用者可能只想了解的是系統(tǒng)所能提供的服務,也就是所被開發(fā)出來的網站將是如何被正確和高效使用的。3.3.1游客用例分析 本系統(tǒng)種游客的模塊用例圖,如圖3.1所示。圖3.1游客模塊用例圖 用例UC1:登錄 范圍:流媒體視頻點播網站 主要參與者:未登錄的用戶 涉及關注點: -游客/未登錄用戶:希望獲取更多權限,使用更多功能。 前置條件:無。 成功保證:用戶信息存在數據庫中 主要成功場景:在本流媒體視頻點播網站的主頁點擊登錄,隨后跳轉至登錄/注冊頁面。在輸入框分別輸入用戶的賬號或者用戶的密碼。點擊登錄按鈕。用例UC2:注冊 范圍:流媒體視頻點播網站 主要參與者:游客 涉及關注點: -游客/未登錄用戶:希望獲取更多權限,使用更多功能。 前置條件:無。 成功保證:存儲新注冊用戶信息,在數據庫中生成新用戶的記錄。 主要成功場景:主頁點擊登錄跳轉至登錄/注冊頁面。輸入注冊賬號、注冊密碼。點擊注冊按鈕3.3.2登錄用戶用例分析 已登錄用戶模塊用例圖,如圖3.2所示。圖3.2登錄用戶模塊用例圖用例UC3:查看視頻的評論 范圍:流媒體視頻點播網站 主要參與者:游客/登錄的用戶 涉及關注點: -游客/登錄用戶:希望查看該視頻下其他用戶的見解和看法 前置條件:無。 成功保證:該視頻下有儲存其他用戶評論的信息 主要成功場景:主頁點擊所想觀看的視頻。視頻下方瀏覽對于該視頻的評論。用例UC4:視頻點播 范圍:流媒體視頻點播網站 主要參與者:游客/登錄用戶 涉及關注點: -游客/登錄用戶:希望觀看所感興趣的視頻 前置條件:無。 成功保證:服務器有存儲該視頻文件 主要成功場景:主頁點擊所想觀看的視頻。進入視頻頁面,在HTML5播放器點擊開始按鈕進行視頻點播。用例UC5:視頻上傳 范圍:流媒體視頻點播網站 主要參與者:登錄用戶 涉及關注點: -登錄用戶:用戶希望分享自己所創(chuàng)作的視頻。 前置條件:用戶已登錄網站。 成功保證:服務器成功存儲該視頻文件 主要成功場景:用戶視頻管理頁面點擊上傳按鈕。彈出視頻上傳頁面,選擇文件點擊上傳。跳轉至視頻信息表單填寫頁面,點擊提交。用例UC6:視頻刪除 范圍:流媒體視頻點播網站 主要參與者:登錄用戶 涉及關注點: -登錄用戶:用戶希望刪除自己所上傳的視頻。 前置條件:用戶已上傳視頻并提交了視頻信息表單;用戶已登錄。 成功保證:視頻文件從服務器中刪除。 主要成功場景:用戶視頻管理頁面選中所要刪除的視頻點擊右側刪除按鈕。確認刪除,視頻刪除完畢。用例UC7:視頻播放量統(tǒng)計 范圍:流媒體視頻點播網站 主要參與者:登錄用戶 涉及關注點: -登錄用戶:無 前置條件:用戶已上傳所要統(tǒng)計播放量的視頻;用戶已登錄。 成功保證:服務器有存儲該視頻文件,數據庫中更新播放量統(tǒng)計數據。 主要成功場景:用戶視頻管理頁面查看相應的視頻播放量數據。用例UC7:視頻播放量統(tǒng)計 范圍:流媒體視頻點播網站 主要參與者:登錄用戶 涉及關注點: -登錄用戶:用戶希望了解自己所創(chuàng)作的視頻在網站的播放量。 前置條件:用戶已上傳所要統(tǒng)計播放量的視頻;用戶已登錄。 成功保證:服務器有存儲該視頻文件,數據庫中更新播放量統(tǒng)計數據。 主要成功場景:用戶視頻管理頁面查看相應的視頻播放量數據。用例UC8:視頻播評論數統(tǒng)計 范圍:流媒體視頻點播網站 主要參與者:登錄用戶 涉及關注點: -登錄用戶:用戶希望了解自己所創(chuàng)作的視頻在網站的評論數量。 前置條件:用戶已上傳所要統(tǒng)計評論數的視頻;用戶已登錄。 成功保證:服務器有存儲該視頻文件,數據庫中存在評論數數據。 主要成功場景:用戶視頻管理頁面查看相應的視頻評論數的數據。3.4功能性需求分析本人模擬真實用戶的相關業(yè)務流程設計該系統(tǒng)的全部功能和特性,完成流媒體視頻點播網站的操作和使用使用權限:游客需求內容:賬號注冊賬號登錄;視頻封面列表展示;視頻搜索;視頻點播;瀏覽評論; 使用權限:已登錄用戶 需求內容:賬號登錄;賬號注銷;切換賬號;視頻封面列表展示;視頻搜索;視頻點播;評論瀏覽、評論發(fā)表;視頻上傳、刪除;視頻播放量統(tǒng)計;視頻評論數統(tǒng)計;3.5非功能性需求分析一、性能的需求分析: (1)響應的時間:通??梢匀萑滔鄳臅r間大概在0.1秒之內。 (2)數據的準確性:有關視頻的數據信息要求準確。二、運行需求分析:(1)硬件接口:本流媒體視頻點播網站不需要某種特定的硬件或者硬件的接口進行支持。 (2)軟件接口:運行于LinuxOS7.0及更高版本。三、其他需求分析:

(1)系統(tǒng)的并發(fā)性:本流媒體視頻點播網站對于用戶的并發(fā)性具有較高的需求。 (2)系統(tǒng)圖容錯性:本流媒體視頻點播網站對于用戶的輸錯會有相關的信息提示,使得本系統(tǒng)具有一定程度的容錯。4概要設計4.1系統(tǒng)模塊總體設計 在系統(tǒng)需求以及功能分析的基礎之上,將本網站劃分成5個主要的功能模塊。視頻點播模塊:該功能可由游客和已登錄用戶來操作。該功能實現(xiàn)點擊播放網站已上傳的視頻。視頻管理模塊:視頻上傳:該功能只允許已登錄用戶來進行操作,用戶可以上傳自己所創(chuàng)作的視頻,并且填寫有關視頻的基本信息和視頻封面。視頻刪除:該功能只允許已登錄用戶來進行操作,用戶可以刪除自己所上傳的視頻。視頻播放量統(tǒng)計:該功能只允許已登錄用戶來進行操作,用戶可以查看自己已上傳視頻的播放量。視頻評論數統(tǒng)計:該功能只允許已登錄用戶來進行操作,用戶可以查看自己已上傳視頻的評論數用戶評論模塊:提供各用戶可以在對應視頻下方發(fā)表自己的評論及見解,為用戶與用戶間提供交流的渠道。用戶管理:用戶注冊:該功能提供游客申請注冊成為本網站會員,獲取其他權限。用戶登錄:該功能提供給擁有本網站賬號的用戶登錄本系統(tǒng)。賬戶注銷:該功能提供給已登錄用戶退出登錄本網站。流控模塊:該功能為防止用戶或黑客惡意訪問系統(tǒng)從而占用占用帶寬和系統(tǒng)內存,提供流量控制。4.2系統(tǒng)功能模塊圖 根據以上的本流媒體視頻點播網站的系統(tǒng)模塊設計,該系統(tǒng)的功能模塊圖如圖4.1所示。4.1系統(tǒng)功能模塊圖4.3數據庫設計數據庫的設計指的是軟件開發(fā)種的非常重要的組成部分,數據的設計是否合理、是否優(yōu)秀關系到整個系統(tǒng)的運行效率以及后期的可維護性與可操作性。常用的數據庫有MySQL、MicrosoftSQLServer、NoSQL、MongoDB、Redis等。為了支持較大的數據量和保障安全性以及開發(fā)的便利性,本系統(tǒng)采用的是MySQL數據庫系統(tǒng),本系統(tǒng)的數據庫名是video_server,總共包含了6張數據表。本網站系統(tǒng)數據庫主要包含以下6張數據結構表:users(用戶的基本信息表)該表用于記錄用戶的基本信息。本表的主要字段如表4.1所示。表4.1用戶基本信息表FieldTypeNullKeyDefaultExtraAliasidintNOPRINULLauto_increment唯一識別碼Login_nameVarcharYESUNINULL用戶名pwdtextNONULL密碼 用戶基本信息表E-R圖如圖4.2所示。圖4.2用戶基本信息表E-R圖video_info(流媒體視頻信息表)此表用于記錄系統(tǒng)所有流媒體視頻的基本信息。主要字段如表4.2所示。表4.2流媒體視頻信息表FieldTypeNullKeyDefaultExtraidvarcharNOPRINULLauthore_idintYESFOREIGNNULLnametextYESNULLdisplay_ctimetextYESNULLcreate_timedatetimeYESCURRENT_TIMESTAMPDEAFULTtitletextYESNULLvideo_descriptiontextYESNULLimg_namevarcharYESNULL 視頻信息表E-R圖如圖4.3所示。圖4.3視頻信息E-R圖session(session信息表)此表用于記錄用戶登錄狀態(tài)的session信息。主要字段如表4.3所示。表4.3Sesssion信息表FieldTypeNullKeyDefaultExtrasession_idtinytextNOPRINULLTTLtinytextYESNULLlogin_namevarcharYESNULLsession信息表E-R圖如圖4.4所示。圖4.4Session信息E-R圖comments(評論詳細信息表)此表用于記錄用戶對于流媒體視頻的評論信息。主要字段如表4.4所示。表4.4評論詳細信息表FieldTypeNullKeyDefaultExtraidvarcharNOPRINULLvideo_idvarcharYESNULLauthor_idintYESNULLcontenttextYESNULLtimedatetimeYESCURRENT_TIMESTAMP 評論信息表E-R圖如圖4.5所示。圖4.5評論信息E-R圖video_view(視頻播放量統(tǒng)計表)此表用于記錄每個視頻的播放量。主要字段如表4.5所示。表4.5視頻播放量統(tǒng)計表FieldTypeNullKeyDefaultExtraidvarcharNOPRINULLauthor_idintYESNULLvideo_idvarcharNONULLnum_of_visitorsbigintNONULL 視頻播放量統(tǒng)計表E-R圖如圖4.6所示。圖4.6視頻播放量統(tǒng)計表5詳細設計與實現(xiàn)5.1系統(tǒng)的運行環(huán)境 (1)硬件環(huán)境: CPU:Intel(R)Core(TM)i5-8250UCPU@1.60GHz1.80GHz; 內存:8GB; 硬盤256GB(2)軟件環(huán)境: 操作系統(tǒng):Windows10家庭中文版; 數據庫:MySQL8.0.15; 開發(fā)工具:JetBrainsGoLand2019.1.3x64WebStorm2019.3.2x64VisualStudioCode瀏覽器:GoogleChrome版本81.0.4044.92(正式版本)(64位);分辨率:最佳效果1366×768。;5.2相關技術簡介5.2.1Golang編程語言簡介Go是2007年在Google設計的,旨在在多核,\o"Computernetwork"聯(lián)網機器和大型代碼庫時代提高編程效率。設計師想解決Google使用的其他語言的批評,但要保留其有用的特征:靜態(tài)類型和運行時效率(例如C++),可讀性和可用性(例如Python或JavaScript),高性能網絡和多處理。。Go于2009年11月公開發(fā)布,1.0版于2012年3月發(fā)布。Go在Google

以及許多其他組織和開源項目的生產中得到了廣泛使用。在2018年4月,原始徽標被程式化的GO傾斜,尾隨流線形向右傾斜。但是,地鼠的

吉祥物保持不變。Thompson:一九八三年獲得圖靈獎和在一九九八年獲得美國國家技術獎(NationalMedalofTechnology)得主。他與DennisRitchie是Unix操作系統(tǒng)的原創(chuàng)者。Thompson也發(fā)明了C語言的B程序語言。Pike:曾是貝爾實驗室(BellLabs)的Unix操作系統(tǒng)團隊,和Plan9操作系統(tǒng)計劃的成員。他與Thompson共事多年,并共創(chuàng)出廣泛使用的UTF-8字元編碼。RobertGriesemer:曾協(xié)助制作Java的HotSpot編譯器,和Chrome瀏覽器的JavaScript引擎V8。RussCox:Plan9開發(fā)者IanTaylor:還曾經完善了已廣泛使用之開源碼編譯器GCCGolang這款編程語言到現(xiàn)在為止可以達到C和C++性能的百分之八十,卻遠遠高于快于C和C++程序的編譯鏈接的速度,就目前非?;馃崃餍械拈_源軟件docker、kubernetes、lxd等等都是使用Golang編程語言所編寫而成的,而且2016年Golang語言被評為年度編程語言,可見go的應用場景非同一般。5.2.2Vue.js前端框架簡介Vue.JS是一整套完善的用來搭建用戶界面的漸進式的前端框架。與其他重量級框架,例如Angular.JS前端框架不同的是,Vue.JS采用的是自底向上增量開發(fā)的架構。Vue.JS的核心庫只關注視圖層,并且非常容易學習,非常容易與其它庫或已有項目整合。而在另一個角度來看,Vue.JS完全是有能力驅動使用單個文件組件和Vue.JS生態(tài)系統(tǒng)支持的函數庫開發(fā)的復雜單頁應用。5.2.3Axios技術簡介Axios是一個基于Promise用于瀏覽器和Node.js的HTTP客戶端,它本身具有以下特征:從瀏覽器中創(chuàng)建XMLHttpRequest。從node.js發(fā)出http請求。支持PromiseAPI。攔截請求。攔截響應。轉換請求的數據。轉換響應的數據。取消請求。5.2.4Element-UI網站快速成型工具Consistency與現(xiàn)實生活相一致:與現(xiàn)實生活的流程、邏輯保持一致,遵循用戶習慣的語言和概念;在界面中相一致:所有的元素和結構需保持一致,比如:設計樣式、圖標和文本、元素的位置等。Feedback控制反饋:通過多樣的界面樣式以及各種各樣的交互動效讓用戶可以清晰的感知自己的操作;頁面反饋:通過用戶操作,通過頁面元素的變化清晰地展現(xiàn)當前狀態(tài)。Efficiency簡化流程:設計簡潔直觀的流程和操作;清晰明確:語言表達清晰且表意明確,讓用戶快速理解進而做出決策;幫助用戶識別:界面簡單直白,讓用戶快速識別而非回憶,減少用戶記憶負擔。Controllability用戶決策:根據場景可給予用戶操作建議或安全提示,但不能代替用戶進行決策;結果可控性:用戶完全可以進行自由的進行操作,包括但不限于撤銷、回退和終止當前操作等。5.3系統(tǒng)首頁設計 本流媒體視頻點播網站的首頁設計樣式,如圖5.1所示。圖5.1網站的首頁5.4系統(tǒng)功能的設計與實現(xiàn)5.4.1用戶管理模塊的設計與實現(xiàn)該模塊主要用來使游客注冊成為網站會員,已有賬號的會員登錄本網站解鎖更多權限。包括用戶注冊、用戶登錄、用戶退出、用戶切換賬號四個部分:用戶注冊,如圖5.2所示:圖5.2用戶登錄/注冊游客進入登錄/注冊頁面(http://localhost:8080/login),通過router.POST("/user/:username",Login)來接收前端Axios發(fā)送的POST請求,Login函數來作為控制器處理游客的注冊請求,成功后跳轉回到流媒體視頻網站的首頁(http://localhost:8080)。2.用戶登錄,如圖5.2所示:用戶進入登錄/注冊頁面(http://localhost:8080/login),通過router.POST("/user",CreateUser)來接收前端Axios發(fā)送的POST請求,CreateUser函數作為控制器處理用戶的登錄請求,成功后跳轉回首頁(http://localhost:8080)。切換賬號,如圖5.3所示:圖5.3切換賬戶/退出 登錄用戶在主頁(http://localhost:8080)點擊頭像選擇【切換賬號】,通過清除sessionStorage的內容來清除用戶登錄的所有信息,以此限制未登錄用戶的進一步操作,做出權限控制,然后通過Vue.js的router-link跳轉至登錄/注冊頁面(http://localhost:8080/login)進行賬號切換。退出賬戶,如圖5.3所示:登錄用戶在主頁登錄用戶在主頁(http://localhost:8080)點擊頭像選擇【退出】,通過清除sessionStorage的內容來清除用戶登錄的所有信息,以此限制未登錄用戶的進一步操作,做出權限控制控制。使用this.$router.go(0)來強制刷新路由,以此來更新頁面顯示。5.4.2流媒體視頻點播模塊的設計與實現(xiàn) 該模塊功能是為游客和用戶提供視頻點播功能。包括視頻列表展示、視頻點播兩部分組成。視頻展示列表,如圖5.4所示:圖5.4視頻展示列表 游客和登錄用戶在主頁(http://localhost:8080)可以看到所有的視頻展示。前端通過API(http://localhost:8000/allvideos)請求后端服務器之后,以JSON格式得到返回的視頻數據以及視頻的詳細信息。最后在前端渲染處理得到的數據并在頁面展示。視頻點播,如圖5.5所示:圖5.5視頻點播 游客和登錄用戶在主頁(http://localhost:8080)點擊其中視頻跳轉至(http://localhost:8080/watch)相關播放頁面,前端通過API(http://localhost:8000)向后端發(fā)送請求,獲取流媒體的資源以此來在前端頁面展示。5.4.3視頻管理模塊的設計與實現(xiàn) 該模塊為用戶提供了視頻管理的相關功能。包括視頻封面展示、視頻播放量統(tǒng)計、視頻評論數統(tǒng)計、視頻上傳和視頻刪除功能。視頻上傳,如圖5.6、圖5.7所示:圖5.6視頻上傳圖5.7視頻信息填寫 已登錄用戶在個人管理頁面(http://localhost:8080/channel)點擊右上角【創(chuàng)建】按鈕,彈出如圖5.6所示對話框。將所需要上傳的視頻拖進對話框中,通過router.POST("/upload/:vid-id",uploadHandler)來接受前端Axios發(fā)送的請求,uploadHandler函數作為控制器處理視頻上傳的請求。隨后跳轉至視頻信息填寫對話框,如圖5.7所示,填寫視頻信息點擊上傳封面,通過router.POST("/uploadimg/:img-name",uploadImgHandler)來接受前端Axios發(fā)送的請求,uploadImgHandler函數作為控制器處理視頻封面上傳的請求。點擊【確定】按鈕,,通過router.POST("/user/:username/videos",AddNewVideo)來接受前端Axios發(fā)送的請求,AddNewVideo作為控制器處理視頻信息添加。視頻播放量統(tǒng)計,如圖5.8所示:圖5.8 已登錄用戶在視頻管理頁面中(http://localhost:8080/channel)顯示了用戶所上傳的視頻播放量信息。后端通過router.GET("/user/:username/listviews",ListVideoViewNums)接收前端Axios發(fā)送的GET請求,ListVideoViewNums函數作為控制器處理獲取視頻播放量,并通過JSON格式返回數據,之后前端渲染將視頻播放量信息與每個視頻匹配展示。每點擊一次視頻,會向后端發(fā)送一次API請求(http://localhost:8080/channel),通過router.POST("/videos/:vid-id/views",AddVideoViewNum)接收請求,AddVideoViewNum函數作為控制器增加相應視頻的信息。視頻評論數統(tǒng)計:已登錄用戶在視頻管理頁面中(http://localhost:8080/channel)顯示了用戶所上傳的視頻評論數。后端通過router.GET("/listcommentnums",ShowCommentNums)接收前端Axios發(fā)送的GET請求,ShowCommentNums函數作為控制器處理獲取流媒體視頻的評論數,并通過JSON格式返回給前端,前端得到數據后渲染將評論數與每個視頻做匹配后展示。5.4.4用戶評論模塊的設計與實現(xiàn) 該模塊為已登錄的用戶提供與評論相關的功能。包括評論發(fā)表、評論查看功能。如圖5.9所示:圖5.9評論發(fā)表已登錄用戶在相關流媒體視頻播放頁面(http://localhost:8080/watch),在視頻信息下方的評論框,輸入評論后,點擊底部【評論】按鈕。通過router.POST("/videos/:vid-id/comments",PostComment)接收前端Axios發(fā)送的POST請求,PostComment函數作為控制器處理用戶請求,將用戶評論插入數據庫。5.4.5流控模塊的設計與實現(xiàn) 流控模塊為防止用戶或黑客惡意訪問系統(tǒng)從而占用帶寬和系統(tǒng)內存,提供流量控制。如圖5.10所示:圖5.10流控模塊 使用令桶牌算法,每當有一個用戶連接進來,就從桶里面取出一塊令牌,直到用戶完成操作,斷開連接之后,系統(tǒng)再將令牌放回桶里。若桶里的令牌全部取出,后端將禁止用戶獲取連接,有效的做出流量限制,防止用戶惡意訪問系統(tǒng),從而占用帶寬和系統(tǒng)內存。6系統(tǒng)測試6.1軟件測試簡介軟件測試是由“驗證”和“有效性確認”活動所構成的整體?!膀炞C”是檢驗軟件是否已正確實現(xiàn)系統(tǒng)的功能和特性;“有效性確認”是確認所開發(fā)的軟件是否滿足用戶真正需求的活動。軟件測試是軟件質量保證的關鍵步驟。軟件總存在缺陷。只有通過測試,才可以發(fā)現(xiàn)軟件缺陷;也只有發(fā)現(xiàn)了缺陷,才可以將軟件缺陷從軟件產品或軟件系統(tǒng)中清理出去;軟件中存在的缺陷帶來的損失是巨大的,這也說明了軟件測試的必要性和重要性。按時間、階段進行可進行以下劃分:單元測試、集成測試、系統(tǒng)測試和驗收測試。6.2測試需求軟件測試的需求指的是在軟件開發(fā)的項目中所要測試的內容。軟件的測試需求是詳細的、清晰的。測試的需求若詳細,且精準,這樣的話就會對所要被測試的軟件的了解就愈發(fā)深刻,工作的內容就更加的清晰,保證軟件測試的質量和軟件測試的進度就更加的有效果,這樣可以規(guī)避在軟件測試的過程中的各種各樣的疏漏。簡而言之,這是一個測試的范圍。 本人給每一個測試需求以VS-001開始編號,以此類推。 測試需求的優(yōu)先級分為高、中、低三類:優(yōu)先級為高,說明是關鍵的任務需求,必須實現(xiàn),否則表明項目失?。粌?yōu)先級為中,表明最終版本要求;如若任務緊急,可在下一個版本中實現(xiàn);優(yōu)先級低,指的是在功能上的加強,該功能的實現(xiàn)將促使本產品更完善。 測試需求如表6.1所示。表6.1測試需求表需求編號需求簡述優(yōu)先級備注說明VS-001用戶注冊測試高必須實現(xiàn)的關鍵任務VS-002用戶登錄測試高必須實現(xiàn)的關鍵任務VS-003鏈接測試高必須實現(xiàn)的關鍵任務VS-004流媒體列表展示測試高必須實現(xiàn)的關鍵任務VS-005流媒體點播測試高必須實現(xiàn)的關鍵任務VS-006流媒體上傳測試高必須實現(xiàn)的關鍵任務VS-007流媒體刪除測試高必須實現(xiàn)的關鍵任務VS-008播放量統(tǒng)計測試高必須實現(xiàn)的關鍵任務VS-009評論數統(tǒng)計測試高必須實現(xiàn)的關鍵任務VS-010用戶發(fā)表評論測試高必須實現(xiàn)的關鍵任務VS-011查看評論列表測試高必須實現(xiàn)的關鍵任務6.3測試用例軟件測試的用例是對特定軟件產品測試任務的描述,反映了測試方案、方法、技術和策略。它的內容包括軟件測試目標和軟件測試環(huán)境、軟件測試的輸入數據以及軟件測試步驟,接著是軟件測試的預期結果和軟件測試的腳本等等,最后是表單和文檔。用通俗的話來描述,軟件的測試用例是為特定目標準備的一組測試輸入、執(zhí)行條件和預期結果,以驗證是否滿足特定的軟件需求。撰寫的測試用例如下(選擇性舉例)。表6.2用戶登錄測試用例測試用例編號VS-001-1測試標題用戶登錄優(yōu)先級高前置條件無輸入賬戶:dcxx密碼:000操作步驟在網站主頁點擊右上角【登錄】跳轉至登錄頁面,輸入賬戶密碼,點擊【登錄】預期結果登陸成功,跳轉至主頁表6.3用戶注冊測試用例測試用例編號VS-002-2測試標題用戶注冊優(yōu)先級高前置條件無輸入賬戶:dcxx密碼:000操作步驟在網站主頁點擊右上角【登錄】跳轉至登錄頁面,輸入賬戶密碼,點擊【注冊】。預期結果注冊成功,跳轉至主頁。表6.4流媒體列表展示測試用例測試用例編號VS-004-3測試標題流媒體列表展示優(yōu)先級高前置條件無輸入無操作步驟輸入本流媒體視頻點播網站的網址。預期結果主頁展示所有已上傳的流媒體視頻。表6.5流媒體上傳測試用例測試用例編號VS-006-4測試標題流媒體視頻上傳優(yōu)先級高前置條件用戶已登錄輸入視頻文件,標題,說明,封面操作步驟進入視頻管理頁面,右上角點擊【創(chuàng)建】,將視頻文件拖入彈窗,點擊【下一步】,填寫將要上傳的視頻標題、說明,再選擇視頻封面,點擊【確定】預期結果視頻上傳成功表6.6用戶發(fā)表評論測試用例測試用例編號VS-010-5測試標題用戶發(fā)表評論優(yōu)先級高前置條件用戶已登錄輸入輸入評論操作步驟進入流媒體視頻點播頁面,在視頻下方輸入將要發(fā)表的評論,點擊【評論】按鈕。預期結果評論發(fā)表成功表6.7查看評論列表測試用例測試用例編號VS-011-6測試標題查看評論列表優(yōu)先級高前置條件無輸入無操作步驟進入流媒體視頻點播頁面,在視頻發(fā)表評論下面查看對于該視頻的評論。預期結果查看列表成功6.4單元測試軟件的單元測試是旨在對軟件中的最小的可以測試單元進行檢驗。對于單元測試中單元的含義,用稍微通俗的話來描述,是要對真實情況去辨別具體的內容。總的來說,單元就是人為規(guī)定的最小的被測功能模塊。單元測試是在軟件開發(fā)過程中要進行最低級別的測試活動,軟件的獨立單元是要處于與程序的其他部分互不干涉的情況下所測試的。(1)用戶的注冊測試若用戶沒有本流媒體視頻網站的賬戶,在賬戶輸入框中輸入所要注冊的賬戶明,在密碼輸入框中輸入密碼,點擊【注冊】(2)用戶登錄測試若用戶已擁有本流媒體視頻網站的賬戶,在賬戶輸入框中輸入所要注冊的賬戶明,在密碼輸入框中輸入密碼,點擊【登錄】(3)流媒體列表展示測試用戶或游客在瀏覽器地址欄輸入本流媒體視頻網站地址,跳轉至本網站。本網站將視頻封面、視頻標題、視頻作者等展示出來。

(4)流媒體視頻上傳測試用戶登錄成功本流媒體視頻網站后,點擊本流媒體視頻網站右上方進入視頻管理頁面,在視頻管理頁面點擊【創(chuàng)建】按鈕,選擇所要上傳的視頻,點擊【下一步】,填寫所要上傳視頻的基本信息,點擊【上傳封面】按鈕選擇所要上傳視頻的封面,最后點擊【確定】按鈕,完成視頻上傳。(5)用戶發(fā)表評論測試用戶成功登錄本流媒體視頻網站后,點擊主頁任意視頻,進入視頻點播頁面,將頁面拖至視頻下方,在評論輸入框輸入評論,點擊【評論】按鈕發(fā)表評論。(6)查看用戶評論測試用戶或游客點擊主頁任意視頻,進入視頻點播頁面,將頁面拖至視頻下方,可以查看該視頻下所有用戶對該視頻的評論。6.5集成測試軟件的集成測試是指單元測試的邏輯擴展。它將兩個最簡單的測試單元組合進一個組件中,并測試它們之間的接口。在這個意義上,組件指的是多個單元的集成和聚合。在實際的方案中,許多單元被組合成組件,而這些組件又被聚合成程序中更大的一部分。該方法是對片段的組合進行測試,最后將其擴展為一個流程,并與其他組的模塊一起對模塊進行測試。最后,對構成流程的所有模塊一起進行測試。我將組合所有的功能模塊,再次測試每個模塊的子功能。測試后,我發(fā)現(xiàn)每個單元之間沒有沖突或接口問題,并完成了集成測試。6.6系統(tǒng)測試系統(tǒng)測試。這是對本流媒體視頻點播網站系統(tǒng)的測試。因此將硬件、軟件和操作人員三類作為一個個體來檢驗是否不符合系統(tǒng)規(guī)范。軟件系統(tǒng)的測試可以發(fā)現(xiàn)系統(tǒng)的分析和設計中的各類不正確的地方。比如說安全測試是測試軟件的安全措施是否真的可靠,以及系統(tǒng)是否可以免受非法入侵。另一個例子,壓力測試是測試系統(tǒng)在正常的數據量和過載下能否可以正常的工作,例如多個用戶同時訪問。(1)安全測試當系統(tǒng)管理員或用戶訪問時,系統(tǒng)是加密的,通常無法連接錯誤的密碼來工作。(2)壓力和性能測試通過以相當快的頻率單擊系統(tǒng)的每個功能或記錄大量數據,可以發(fā)現(xiàn)系統(tǒng)能夠更好地承受壓力并穩(wěn)定地工作。6.7驗收測試軟件的驗收和和軟件的檢查測試是軟件部署前的最后的一次測試行為。本軟件產品流媒體視頻點播系統(tǒng)的單元測試、集成測試和系統(tǒng)測試后,軟件產品發(fā)布前的測試活動。這是技術測試的最后階段,也稱為交付測試。驗收和檢查測試的目的是確保軟件已經準備好,最終用戶可以使用它來執(zhí)行軟件的既定功能和任務。(1)測試alpha在系統(tǒng)完成后,我用不同類型的模擬用戶對系統(tǒng)進行了測試,發(fā)現(xiàn)了一些非常嚴重的軟件缺陷,并試圖修復系統(tǒng)的缺陷。(2)beta測試通過alpha測試后,我邀請同學們測試beta系統(tǒng),并提出了一些異常和建議。結論此次畢業(yè)設計讓我受益匪淺,一次完整的軟件開發(fā)讓我更了解件項目的開發(fā)流程以及合理地運用編程技術實現(xiàn)系統(tǒng)的開發(fā),也讓自己了解到自己的許多不足之處。 在畢業(yè)設計選題前,我有對市場流媒體視頻網站做過一定的調查,隨著經濟發(fā)展,人們生活提高,對精神娛樂的需求愈發(fā)強烈,因此誕生了騰訊視頻、Bilibili、愛奇藝等流媒體視頻點播網站,其次流媒體視頻對高并發(fā)、高性能有迫切的需求,因此在這種情況下,我選擇了Golang作為基石開發(fā)流媒體視頻點播網站。 此次在設計本流媒體視頻時,后端我選擇了Golang作為編程語言,后端路由選擇了一款優(yōu)秀的開源項目httprouter,以此作為MVC框架中的Model和Controller,前端選擇了時下流行的Vue.JS框架作為View層,以此完成前后端分離架構的搭建,并通過Axios完成前后端的數據交換。 在此次畢業(yè)設計的軟件開發(fā)中,遇到了各種各樣的問題,也因為解決這些問題,熬過不知多少的日日夜夜。為得出解決方案絞盡腦汁,通過百度和谷歌搜索相應資料,站在巨人的肩膀上解決問題。通過此次畢業(yè)設計,我清晰的認識到自身的許多不足之處,更對軟件開發(fā)這個領域的發(fā)展充滿了自信,也因此更加喜歡這一行業(yè)。 在本流媒體視頻網站中,仍然存在許多不足支持,例如網頁設計的美觀程度,可以拓展更多功能以此提高用戶體驗。這一完整的軟件開發(fā)過程對我來說是能力提高的過程,更是將大學四年所學到的理論知識實踐化的一個過程。我將會從中汲取更多經驗,以此來提高自身為日后開發(fā)其他軟件打下堅實的基礎。

參考文獻[1]AlanA.A.Donnvan,BrainW.KernighanGo程序設計語言[M].機械工業(yè)出版社[2]崔洋,賀亞MySQL數據庫應用從入門到精通[M].[3]鄭人杰,馬素霞,殷人昆.軟件工程概論[M].2版.北京:機械工業(yè)出版社,2016[4]鄭人杰,馬素霞,殷人昆.軟件工程概論[M].機械工業(yè)出版社[5]劉遄Linux就該這么學[M].人民郵電出版社[6]劉薇.關于軟件工程之中的結構化設計方法探究.計算機光盤軟件與應用[M].,2013,16(01):242+264.[7]ErichGamma,RichardHlm,RalphJohnson,JohnVlissides設計模式機械工業(yè)出版社[8]Kevin.Fall,W.RichardStevensTCP/IP詳解卷1:協(xié)議[M].機械工業(yè)出版社[9]嚴蔚敏,李冬梅數據結構[M].人民郵電出版社[10]JoachimGoll.軟件架構與設計模式[M].清華大學出版社

謝辭 經過幾個月的努力,畢業(yè)論文即將完成?;仡櫘厴I(yè)設計的開發(fā)過程,那一行又一行的代碼,都是思想的火花。我想借此機會向過去四年來幫助我的人表示深切的感謝。感謝我的父母,可愛的父親,可敬的母親,你們的愛是我最大的財富,與我一起走過四年的學習之路。在畢業(yè)設計期間,我深受導師認真負責的工作態(tài)度和嚴謹的治學風格的啟發(fā)。今后,無論怎樣做人做事,我都要保持積極向上的進取心,樂觀向上的態(tài)度,永不放棄。同時,同學們的相互討論,不僅增進了友誼和理解,也讓我受益匪淺。再次向所有在我的設計過程中給予我?guī)椭完P心的朋友表示深深的感謝!感謝老師的指導,正是您的指導,讓我高質量地完成了畢業(yè)設計。我要感謝北京理工大學珠海學院全體教師的諄諄教誨。正是你們兢兢業(yè)業(yè)的工作,讓我如此成功地完成了大學學業(yè),開啟了人生的新篇章。再次感謝我的朋友們給了我很多關于論文的啟發(fā)和建議,給了我很大的信心。最后,祝大家事業(yè)有成!祝北京工業(yè)大學珠海學院的明天更加美好!

PowerPoint課件制作實用技巧PowerPoint是微軟公司生產的制作幻燈片和簡報的軟件(以下簡稱PPT)。在我們許多人看來,它只不過是一個簡單地對文字、圖形、圖片進行演示的軟件,教學中的課件制作軟件當屬Authorware、Flash。Authorware和Flash制作的動畫效果的確很好,而且它們的功能也很強大。不過這些軟件在制作課件的過程中往往非常耗時,用這些專業(yè)軟件來制作課件用于平時的教學往往效率很低。PPT就是一個非常簡單、實用的制作課件的軟件,只要你用好它,同樣能做非常棒的課件來。一、掌握基本,知道“插入”。(一)知道從“插入”菜單進入,會給PPT課件添加文字、圖片、影片和聲音等,也就會做一般的課件了。(二)圖片插入與處理1.插入圖片具體方法:a)插入剪貼畫或文件中的圖片;b)添加圖片做背景;c)給自選圖形做填充。2.處理圖片具體方法:我們用PPT制作課件時,經常從網上下載圖片來用,而網絡中的圖片往往含有超鏈接和網站名稱痕跡,我們需要刪除其中超鏈接,并對圖片進行裁剪處理。在Powerpoint中,我們一般可以利用“圖片”工具欄上的“裁剪”工具進行裁剪處理,但是,這里的工具只能對圖片進行矩形裁剪,若想裁剪成圓形、多邊形等其他形狀,通常方法就無能為力了。其實這個問題在PPT中是可以解決的。我們用給自選圖形做填充圖片的方法就可以實現(xiàn)我們需要的效果。具體步驟:a)首先利用“繪圖”工具欄畫一個想要裁剪的圖形,如橢圓。b)選中橢圓后單擊“繪圖”工具欄上“填充顏色”按鈕右側黑三角,從列表菜單中單擊“填充效果”命令。c)打開選擇“圖片”選項卡,單擊〔選擇圖片〕按鈕,從“選擇圖片”對話框中找到合適的圖片,單擊〔插入〕按鈕后返回到“填充效果”對話框最后單擊〔確定〕按鈕后退出。此圖片當作橢圓圖形的背景出現(xiàn),改變了原來的矩形形狀,獲得了滿意的裁剪圖片效果。圖片在插入PPT之前,我們可以用ACDSEE軟件進行加工,如改變大小,裁剪等操作。二、學會下載,查找方法。在制作課件過程中,我們時常需要從網絡上下載各種資源用以豐富課件內容,提升課堂效果。但有許多網站的flash動畫都不提供下載;還有網站為我們提供了許多視頻素材,這些視頻素材都是FLV流媒體格式。FLV流媒體格式是一種新的視頻格式,全稱為FlashVideo。由于它形成的文件極小、加載速度極快,使得網絡觀看視頻文件成為可能,它的出現(xiàn)也有效地解決了視頻文件導入Flash后,使導出的SWF文件體積龐大,不能在網絡上很好的使用等缺點。目前各在線視頻網站均采用此視頻格式。如新浪播客、56、優(yōu)酷、土豆、酷6等,無一例外。FLV已經成為當前視頻文件的主流格式。這些網站一般都不提供下載。我們想要這些素材,怎樣辦?1.尋找下載方法:a)在百度網站搜索欄中輸入下載的內容,搜索下載方法。b)弄清格式,再搜索方法。2.具體方法推薦①flasah動畫的下載方法一:IE緩存中尋找在網上看過一個flash后,一般情況下都會保存在IE緩存里。右擊桌面上的IE圖標,選“屬性”命令,單擊中間的“設置”按鈕,彈出“Internet臨時文件和歷史記錄設置”面板,單擊“查看文件”,可以打開臨時文件夾,按時間排序,找到剛才打開的flash動畫文件。優(yōu)點:不需要安裝其它軟件。缺點:操作相對煩瑣。方法二:借助Flashsaver等軟件下載,這些軟件都可以快速、方便的下載你所需要的flash文件。優(yōu)點:簡單、方便、快速。缺點:需要安裝使用。②FLV視頻的獲取方法一:IE緩存中尋找,方法同flasah。方法二:flv視頻解析下載/三、學用控件,轉化應用1.flash動畫的插入方法一:安裝flash插件,再插入flash。步驟:a)安裝“ppt插flash軟件”插件;b)單擊“插入”→“flashmovie”→打開要播放的flash文件→確定。方法二:利用控件插入flash動畫。步驟:a)插入“ShockwaveFlashObject”控件對象:右擊“工具欄”→選“控件工具箱”(或點“視圖→工具欄→控件工具箱”);點“其他控件”(控件工具箱中最后一個形似錘子斧頭的按鈕),拖動滾動條或在英文輸入法狀態(tài)下按鍵盤上“s”鍵,快速定位到以s開頭的控件,選擇“ShockwaveFlashObject”控件。將鼠標移到幻燈片工作區(qū),鼠標指針變成“十”字型,拖動鼠標繪制出一個形似信封的矩形。b)打開控件對象“屬性”對話框:右擊矩形控件對象,在彈出的快捷菜單中選“屬性”命令。c)正確設置控件對象屬性:主要是在“Movie”空白文本域中正確輸入演示文稿要播放的.swf動畫的完整名稱。d)將控件對象適當縮放:為了獲得比較好的播放效果,拖動控件對象的縮放點使它幾乎覆蓋整個幻燈片工作區(qū),但要在幻燈片工作區(qū)底部保留少許空白區(qū)域。這樣既可以享受.swf動畫大屏幕播放的好處,又能夠保證幻燈片能夠順利地切換。e)一般情況下,幻燈片應顯示出動畫的第一幀圖形。如果控件對象仍是空白的,可保存演示文稿,關閉后再打開它,按F5放映幻燈片,應該能夠正確播放動畫。2.FLV視頻的插入FLV視頻與FLASH不一樣的。全稱是flashvideo,所用的播放器也不一樣。①利用控件插入PPT的方法也是有區(qū)別的。不同點:先要下載pptflv.swf文件,此文件是類似于網頁中FLV視頻播放器的一個Flash文件(可用百度搜索下載下來后記著要改文件名,保留擴展名);例如改成:pptflv1.swf“Movie”參數值填入方法不一樣,參數值示例:pptflv.swf?file=視頻.FLV“pptflv.swf”即為步驟一下載下來的Flash文件的完整文件,“視頻.FLV”即為需要播放的FLV視頻的文件名,大家只要將pptflv.swf換成自己下載后起的文件名,將“視頻.FLV”換成自己的FLV視頻文件名,則此FLV文件就可以在PowerPoint中播放了。如播放2.flv視頻參數填法:示例:pptflv1.swf?file=2.FLV②方法二:將flv轉換成swf再插入轉換軟件:UltraFlashVideoFLVConverter3.2.0軟件說明:該軟件又叫全格式FLV轉換器,支持將幾乎所有主流視頻格式轉換為FLV或者SWF且對用戶較為關心的RealMedia(RM/RMVB...)和QuickTime(MOV/QT...)支持良好。三大特色功能:既可輸出FLV格式,也可輸出SWF格式,甚至同時輸出FLV+SWF格式。此軟件也支持創(chuàng)建調用播放的網頁支持導入所有的主流字幕格式。srt,*.sub,*.idx,*.ssa,*.ass,*.psb,*.smi)有字幕合成功能,你現(xiàn)在無需再使用那些繁瑣的專業(yè)軟件來合成字幕到視頻中去,字幕合成與格式轉換一氣呵成!支持視頻分割,右鍵點擊列表中的源文件,選擇[編輯視頻],自己設置下起點終點即可對視頻進行去粗取精處理?、鄯椒ㄈ簩lv轉換成其他格式視頻文件再插入工具:FLV轉AVI(FreeFLVtoAVIConverter1.5)作用:一個免費的將FLV轉換成AVI的軟件,簡單好用,自帶解碼器。四、學做交互,理解運用。1.利用母版進行交互母版≠模版母版和模版可以使課件統(tǒng)一整體風格,展現(xiàn)自己的個性和特點;模版是對同一類課件所做的整體風格統(tǒng)一設置,母版則是對某一部課件內部所做的個性化統(tǒng)一設置。母版設置得好,就可以存為模版,供別人在制作同類題材時使用。修改幻燈片母板的方法和技巧。如果我們希望為每一張幻燈片添加上一項固定的內容,并做超鏈接,可以通過修改“母板”來實現(xiàn)。a)執(zhí)行“視圖→母板→幻燈片母板”命令,進入“幻燈片母板”編輯狀態(tài)。b)插入固定內容。例如:將圖片插入到幻燈片中,調整好大小、定位到合適的位置上。c)給這張圖片插入超鏈接,就可以進行交互了。d)單擊“關閉母板視圖”按鈕退出“幻燈片母板”編輯狀態(tài)。以后添加幻燈片時,該幻燈片上自動添加上該圖片。如果說一個PPT有它的靈魂的話,那就是PPT的母板,它的作用猶如摩天大廈的根基一般。2.在PPT演示文稿中插入PowerPoint演示文稿對象實現(xiàn)交互具體效果:①導航目錄內容展示效果②單擊小圖片就可看到該圖片的放大圖自動縮效果《畫家鄉(xiāng)》一課五個畫面交互的具體操作方法:a)單擊“插入→對象”,在出現(xiàn)的選擇頁中選擇“MicrosoftPowerPoint演示文稿”,單擊確定。此時就會在當前幻燈片中插入一個“PowerPoint演示文稿”的編輯區(qū)域。b)在此編輯區(qū)域中我們就可以對插入的演示文稿對象進行編輯了,編輯方法與PowerPoint演示文稿的編輯方法一樣。c)在插入的演示文稿對象中創(chuàng)建所需的幻燈片。可將圖片設置為幻燈片相同大小,退出編輯后,就可發(fā)現(xiàn)圖片以縮小方式顯示了(其實是整個插入的演示文稿對象被縮小顯示了)。d)最后,我們只需對剩余的圖片進行插入。為了提高效率,可將這個插入的演示文稿對象進行復制,并按照上面的方法對圖片進行替換即可。e)完畢后,單擊“觀看放映”命令進行演示,單擊小圖片馬上會放大,再單擊放大的圖片馬上又返回到了瀏覽小圖片的幻燈片中了。原理:這里的小圖片實際上是插入的演示文稿對象,它們的“動作設置”屬性中的“單擊鼠標”中的“對象動作”被設為了“演示”(這是默認值)。因此我們在演示時,單擊小圖片,就是等于對插入的演示文稿對象進行“演示觀看”。而演示文稿對象在播放時就會自動全屏幕顯示。所以我們看到的圖片就好像被放大了一樣,而我們單擊放大圖片時,插入的演示文稿對象實際上已被播放完了(因為只有一張),它就會自動退出,所以就回到了主幻燈片中了。3.用觸發(fā)器控制自定義動畫進行交互以前我們在使用PowerPoint制作課件時,常常發(fā)現(xiàn)制作人機交互性的課件非常麻煩。其實在PowerPoint2003里,用觸發(fā)器控制自定義動畫可以輕松地制作出交互性很強的課件。觸發(fā)器功能可以將畫面中的任一對象設置為觸發(fā)器,單擊它,該觸發(fā)器下的所有對象就能根據預先設定的動畫效果開始運動,并且設定好的觸發(fā)器可以多次重復使用。類似于Authorware、Flash等軟件中的熱對象、按鈕、熱文字等,單擊后會引發(fā)一個或者的一系列動作。例1:單擊“棱臺”后,“小球”開始按一定路徑運動。例2:分別單擊“變色一”和“變色二”,讓“笑臉”顏色。例3:單擊下面一段話的關鍵詞,讓詞語變紅色讀下面一段話,說說從哪些詞語中可以看出侵略者采用了各種野蠻手段掠奪、毀滅圓明園的?他們把園內凡是能拿走的東西,統(tǒng)統(tǒng)掠走,拿不動的,就用大車或牲口搬運。實在運不走的,就任意破壞、毀掉。步驟:a)將原來段落中的重點詞消去;(將詞語顏色變成和背景色一樣)b)將重點詞作為單獨文本覆蓋到原來位置;c)設置重點詞自定義動畫為“添加效果→強調→更改字體顏色→紅色”d)右擊重點詞自定義動畫,選擇“效果選項”,選擇“計時”,選擇“觸發(fā)器”,選“單擊下列對象時啟動效果”,再選重點詞,按確定。五、學會截取,合理選用。(一)視頻的截取加工1.工具:萬能轉換器(英文名TotalVideoConverter)作用:可以幫助你快速的分割,修整大的AVI、MPEG、ASF或者WMV文件為一個個小的視頻文件,內置視頻播放器,你可以很方便的按照所選擇的播放時間進行切割操作,不需要另外具備高深的技術知識,簡單容易使用!2.繪聲繪影會聲會影是一套操作最簡單,功能最強悍的DV、HDV影片剪輯軟件。不僅完全符合家庭或個人所需的影片剪輯功能,甚至可以挑戰(zhàn)專業(yè)級的影片剪輯軟件。(二)flash的片段截取有時候,在網絡上下載了一個課件,對自己的課堂教學有幫助,但是又不想全部應用這個課件,只想取出其中一部分,應該則么辦呢?先用碩思閃客精靈將.swf文件和.exe文件轉換成fla文件,再用flash8打開進行編輯,截取自己所需的片段,然后插入到ppt里面為我所用。1.碩思閃客精靈:它是一款用于瀏覽和解析Flash動畫(.swf文件和.exe文件)的工具。最新版本有著強大的功能,可以將swf文件導出成FLA文件。它還能夠將flash動畫中的圖片、矢量圖、聲音、視頻(*.flv)、文字、按鈕、影片片段、幀等基本元素完全分解,最重要的是可以對動作的腳本(Actionscript)進行解析,清楚的顯示其動作的代碼,讓對Flash動畫的構造一目了然。支持將SWF文件導出成FLA文件,幫助丟失FLA文件的影片作者重新獲得FLA文件,從而可以再編輯。完全兼容Flash8文件和動作腳本(ActionScript)2.0。碩思閃客精靈支持將包含組件的SWF文件轉換成FLA格式,用戶可以在Flash中編輯這些組件。支持解析Flash影片中的視屏(video)文件,并將Flash影片中的視頻文件導出為*.flv格式。2.碩思閃客精靈具體使用方法:①解析Flash課件,提取課件素材在Flash課件作品中有大量的圖片、聲音和視頻等資源。由于制作者擁有的資源不同,在制作課件時,很難及時、方便地尋找到適合的素材。如果可以從同類作品中將所需要的資源提取出來為己所用的話,不僅大大節(jié)約了搜集素材資源的時間,而且會極大地提高課件利用率。但是,F(xiàn)lash課件發(fā)布時一般都進行加密處理,使教師無法用普通的方式導入到Flash中進行編輯。而碩思閃客精靈可以解析出Flash作品中的元件及腳本,并且可以保存成swf格式,這樣在創(chuàng)作時就可以直接導入Flash中使用。啟動閃客精靈,單擊工具上的“快速打開”按鈕打開一個Flash動畫(可以是swf格式或exe格式),閃客精靈會自動分解當前

溫馨提示

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

評論

0/150

提交評論