天天看點

個人作業收官——軟體工程實踐總結

目錄

  • 一、課程總結
  • 二、自己的人月神話
  • 三、下一屆實踐的建議
  • 四、團隊成長
  • 五、閱讀筆記—自己代碼的品質
  • 六、怎樣證明你學會了軟體工程?
  • 七、自我介紹
  • 八、緻謝

不知不覺這個學期進入了尾聲,軟工實踐也要結束了。(其實這句話我更想感歎整個大學,實在太快了,大三上就結束了)軟工實踐這門課應該是這學期實踐花的這多的一門課了吧,其他課程基本沒有怎麼熬夜的。但毫無疑問,收獲做多的也是它。個人的學習和團隊的協作貫穿整個過程。像棟哥說的那樣,以後最彌足珍貴的或許是那一張張沖刺時的站立式照片,特别對我這種比較懷舊的人來說。

1)回顧過往,對比今夕

翻了一下這門課程剛開始時描述的對軟體工程實踐項目課程的自我目标:

  • 提高自己的代碼能力;
  • 學會團隊合作能力,在團隊中學會互相協作和分工;
  • 了解和熟悉一個app開發的大緻流程和需要做的工作;
  • 希望能做出一個實用有效的app,對人們的需求有所幫助。

經曆過這一個學期,當初設立的目标基本多多少少有實作,收獲真的挺多的。在團隊中大家互相協作、監督和學習真的是一件挺幸福的事。

2)個人提升

1、學習和使用的新軟體

  1. MockingBot
這個軟體是在結隊作業設計原型時用到的,當時和隊友一開始選擇的是AxureRp,但沒有找到漢化版的感覺用起來挺費勁就換用MockingBot了,個人覺得後者還是很容易上手的。在後來團隊的原型設計中我們用的也是MockingBot,為我們後來的編碼提供了很清晰的方向。

2)Rational Rose

在實踐課的課堂上由學長示範使用這款軟體設計用例圖和類圖,當時在課堂并沒有及時完成作業,後來回宿舍自己下載下傳了一個畫用例圖,并且在之後也在UML的課程中有使用過。感覺使用起來挺友善、快捷的,在以後的學習和實踐中肯定還用得着。

1、學習和使用的新工具

  1. MarkDown
這是老師推薦的部落格随筆排版工具,使用這款工具排版後使得部落格更美觀,更具條理性和層次性。剛開始使用時很不熟悉,一些指令比較難記。後來,結對隊友推薦和一個線上Cmd Markdown 編輯閱讀器,使用起來友善了很多。
  1. Github
說實話,一開始我不是很了解為什麼要用Github去管理源代碼,又U盤、QQ互相傳不就好了。後來到了團隊開發才明白圖樣圖森破。如果不用Github去管理源代碼而是去手動合成的話那簡直就是災難,到最後源代碼的合成會走很多彎路,浪費時間。Github的學習和使用算是這門課程比較重要的一個收獲,在今後的學習和實踐中肯定用得上,自己還有必要更加深入地去學習它的使用。
  1. Junit
在開發過程中,我們都用Junit對自己所寫的部分代碼進行單元測試,這樣能為後來軟體的測試工作減輕很多負擔。

3、學習和使用的語言、新平台

  1. Java語言
在大一大二時學校的課程中隻有C和C++,自己當時也沒有主動去學習這門語言。是以當時需要開發時幾乎是以零基礎去邊學邊做,是以在敲代碼過程中遇到各種低級或進階的問題。雖然課程結束了,但深刻體會Java的重要性,在以後肯定要花時間好好學學。
  1. Android Studio
這是用于開發Android應用的平台,功能很強大,支援git的操作。但實在是想吐槽,在軟工實踐前我已經安裝了這個軟體(雖然基本沒用過),但後來小組要同意版本,我隻有解除安裝了重新安裝跟小組一緻的版本。然後,然後就炸到不行,安裝各種錯誤,那幾天幾乎安裝到我要崩潰。還有,運作時真是占記憶體,真是占記憶體。
  1. XML語言
在Bata版本沖刺時,被安排和隊友結隊對UI進行改進,便去找了一些教程學習輔助隊友完成UI界面的改進。

4、統計一下,你在這門軟體工程實踐中,完成了多少行的代碼

因為之前并沒有什麼開發經驗也沒有Java語言基礎,是以在開發過程中代碼感覺有點少。主要是XML,SQLite的學習和使用,加上和隊友寫了用戶端的一部分,大概2000行左右。

5、學習和掌握的新方法

我覺得學到的方法挺多的,比如在Android Studio上的調試和找Bug、和隊友如何更高效的結隊程式設計等。這些在以後的學習和實踐中都是非常有用的。

6、其他的提升

其他方面我記得最大的應該是如何與團隊進行協作的能力,其次是自學一些技能的能力。在這門課之前幾乎沒有過需要團隊協作一起進展的實踐課,是以這個過程學會了怎樣去協作讓團隊變得更好。 再者這門課精髓便是Learning By doing,是以在這個過程要求去自學很多新東西,這對自己的自學能力還是有很大提高的。

二、人月神話——項目實踐中的經驗總結+執行個體/例證結合的分析

