軟件工程第六次做業--結對做業

在線英語學習平臺客戶端原型前端

1.結對成員
nginx

劉博良 2015034643042算法

楊子龍 2015034643030數據庫

2.需求分析
編程

使用NABCD模型進行需求分析json

2.1 N(Need, 需求)

2.1.1背景描述和需求簡介

隨着經濟全球化和信息全球化的發展,英語能力愈來愈受到人們的關注。做爲國際通用語言的英語,更是在不少重要場合上普遍使用。由此英語的學習愈來愈被社會所重視,小學到高中自沒必要說,英語向來是做爲考覈的課程之一。而在大學的英語四六級考試一樣是要求在校大學生有較強的英語能力,並且英語也是考驗中的必考課程之一。Crazy在線英語學習平臺,顧名思義,是針對英語學習而生的學習平臺。而它的主要服務對象是大學生,裏面的詞彙既有四六級詞彙,也有考驗英語須要的詞彙,不管是爲了四六級考試,或者是備戰研考,使用Crazy在線英語學習平臺都是一個不錯的選擇。後端

本項目服務對象有兩種,客戶端用戶和後臺管理用戶。然後臺管理用戶可劃分兩種,超級管理員和普通管理員,超級管理員有操做後臺數據的一切權利,而普通管理員只有對靜態英語數據的儲存有所有操做權限,其餘的存儲模塊只有查看的權限。centos

至於客戶端用戶,是本項目的前端使用者用戶,要成爲客戶端用戶,首先須要進行用戶註冊,註冊後進行登陸才能使用學習平臺進行學習使用。如下把客戶端用戶簡稱爲用戶。用戶登陸後,能夠進入用戶的我的中心查看信息。在我的中內心面能夠查看或者修改用戶的基本信息,而後還能夠查看學習歷史,除此以外,用戶還能夠查看好友的信息,查看好友在線狀態,能夠給好友發送留言信息,同時在我的中內心還能夠查看留言板看是否有留言信息接收。服務器

除了我的中心外,主界面裏還有排行榜信息查看,能夠進入排行榜界面查看前10名用戶的排行。而後還有社區模塊,進入社區能夠瀏覽其餘用戶發的信息帖子,在社區模塊裏面能夠發帖,在帖子界面裏發送留言信息,回覆留言信息等。微信

而後就是主模塊,即學習模塊,學習模塊首先劃分學習層次,有英語四級學習,英語六級學習,考研英語學習三大學習層次, 選擇好學習層次後, 就能夠選擇分類學習, 組合學習和總體學習, 分類學習有單詞學習,短語學習, 句子翻譯學習(四六級漢譯英,研考英譯漢), 完型填空學習, 閱讀理解學習, 還有寫做練習;組合學習是從分類中用戶選擇要組合的類型進行套卷組合進行學習, 而總體學習是包括了全部分類題型的學習。分類學習能夠選擇題目數量,最少5道題以上,最多100道題,增長數目以5的倍數增長。

學習完成後,系統自動判題統計分數以及給出完成的時間, 根據分數和時間進行積分運算, 積分用於排名。

2.1.2具體功能和數據需求

2.1.2.1 登陸註冊管理

(1) 註冊

用戶填寫基本信息進行註冊,要填寫的信息有(帳號,密碼,確認密碼,郵箱,密保問題,密保問題能夠設置多個,最多三個)

(2) 登陸

用戶根據帳號或者郵箱號進行登陸

(3) 忘記密碼

根據密保問題重置密碼

2.1.2.2 英語資料數據管理

該模塊的使用用戶只針對管理員

(1) 查看數據

英語數據資料首先根據層次分類,不一樣的層次有對應的類型的不一樣的題目

(2) 上傳數據

選擇層次(英語四級,英語六級,研考級)和類型進行上傳

(3) 修改數據

可修改題目的層次,類型,描述,答案等

(4) 刪除數據

可批量刪除和單個刪除

2.1.2.3 我的中心模塊管理

(1) 用戶基本信息的操做

查看/修改用戶的基本信息(帳號名,用戶暱稱,性別,年齡,郵箱,密保問題,學歷,畢業學校)

