學習軟體工程,不知不覺已經過去三個多月了,我們軟體開發團隊從五月末正式建隊到現在終於完成了一個比較大的專案。經歷了好多好多流程:利用NABCD模型進行競爭性需求分析;建立SRS文件;制定測試計劃;畫出設計類圖;物件導向程式設計;程式的測試與除錯……對於我們這一批新手來說,這個專案既是一個提高自己能力的機遇,又是對自己的極大挑戰。儘管隊員們的熱情也此起彼伏,設計草案也換了很多……回首起來,確實值得很多反思……
下面我將從這幾個方面來一起回首我們的軟體開發的那些流程
1. 軟體的設想和計劃
可以說任何事情都要有個大綱,大綱可以保證我們正確無誤的沿著計劃前進,我們在一開始就確定了主題——做成一個有日曆標記的記事本軟體,日曆記事本皮膚由日曆、記事本、圖片、時鐘四部分組成。日曆部分可以選擇不同的年份、月份、日期和星期;記事本模組可以實現檢視,儲存,刪除日誌等操作;並且每一步操作都有相應提示;圖片模組可以顯示預設的圖片;時鐘模組可以用時鐘來顯示當前時間。本軟體是一個實用性較強,簡潔,美觀,方便的功能軟體。儘管我們只寫了這幾個想法,也將這幾個想法實現了。但是當時私下我們還有些同學有別的想法,還想再多加一些功能。但是因為我們的能力有限,時間比較緊迫所以多餘的想法都被否了。現在想想如果當時沒有被否可能我們的作業就不能按時交上;主題多了,就沒有明確的目標就會使我們像個沒頭蒼蠅到處亂撞。所以主題的確立是非常有必要的。
2. 人員管理分配以及具體實現
我是把整個大的任務一個模組一個模組的分給他們每個人讓他們做每一個模組的專案負責人,儘管每個人的進度不好確保,不好量化,也不好估計他們的工作。但是隻要每個模組有負責人把守,專案都是可以按時完成的。
考慮到我們隊員的整體程式碼能力不強,所以我把時間節點調的非常密集,在這幾個任務的每一個一開始我就和當前任務的負責人及時溝通,督促他們儘早完成。所以給我們很多預留了時間保證了我們的工作進度。
這一點挺不錯的。所以趁著大家的熱情,把主要任務放在前面,把時間壓縮,能有效保證我們開發進度。
3. 程式碼質量
雖說我們團隊有一個人程式碼質量很好,但是她始終替代不了我們所有人,在異常處理方面是最明顯的,我們很多人都沒有意識,如果程式碼出現異常怎麼辦?如果解析不成功怎麼辦? 但是經過後期的找高手查錯補漏,以及測試,等最後看整體的程式碼還是挺強健的。
所以,我們要記住這個經驗,未來我們寫好一個大的工程之後,一定要查漏補缺,有條件最好尋找有經驗的人來幫助你。
4. 團隊的合作和效率
經過團隊合作訓練,感覺我們總體的合作還是挺好的,有什麼問題確實做到了即時報告組長,但是效率這方面還是有點欠缺,最主要因素是我們的程式碼實現能力還是有所欠缺,很多情況下是我們有一些想法,但是限於程式碼的實現有時候不得不折中或者妥協。但凡是都有第一次,相信我們的程式碼能力會越來越強,以後效率會越來越高。
5. 組長協調
經過這個專案我知道了,其實組長的核心在於想法,在於溝通,在於防微杜漸,在於保證進度,在於確保團隊的方向,在於協調領導和使用者需求。在於決策下一步該怎麼走?走的好不好?在於觀察隊員們的戰鬥力,時不時給他們打打氣,給他們聊聊天,看看他們的問題,看看他們的需求,第一時間解決。
分析每個隊員的特點,並針對每個隊員進行疏通,進行交流。
6. 總結
其實我們的軟體不是一個完整的軟體,是一個普通到不能再普通的境地。是因為我們的能力有限,所以今後的我們要多加努力學習;另一個方面是我們的軟體儘管對於大多數使用者都可以用到它但是由於目前這類軟體實在是太多,所以使得市場響應減小。
雖說路途有些糾結,但是既然是組長 ,我就要站出來,為我們的努力說話,為我們的軟體上線做出更多努力,更多推廣,要讓隊員們看到即使前面的路有些艱難,我們仍會堅定地走下去。
其實這個專案是培養學生綜合運用所學知識,發現,提出,分析和解決實際問題,鍛鍊實踐能力的重要環節,是對學生實際工作能力以及團隊協作溝通能力的具體訓練和考察過程.
從本次專案的完成中,首先我發現了我們有很多不足的地方,最突出的是我們所學的東西太少了,根本滿足不了平時編寫程式的需要,但是確實學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。同時,使我感覺到,一個優秀的程式,不僅僅是可以執行的,更應該具較高的效率,合理的結構,良好的可讀性和一定的容錯性。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高我們自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,經驗不多,難免會遇到過各種各樣的問題,同時在設計的過程中發現了我們自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。通過課程設計之後,把以前所學過的知識重新溫故。
和朋友同學之間要多做一下關於這方面的練習以提高我們的團結協作能力,我們要學會溝通,多聽多看多問。
附1:github地址:https://github.com/xumin1994/Fighting/tree/master
附2:程式執行結果截圖(部分)