項目 | 內容 |
---|---|
課程班級博客連接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
本次做業要求連接 | http://www.javashuo.com/article/p-meyvhbuv-mp.html |
個人課程學習目標 | 根據目前所學知識進行軟件開發 |
這個做業在哪些方面幫助我實現學習目標 | 學會軟件開發的流程 |
項目Github的倉庫連接地址 | https://github.com/Eason1011/SSM |
(1)掌握軟件項目我的開發流程。html
(2)掌握Github發佈軟件項目的操做方法。前端
(1)第一天使用由於人數過多,系統出現了一些問題,在修改以後能夠很好地使用。java
(2)界面比較簡潔,剛開始沒有記憶功能,天天都要從新輸入信息,後面進行了修改。git
(3)功能比較單一,沒有提醒功能,很容易遺忘。github
我選擇第二類開發要求數據庫
系統外觀設計比較簡約,操做很簡便。後端
系統支持用戶在線使用app
每日只可填報一次,提交後沒法修改,每日十點疫情信息填報截止框架
各學院指定負責人登陸系統,可查看本學院學生填報的彙總數據,可點擊查看學生聯繫方式、班主任聯繫方式,學院負責人覈實本院全部學生數據後,將數據提交給學校防控辦前後端分離
學校防控辦指定負責人登陸《西北師範大學疫情防控信息統計》子系統,可瀏覽全部學生填報彙總數據清單,經過【導出】可獲取疫情數據的EXCEL文件
基本功能:
擴展功能:
數據庫設計了四張表,分別爲管理員表,學院表,學生疫情表和字典表。
學生類實現了疫情信息採集,上報到後臺,保存當前上報時間等功能
管理員類實現了登陸,學生疫情查看,根據不一樣信息進行查詢,修改和刪除以及信息導出到Excel等功能。
代碼運行截圖:
基本功能截圖:
前端登陸及學生上報界面
學生上報界面截圖
提交成功截圖
後臺界面截圖
導出功能截圖
數據導出到Excel
GitHub使用截圖
擴展功能截圖
後臺查詢功能
後臺修改和刪除功能
分頁功能
粘貼了關於分頁的一部分代碼:
@Override public int doStartTag() throws JspException { JspWriter writer = pageContext.getOut(); HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); Page page = (Page) request.getAttribute(bean); if (page == null) return SKIP_BODY; url = resolveUrl(url, pageContext); try { // 計算總頁數 int pageCount = page.getTotal() / page.getSize(); if (page.getTotal() % page.getSize() > 0) { pageCount++; } writer.print("<nav><ul class=\"pagination\">"); // 顯示「上一頁」按鈕 if (page.getPage() > 1) { String preUrl = append(url, "page", page.getPage() - 1); preUrl = append(preUrl, "rows", page.getSize()); writer.print("<li><a href=\"" + preUrl + "\">上一頁</a></li>"); } else { writer.print("<li class=\"disabled\"><a href=\"#\">上一頁</a></li>"); } // 顯示當前頁碼的前2頁碼和後兩頁碼 // 若1 則 1 2 3 4 5, 若2 則 1 2 3 4 5, 若3 則1 2 3 4 5, // 若4 則 2 3 4 5 6 ,若10 則 8 9 10 11 12 int indexPage = (page.getPage() - 2 > 0) ? page.getPage() - 2 : 1; for (int i = 1; i <= number && indexPage <= pageCount; indexPage++, i++) { if (indexPage == page.getPage()) { writer.print("<li class=\"active\"><a href=\"#\">" + indexPage + "<span class=\"sr-only\">(current)</span></a></li>"); continue; } String pageUrl = append(url, "page", indexPage); pageUrl = append(pageUrl, "rows", page.getSize()); writer.print("<li><a href=\"" + pageUrl + "\">" + indexPage + "</a></li>"); } // 顯示「下一頁」按鈕 if (page.getPage() < pageCount) { String nextUrl = append(url, "page", page.getPage() + 1); nextUrl = append(nextUrl, "rows", page.getSize()); writer.print("<li><a href=\"" + nextUrl + "\">下一頁</a></li>"); } else { writer.print("<li class=\"disabled\"><a href=\"#\">下一頁</a></li>"); } writer.print("</nav>"); } catch (IOException e) { e.printStackTrace(); } return SKIP_BODY; }
因爲水平有限,只能按照SSM框架的模式進行「模塊化」原則,儘可能作到各個層級之間互不干擾。因爲是我的完成項目,模塊化沒有很好地體現,後續在小組項目中會更加註意。
PSP | 任務內容 | 計劃共完成須要的時間(min) | 實際完成須要的時間(min) |
---|---|---|---|
Planning | 計劃 | 40 | 30 |
·Estimate | 估計這個任務須要多少時間,並規劃大體工做步驟 | 40 | 30 |
Development | 開發 | 1000 | 1100 |
·Analysis | 需求分析 (包括學習新技術) | 300 | 250 |
·Design Spec | 生成設計文檔 | 20 | 20 |
·Design Review | 設計複審 (和同事審覈設計文檔) | 0 | 0 |
·Coding Standard | 代碼規範 (爲目前的開發制定合適的規範) | 15 | 15 |
·Design | 具體設計 | 150 | 120 |
·Coding | 具體編碼 | 335 | 445 |
·Code Review | 代碼複審 | 120 | 100 |
·Test | 測試(自我測試,修改代碼,提交修改) | 60 | 150 |
Reporting | 報告 | 60 | 90 |
·Test Report | 測試報告 | 30 | 50 |
·Size Measurement | 計算工做量 | 20 | 10 |
· Postmortem & Process Improvement Plan | 過後總結,並提出過程改進計劃 | 10 | 30 |
計劃階段對所需的軟件及環境進行了整合,以及前端界面的設計。
開發階段因爲我的水平有限,在編碼過程花費了很長時間,修改小bug比較費時。
代碼測試階段因爲一些邏輯上的問題,查找後臺邏輯花費了一些時間。
小記
經過此次系統開發,我對軟件開發的流程有了必定的瞭解,再也不是之前那種直接開始寫代碼的過程。瞭解以後對軟件的開發效率有很好的提升做用。
SSM框架做爲最基本的java後臺開發,有必定的優勢和缺點,相比於SpringBoot框架有些過程倒是比較複雜。之後要抓緊學習SpringBoot這個框架,運用到之後的開發中。
JavaScript對處理前端界面的一些問題確實很是強大。