查看用戶的榮譽信息(總積分,排名,單詞學習積分,短語學習積分,句子翻譯學習積分,完型填空學習積分,閱讀理解學習積分,寫做學習積分)

查看學習歷史,查看作過的學習套卷,可查看每道題的得分狀況,用的提示次數和用戶所作的答案和標準答案以及其餘用戶對題目的評論信息

(2) 好友模塊的操做

查看好友列表,好友信息(好友帳號,好友暱稱,好友在線狀態,好友總積分,好友排名)

能夠給好友發送留言信息

發送好友申請,選擇帳號/郵箱號發送好友申請

查看好友申請,能夠拒絕申請/接受申請

(3) 留言信息的操做

查看留言信息,回覆留言

2.1.2.4 英語學習模塊管理

(1) 選擇學習層次

選擇有:英語四級水平,英語六級水平和研考水平

(2) 選擇學習方式

選擇分類學習/組合學習/總體學習, 其中分類學習能夠選擇單詞學習,短語學習,句子翻譯學習,完型填空學習,閱讀理解學習和寫做學習等。組合學習能夠任意選擇一個或多個分類學習中的類型進行套卷組合來作題。總體學習結合全部分類來總體出卷。組合學習和總體學習還能夠選擇不一樣的類型的題目的出題數量來進行學習

(3) 具體學習

具體學習中,每道題有兩次提示,用一次提示題目得分/2, 提交試卷後,系統自動給出總分和用戶所用提示次數。

2.1.2.5 社區模塊管理

(1) 發帖

用戶能夠建立帖子來進行發佈,帖子發佈包括(題目,主體內容)

(2) 回帖

可在具體帖子裏留言,也可在其餘用戶留言裏回覆

2.1.2.6排行榜管理

(1) 查看排行榜

查看總積分排行前10的用戶的信息(用戶名,總積分,排名,單詞學習積分,短語學習積分,句子翻譯學習積分,完型填空學習積分,閱讀理解學習積分,寫做學習積分) 對他們的互動有好友添加和留言

2.2 A(Approach,作法)

2.2.1 項目架構

整個項目咱們大概分爲六大模塊層,第一模塊是數據操做層,主要是存放數據,數據底層操做;第二模塊是業務邏輯模塊,主要是提供網站的業務邏輯處理,跟網絡通訊層和數據操做層緊密結合;第三模塊是服務器通訊層,主要是提供網絡通訊,穩定進行網絡服務,這一層咱們考慮採用nginx做爲服務器進行網絡通訊服務;第四模塊是前端模塊,主要是進行客戶頁面的友好顯示和提供前端服務邏輯,這一模塊咱們分爲兩個版本,一個PC頁面響應式版,一個是手機端頁面版。第五大模塊是爬蟲和數據處理模塊,主要是進行分佈式爬蟲爬取網站所須要的數據,爬取的數據將暫放到Mongodb中,同時還要負責對爬取的數據進行數據清洗和數據篩選。第六大模塊是數據分析模塊,這一模塊使用機器學習算法對用戶數據進行分析,自動對用戶的英語學習做出智能的學習報告,以及進行題目的智能推薦,讓用戶更好地更有效率地進行鍼對性學習。

對於部署服務器,咱們採用騰訊雲服務器centos 7.12進行項目部署,而後數據庫採用MySQL和MongoDB, 其中MySQL存放項目中穩定的數據,MongoDB存放爬蟲數據。

後臺服務端語言使用Python3,Web框架使用的是Django框架, 管理界面將採用比較完善的xadmin後臺管理界面。

前端技術採用HTML, CSS, JavaScript, Jquery, Bootstrap, Vue, Swiper等語言和框架進行開發。咱們整個項目之前後端分離以基準,因此會用到大量的異步Ajax進行json數據包的通訊

2.3 B(Benefit,好處)

用戶能夠自定義學習計劃,能夠按照你的學習規律和學習習慣定義你的學習計劃進行英語學習。

系統智能分析你的學習狀況,智能推薦題目提供學習。

同時還能夠與好友一塊兒學習,一塊兒相互監督,一塊兒成長

隨時獲取你的學習記錄,查看你的學習狀況和知識掌握狀況,從而能夠改進你的學習計劃更好地進行學習

