軟體工程實踐總結
一、請回望暑假時的第一次作業,你對於軟體工程課程的想象
1)對比開篇部落格你對課程目標和期待,“希望通過實踐鍛鍊,增強計算機專業的能力和就業競爭力”,對比目前的所學所練所得,在哪些方面達到了你的期待和目標,哪些方面還存在哪些不足,為什麼?
對比目前所學到的,我覺得短短的幾個月,我基本瞭解了一個Android軟體的開發流程。技術方面,對Java語言有了大致的瞭解,終於體會到了學有所用,不像之前學程式語言那麼抽象。但是關於Java執行緒,我覺得還是比較難掌握的。對於一些介面的編寫,還比較難以掌握,所以關於增強計算機專業能力,我覺得還是要不斷地練習。團隊協作方面,我覺得溝通真的非常重要,例如在介面對接方面。
2)總結這門課程的實踐總結和給你帶來的提升,包括以下內容:
1、統計一下,你在這門軟體工程實踐中,完成了多少行的程式碼;
團隊作業加上個人作業大概一千行左右
2、軟工實踐的各次作業分別花了多少時間?(做一個列表)
3、哪一次作業讓你印象最深刻?為什麼?
印象最深刻的一次作業應該是數獨作業,從需求分析、尋求思路、程式碼結構設計,程式碼編寫。經歷了軟體開發編碼的完整過程,而且因為演算法基礎不好,所以就一直在百度,百度了各種資料之後,按照自己的思路編寫程式,雖然做的不好,但是在過程中也學習了github的使用,感覺這是一個很便捷管理程式碼的平臺,對於程式碼的儲存,修改,完善很有幫助,在過程中也有使用visual studio來分析程式效能,雖然之前也有用visual studio來寫程式碼,但是因為電腦比較卡,所以感覺如果visual studio只用來寫程式碼
,執行起來比較費時,所以就棄用了。經過這一次實踐,使用了它的效能分析工具感覺還是有很多功能是很好用的。
4、累計花了多少個小時在軟工實踐上?平均每週花多少個小時?
平均每週花了28小時,團隊α階段大約兩週時間,β階段一週時間,加上前面的個人作業和結對作業一共160小時左右。
5、學習和使用的新軟體;
>在軟工實踐之前,根本沒有接觸過Android開發,經過這次軟工實踐,學習的程式設計軟體有eclipse和Android studio的使用,原型繪製軟體墨刀、GUI designer。流程圖繪製軟體Xmind、visual studio。
6、學習和使用的新工具;
github、Android studio
7、學習和掌握的新語言、新平臺;
>這次學習的主要是有關Android開發,所以學習的新語言主要是Java語言、開發平臺是Android studio。還有比較重要的就是部落格園。
8、學習和掌握的新方法;
在團隊軟體實踐過程中,之前覺得編碼就是軟體開發,沒有意識到需求分析、架構設計也很重要。這次軟工實踐掌握和學習的方法就是學會了先做明確的需求分析,進行合理的介面設計,考慮介面的可行性,包括介面對於使用者來說是否簡便易用,介面是否簡潔大方。(當然,以上大部份基於自己的能力包括已有的能力和即將學習的技術)。進行以上工作之後,模組化編寫程式碼,我們小組主要是以功能模組來編寫程式碼,這樣子,比較容易找錯,省去了很多麻煩。
9、其他方面的提升。
- 對軟體工程實踐的認識
其實之前沒有學習軟工的時候,覺得軟工是一門很高深的課程,不容易懂,儘管學了軟工之後還是這樣覺得,不過在學習之前還是要對軟工有一定的瞭解,比如所要開發的軟體應該選用什麼樣的語言比較合適,利用什麼平臺開發。。。一系列問題。
對編碼的認識
之前寫的程式都不會超過一百行,所以沒有特別注意自己的編碼規範,雖然早意識到編碼不能靠堆砌來實現,但是在借鑑別人的程式碼的時候,感覺聯絡很強,不懂如何更有效,快捷的借鑑別人的程式碼。
解決問題的方式
之前遇到問題,都會直接百度,然後用別人的解決方法去嘗試解決自己的問題,在自己的程式碼上刪刪改改,結果越解決問題越多,又忘了之前自己的程式碼是什麼,所以現在寫程式碼都會備份一下,然後,在編輯器上進行改動
二、寫下屬於自己的人月神話——個人或結對或團隊專案實踐中的經驗總結+例項/例證結合的分析
我覺得在做一件事情之前最重要的是要有動力,有動力才會自覺地去做,投入時間。對於軟工實踐,我是在舍友的帶動下才補選的,集體學習,集體努力的感覺很好,偶爾鬆懈的時候,舍友就會開始監督,然後就又繼續努力。沒選之前就聽學長學姐講這門課不太好修,而且我也感覺自己沒有那個能力,所以也沒選,後來感覺還是需要多嘗試一些新的東西,然後就選了。經過這次實踐以後對自己的定位更加清楚,以後要更多地鍛鍊程式碼,思維能力,以及解決問題的能力。
三、對下一屆實踐的建議,或者對於開學初的你,對於大一的你,對於開學初的我,你有什麼想建議和告知的呢?對於後來人的期許。 特別地,特別地,下一屆要不要中途換隊員?
17級的軟工實踐據說是必修的,我覺得很重要的一點就是要在一開始確立自己想要通過這門實踐課學到什麼,然後堅定不移地朝著這個方向去努力,以一種積極的心態去迎接挑戰,經歷了這幾個月的軟工實踐,聽到最多的一句話就是“走出舒適區”。我覺得這句話很有道理,一直囿於一個舒適的狀態,根本就很難進步。至於換隊員這件事,我覺得換隊員對於換的
人員來說既是一個機遇,也可以說是一次挑戰。機遇就是能夠換一個環境,學習更多的技術。挑戰是要在很短的時間內適應新環境、新夥伴,熟悉新專案。
四、分析一下自己所處的團隊。軟體工程實踐是大學裡少有的認真的團隊協作經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過麼,最後到達了“創造”階段了麼?(參考《構建執法》第17章 人、績效和職業道德)
- "萌芽階段":這個階段,隊友之間都不太熟悉,包括能力,解決問題能力方面,我相信只要是原來都不熟悉的人都會經歷這個階段。
- “磨合階段”:感覺都是每個組員提出意見,投票表決,所以也就沒有爭端出現
- "規範階段",這是在需求分析階段就明確定下了軟體實現的目標,比如功能,分工,介面
- “創造階段”,我覺得這一階段在我們小組β階段充分體現
五、怎樣證明你學會了軟體工程?
1)研發出符合使用者需求的軟體
目前我們小組的成員都在試用這個軟體,在α階段就已經推薦給同學使用,但是目前功能還需要進一步完善
2)通過一系列工具,流程,團隊合作,能夠在預計的時間內釋出 “足夠好” 的軟體
專案規劃在軟體開發剛開始就已經制定,小組成員根據分配到的任務,每天根據自己完成情況,釋出進度報告,上傳進度程式碼
3)並且通過資料展現軟體是可以維護和繼續發展的。
我們小組上傳進度程式碼到github 並附文件說明,以保證軟體是可維護的,例如讓β階段新的成員快速熟悉專案。
六、個性發揮,包括圖文、照片和創意等
這邊給大家推薦一個Android實用的畫圖工具AChartengine,百度上很容易搜到開原始碼。這個包可以實現餅圖,折線圖,柱狀圖的繪製。