版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、本科畢業(yè)設(shè)計()口袋自考系統(tǒng)的設(shè)計與實現(xiàn)Design and Implementation of Koudaizikao BackendSystem學院:軟件學院業(yè):軟件工程 XX專學生號: X學指導教師:XX北京交通大學2016 年 5 月學士使用書本學士作者完全了解北京交通大學有關(guān)保留、使用學士的規(guī)定。特北京交通大學可以將學士的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,提供閱覽服務(wù),并采用影印、縮印或掃描等保存、匯編以供查閱和借閱。(的在后適用本說明)作者簽名:指導教師簽名:簽字日期:年月日簽字日期:年月日北京交通大學畢業(yè)設(shè)計()中要中要摘要:隨著智能終端設(shè)備的普及和“互聯(lián)網(wǎng)+”概念的提出,移
2、動互聯(lián)網(wǎng)已經(jīng)涉入到我們生活的方方面面,“互聯(lián)網(wǎng)+教育”近來更是處于風口浪尖。通過網(wǎng)絡(luò)和智能終端設(shè)備,人們可以隨時隨地地學習,不再受時間和空間的。高等教育是獲取本科文憑的一個重要途徑。通過“移動互聯(lián)網(wǎng)+自考教育”,自考學子可以有效的避免與工作之間的,輕輕松松獲得本科文憑。本文設(shè)計并開發(fā)了適用于高等教育APP 的分布式系統(tǒng)。系統(tǒng)共分為六個模塊:賬戶管理、資訊、自考社區(qū)、題庫練習、課程和 Broker。六個模塊被設(shè)計成進程,相互之間使用 protobuf-rpc-pro 框架進行 rpc 通信。本文對自考系統(tǒng)進行了需求調(diào)研、功能設(shè)計和架構(gòu)設(shè)計,完成了自考系統(tǒng)數(shù)據(jù)庫的設(shè)計和建立,完成了Broker 子
3、系統(tǒng)、賬戶管理子系統(tǒng)、自考資訊子系統(tǒng)的編碼實現(xiàn),最后對 Broker、賬戶管理、資訊三個部分進行了功能測試和性能測試。目前,口袋自考系統(tǒng)已經(jīng)正式上線,與 APP 端配合,對外提供自考教育服務(wù),極大的方便了廣大自考學子。今后,口袋自考自考教育服務(wù)。系統(tǒng)將結(jié)合大數(shù)據(jù)推出更加個性化的:高等教育;教育;protobuf-rpc-pro;protocol bufferi北京交通大學畢業(yè)設(shè)計()英要ABSTRACTABSTRACT: With the popularization of intelligent terminal and the raise of the Internet plus, gra
4、dually we cannot live without the mobile internet. Under this background, online-education gains more popularity than ever before. Everyone now can study anywhere and anytime without being restricted by time or space by intelligent terminals through the Internet. Self-TaughtHigher Education Examinat
5、ions (STE) is an essential way to earn a bachelor's degree. Peoplecan easily get a bachelor's degree avoiding thework through accepting online-education.between self-taught examinations andThis article focus on the design and development of Koudaizikao Backend System. The systemcan be divide
6、d into six parts including Account Management, Examination Information, STECommuExercises,Course as well as Broker. These six modules were design intoindependent processes which communicates with each other via protobuf-rpc-pro framework. Above all, this article finished the requirement analysis and
7、 design of architecture and functional modules of the STE system. In addition, the database of the STE system was established after being designed. Also this article implemented the Broker subsystem, Account Management subsystem, Examination Information subsystem. Last but not least, the three subsy
8、stems mentioned above were tested in order to make sure they are satisfy the needs of function as well as performance.So far, the STE background system has went live, combined with the mobile application end, providing STE service, which brings the people who will attend the STE convenience and high
9、- efficiency. In the future, the STE background system will provide service which is morealized combine with big data.KEYWORDS : Self-taught higher education examinations; education; protobuf-rpc-pro; protocol bufferii北京交通大學畢業(yè)設(shè)計()目錄目錄中要IABSTRACTII目錄III1引言1.4背景1項目價值與意義2內(nèi)容2結(jié)構(gòu)22相關(guān)技術(shù)介紹42.1 NGI
10、NX42.2 JETTY42.3 REDIS42.4 PROTOCOL BUFFER52.5 PROTOBUF-RPC-PRO62.6 MAVEN62.7 LOG4J262.8 GITLAB63口袋自考系統(tǒng)需求分析3.4目標用戶8競品分析8任務(wù)與目標8功能性需求..43.4.5課程9練習鞏固10資訊11社區(qū)交流11賬戶管理123.5 非功能性需求.23.5.3系統(tǒng)性能要求13可拓展性與可維護性13可靠性與安全性133.6 運行環(huán)境概述143.7 小結(jié)144口袋自考系統(tǒng)概要設(shè)計154.1 系統(tǒng)整體架構(gòu)設(shè)計15iii北京交
11、通大學畢業(yè)設(shè)計()目錄4.2 BROKER 子系統(tǒng)功能設(shè)計164.2.1 功能結(jié)構(gòu)圖164.2.2 功能模塊描述數(shù)據(jù)校驗16請求轉(zhuǎn)化16反爬蟲17負載平衡17請求日志17響應日志17處理統(tǒng)計17異常日志184.3 賬戶子系統(tǒng)功能設(shè)計184.3.1 功能結(jié)構(gòu)圖184.3.2 功能模塊描述與登錄19驗證19找回19專業(yè)管理與科目管理19設(shè)備. 20信息修改20獎學金204.4 資訊子
12、系統(tǒng)功能設(shè)計204.4.1 功能結(jié)構(gòu)圖204.4.2 功能模塊描述資訊選擇21資訊閱讀21評論22點贊、收藏、. 224.5 題庫子系統(tǒng)功能設(shè)計224.5.1 功能結(jié)構(gòu)圖224.5.2 功能模塊描述出題23判題23錯題籃與收藏夾23知識點講解與題目講解23評論與回復24. 244.6 社區(qū)子系統(tǒng)功能設(shè)計244.6.1 功能結(jié)構(gòu)圖244.6.2 功能模塊描述板塊關(guān)注25發(fā)帖、跟帖、回復25點贊、收藏、.
13、25iv北京交通大學畢業(yè)設(shè)計()目錄 置頂 統(tǒng)計4.7.2子系統(tǒng)功能設(shè)計26功能結(jié)構(gòu)圖26功能模塊描述2瀏覽課程26課程介紹27課程目錄27課程課程. 27. 274.8 數(shù)據(jù)庫設(shè)計2....84.8.9數(shù)據(jù)庫設(shè)計規(guī)范27賬戶數(shù)據(jù)實體關(guān)系圖28賬戶數(shù)據(jù)字典28資訊數(shù)據(jù)實體關(guān)系圖29資訊數(shù)據(jù)字典30題庫數(shù)據(jù)實體關(guān)系圖30題庫數(shù)據(jù)字典31數(shù)據(jù)實體關(guān)系圖32數(shù)據(jù)字典3.11社區(qū)數(shù)據(jù)實體關(guān)
14、系圖33社區(qū)數(shù)據(jù)字典334.9 物理架構(gòu)344.9.1 系統(tǒng)部署344.10 小結(jié)355口袋自考系統(tǒng)詳細設(shè)計及實現(xiàn)365.1 BROKER 子系統(tǒng)設(shè)計與實現(xiàn)365.1.1 Broker 請求處理流程365.1.2 Broker 子系統(tǒng)類圖375.1.3 Broker 重點實現(xiàn)385.2 賬戶子系統(tǒng)設(shè)計與實現(xiàn)3.25.2.3賬戶登錄39獎學金修改40. 4與清除425.2.4 更新設(shè)備信息425.2.5 賬戶子系統(tǒng)類圖435.3 資訊子系統(tǒng)設(shè)計與實現(xiàn)4..45.3.5獲取資訊列表43資訊評論44資訊的緩存44資訊點贊45資訊子
15、系統(tǒng)類圖46v北京交通大學畢業(yè)設(shè)計()目錄5.4 系統(tǒng)運行效果465.4.1運行效果465.4.2 APP 請求效果475.4.3 瀏覽器模擬請求效果475.5 小結(jié)486 口袋自考系統(tǒng)測試46.4目的和方法49系統(tǒng)測試用例49系統(tǒng)測試結(jié)果50小結(jié)507 總結(jié)與展望517.1 總結(jié)517.2 展望51參考文獻53致附謝54錄55vi北京交通大學畢業(yè)設(shè)計()正文1 引言飛速發(fā)展的移動互聯(lián)網(wǎng)科技為傳統(tǒng)行業(yè)帶來了新的思考方式和運營理念。教育行業(yè)作為傳統(tǒng)行業(yè)中的典型代表,在互聯(lián)網(wǎng)科技浪潮的沖擊下正在發(fā)生日新月異的變化。成人教育作為教育行業(yè)的一部分自然也在悄然的發(fā)生轉(zhuǎn)變。而且成人教育
16、由于存在工作時間與學習時間上的,更應該受益于移動互聯(lián)網(wǎng)帶來的便利。1.1背景在高度發(fā)達的今天,競爭越來越激烈,工作要求越來越高。因此,學歷的高低顯得特別的重要,無論是為了滿足工作需求,還是提升個人水平,學歷都能充分地說明一切。學歷是一個敲門磚,是你展現(xiàn)在別人面前的第一印象,是最直接的表現(xiàn),有技術(shù)也要有尊敬你。1,這樣你既能用技術(shù)讓別人心服口服,也能用知識讓別人在"文憑化"的理念下,學歷會影響到一個人成長發(fā)展的各各方面,比如工作,事業(yè),愛情等。具有高學歷,你就具有的機會,具有精神上的,可以站在巨人肩膀上看世界,可以用更高的角度看問題。1 學歷是企業(yè)對一個人認可, 企業(yè)招聘的時
17、候首先挑選的條件就是學歷,在不了解的情況下,擁有的學歷越高,具有的工作機會也就越多。學歷不但對人生事業(yè)重要,對人生的愛情也很重要。愛情需要有共同語言,唯有兩個人的學歷相差不大的情況下,才能一起經(jīng)營一個夸姣的家庭。高等教育(Self-taught higher education examinations),簡稱自考,1981 年。2經(jīng)自批準創(chuàng)立,是對自學者進行的以學歷為主的高等教育是個人會助學和相結(jié)合的高等教育形式,是我國高等教育體系的重要組成部分。學生經(jīng)過系統(tǒng)的學習后,通過的答辯、學位英語的達到規(guī)定成績符合條件的畢業(yè)生,可申請授予成人學士學位、參加士學位和博士學位。3,并可繼續(xù)攻讀碩跟據(jù)搜狐
18、2016 年 4 月 28 日的,從 2010 年開始,報名人數(shù)一路回暖,連年上升,2013 年 2140 人,2014 年 2190 人,2015 年 2230 人。4 綜合來看,自學在未來幾年內(nèi)的報考人數(shù)相當巨大,而傳統(tǒng)的教育選擇在建立學校來提供教學,這與學生往往需要參作的實際情況相。結(jié)合移動互聯(lián)網(wǎng)不但能夠以其方便靈活的特性解決學員的困擾,也能利用大數(shù)據(jù)促進學員的學習。1北京交通大學畢業(yè)設(shè)計()正文1.2項目價值與意義當廣大因?qū)W歷較低而困惱的人們糾結(jié)于傳統(tǒng)教育的時間成本和當前工作的總總時,本文所設(shè)計的口袋自考系統(tǒng)將能一掃他們之前的愁云。結(jié)合移動互聯(lián)的便利性、靈活性和大數(shù)據(jù)分析,本文所設(shè)計的
19、口袋自考自考學子隨時隨地享受到最新、最好、最全的高等教育系統(tǒng)可以幫助成千上萬教育,還能擁有個性化的準確無誤教育服務(wù),包括性的知識點強化訓練、高質(zhì)量教育課程、分析、溫暖的社區(qū)交流、以及貼心的自考時間安排提醒。讓自考學子能夠安心工作,中的零碎時間補充本科文憑,實現(xiàn)學習,合理的把握與個人工作之間的平衡,充分利用生活相關(guān)知識。最后,在工作、學習兩不誤的情況下,輕松考取本科夢,為將來人生事業(yè)的進步打下堅實的基礎(chǔ)。在幫助自考學子考取本科文憑的同時,本文所設(shè)計實現(xiàn)的口袋自考系統(tǒng)也能促,提高我國全進廣泛的個人自學和助學活動,造就和選拔出德才兼?zhèn)涞母咚刭|(zhì)的思想道德素質(zhì)和科學素養(yǎng),以適應現(xiàn)代化建設(shè)的需要。1.3內(nèi)
20、容本文主要討論如何利用移動互聯(lián)網(wǎng)的靈活性和便利性為參加高等教育的自考學子提供教育服務(wù),以及提供哪些教育服務(wù)。為此,本文對自考學子群體所具有的共有特性和他們在方面的需求進行了調(diào)研,并對已經(jīng)存在的和潛在的競爭對手的優(yōu)點和缺點進行了仔細的分析。其后,根據(jù)調(diào)研結(jié)果本文設(shè)計并開的軟件系統(tǒng)發(fā)出一套適用于移動端的,用于幫助學子通過高等教育口袋自考不要求具體的前端實現(xiàn),而是通過 HTTP 協(xié)議向任何被允系統(tǒng)。許客戶端提供高等教育服務(wù)的相關(guān)數(shù)據(jù)和。能夠為自考學子提供全進行專業(yè)知識水平測試。此面而系統(tǒng)的知識點講解和教學,自考學子也能夠通過外,還為自考學子提供了對應的高等教育相關(guān)的資訊消息和一個專供自考學子們相互交
21、流的社區(qū)。除了討論如何為自考學子提供高等教育教育服務(wù)外,本文還通過 protocol-rpc-pro 框架為口袋自考系統(tǒng)設(shè)計了能夠適應高并發(fā)、具備拓展性的分布式架構(gòu)。使得口袋自考系統(tǒng)能夠輕松應對未來的業(yè)務(wù)變更和急劇增加的量。1.4結(jié)構(gòu)本文共分為以下部分:第一章,介紹了教育的行業(yè)背景和本文所設(shè)計的口2北京交通大學畢業(yè)設(shè)計()正文袋自考系統(tǒng)能夠帶來的改變;第二章,介紹了口袋自考系統(tǒng)開發(fā)過程中涉及到培訓機構(gòu)的特點進行了的先進技術(shù)和工具;第三章,對自考學子的需求和傳統(tǒng)分析,同時也介紹了口袋自考系統(tǒng)的功能性需求與非功能性需求;第四章,依次介紹了口袋自考系統(tǒng)的整體架構(gòu)、各個子系統(tǒng)的功能模塊以及數(shù)據(jù)庫設(shè)計;
22、第五章,圖等 UML 工具對口袋自考系統(tǒng)的詳細設(shè)計進行了說使用流程圖、時序圖、明,并展示了系統(tǒng)的運行效果;第六章,介紹口袋自考系統(tǒng)的測試的方法和測試中使用的測試用例;第七章,對整個系統(tǒng)的研發(fā)過程作總結(jié)和展望。3北京交通大學畢業(yè)設(shè)計()正文2 相關(guān)技術(shù)介紹在口袋自考系統(tǒng)的研發(fā)過程中使用了許多優(yōu)秀的開源技術(shù),包括 Nginx、Jetty、Redis、Protocol Buffer、Protocol-rpc-pro、Maven、Log4j2、GitLab、Spring、Mysql 等。這些技術(shù)的應用極大的降低了系統(tǒng)的開發(fā)難度。下面本文將對其中的部分技術(shù)做一個概要的介紹。2.1NginxNginx 是
23、一款輕量級的 Web 服務(wù)器/反向服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在一個 BSD-like 協(xié)議下。由俄羅斯程序設(shè)計師 Igor Sysoev 所開發(fā),供及搜索引擎 Rambler 使用。其特點是占有內(nèi)存少,并發(fā)能力強。5大型的本文所設(shè)計的“口袋自考系統(tǒng)”使用Nginx 作為反向服務(wù)為后端的業(yè)務(wù)系統(tǒng)提供初級的安全防護和簡單的負載平衡,以及為后端較慢的服務(wù)器提供緩沖服務(wù)。2.2JettyJetty 是一個開源的 servlet 容器,它為基于 Java 的 web 容器,例如 JSP 和 servlet 提供運行環(huán)境。Jetty 是使用 Java 語言編寫的,它的 API 以一
24、組 JAR 包的形式發(fā)布。開發(fā)可以將 Jetty 容器實例化成一個對象,可以迅速為一些應用提供網(wǎng)絡(luò)和 web 連接。6運行(stand-alone)的 Java相對于 Tomcat,Jetty 更輕量級。Jetty 為每個應用服務(wù)器省下的幾兆內(nèi)存,對于大的分布式環(huán)境則是節(jié)省大量。而且,Jetty 的輕量級也使其在處理高并發(fā)細粒度請求的場景下顯得更快速高效。Jetty 也更靈現(xiàn)在其可插拔性和可擴展性,更易于開發(fā)者對 Jetty 本身進行二次開發(fā),定制一個適合自身需求的 Web Server。7應為 Jetty 在處理大量請求下的性能優(yōu)勢和其可嵌入到代碼中的特點,口袋自考后在請求分發(fā)處理模塊 Br
25、oker 中使用 Jetty 作為內(nèi)嵌的 servlet 容器,處理業(yè)務(wù)請求。2.3RedisREmote DIctionary Server(Redis) 是一個由 Salvatore Sanfilippo 寫的 key-value系統(tǒng)。Redis 提供了一些豐富的數(shù)據(jù)結(jié)構(gòu),包括 lists, sets, ordered sets 以及 hashes ,以4北京交通大學畢業(yè)設(shè)計()正文及和 Memcached 一樣的 strings 結(jié)構(gòu)。8Redis 支持主從同步。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)。9器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。這使得 Redis 可執(zhí)行單層樹R
26、edis 是一個有著極高性能的 key-value 數(shù)據(jù)庫,其官網(wǎng)給出的讀的速度是 110000次/s,寫的速度是 81000 次/s。9系統(tǒng)的題庫練習子系統(tǒng)中將使用 redis 來緩存 MySQL 數(shù)據(jù)庫中的在口袋自考題目和,以提高做題練習時的出題和判題速度,提升用戶體驗。2.4Protocol BufferProtocol Buffers(PB) 是一種輕便高效的結(jié)構(gòu)化數(shù)據(jù)格式,可以用于結(jié)構(gòu)化數(shù)格式??捎糜谕ㄓ崜?jù)串行化,或者說序列化。10 它很適合做數(shù)據(jù)或 RPC協(xié)議、數(shù)據(jù)等領(lǐng)域的語言無關(guān)、平臺無關(guān)、可擴展的序列化結(jié)構(gòu)數(shù)據(jù)格式。目前提供了 C+、Java、Python 三種語言的 API。
27、PB 相對于其他同類技術(shù)最主要的優(yōu)點是:簡單、快。圖 2-1 是 PB 與同類技術(shù)的一個測試比較。11圖 2-1 性能測試圖兼容性,開發(fā)者不必擔心因為消息結(jié)構(gòu)的改變而造成的大PB 擁有非常優(yōu)秀的規(guī)模的代碼重構(gòu)或者遷移的問題。因為添加新的消息中的 field 并引起已經(jīng)發(fā)布的程序的任何改變。PB 語義清晰簡單便于學習使用,不過這也限制了其對復雜概念的表述能力。由于口袋自考系統(tǒng)各個模塊之間只是進行簡單格式的,且對效率有較高的要求,所以使用 PB 作為各個進程間的格式。5北京交通大學畢業(yè)設(shè)計()正文2.5Protobuf-rpc-proProtobuf-rpc-pro 是一個 Java 開發(fā)類庫,提
28、供基于Protocol Buffer 服務(wù)的 RPC 層。底層 NIO 基于 Netty 構(gòu)建。功能支持包括雙向 RPC 調(diào)用,從客戶端調(diào)用服務(wù)器端和從服務(wù)器端調(diào)用客戶端的方法。客戶端和服務(wù)器是對等通信。支持 TCP 連接復用/ keep-alive,SSL 加密, RPC 調(diào)用取消,超時和一個可插拔的 RPC 調(diào)用數(shù)據(jù)日志記錄工具。12口袋自考RPC 框架。系統(tǒng)將使用 Protobuf-rpc-pro 作為賬戶、資訊、Broker 三個模塊間的2.6MavenMaven 是一個項目管理工具,它包含了一個項目對象模型 (Project Object M),一組標準集合,一個項目生命周期(Pro
29、ject Lifecycle),一個依賴管理系統(tǒng)(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。當你使用 Maven 的時候,你用一個明確定義的項目對象模型來描述你的項目,然后 Maven 可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。13本文在口袋自考java 開發(fā)的子系統(tǒng)。系統(tǒng)中使用 maven 來管理 Broker、Account、News 這三個使用2.7Log4j2Log4j2 是 Apache log4j 項目的升級版本。Log4j 2 被設(shè)計成一個具有審計功能的
30、日志框架。在配置更新時,Log4j 1.x and Logback 對日志沒有反應,Log4j 2 則會正常工作。另外,Logback 不Appenders 中的異常是不可見的,而 Log4j2 可以配置成發(fā)送異常給應用程序。基于插件的軟件架構(gòu),使得 Log4j2 更易于擴展,而不需會改變 Log4j2自身的功能。Log4j2 支持用戶自定義的日志等級,也支持 Marker。14-15本文設(shè)計的口袋自考系統(tǒng)使用 Log4j2 作為賬戶、資訊以及 Broker的日志框架。并使用 log4j2 的 Marker 特性來自定義日志類型。2.8GitLabGitLab 是一個利用 Ruby on Ra
31、ils 開發(fā)的開源應用程序,實現(xiàn)一個自托管的 Git 項目倉庫,可通過 Web 界面進行公開的或者私人項目。16 它擁有與類似的功6北京交通大學畢業(yè)設(shè)計()正文能,能夠瀏覽源代碼,管理缺陷和注釋??梢怨芾韴F隊對倉庫的,它非常易于瀏覽提交過的版本并提供一個文件歷史庫。它還提供一個代碼片段收集功能可以輕松實現(xiàn)代碼復用,便于日后有需要的時候進行查找。17系統(tǒng)的所有代碼均是使用搭建的 gitlab 來進行版本管理和代碼審口袋自考閱。7北京交通大學畢業(yè)設(shè)計()正文3 口袋自考系統(tǒng)需求分析隨著的發(fā)展進步,水平、素質(zhì)的不斷提高,企事業(yè)對的水平的需求也不斷提升,學歷、文憑也就成了衡量的標準,也體現(xiàn)了個人地位及
32、身份的一種標志、企事業(yè)實力和素質(zhì)的象征。為了適應的對學歷的要求,不少尚未獲得本科文憑的人都會選擇通過高等教育獲取文憑。3.1目標用戶本文所設(shè)計的“口袋自考系統(tǒng)”的最終用戶為尚未取得本科文憑,并打算通過高等教育.5.取得本科文憑的所有。他們大都具備以下特征:離開學校多年,基礎(chǔ)知識較為薄弱;已經(jīng)擁有一份工作,空余時間并不充裕;并不愿意深究知識原理細節(jié),只是希望取得文憑;報考專業(yè)多為應用型學科,例如“人力希望在短期內(nèi)獲得文憑。管理”、“市場”等;3.2競品分析在高等教育而好教育機構(gòu)等。自這一領(lǐng)域目前以自考培訓機構(gòu)居多,比如:尚德機構(gòu)、學大多成立多年,有豐富的教育經(jīng)驗,完善的教育流程,以
33、及強大的師資隊伍。他們大都以傳統(tǒng)的設(shè)點辦學的方式向自考學生提供教育服務(wù),部分也會使用互聯(lián)網(wǎng)做教育??偟膩碚f自有以下幾點共同之處:.5.師資力量雄厚,教育經(jīng)驗豐富;采用傳統(tǒng)的教育方式,自考學生接收程度高; 根據(jù)個人情況會收取 5000 元以上的學費;自考本科一般要花兩到三年的時間;需要參加培訓班。3.3任務(wù)與目標本文所設(shè)計的口袋自考獲取本科文憑。系統(tǒng),其目的在于協(xié)助自考學子通過規(guī)定的高等教育應該充分吸收傳統(tǒng)的自考培訓機構(gòu)在教育和部分教育方式方面的優(yōu)勢,同時發(fā)揮移動互聯(lián)網(wǎng)靈活、便捷、廉價的優(yōu)勢,彌補自考培訓機8北京交通大學畢業(yè)設(shè)計()正文構(gòu)的短板。為學生提供教學、練習、講解、模擬、考
34、務(wù)管理于一體的自考教育服務(wù)。要讓自考學生充分利用碎片化的時間,隨時隨地都能學習,既不耽誤工作,又能輕松考取文憑。3.4功能性需求在用戶能夠在移動端享受完整的教育,輕松獲得本科文憑。本文將用戶需求總結(jié)為五大部分,分別是:管理。下面將逐一進行詳細介紹。課程、練習鞏固、資訊、社區(qū)交流和賬戶3.4.1課程圖3-1教學用例圖使用用例圖對用戶關(guān)于課程的需求和操作進行了說明。圖 3-1教學用例圖教學是指將某一門課程按照其教學進度安排將講課剪切成對應的片段,此次提供給自考學生。教學部分提供以下具體需求:.課程列表查看,用戶可以查看所有跟報考專業(yè)相關(guān)的課程;課程介紹,用戶可以選擇某一課程,查看其介
35、紹;課程夠買,用戶可以課程目錄查看,用戶感的課程;課程后可以查看該課程的教學目錄;9北京交通大學畢業(yè)設(shè)計()正文5.的課程擁有 PDF 講義,則用戶可以下課程講義,如果用戶所載該 PDF 講義到本地設(shè)備。6.7.課程,用戶在目錄選擇章節(jié),該章節(jié)的課程;已課程查看,用戶能夠查看已經(jīng)了的所有課程;因為不同地區(qū)和不同專業(yè)對課程的要求不同,所以每一門課程都屬于一個或多個專業(yè),而一個專業(yè)又屬于一個或多個省市。具體視情況而定。3.4.2 練習鞏固練習鞏固是指自考學生再有了一定的學習積累后可以通過移動設(shè)備,做題練習,加深體會,檢驗的學習狀況。對于練習鞏固需要滿足以下需求:1.性出題,的掌握情況, 章節(jié)練習,
36、性出題是要求系統(tǒng)能夠性的給出練習題;自考學生對一課程中知識點2.課程的教學章錄給出對應的練習題,自考學生可以隨便選擇具體章節(jié)的習題進行練習;3.4.5.在章節(jié)練習和能夠?qū)︻}目性出題中每完成一道題就給出該題目的的評論,也能查看別人的評論;和涉及的知識點;模擬,系統(tǒng)出題讓用戶進行模擬,用戶可以選擇題目的難度等級(低、中、高),系統(tǒng)有倒計時,時間結(jié)束后自動交卷,也可以手動選擇交卷,答題過程中可以查看已經(jīng)做過的題和未完成的題。6.自動判卷,模擬結(jié)束后系統(tǒng)將自動進行判卷,并向用戶反饋結(jié)果,用戶可查看答錯的題目和題目,以及模擬的成績排行;的實際7.,按照用戶的選擇的課程,給出年份的試題進行解答;其它同模擬
37、題目,用戶可以選擇感和自動判卷;8.知識點講解,按照課程的章節(jié)給出每一章涉及到的知識點以及知識點的掌握要求,和用戶本人在做題練習過程中對知識點的掌握情況以及錯誤率;9.題目收藏,在做題過程中用戶可以將感閱,也可以手動刪除收藏夾內(nèi)的內(nèi)容;的題目添加到收藏夾,方便以后查10.錯題,用戶做錯的題目都會被下來,當用戶再次遇到該題目并作對以后,將會被移出。每一道題目都有所屬的專業(yè)課程,和其中涉及到的知識點,以及對應的題目講解,此外還包括所有用戶關(guān)于該題的評價。圖 3-2 練習鞏固用例圖詳細介紹了用戶對于做題練習所需要的一些功能,以及之間的邏輯關(guān)系。10北京交通大學畢業(yè)設(shè)計()正文圖 3-2 練習鞏固用例
38、圖3.4.3資訊其中主要提供一些自考相關(guān)的文章,相應的資訊等。對于每一篇文章用戶可以資訊應該具有的功能。進行收藏、評論和。圖 3-3 用用例圖來描述了圖 3-3資訊用例圖3.4.4 社區(qū)交流社區(qū)主要用于自考學生之間的交流。社區(qū)分為多個板塊,用戶可以選擇喜歡的板塊進行關(guān)注,也能取消關(guān)注。在板塊中用戶可以查看別人發(fā)布的帖子并進行點贊、評論、收藏和到社交平臺等操作,也可以對別人的評論進行評論。用戶可以發(fā)表帖子,帖子內(nèi)容包含圖片、文字和標題。社區(qū)中還有最近最熱的帖子,方便用戶加入11北京交通大學畢業(yè)設(shè)計()正文到最新的話題當中。也有最熱門的板塊,來幫助用戶尋找活躍地區(qū)。圖 3-4 使用用例圖描述社區(qū)交
39、流的需求。圖 3-4 社區(qū)交流用例圖3.4.5 賬戶管理圖 3-5 賬戶管理用例圖描述了用戶在與賬戶子系統(tǒng)交互時需要的一些功能,以及功能之間的邏輯關(guān)系。圖 3-5 賬戶管理用例圖12北京交通大學畢業(yè)設(shè)計()正文賬戶管理為基礎(chǔ)需求,要求能夠在各個活動中標識用戶的動進行統(tǒng)一的管理。其具體要求如下:,對用戶所參與的活.5.賬戶、登陸,第賬號登陸;修改用戶頭像、昵稱、等基本信息;用戶省市專業(yè)選擇,用戶需要學習的科目課程學習; 獎學金,獎學金來源于用戶對活動的參與;管理收藏的資訊和帖子;3.5非功能性需求3.5.1 系統(tǒng)性能要求1. 響應速度執(zhí)行評論、信息修改等操作時的響應反饋速度最大不應
40、超過1000ms,一般在150ms 以內(nèi)。執(zhí)行用戶信息獲取及其它簡單數(shù)據(jù)獲取操作時:90%在 150ms 以內(nèi),99%在 250ms 以內(nèi),峰值狀態(tài):90%在 500ms 以內(nèi),99%在 250ms 以內(nèi);執(zhí)行刷題、資訊等量較大的操作時最大反饋速度不應超過 1000ms,一般2. 容量和吞吐量在 250ms 以內(nèi)。系統(tǒng)應支持至少 200 用戶的同時并發(fā);平臺最大數(shù)至少支持 300 萬條;庫應支持至少高達 200G 的數(shù)據(jù)容量。3.5.2 可拓展性與可維護性因為系統(tǒng)采用迭代演進的方式進行開發(fā),所以系統(tǒng)應適應迭代過程中的變更及擴展而不需要對程序做相應的修改。系統(tǒng)應能適應后續(xù)應用的添加,而不至于程序
41、大量的修改或重來。隨著用戶數(shù)的增長及功能應用的增長,軟件系統(tǒng)通過硬件性能的調(diào)整和增加硬件數(shù)量而保持相對的穩(wěn)定性,維持正常的運行。3.5.3 可靠性與安全性系統(tǒng)應支持長時間的連續(xù)不斷的運行。系統(tǒng)在連續(xù)一的運行中因系統(tǒng)故障導致服務(wù)不可用的次數(shù)不得超過 1 次,單次修復時間不得超過 24 小時。系統(tǒng)在癱瘓后能夠在短時間內(nèi)迅速恢復。系統(tǒng)應有完善的日志方便故障后恢復數(shù)據(jù)和追查問題。機制,能夠?qū)㈥P(guān)鍵數(shù)據(jù)到日志當中,13北京交通大學畢業(yè)設(shè)計()正文安全機制要求系統(tǒng)各個模塊獨自數(shù)據(jù)庫。對于涉密信息,要進行加密日志中進行數(shù)據(jù)恢復的功能。數(shù)據(jù)庫,不能夠越過其他功能模塊直接其。系統(tǒng)應支持手工及定時數(shù)據(jù)備份的功能,從
42、3.6運行環(huán)境概述系統(tǒng):CentOS Linux release 7.0.1406 (Core)內(nèi)核:3.10.0-123.9.3.el7.x86_64CPU:4 核CPU 型號:Intel(R) Xeon(R) CPU E5-2650 v2 2.60GHz內(nèi)存:8G數(shù)據(jù)庫:MySQL 5.63.7小結(jié)本章主要對自考學子群體的特點和傳統(tǒng)自考培訓機構(gòu)的優(yōu)缺點進行了全面的分析,并以此為根據(jù)明確了口袋自考計指明了方向。系統(tǒng)的功能性需求和非功能性需求,為之后的功能設(shè)14北京交通大學畢業(yè)設(shè)計()正文4 口袋自考系統(tǒng)概要設(shè)計本文所設(shè)計的口袋自考系統(tǒng)的主要目的是為自考用戶提供教學、做題練習系統(tǒng)與前端的 AP
43、P、鞏固發(fā)布和社區(qū)交流等服務(wù),方便用戶隨時隨地的學習網(wǎng)頁一起采用 C/S 架構(gòu)。4.1系統(tǒng)整體架構(gòu)設(shè)計圖 4-1 整體架構(gòu)圖口袋自考系統(tǒng)采用 C/S 架構(gòu),整體架構(gòu)如圖 4-1 所示。Client 端為移動 App,App 通過 HTTP 協(xié)議與服務(wù)器端進行數(shù)據(jù)交互,數(shù)據(jù)格式為 json 字串。在 App 和真正的服務(wù)之間還使用了 nginx 作為反向,所以使用 nginx 作為反向服務(wù)器。應為在系統(tǒng)正式上線之后會部署多套后服務(wù)器實現(xiàn)負載均衡。口袋自考系統(tǒng)一共分為 5 大功能模塊:賬戶、題庫、之外還有一個請求分發(fā)模塊 Broker。Broker 模塊作為整個、社區(qū)和資訊,除此的統(tǒng)一,此模塊接入
44、后端不同的功能業(yè)務(wù)的 server。Broker 的定義是作為的接,其中不處理具體的業(yè)務(wù)邏輯,只是做請求轉(zhuǎn)發(fā)。轉(zhuǎn)發(fā)包括把 http 的請求轉(zhuǎn)換成 protobuffer 請求;Broker另外的重要的功能是打印一些系統(tǒng)日志,系統(tǒng)處理請求的速率。其中與s 兩個模塊共同提供教學服務(wù)。和模塊負責處理教學s 模塊則負責,提供s 模塊由的組織關(guān)系,而數(shù)據(jù)的點播、功能。云服務(wù)提供商CC云服務(wù)整套解決方案。15北京交通大學畢業(yè)設(shè)計()正文4.2Broker 子系統(tǒng)功能設(shè)計4.2.1 功能結(jié)構(gòu)圖根據(jù) Broker 模塊在整個系統(tǒng)中所承擔的功能,本文為 Broker 子系統(tǒng)設(shè)計了五大功能模塊。其具體的功能結(jié)構(gòu)如
45、圖 4-2 所示。圖 4-2 Broker 功能結(jié)構(gòu)圖4.2.2 功能模塊描述 數(shù)據(jù)校驗APP 和瀏覽器端會將數(shù)據(jù)以 json 串的格式傳遞到 Broker。Broker 在接收到 json 字后會將 json 字轉(zhuǎn)化成指定的數(shù)據(jù)模型的一個實例。在轉(zhuǎn)化過程中需要對數(shù)據(jù)字段進行校驗,被指定為 required 的字段不能夠為空。若出現(xiàn)為空的情況則立即終止請求,并向客戶端返回錯誤。 請求轉(zhuǎn)化Broker 處于客戶端(APP 和瀏覽器)與功能服務(wù)器之間??蛻舳伺c Broker 之格式為 json,而 Broker 與后端具體功能間的之間的格式為的 protocolbuff
46、er,因此需要將 json 格式的數(shù)據(jù)轉(zhuǎn)化為專門的數(shù)據(jù)模型類,再用 brotcol buffer 序列化對象,用于與具體功能服務(wù)器之間的數(shù)據(jù)通信。16北京交通大學畢業(yè)設(shè)計()正文 反爬蟲此功能是一個簡單的安全措施,用于防止同一 IP 或者同一賬號在短時間內(nèi)大量請求服務(wù),造成系統(tǒng)緊張,服務(wù)不可用。 負載平衡在系統(tǒng)開發(fā)完成后,每一個具體功能服務(wù)器都會至少部署兩臺,起到備份的作用。在功能服務(wù)器都可用的時候,Broker 會將 RPC 請求均勻的到每個功能服務(wù)器上,減輕服務(wù)起的,當其中一臺功能服務(wù)器不可用時,Broker 會忽略這臺服務(wù)器,將請求發(fā)往可以正常工作的服務(wù)器上。
47、 請求日志請求日志是指將每一條請求當中的有效數(shù)據(jù)到日志文件當中。請求日志主要用于用戶提交的關(guān)鍵數(shù)據(jù),以便在系統(tǒng)出現(xiàn)錯誤之后可以從日志文件當中恢復數(shù)據(jù),同時也能夠在系統(tǒng)出現(xiàn)錯誤后用錯誤發(fā)生時的請求數(shù)據(jù)重現(xiàn)錯誤,協(xié)助開發(fā)追查問題。請求日志當中應當包含的數(shù)據(jù)有:當前時間、處理請求的方法、請求的名稱、請求包含的數(shù)據(jù)、處理時長、RPC 處理時長。例如:2016-05-03_00:00:14.311 DataSinkService action=Launch rpcRequest="uid": "8a9f91","net":&quo
48、t;WIFI","imei":"A100577BE" totalCostTime=7 rpcCostTime=6。 響應日志響應日志是指系統(tǒng)每一條包有效數(shù)據(jù)的 Response 做出的日志。Broker 在到日志文件當收到上游具體功能服務(wù)器做出的響應后會將響應數(shù)據(jù)中的有效數(shù)據(jù)中。響應日志主要用于在開發(fā)階段與客戶端進行聯(lián)調(diào)時追查系統(tǒng)中存在的問題,在系統(tǒng)正式上線后會關(guān)閉這種日志。響應日志當中應當包含的數(shù)據(jù)有:響應時間、響應的方法、響應當中包含的數(shù)據(jù)。開發(fā)當中使用 log4j2 的 Marker 特性來標記這種特定的日志,并在配置文件當
49、中使用 MarkerFilter 進行過濾處理。 處理統(tǒng)計處理統(tǒng)計日志用于系統(tǒng)在各個時間段上處理請求的數(shù)量,以及系統(tǒng)的各個功能在不同時間段上被請求的次數(shù)和平均處理時間長度。請求處理統(tǒng)計日志可以協(xié)助系統(tǒng)管17北京交通大學畢業(yè)設(shè)計()正文理員分析各個功能的重要性,當前的性能,以及用戶在不同時間段內(nèi)的活躍情況。處理統(tǒng)計日志當中應當包含的具體數(shù)據(jù)包括:時間段(MINUTE、HOUR、DAY)、請求名稱、請求數(shù)量、響應數(shù)量、異常數(shù)量、請求總耗時、RPC 請求耗時。例如: MINUTEGetUserBasicInfo=2 2 0 1 1, Launch=29 29 0 6 6, SaveMa
50、jorSubject=1 1 0 6 6,GetSubjectSummary=1 1 0 2 2。 異常日志發(fā)生異?;蛘咂渌承┛赡軐ο到y(tǒng)的正常運行造成影響的情況時,系統(tǒng)要能夠通過日志文件下當時所發(fā)生的事情,用來幫助系統(tǒng)維護重現(xiàn)錯誤,排查問題。具體來說異常日志當中應當包含發(fā)生異常時的時間,發(fā)生異常的方法,發(fā)生異常時所處理的數(shù)據(jù),系統(tǒng)所拋出的異常信息。在系統(tǒng)的實現(xiàn)過程中將使用 slf4j 和 log4j2 作為日志框架,異常日志的輸出級別為 error。4.3賬戶子系統(tǒng)功能設(shè)計4.3.1 功能結(jié)構(gòu)圖賬戶子系統(tǒng)是整個口袋自考系統(tǒng)的基礎(chǔ)支持模塊,它為用戶在其他子系統(tǒng)中的活動提供支持。賬戶子系統(tǒng)提供了各種用戶賬戶進行操作的功能。其詳細功能結(jié)構(gòu)如圖 4-3 賬戶功能結(jié)構(gòu)圖所示。圖 4-3賬戶功能結(jié)構(gòu)圖18北京交通大學畢業(yè)設(shè)計()正文4.3.2 功能模塊描述與登錄系統(tǒng)提供號和 token 兩種賬號的方式。號時用戶需要通過驗。密證碼驗證號,確保目標號碼未在系統(tǒng)中使用,此外用戶還需要提供昵稱、碼是包含字母和數(shù)字的長度大于 6 小于 12 的字需要使用 md5 進行加密。賬號登陸中。在用戶使用第三。Token在功能上并未體現(xiàn),它暗
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 土方調(diào)配協(xié)議書
- 借款保證合同模板2024年
- 跨境補償貿(mào)易合同實務(wù)指導
- 國際貿(mào)易運輸合同2024年
- 個體門面出租協(xié)議書
- 2024年新款服裝生產(chǎn)合作協(xié)議
- 口罩合同書2024年
- 無子女無財產(chǎn)離婚協(xié)議書的編寫技巧
- 2024年服裝供貨長期合同
- 家庭燈具采購協(xié)議案例
- DB21-T 2819-2017巖土工程勘察報告編制規(guī)范
- TQLCY 001-2023 學校食堂大宗食品原料采購食品安全管理規(guī)范
- 2024墻面原位加固修復技術(shù)規(guī)程
- 2024奧數(shù)競賽6年級培訓題-答案版
- 血站血液制備培訓課件
- 社會主義核心價值觀秀版
- 區(qū)塊鏈技術(shù)在教育行業(yè)的應用場景
- 《西溪濕地博物館》課件
- 2023-2024學年四川省成都市高一上英語期末考試題(含答案和音頻)
- 兒童合唱團管理制度
- 銀行業(yè)波特五力分析報告
評論
0/150
提交評論