軟體工程實踐總結
目錄
- 請回望暑假時的第一次作業,你對於軟體工程課程的想象
- 寫下屬於自己的人月神話——個人或結對或團隊專案實踐中的經驗總結+例項/例證結合的分析
- 對下一屆實踐的建議,或者對於開學初的你,對於大一的你,對於開學初的我,對於同期的TA們,對於後來的學弟學妹:
- 分析一下自己所處的團隊。軟體工程實踐是大學裡少有的認真的團隊協作經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過麼,最後到達了“創造”階段了麼?(參考《構建執法》第17章 人、績效和職業道德)
- 怎樣證明你學會了軟體工程?
- 閱讀軟體工程中關於程式碼質量的的經典論文,從下列文獻中選擇一篇或若干篇,結合自己的實際做一個閱讀筆記(例如,自己寫的程式碼質量如何,是不是一個大泥球,如何衡量自己程式碼的質量)?從以下參考論文中選擇一篇或若干篇:
- 個性發揮,包括圖文、照片和創意等
請回望暑假時的第一次作業,你對於軟體工程課程的想象
對比開篇部落格你對課程目標和期待,“希望通過實踐鍛鍊,增強計算機專業的能力和就業競爭力”,對比目前的所學所練所得,在哪些方面達到了你的期待和目標,哪些方面還存在哪些不足,為什麼?
開篇部落格的課程目標和期待(包含當時內心想法但是沒寫出來的):
開篇部落格連結
- 痛並快樂著。
- 能夠在結束後懂得如何做好一個完整的產品;
- 學到儘量多的開發知識。
- 可以提高團隊協作、交流能力。
- 增強自己的文件撰寫能力。
已達到期待和目標
- 痛並快樂著 = 過程真的是很痛苦,但是團隊作業時整體經常性被掛觀光車還是十分快樂的。
- 懂得如何做好一個完整的產品 = 團隊作業完成了我們的產品記憶罐頭,目前可以提供使用者正常的使用,作為pm我也更好的懂得了要如何做好一個完整的產品。
- 學到更多開發知識 = 在完成團隊產品過程中由於種種原因我也參與了開發,完成的是記憶罐頭主頁的備忘錄條目展示和備忘錄刪除介面的前端部分,用無數個熬夜甚至是通宵學習了很多的開發知識。
- 增強團隊協作、交流能力 = 身為pm在這次軟工實踐中這方面的能力的提高與否,我相信在多次的作業和團隊總分中便已經很好的體現。
未達到期待和目標
- 增強自己的文件撰寫能力 = 因為團隊中的分工比較明確,美工和文件都有專業人士負責,所以原本打算藉助這次機會提高一下自己的文件撰寫能力,貌似沒有什麼見長。
意想不到的收穫
- 最意想不到的收穫便是做了pm並且收穫了這麼一大波的優秀的隊友們!!!擁有一個這麼優秀的團隊。
- 再者便是一直是作為本組的PPT製作者和演講者,很好的鍛鍊了自己的答辯能力,演講能力提高了不少。
總結這門課程的實踐總結和給你帶來的提升。
統計一下,你在這門軟體工程實踐中,完成了多少行的程式碼;
根據自己不完全正確的統計,參照自己的學習進度條,大概完成了3113行程式碼。(當然肯定存在一些偏差,但是應該是會比這個更多不會更少吧)
軟工實踐的各次作業分別花了多少時間?(做一個列表)
作業 | 花費時間(分鐘) | 部落格連結 |
---|---|---|
自我介紹 | 10 | https://www.cnblogs.com/heihuifei/p/9517171.html |
第一次作業-開篇展望(包括完成評論部分) | 720(估計) | 1. https://www.cnblogs.com/heihuifei/p/9519176.html ;2. https://www.cnblogs.com/heihuifei/p/9531865.html ;3. https://www.cnblogs.com/heihuifei/p/9538836.html ;4. https://www.cnblogs.com/heihuifei/p/9568739.html ;5. https://www.cnblogs.com/heihuifei/p/9581669.html ; |
個人專案 | 1550 | https://www.cnblogs.com/heihuifei/p/9625253.html |
結對專案1 | 1560 | 1. https://www.cnblogs.com/heihuifei/p/9656750.html ;2. https://www.cnblogs.com/heihuifei/p/9684045.html |
團隊風采展 | 240 | 1. https://www.cnblogs.com/heihuifei/p/9692552.html ;2. https://www.cnblogs.com/heihuifei/p/9702568.html |
結對作業2 | 1890 | https://www.cnblogs.com/heihuifei/p/9766462.html |
團隊選題報告 | 1200(估計) | https://www.cnblogs.com/heihuifei/p/9788520.html |
團隊課堂UML設計 | 845 | https://www.cnblogs.com/heihuifei/p/9823207.html |
團隊需求分析報告 | 1355 | https://www.cnblogs.com/heihuifei/p/9906023.html |
Alpha版本衝刺 | 6 * 24 * 60(估計)=8640 | 1. https://www.cnblogs.com/heihuifei/p/9944092.html ;2. https://www.cnblogs.com/heihuifei/p/9955506.html ;3. https://www.cnblogs.com/heihuifei/p/9969756.html ;4. https://www.cnblogs.com/heihuifei/p/9979747.html ;5. https://www.cnblogs.com/heihuifei/p/9990677.html ;6. https://www.cnblogs.com/heihuifei/p/10004073.html ;7. https://www.cnblogs.com/heihuifei/p/10013664.html ;8. https://www.cnblogs.com/heihuifei/p/10023246.html ;9. https://www.cnblogs.com/heihuifei/p/10033941.html ;10. https://www.cnblogs.com/heihuifei/p/10046247.html ;11. https://www.cnblogs.com/heihuifei/p/10055777.html |
團隊現場程式設計 | 1410 | https://www.cnblogs.com/heihuifei/p/9979333.html ; |
團隊專案測評(福大助手) | 180 | https://www.cnblogs.com/heihuifei/p/10075957.html |
Beta版本衝刺 | 1440(估計) | 1. https://www.cnblogs.com/heihuifei/p/10091953.html ;2. https://www.cnblogs.com/heihuifei/p/10104425.html ;3. https://www.cnblogs.com/heihuifei/p/10115655.html ;4. https://www.cnblogs.com/heihuifei/p/10124332.html ;5. https://www.cnblogs.com/heihuifei/p/10133847.html ;6. https://www.cnblogs.com/heihuifei/p/10145324.html ;7. https://www.cnblogs.com/heihuifei/p/10158536.html ;8. https://www.cnblogs.com/heihuifei/p/10165247.html ;9. https://www.cnblogs.com/heihuifei/p/10165906.html ;10. https://www.cnblogs.com/heihuifei/p/10193580.html |
最終版本展示 | 360 | https://www.cnblogs.com/heihuifei/p/10206705.html |
哪一次作業讓你印象最深刻?為什麼?
要說最讓我印象深刻的其實是團隊現場程式設計的那次,因為那次是我軟工實踐裡的第一次通宵:),由於種種原因我們沒有及時完成現場程式設計的作業,於是我和卉卉小朋友兩個人在快12點重頭開始碼,也正是因為經歷了這一次的通宵讓我認識到通宵貌似並不難,於是埋下了後面通宵許多次我還不以為意的隱患:),通宵都通過了,熬夜就更不在話下了,於是整個人就比較身心俱疲。但是!!!最重要的是,我們那次的通宵並不是沒有意義哈哈哈哈哈哈吼吼吼吼吼吼吼吼,我們圓滿的拿下了第一名!!!然後在這裡還要好好的感謝一下陪我的卉卉朋友(要是能@就好了)!!!
累計花了多少個小時在軟工實踐上?平均每週花多少個小時?同時貼出開篇部落格“你打算平均每週拿出多少個小時用在這門課上”的回答
累計花了...22400分鐘=373.333小時=15天(要我怎麼說:))
貼出開篇部落格回答(當時回答比較佛不明確但內心打算了的):工作日每天2-3小時,一週10-15個小時吧,四個月不停歇240個小時也沒我花的多啊!!!:)
在此由衷的感謝老師和助教,是你們,教會了我什麼叫做真香。
學習和使用的新軟體;
- 現場程式設計重新學習了Eclipce For Java EE的使用
- 開發使用了Android Studio工具
- UML設計使用了StarUML工具和ProcessOn
- 結對作業使用了Python
- 當然還有我們的產品:記憶罐頭!
學習和使用的新工具;
- 現場程式設計重新學習了Eclipce For Java EE的使用
- 開發使用了Android Studio工具
- UML設計使用了StarUML工具和ProcessOn
- 結對作業使用了Python
- 個人專案中Visual Studio中的效能分析、程式碼覆蓋率也學習使用了部分新工具的功能
學習和掌握的新語言、新平臺;
- 更加熟悉的使用java語言開發
- 對Python的基礎使用有一定的掌握
- 在web平臺上完成我們的現場程式設計專案,對web端有更深的認識
- Android平臺開發有一個新的認識
學習和掌握的新方法;
- 在個人專案中知道了單元測試的意義和方法
- 在個人專案中學習了程式碼覆蓋率的概念
- 在個人專案中對程式碼進行效能分析對開發中優化程式碼有一個比較新的認識
- 結對專案中學習了一定的Python爬蟲知識
- 現場程式設計中知道了web前端使用模板的魅力
- 在團隊開發中學習了Android開發知識
- 在團隊開發中掌握了Android中如何debug
- 在團隊開發中掌握瞭如何更好的答辯演講
其他方面的提升。
- 首先在個人的答辯、演講、展示方面的能力在軟工實踐中算是得到了一個很好的鍛鍊,十分感謝這樣難得的機會
- 在團隊中充當pm角色,收穫了很多管理一個團隊的管理能力和推進一個專案的領導能力
- 自己可以更好的處理眾多事情繁冗複雜的場景環境了,畢竟經過軟工實踐的打磨...
- 旁觀團隊的美工人員和文件撰寫人員,多多少少這兩方面還是有一些瞭解和長進的
寫下屬於自己的人月神話——個人或結對或團隊專案實踐中的經驗總結+例項/例證結合的分析
最深刻的便是團隊專案實踐吧,作為pm很慶幸擁有了一個最棒的團隊、最棒的隊友。
經驗總結: 在任務安排的時候一定要遵循三個原則:具體、規範、deadline
三個原則含義:
- 任務具體到個人
- 任務完成的目標要給提前規範明確好
- 任務完成的截止時間要定好並且嚴格遵守
例項:
一次慘敗的教訓是現場程式設計吧,其他的我都貌似遵守的比較好。那一次作業前一天晚上已經有準備,通知好大家是開發JavaWeb專案,使用Eclipce For JavaEE並且要安裝好需要的其他工具配置好環境。並且要提前學習一下基礎使用,但是由於沒有嚴格審查,我也沒有明確告訴隊友sevlet的坑儘量避開等等。導致出現了後面全隊所有環境都配置好了的只有兩臺電腦,隊友敲了一下午卻因為陷入了sevlet的坑點沒有很大的進展,最終沒能按時完成作業,我和卉卉通宵做完...
分析:
分析自然就是要是我定好了每個人做哪部分、必須配置好環境、提前學習基礎開發、提醒他們避開sevlet坑點......那麼,我們就可以完成的更快,效率更高,也不用通宵
更多的經驗吐槽可以參見我之前的部落格:https://www.cnblogs.com/heihuifei/p/10193580.html
對下一屆實踐的建議,或者對於開學初的你,對於大一的你,對於開學初的我,對於同期的TA們,對於後來的學弟學妹:
你有什麼想建議、告知和期許想要告訴他們呢?
建議:
- 第一個就是一定要選這麼課啊!!!會讓你跨入程式設計師的門...
- 第二個是一定不要在團隊中划水,認真完成自己部分的任務,這樣團隊才能持續發展並且保證自己學有所獲
- 第三個是好好保護自己的頭髮:)
- 最後便是期待看到你們真香的開篇部落格
特別地,特別地,下一屆要不要中途換隊員(強制的、徹底的從一隊換到另一隊)?假設依舊是一個90+人數的大班
我覺得沒有必要的,因為在中途其實我們有嘗試過交換pm的一次現場uml設計,個人感覺這樣根本不能達到模擬職場中跳槽等等這種效果,並且有些團隊確實開發很不一樣啊,重新換過去8,90%是將會擔任划水的角色,無論從重新學習時間的角度或者是融入新的團隊配合方面,個人感覺交換的話打不到效果,還不如不交換。
身在一個格外大的班級,競爭強勁,你認為一個組的人數應當在多少比較合適?
個人感覺一個組在9-10個人左右是比較合適的,pm+美工+文件+三個前端+三個後端+一個機動分配
個人/結對/團隊作業應該控制在怎樣的規模?
個人和結對作業按照之前的規模算比較正常,但是團隊作業中要是可以不要再夾雜一些其他的比較好,這樣顯得比較繁雜,對學生的精力活力會消磨的比較嚴重,專注於團隊專案的開發就挺好了。其他的還要佔用過多時間感覺有點不妥,比如現場程式設計那次。(個人看法)
這學期下來,你最感謝的人是誰?有什麼話想要對TA說呢?
最感謝的是青元同學,其實所有隊友都很想感謝hhh,但是理性思考還是青元同學最想感謝,身為前端小組長十分盡職,並且幾乎也全身心的投入到專案中,在我焦頭爛額的時候幫我分擔了很多。
對青元同學說的話:
你雨露均沾的能力真厲害呀,天天能看到你和不同的女孩子自習耶(偷笑)
今天寫不完了!!!改天待續嘻嘻
分析一下自己所處的團隊。軟體工程實踐是大學裡少有的認真的團隊協作經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過麼,最後到達了“創造”階段了麼?(參考《構建執法》第17章 人、績效和職業道德)
怎樣證明你學會了軟體工程?
研發出符合使用者需求的軟體
通過一系列工具,流程,團隊合作,能夠在預計的時間內釋出 “足夠好” 的軟體
並且通過資料展現軟體是可以維護和繼續發展的。
對著這個檢查表:http://xinz.cnblogs.com/p/3852177.html 檢查一下,自己如果去企業面試,這些常見的問題是否都能回答,並在此總結。
閱讀軟體工程中關於程式碼質量的的經典論文,從下列文獻中選擇一篇或若干篇,結合自己的實際做一個閱讀筆記(例如,自己寫的程式碼質量如何,是不是一個大泥球,如何衡量自己程式碼的質量)?從以下參考論文中選擇一篇或若干篇:
參考論文文獻:
[1] Stamelos I, Angelis L, Oikonomou A, et al. Code quality analysis in open source software development[J]. Information Systems Journal, 2002, 12(1): 43-60.
[2] Boehm B W, Brown J R, Lipow M. Quantitative evaluation of software quality[C]//Proceedings of the 2nd international conference on Software engineering. IEEE Computer Society Press, 1976: 592-605
[3] Samoladas I, Stamelos I, Angelis L, et al. Open source software development should strive for even greater code maintainability[J]. Communications of the ACM, 2004, 47(10): 83-87