這是軟體工程的最後一次作業,在此寫上我本學期以來的體會和總結。
從三月初至五月低,學習軟體工程将近三個月的時間。從一開始的個人項目到後來結對程式設計再到團隊項目,期間經曆了太多的困難與挫折,當然也有成功收獲。有時會熄燈後繼續熬到一兩點還在修改程式,當送出成功後心裡還是挺興奮的。雖然軟體工程已經結課并考完期末考試了,但我才能高中學習到了很多,除了個人專業技術知識外,還意識到了團隊合作的重要性,這裡還是有很多地方是值得肯定的。
一開始是我先入為主了,認為軟體工程可能與其他專業課相似,學習課本上的知識,在動手編一些程式進行練習,其實不然。在我看來與其說軟體工程是一門課,倒不如說它是一種思想。是一個引導我們如何去分析問題,如何處理問題的過程。應該說其範疇已經遠遠超過了這門課本身,成為一個綜合的一個能夠解決問題的思想的集合。
需求分析—概要設計—詳細設計—編寫代碼—項目測試—項目完成—項目維護,這是軟體開發的一般程式和過程,我認為這是一份非常有實際意義的教學内容,它讓我們的工作子產品化,進而更加嚴謹,也能提升整體的工作效率。當我們畢業之後,走進企業,這是我們要實際運用的一個非常重要的技能,而不是僅僅局限于軟體工程的範疇。即使以後從事其他行業,但這是做事的思維和方法也是一生受用的,都是從需求設計開始,一步一步的有條理進行,最終完成作品。我覺得這才是這門課的意義所在,這也是我感觸最大的地方。
團隊項目作業中,我們團隊做的事一款APP,他的功能是幫助人們在聚會時給大家提供一些娛樂性小遊戲,還有不定時拍照功能,骰子遊戲等。當然我們自己也親身體會了一番,确實挺好玩的,知識還有很多地方需要改進和完善。當自己用到自己團隊一起努力完成的作品是,除了滿足自豪之外,還讓我感受到了技術的魔力。有時候一個看似簡簡單單的東西,它的背後隐藏着無數的汗水與付出,在外行看來甚至會不屑一顧,他隻是他們沒有接觸罷了,他們不知這裡邊的水有多深。很多人都在使用手機,有社交,有遊戲,有學習,他們不會懂這裡的每一個功能是怎麼來的,每一行代碼是怎麼寫的。覺得這都是進階人才的傑作,離自己太遙遠。但是如果他們使用的某一款APP是我們做出來的,他們會用怎樣的眼光來看我們,那種成就感是無法想象的。
接下來不得不提的就是靈活開發了。簡單的說靈活開發就是把一個大的項目分成多個互相聯系,但可以獨立運作的小項目,并分别完成,在此過程中軟體一直處于可用狀态。他的價值觀是 溝通,簡單,回報,勇氣和謙遜。當然這些都是一個優秀軟體工程師的必備要求。Alistair Cockburn曾經指出:很多的方法都定義了軟體開發項目中開發人員所擔任的角色,同時還定義各個角色執行的任務,盡管這些方法都沒有定義這些角色的最佳人選。但一個成功的模組化者必須具有以下個性:團隊競賽,暢所欲言,腳踏實地,好奇心,實事求是,總結經驗,遵守紀律。一個人想要成功的擔任某個角色,他應當好好的适應他,雖然這并不需要人們掌握所有的技能,但人們必須慢慢的熟悉這些技術。上面提到靈活開發,下面要說下UML。很多人會認為在靈活開發的時代,UML沒必要學了。這些我也不知道 ,我覺得UML模組化的本質是非常靈活的,它是靈活開發技術,靈活模組化的核心技術之一。
比起大多的基礎課程,軟體工程的授課方式并沒有那樣的枯燥乏味。部落格引入教學,使我們的學習更加便捷,是我們的交流平台更寬。雖然這門課結束了,但它教會了我們做事的方法和思想,我們還需繼續深入學習,提升自己。最後衷心感謝許老師辛勤付出與講解,也感謝各位助教在學習住的鼓勵與幫助。