軟件工程項目——個人總結


軟件工程大作業——個人總結

項目進程文檔

項目源代碼

一.項目概述

  整個項目,按照先寫項目的需求分析,再畫項目的UML圖,然后進行了原型設計,最后編寫整個項目的代碼。因為整個項目需要前后端進行交互,我們后端使用了springboot框架,數據庫使用mysql,部署在阿里雲服務器上,並使用jdbc進行交互,前端進行了Android的app開發。

二.個人總結

2.1工作概述

  我主要負責后端的代碼編寫。

2.1.1設計階段

  我們按照軟件工程的流程來進行整個項目。但由於是第一次進行這種流程,途中經過了許多的討論,並且也走了一些彎路。需求分析可以幫助我們了解了整個項目的開發目標以及需要做什么,讓我們在以后的編程中可以少犯錯。UML圖將整個系統架構和代碼架構表達了出來。原型設計大概演示了整個軟件。雖然我們對這些步驟的設計比較簡陋,但通過這些步驟,整個項目的制作上獲得了很多幫助。

​  在第一次例會中,我們進行了組員的分工,以及其他的事項的討論。

2.1.2編碼階段

​  由於我們對框架並不熟悉,所以需要從零開始學起。我主要負責后端編程,使用springboot框架。在整個項目的開發中,我們基本上按照前后端分離的方式進行開發,前端發送請求,后端通過http協議,使用json與前端進行交互,返回結果。這樣,可以方便工作的分工,以及代碼的修改。

​  我逐層進行編寫代碼。entity層存放實體類,dao層對數據庫進行持久化操作,只實現了對數據庫的增刪改查操作。service層為業務層,存放業務邏輯處理,提供controller層調用的方法。controller為控制器層,接收前端傳過來的參數進行操作,並返回相應的結果。

  在dao層的編寫中,考慮到查詢、更新等操作可能會需要通過主鍵之外的其他屬性來確定數據,所以在編寫中通過判斷對象的屬性是否為空來判斷sql語句中是否需要增加此屬性。對於多表操作,我們使用內連接創建視圖來獲得數據,方便了操作。在service層中,主要是軟件中的各種具體操作的實現。並且,在實現中,需要考慮此種操作是否會對其他信息產生影響,並進行相應處理。同時,還需要返回成功與失敗的信息。在controller層,接收前端用json格式傳過來的對象,並返回相應的結果。在comment中由於有時需要根據范圍來查詢,或者增加時需要用戶,歌曲的信息,導致需要多個參數,我們經過討論后在controller層使用map作為參數進行操作。

​  在編程的后期,后端的另外一人,張書瑞在檢查代碼時,由於我們兩人的代碼風格不同,而產生了許多的爭論。同時,由於書寫格式的不規范,一方 面給其他人的閱讀造成了麻煩,同時,在修改時也造成了一些問題。

2.2工作小結

​  我主要負責后端代碼的編寫工作。我覺得在代碼書寫規范上,我們前期的交流還不夠。如果可以在前期確定好書寫規范,並且在書寫途中可以做好注釋,提升代碼的可讀性,不光能使代碼更加整潔,在后期的修改,也可以更加高效。

2.3項目反思

​  在整個完成項目的過程,我們小組前期進度較慢,積極性不夠高,很多的工作都是后來急忙趕出來的。並且后期編程也開始得較晚,使得我們在進度上較為滯后。並且,在組員的配合,工作分配上也不夠好,造成了一些組員工作量大,一些組員比較空閑的情況。這點,在以后也需要改進。圖片操作的實現也是我們項目的一大難題。我們采用base64存儲在數據庫上進行操作,但因此,導致了我們的安利牆模塊的評論載入緩慢。我在后來在網上經過查詢,其實圖片更加適合存儲在本地或者放在服務器上通過路徑方式訪問。

2.4項目總結

​  通過這個項目,我收獲頗豐。此次項目的進行,是按照軟件工程的要求來進行的。而通過這次的項目,讓我們了解了軟件工程的內容,在一定程度上體會到了軟件工程的意義。並且,讓我們知道了編寫軟件不應該是閉門造車的,需要不斷地去借鑒別人的經驗。同時這次的團隊項目,也讓我們知道了在編程過程中,團隊需要如何進行合作。

三.課程建議

​  在上課每輪的檢查中,我覺得老師在檢查完每個小組的進度后,可以讓一組或者兩組做得較好的組進行展示。這樣,可以一方面我們知道自己與其他小組的差距,另一方面,也可以讓我們更好地理解每一步的意義。

​  軟件工程的一些概念較為抽象,我覺得老師也可以更多講一些實際在企業編程中的例子,讓我們更多了解企業中實際的編程,理解軟件工程的一些概念。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM