軟件工程課程設計1_第1頁
軟件工程課程設計1_第2頁
軟件工程課程設計1_第3頁
軟件工程課程設計1_第4頁
軟件工程課程設計1_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

軟件工程課程設計1?一、課程設計目標本次軟件工程課程設計旨在讓學生綜合運用所學的軟件工程知識,完成一個小型軟件項目的開發。通過課程設計,培養學生的軟件開發能力、團隊協作能力以及文檔撰寫能力,使學生熟悉軟件開發的完整流程,包括需求分析、設計、編碼、測試和維護等階段,提高學生解決實際問題的能力,為今后從事軟件開發工作打下堅實的基礎。二、需求分析(一)項目背景隨著互聯網的發展,在線學習越來越受到人們的歡迎。為了滿足學生和教師的需求,開發一款在線學習平臺,方便學生隨時隨地學習課程,教師能夠輕松管理課程和學生信息。(二)用戶需求1.學生用戶能夠注冊和登錄系統。瀏覽課程列表,查看課程詳情,包括課程介紹、教師信息、課程大綱等。選擇感興趣的課程進行學習,觀看視頻教程,閱讀文檔資料。參與課程討論,發表評論和提問。完成課程作業,提交作業并查看成績。查看自己的學習記錄,包括已學課程、學習進度等。2.教師用戶能夠注冊和登錄系統。創建和管理課程,包括課程基本信息設置、添加章節和視頻教程、上傳文檔資料等。管理學生信息,包括查看學生列表、添加學生、刪除學生等。發布課程作業,設置作業要求和截止日期。批改學生作業,給出成績和評語。查看課程統計信息,如學生參與度、作業完成情況等。(三)功能需求1.用戶管理學生注冊:輸入用戶名、密碼、郵箱等信息進行注冊。學生登錄:使用用戶名和密碼登錄系統。教師注冊:輸入用戶名、密碼、郵箱等信息進行注冊。教師登錄:使用用戶名和密碼登錄系統。找回密碼:通過郵箱重置密碼。2.課程管理課程列表展示:顯示所有課程的基本信息,如課程名稱、教師姓名、課程簡介等。課程詳情查看:點擊課程名稱查看課程的詳細信息,包括課程介紹、教師信息、課程大綱、章節列表等。課程創建:教師創建新的課程,設置課程基本信息。課程編輯:教師對已創建的課程進行編輯,修改課程信息。課程刪除:教師刪除不再需要的課程。3.學習功能課程學習:學生進入課程學習頁面,觀看視頻教程,閱讀文檔資料。學習進度記錄:系統記錄學生的學習進度,包括已觀看的視頻、已閱讀的文檔等。課程討論:學生在課程討論區發表評論、提問,與其他學生和教師互動。4.作業管理作業發布:教師發布課程作業,設置作業要求、截止日期等。作業提交:學生在截止日期前提交作業。作業批改:教師批改學生作業,給出成績和評語。作業成績查看:學生查看自己的作業成績和教師評語。(四)非功能需求1.性能需求系統響應時間:在高并發情況下,系統的平均響應時間不超過3秒。系統吞吐量:支持至少1000個并發用戶同時在線使用系統。2.安全性需求用戶認證:采用用戶名和密碼進行身份認證,確保用戶信息安全。數據加密:對用戶的敏感信息,如密碼、郵箱等進行加密存儲。防止SQL注入:對用戶輸入進行過濾和驗證,防止SQL注入攻擊。3.兼容性需求支持主流瀏覽器,如Chrome、Firefox、Safari等。支持移動設備,如手機、平板等,保證系統在移動設備上的正常顯示和使用。三、總體設計(一)系統架構本系統采用B/S架構,包括表示層、業務邏輯層和數據訪問層。1.表示層:負責與用戶進行交互,展示系統界面。使用HTML、CSS、JavaScript等技術實現。2.業務邏輯層:處理系統的業務邏輯,如用戶注冊、登錄、課程管理、作業管理等。使用Java語言和Spring框架實現。3.數據訪問層:負責與數據庫進行交互,存儲和讀取數據。使用MyBatis框架實現。(二)模塊劃分1.用戶管理模塊:實現學生和教師的注冊、登錄、找回密碼等功能。2.課程管理模塊:實現課程的創建、編輯、刪除、列表展示和詳情查看等功能。3.學習模塊:實現課程學習、學習進度記錄和課程討論等功能。4.作業管理模塊:實現作業的發布、提交、批改和成績查看等功能。(三)數據庫設計1.用戶表(user)用戶ID(user_id):主鍵,自增用戶名(username):唯一密碼(password):加密存儲郵箱(email)用戶類型(user_type):0表示學生,1表示教師2.課程表(course)課程ID(course_id):主鍵,自增課程名稱(course_name)教師ID(teacher_id):外鍵,關聯用戶表課程簡介(course_introduction)3.章節表(chapter)章節ID(chapter_id):主鍵,自增課程ID(course_id):外鍵,關聯課程表章節名稱(chapter_name)4.視頻表(video)視頻ID(video_id):主鍵,自增章節ID(chapter_id):外鍵,關聯章節表視頻名稱(video_name)視頻路徑(video_path)5.文檔表(document)文檔ID(document_id):主鍵,自增課程ID(course_id):外鍵,關聯課程表文檔名稱(document_name)文檔路徑(document_path)6.作業表(assignment)作業ID(assignment_id):主鍵,自增課程ID(course_id):外鍵,關聯課程表作業名稱(assignment_name)作業要求(assignment_requirement)截止日期(due_date)7.作業提交表(submission)提交ID(submission_id):主鍵,自增學生ID(student_id):外鍵,關聯用戶表作業ID(assignment_id):外鍵,關聯作業表提交時間(submission_time)提交文件路徑(submission_file_path)8.作業成績表(grade)成績ID(grade_id):主鍵,自增學生ID(student_id):外鍵,關聯用戶表作業ID(assignment_id):外鍵,關聯作業表成績(score)評語ment)四、詳細設計(一)用戶管理模塊1.注冊功能學生和教師在注冊頁面輸入用戶名、密碼、郵箱等信息。系統對輸入信息進行合法性驗證,如用戶名是否符合格式要求,密碼強度是否足夠等。將用戶信息加密存儲到數據庫中。2.登錄功能用戶在登錄頁面輸入用戶名和密碼。系統查詢數據庫驗證用戶名和密碼是否正確。如果驗證成功,生成用戶令牌(token),并返回給前端。前端將token存儲在本地存儲或會話存儲中,用于后續的身份驗證。3.找回密碼功能用戶在找回密碼頁面輸入注冊時使用的郵箱。系統向該郵箱發送一封重置密碼的郵件,郵件中包含一個重置密碼的鏈接。用戶點擊鏈接進入重置密碼頁面,輸入新密碼并提交。系統更新數據庫中的用戶密碼。(二)課程管理模塊1.課程創建功能教師登錄系統后,進入課程管理頁面。點擊創建課程按鈕,進入課程創建頁面。教師輸入課程名稱、課程簡介等信息。系統將課程信息保存到數據庫中,并返回課程ID。2.課程編輯功能教師在課程管理頁面選擇要編輯的課程。點擊編輯按鈕,進入課程編輯頁面。教師修改課程信息,如課程名稱、課程簡介等。系統更新數據庫中的課程信息。3.課程刪除功能教師在課程管理頁面選擇要刪除的課程。點擊刪除按鈕,系統彈出確認刪除提示框。確認后,系統刪除數據庫中與該課程相關的所有記錄,包括章節、視頻、文檔、作業等。4.課程列表展示功能系統查詢數據庫中的所有課程信息。將課程信息按照一定的格式展示在課程列表頁面,包括課程名稱、教師姓名、課程簡介等。5.課程詳情查看功能用戶在課程列表頁面點擊課程名稱,進入課程詳情頁面。系統查詢數據庫中該課程的詳細信息,包括課程介紹、教師信息、課程大綱、章節列表、視頻列表、文檔列表等。將課程詳情信息展示在頁面上。(三)學習模塊1.課程學習功能學生登錄系統后,進入課程學習頁面。學生選擇要學習的課程。系統展示該課程的章節列表,學生點擊章節名稱進入章節詳情頁面。在章節詳情頁面,學生可以觀看視頻教程,閱讀文檔資料。系統記錄學生的學習進度,如已觀看的視頻、已閱讀的文檔等。2.學習進度記錄功能學生每次觀看視頻或閱讀文檔后,系統更新數據庫中該學生的學習進度記錄。學習進度記錄包括課程ID、學生ID、章節ID、視頻ID、文檔ID、觀看時間/閱讀時間等信息。3.課程討論功能學生在課程學習頁面點擊討論按鈕,進入課程討論區。學生可以發表評論、提問,其他學生和教師可以回復評論和問題。系統將討論內容存儲到數據庫中,包括評論ID、課程ID、學生ID/教師ID、評論內容、回復內容、評論時間等信息。(四)作業管理模塊1.作業發布功能教師在課程管理頁面選擇要發布作業的課程。點擊發布作業按鈕,進入作業發布頁面。教師輸入作業名稱、作業要求、截止日期等信息。系統將作業信息保存到數據庫中,并返回作業ID。2.作業提交功能學生在課程學習頁面找到要提交作業的課程。點擊作業提交按鈕,進入作業提交頁面。學生選擇要提交的作業文件,上傳到系統中。系統記錄作業提交信息,包括學生ID、作業ID、提交時間、提交文件路徑等。3.作業批改功能教師登錄系統后,進入作業管理頁面。教師選擇要批改的作業。點擊批改作業按鈕,進入作業批改頁面。教師查看學生提交的作業文件,給出成績和評語。系統更新數據庫中的作業成績信息。4.作業成績查看功能學生登錄系統后,進入作業管理頁面。學生選擇要查看成績的作業。點擊查看成績按鈕,系統顯示該作業的成績和教師評語。五、編碼實現(一)開發環境1.編程語言:Java2.開發框架:Spring+SpringBoot+MyBatis3.前端技術:HTML5+CSS3+JavaScript+Bootstrap4.數據庫:MySQL(二)部分代碼示例1.用戶注冊Controller```java@RestController@RequestMapping("/user")publicclassUserController{@AutowiredprivateUserServiceuserService;@PostMapping("/register")publicResultregister(@RequestBodyUseruser){returnuserService.register(user);}}```2.用戶登錄Service```java@ServicepublicclassUserService{@AutowiredprivateUserMapperuserMapper;publicResultlogin(Stringusername,Stringpassword){Useruser=userMapper.findByUsername(username);if(user==null){returnResult.error("用戶名不存在");}if(!BCrypt.checkpw(password,user.getPassword())){returnResult.error("密碼錯誤");}Stringtoken=JwtUtil.generateToken(user.getUserId());returnResult.success(token);}}```3.課程列表展示Mapper```xml<selectid="getCourseList"resultType="Course">SELECT*FROMcourse</select>```六、測試(一)測試計劃1.測試目標:驗證系統是否滿足需求規格說明書中的各項功能和性能要求。2.測試范圍:包括用戶管理、課程管理、學習、作業管理等模塊。3.測試方法:采用黑盒測試方法,包括功能測試、性能測試、安全性測試等。4.測試環境:與開發環境一致,包括服務器、數據庫、瀏覽器等。(二)測試用例1.用戶注冊測試用例輸入合法的用戶名、密碼、郵箱,點擊注冊按鈕,驗證注冊成功。輸入已存在的用戶名,點擊注冊按鈕,驗證提示用戶名已存在。輸入不合法的郵箱格式,點擊注冊按鈕,驗證提示郵箱格式錯誤。2.用戶登錄測試用例輸入正確的用戶名和密碼,點擊登錄按鈕,驗證登錄成功,返回token。輸入錯誤的用戶名,點擊登錄按鈕,驗證提示用戶名不存在。輸入正確的用戶名和錯誤的密碼,點擊登錄按鈕,驗證提示密碼錯誤。3.課程創建測試用例教師登錄系統,輸入合法的課程信息,點擊創建課程按鈕,驗證課程創建成功。不輸入課程名稱,點擊創建課程按鈕,驗證提示課程名稱不能為空。4.課程學習測試用例學生登錄系統,選擇課程進行學習,觀看視頻和閱讀文檔,驗證學習進度記錄更新。網絡異常情況下,觀看視頻,驗證視頻暫停并提示網絡異常。(三)測試結果通過對系統進行全面測試,發現了一些問題,如部分功能的頁面顯示異常、性能在高并發情況下響

溫馨提示

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

評論

0/150

提交評論