軟體工程課設心得

軟體工程是一門實踐性很強、交叉性很強的學科,它提供給我們的不僅是一種方法論,更是一種世界觀。

在沒有接觸軟體工程這門課時,我一直認為軟體就是程式。能編出解決問題的程式就ok了,從沒有想過,在寫一個程式之前還要構思幾份文檔(可行性分析、需求分析、概要設計)。不過對於那些大型軟體如植物殭屍大戰(至少對於我來說是比較大型的了)怎么去實現它,想得我一頭霧水。絢麗的界面、40種植物、一大堆不同類型的殭屍,怎樣編代碼去實現它呢?

第一次上軟體工程的課,裴老師問“軟體是什麼?” 我的第一想法是:這個問題太過愚昧了!誰不知道軟體就是程式呀? “軟體是由電腦程式、數據及文檔組成。”聽到這句話,我心裡先是一驚,慌忙翻了下書“軟體是程式和所有使程式正確運行所需的相關文檔和配置信息。”赫然映入我眼帘。突然間我發現,就算是植物殭屍大戰這樣複雜的遊戲,如果設計者實現分模組把每一部分如何實現用文檔描敘出來,那這個軟體實現起來不是很容易嗎?

第一次課後我明白了軟體工程是致力於專業化軟體開發的理論、方法和工具的研究。雖然我從國中開始信息奧賽,高中繼續這個愛好,但在大學二年級下學期才接觸在軟體開發中這么有引導意義的學科,不覺有種相見恨晚的感覺。自然它的方法學三要素:方法、工具、過程,我牢記於心。

短短的四周,裴老師的課給我留下了深刻的印象,印象尤深的是:

做軟體我們首先考慮的是團隊的實力。

如果別人給你50萬讓你們團隊開發一個軟體,如果他要求你們團隊給這個軟體永久維護,那么你要去跟他協商付100萬。很多軟體公司倒閉就是因為維護上的問題。至此我才明白維護軟體是軟體生存周期中時間最長的一個階段,它是最花費精力與錢財的一個階段。

如果將來你們碰到了我,你跟我說你是se那么我會很高興,如果你告訴我你是軟體工程師,我只會“嗯嗯”兩下。

其實在我接觸軟體後,渴望的是當一名軟體工程師。現在才知道學軟體工程專業後,去當一名軟體工程師是最低層的也是最沒“技術”含量的。要做就做系統構架師,當然這需要我們的不懈努力才能達到。系統構架師的職責是設計一個公司的基礎構架,並提供關於怎樣建立和維護系統的指導方針。恍然發現學軟體不僅是學軟體,相關的管理能力也是需要具備的。

當然理論知識是用來指導實踐的,親身體驗才能領悟軟體工程的妙用。課設我們選擇了圖書館管理系統,主要是這個系統我們接觸比較多,對於它的流程還是比較清楚的。雖然如此我們還是花了很大的時間去完成它。記得當時我們定下這個題目是晚上,在討論用什麼語言實現時,大家各自說出自己比較善於的語言。然後均衡了下,定下用java做開發語言。在實現過程中,突然發現java環境連線資料庫和tomcat超級麻煩且資料庫老是連線不上。趁時間還早我們三再次討論,決定用c#做開發語言,主要是c#相對於c++與java來說簡易寫。同時我們定下不管以後遇到什麼困難都要堅持下去的準則。在課設期間我們沒少跑圖書館,查閱各種資料,對比各本書上實現圖書館管理系統的代碼。終於在4月11日把所有課設的所有事情弄好了。當然這只是個概述。