經驗總結

  1. 今日事今日畢。當天的事情一定要在當天就做好,别想着沖刺時間還長着以後再來敢也不急。我想起以前高中老師說的一句話,你現在欠的東西以後肯定是要還的,逃是逃不掉的。是的,現在想想,如果一開始能做到今日事今日畢,後面沖刺的最後幾天就能少熬夜,壓力也沒那麼大了。

    2) 不會的大膽地去學。我相信選這門課程之前還是有些同學跟我一樣,在項目方面是個不折不扣的小白。是以大家開始時之前的都不多,不會的多去學多去問,别畏手畏腳。

執行個體分析

  1. 十天的沖刺,我前幾天幾乎每天的進展都是XXX内容還在學習中,還沒有開始編碼,學習的進度也非常緩慢,然後等到結對隊友已經開始實踐編碼内容才開始慌了,開始熬夜惡補趕上隊友的進度。

    2) 剛開始時隊長給我安排什麼任務,腦袋裡第一個念想就是,這東西我完全不會啊,做不出來怎麼辦,就有點想推卸任務換個簡單點,隊長這時就鼓勵去努力去學,并不難。

三、對下一屆的建議

  • 在大一、大二時學好C、C++、資料結構等基礎但非常重要的課程,等你以後要用的時候你就會感歎自己為什麼沒學好、沒學精;
  • 在大一、大二的大把空閑時間裡,學習好幾個有用的技能,例如Java、PHP等,你有時間不學以後遲早是要學的,真的;
  • 在大一、大二裡認真學習所有的實踐課程。我個人還是感覺大學裡學到的大多數東西還是在實踐課程裡,理論課上是基本,沒有實踐的話我相信你期末考的分再高,過不了多久也會忘了的。是以,别再混實踐課了,好好學;
  • 在大一、大二裡勇敢嘗試各種相關比賽,如服務外包等。這些比賽不但能豐富你的見識,也能督促你學習一些東西。
  • 選棟哥的軟工實踐課!!!

上述不僅是給各位學弟、學妹的一些建議,也是我自己比較後悔在大一、大二裡沒有做的。還是有點幸運,在棟哥課堂的洗腦下做了最後一個。

我的團隊是606NotConnected(聽這名字就知道是宇晨風了),來自6班的6個小夥伴組成。

萌芽階段
           
當初組隊時,也就是在班群裡喊喊就組到一起了,都是同班同學就不存在彼此之間的熟悉問題了。是以這樣開起會來大家想說什麼就來,不會有什麼拘束了。開始确立主題時大家一人說一個,然後采用投票淘汰制來決定。
磨合階段
           
說實話,我們團隊磨合階段并不太順利。因為有很多人沒項目經驗,學習的進度也比較緩慢,是以比較重的任務就壓到了OJ和建華那邊了。在原型設計、代碼規範、體系結構設計等方面溝通的也不夠好。這鍋真是我這種之前沒什麼基礎學習又慢的。
規範階段
           
在我們Alpha的沖刺下,完成了版本1.0後,組長認真的布置了關于Bata版的相關任務,有了之前的磨合團隊走上了正确的軌道。我和隊友之間的結對的效率也比之前要好的多,不懂的可以互相詢問互相學習。
創造階段
           
貌似我們還沒有到這個階段,有時沖刺階段的進展和計劃還有組長在群裡催。

利用翻譯看了《Open Source Software Development Should Strive for EVEN GREATER CODEMAINTAINABILITY》這篇文獻。關于代碼規範方面挺有感觸,代碼開源說實話之前都沒了解過,看了文章了解了一點就不瞎扯了。自己在大一學習C語言時開始編碼,但一直沒接觸過項目,大部分編碼都是在各大Online Judge網站上練習,是以最大的毛病就是變量的命名,各種i、j、k等,而且括号什麼的沒一點規範從不注釋。在軟工實踐中了解了代碼的規範有多麼重要,學習了用駝峰法去命名,多加注釋畢竟代碼不是給你自己一個人看的。在日後的編碼中,會特别注意這些東西。

六、怎麼證明你學過軟體工程?

1)研發出符合使用者需求的軟體

最近真是被考試壓的有點喘不過氣,沒時間進行推廣。等考試完後團隊會商量完善app的不足處。至于推廣,感覺現在做到難度有點大。

2)通過一系列工具,流程,團隊合作,能夠在預計的時間内釋出 “足夠好” 的軟體

這個在我們團隊部落格的随筆中都有展現 http://www.cnblogs.com/606notconnected/p/6044648.html

3)并且通過資料展現軟體是可以維護和繼續發展的。

這些在實踐中都有記錄在github中  https://github.com/606notconnected

>我叫賀翎(别讀成賀翔!别讀成賀翔!别讀成賀翔!),來自計算機六班。喜歡聽音樂和籃球,狂愛Kobe Bryant,但籃球技術确實不咋的。班上認識的同學大部分都是自己班級上的,别班的比較少。至于棟哥,我不知道對我本人他認不認識,但朋友圈的多次互贊,我相信他對我還是有印象的。

  • 感謝棟哥這一個學期的心血,這門課程的工作量真的很大!!!
  • 感謝助教每次作業的點評和指教,還有每次作業成績的統計,看着工作量就很大,辛苦了!!!
  • 感謝606NotConnected團隊的隊友。一起度過了大學最有意義的一門實踐課程,互相監督、互相學習,團隊沖刺中每天的照片會是我們最好的回憶!!!
  • 感謝結隊程式設計隊友牛姐,在第二次結隊程式設計中,我對Java沒什麼基礎,是以做到工作挺少的,而且在國慶時出了點問題,當時我在外面玩都是她一人處理的,辛苦了!!!