2.4 C(Competitors,競爭)

對比其餘競爭產品,如百詞斬,扇貝等。

咱們給用戶更多的自由學習合適的學習計劃進行學習,肯定好學習計劃後。同時系統會智能根據你的學習狀況進行題目推送

題型較多,除了詞彙題,選擇題外,還會有各類翻譯題甚至是寫做題提供練習,而判題由系統進行智能判斷

題庫龐大,題目質量高,咱們採用全網分佈式爬蟲進行數據爬取,利用大數據進行數據清洗和數據篩選,而後系統智能對數據進行整合處理,變成各類不一樣類型,不一樣難度的高質量題目。

與好友更好地互動學習,可以邀請好友PK學習,提供學習的樂趣

有社區模塊進行英語學習交流,資料分享等

2.5 D(Delivery,推廣)

線上推廣:咱們會編寫QQ機器人和微信機器人,進行併發廣告推送,同時還會創建微信公衆號進行公衆號推廣

線下推廣:推廣給身邊的朋友,師弟師妹,師兄師姐等,有必要能夠進行傳單推廣,同時聯繫學校的一些協會和組織與咱們進行合做推廣

前端用例圖

4.PSP

PSP Personal Software Process Stages 預估耗時 實際耗時
Planning 計劃 20 10
· Estimate · 估計這個任務須要多少時間 20 10
Development 開發 400 320
· Analysis · 需求分析 (包括學習新技術) 220 150
· Design Spec · 生成設計文檔 60 60
· Design Review · 設計複審 (和同事審覈設計文檔) 20 20
· Coding Standard · 代碼規範 (爲目前的開發制定合適的規範) 30 30
· Design · 具體設計 180 130
· Coding · 具體編碼 --- ---
· Code Review · 代碼複審 --- ---
· Test · 測試(自我測試,修改代碼,提交修改) 60 30
Reporting 報告 115 130
· Test Report · 測試報告 90 120
· Size Measurement · 計算工做量 5 5
· Postmortem & Process Improvement Plan · 過後總結, 並提出過程改進計劃 20 5
合計   610 520

5.原型設計

工具:PhotoShop
前端界面比較多,因此在這裏只放部分界面顯示

 

 

 

 

 

 

 

 

6.結對過程

首先是閱讀<<構建之法>>到第八章,充分了解到了軟件開發的開發模式,開發流程和團隊合做的流程,以及需求分析和NABCD模型

而後咱們對項目進行深刻地探討進行需求分析,甚至已經進行了邏輯模式的設計

接着咱們分析項目須要的技術點,根據團隊的技術能力狀況,綜合整個項目來進行架構分析

而後是利用NABCD模型進行分析,PSP分析和原型設計

咱們的結對照

7.心得感想

劉博良:之前作項目大多數是我的開發,一我的作需求,作設計,架構,開發,測試,部署等。固然也有過團隊開發和組隊編程的經驗,但卻沒試過結對合做。此次結對合做,算是感受良好,兩我的相互配合,1+1 > 2 的效果仍是很明顯的。在作需求分析的時候,遇到挺多難題,你們各有想法,不過最終咱們慢慢磨合好,把想法合爲一致,進度也愈來愈快,效率愈來愈高。這個項目是我提出的一個項目,算是個人一個想法,因此我對這個項目是比較有感受的,因此整個流程算是我做爲一個主導的做用,不過子龍也算是給我了不少建議,有個好隊友仍是很不錯的,咱們結對時候互相配合,作架構的時候也是一塊兒探討,原型設計的時候相互彌補,總體進行的算是比較順利。

楊子龍: 一直都是本身一我的作項目,藉此機會抱緊博良的大腿進行結對合做,感受知識獲得了昇華,學到了許多專業的知識,克服了不少之前沒遇到的困難,增進了我倆的友誼。從需求分析到項目架構,再到原型設計,咱們兩個如同親兄弟通常一塊兒思考,一塊兒分析研究,從中不斷地有新的靈感迸發,這種感受是極其愉快的,彷彿獲得生命的大和諧。總之從中能學到更多如何與人合做,如何進行團隊協做,爲我未來進入企業工做奠基了基礎,這是難能難得的。

相關文章
相關標籤/搜索