1. 程式人生 > >網絡15 個人作業5 軟件工程總結

網絡15 個人作業5 軟件工程總結

工程 不能編譯 creator oid 而不是 能力 flask 需要 延遲

網絡15 個人作業5 軟件工程總結

一、請回望開學時的第一次作業,你對於軟件工程課程的想象

對比開篇博客你對課程目標和期待,“希望通過實踐鍛煉,增強計算機專業的能力和就業競爭力”,對比目前的所學所練所得,在哪些方面達到了你的期待和目標,哪些方面還存在哪些不足,為什麽?

??軟工項目確實鍛煉了作為一個團隊的協作能力,提高了編寫各種文檔、畫各種流程圖的、以及如何和目標用戶溝通、如何和隊友交流的能力,代碼量也提升了很多。同時學會了軟件工程中的很多理論和概念,比如關於UX的討論、需求分析等等,還讓我認識了很多優秀的工具。
??不足之處是我覺得這門課還是需要更多的時間,這麽短的時間內又要學習理論知識,又要學習各種文檔、分析技巧,還要完成團隊項目的設計開發實現,感覺壓力挺大的。

總結這門課程的實踐總結和給你帶來的提升,包括以下內容:

  1. 統計一下,你在這門課程中,完成了多少行的代碼
    一萬行左右,主要是團隊項目中寫的代碼
  2. 軟工的各次作業分別花了多少時間?(做一個列表)

    作業 耗時 /h
    個人作業1 5
    個人作業2 10
    結對編程 36
    個人作業3 10
    個人作業4 6
    團隊項目每日總結 0.5 * (7 + 5)
  3. 哪一次作業讓你印象最深刻?為什麽?
    結對編程那一次作業,因為那是在本課程剛剛開始的時候,當時花了很多尋找和熟悉我們所需要的技術的各種工具,例如微軟持續集成工具VSTS、單元測試框架MSUT、熟悉Git以及Git的倉庫、以及代碼覆蓋率、性能測試等等,博客也花了很多時間來寫。

  4. 累計花了多少個小時在軟工上?平均每周花多少個小時?
    • 累計花了233個小時左右
    • 平均每周花25個小時
  5. 學習和使用的新軟件;
    所使用的軟件
    • SublimeText
    • Qt Creator
    • Visual Studio
    • Visual Studio Code
    • PyCharm
    • Github Desktop
  6. 學習和使用的新工具;
    • VSTS
    • GIT
    • MSUT
    • ProcessOn
  7. 學習和掌握的新語言、新平臺;
    • 以下都是淺嘗輒止
      • Python Flask
      • HTML
      • CSS
    • 以下了解的比較多
      • C++ / QT
      • QSS
    • 新平臺
      • Git Issue 管理平臺
  8. 學習和掌握的新方法;
    • 敏捷開發
    • Deadline是第一生產力
    • NABCD需求分析
    • 競爭性需求分析
  9. 其他方面的提升
    • 文檔編寫
    • 博客書寫
    • 團隊協作
    • 抗壓能力

二、寫下屬於自己的人月神話——個人或結對或團隊項目實踐中的經驗總結+實例/例證結合的分析

  • 無論是結對編程還是團隊項目,積極地應對才能更好地提高效率,消極面對反而會讓問題更加棘手
  • 為可能出現地突發情況做好準備,Plan B在關鍵時候很重要
  • 埋頭研究細節的時候也要偶爾擡頭看看整體情況,戰略上的錯誤無法用戰術逆轉
  • 一個凝聚力高的團隊能事半功倍
  • 帶著熱情去做一件事能做得更好

三、對下一屆實踐的建議,或者對於開學初的你,對於大一的你,對於開學初的我,你有什麽想建議和告知的呢?對於後來人的期許。對於換人機制,有什麽樣的建議?

建議下一屆的學弟學妹們最好選擇開發效率高的工具來編程,寫PC端的工作量比同等規模下其它平臺大很多,很累。

對於換人機制,延續現在這樣的機制就好,自由度高。


四、分析自己所處的團隊

軟件工程實踐是大學裏少有的認真的團隊協作經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過麽,最後到達了“創造”階段了麽?(參考《構建之法》第17章 人、績效和職業道德)

這些階段我們團隊都經歷了,而由於與我們的團隊成員本來就是比較熟悉的朋友,所以一開始磨合的階段比較快地過去了,我們的團隊比較融洽,比較有執行力。可以說最後也達到了“創造”階段,做出了自己滿意的一定成果。


五、怎樣證明你學會了軟件工程?

  1. 研發出符合用戶需求的軟件

    必須公開發布,有實際的用戶,一定的用戶量和持續使用量 (3 天後能保持10 - 100個用戶);而不是做沒有用戶使用的軟件

    • 發布地址:Gugua Release-碼雲發行版
      技術分享圖片

    • 後臺數據
      技術分享圖片

  2. 通過一系列工具,流程,團隊合作,能夠在預計的時間內發布 “足夠好” 的軟件

    有項目規劃/需求/設計/實現/發布/維護,有定時的進度發布 ;而不是: 通過臨時熬夜,胡亂拼湊,大牛一人代勞,延遲交付等方式糊弄

    • 需求文檔 Gugua需求文檔-碼雲
    • 原型設計 Gugua原型設計-墨刀
    • 實現
      • Gugua客戶端-碼雲
      • Gugua服務端-碼雲
    • 測試維護 測試維護報告-碼雲
    • ISSUE管理系統 Issue-碼雲
      技術分享圖片

    • 持續開發
      技術分享圖片
    • 團隊協作
      技術分享圖片
    • 自行設計制作並實現所有元素、資源、功能
      技術分享圖片
      技術分享圖片

  3. 並且通過數據展現軟件是可以維護和繼續發展的

    而不是 找不到源代碼,代碼無文檔,代碼不能編譯,沒有task/bug 等項目的發展資料

    • Git倉庫
      • Gugua客戶端-碼雲
      • Gugua服務端-碼雲
    • 需求文檔 和 原型設計 同上
    • README https://gitee.com/niverse799/GuguaClient
    • 環境部署演示 Gugua構建演示

網絡15 個人作業5 軟件工程總結