軟體工程的實踐報告
軟體工程的實踐報告
一、實習目的
這次實習的目的是為了提高我的專業技能、實踐能力、以及讓我瞭解一些實際的工作情況。對我在正式工作前有很重要的意義,不論是專業技能,還是綜合素質,以及實際中的人際關係都有了更加深刻的體會,讓我在正式工作前有了一筆很珍貴的經驗。
這次實習的主要任務就是在瞭解整個軟體的製作過程,以及各個環節中的細節,當學會了這些環節後,再用學到的知識來完成一個公司給我們安排的一個專案。我分到的專案名稱是《診所管理系統》,這個專案我們將以小組的形式共同將其完成,以模擬實際軟體製作的過程,盡最大程度的將我們所學到的知識轉化成實際的能力。為真正的專案做好充分的準備,讓我們可以在實習過後的正式工作中,有準備的去面對。
公司的最終目的就是希望我們能瞭解實際專案的製作,並初步的理解各個環節的意義。而讓我們用專案進行實際製作就是為了讓我們能更好的理解專案製作中各個流程的意義以及專案製作過程中的團隊是如何合作的。
二、實習單位及崗位
我所實習的單位是校企合作埃森哲資訊科技(大連)有限公司的軟體開發部。這個部門的主要職能就是外包服務工作,按照客戶的需求製作成相應的軟體,所以我們需要對整個軟體開發的過程都較熟悉,這樣才能應對客戶們各種各樣的問題,才能製作出更好的軟體以滿足客戶們的需求。
因為剛實習的原因,所以我的職位是軟體助理工程師,時間的具體安排是實際專案製作以及專業知識的學習,實習時間為8個星期。本來實習的地點是在公司的,後來因為公司的內部原因,將我們的實習地點改為學校內部實習,每天的時間和正式上班相同。早8晚5,每週六週日休息。
整個實習的實際流程前面已經說過,八週的實際專案製作以及專業知識的學習。具體的每週任務、實際工作內容、以及專業知識與專業技能的實際應用會根據不同的環節也有所不同。但總體的目標就是讓我們瞭解實際工作中軟體的製作流程,以及各個流程中所需要的技術和注意點,並用實際的專案讓我們進行練習。
三、實習過程
上面已經介紹了個整個實習的任務以及目的,下面將詳細介紹整個實習的流程,並對每個流程的細節加以詳細說明。
具體的時間安排如下:
第一週:將對該專案所需要的知識進行集體鞏固複習。將一些已經生疏的知識鞏固鞏固,以備專案中的不時之需。在實習的第一天企業的經理就詳細的給我們講解了軟體工程這門科學對於一個軟體製作的重要性,並以此為基本給我們定下了這次實習的大體實習流程。
第二週:將直接進行專案的需求分析。因為專案名稱已經給出,所以將去掉可行性分析。我們小組分到的專案是“診所管理系統”,這就免不了去診所實地調查了。實際調查的過程中發現,需求分析這個過程是非常非常的重要,需求分析文件的製作,決定了專案的各個功能以及這個軟體是否符合使用者的需求。這一週的收穫就是軟體需求分析的文件製作,這是軟體工程中非常重要的一個步驟,這一環節,是一整個軟體生成的最為重要和關鍵的環節。
第三週:這一週由於臨時變動,將概要設計和詳細設計合為一週製作。根據調查的結果,進行概要設計。由於是初次製作軟體概要分析的文件,所有有很多不符合規定的地方,就比如資料流圖的製作,很多小的細節都沒有注意,像這樣的問題還有很多。不過,在經過了小組成員的積極討論修改以及老師的指導後,這些問題都得以解決。接下來,根據概要設計,來製作軟體的詳細設計。詳細設計的製作,相對於概要設計,感覺能稍微簡單些,也不知道感覺對不對。因為在概要設計模組中,我們已經設計好了所需要的模組、介面、類、以及所要實現的功能,所以我們只需要考慮每個類的功能如果用程式碼實現就可以了,當然不是將程式碼寫上去,而是用流程圖以及虛擬碼之類的相關技術來表示。這個階段的製作完成就開始正式的編碼了。到此為止,準備工作總算是做完了,幾乎花費了我們實習的一半時間。這一週的時間,我們在忙碌中不知不覺的度過了!下一週就會進入到該專案的實際編碼當中,這也是我們大家最熟悉的地方了,感覺總算有地方出力了,期待著下一週的到來。
第四周:根據詳細設計,來進行專案的編碼。這一週,我們進行實際的編碼,我最大的感覺就是,照著詳細設計去進行編碼,思路以及邏輯非常的清晰,可能在將流程如以及虛擬碼轉換時稍微有點費勁,當相對於以往我們的直接編碼而言,流暢度不言而明。
第五週:這一週本來是要進行測試的,但在編碼完後企業老師檢查的時候,給我們指出了很多的問題,說我們所寫的程式碼太粗糙,所以我們只能對程式碼進行細緻的加工,把測試推到了下週來進行。這一週,讓我們受益匪淺,對程式碼的註釋以及編碼格式都有了更加深刻的理解。
第六週:根據做完的專案,進行專案的測試。本週就是對軟體進行測試,從最基本的類之內的方法測試,一直到整個專案的綜合測試,分了好幾個階段。而區分於以往的測試不同,這次我們是先寫測試文件,當測試文件檢查合格後,我們才可以對著文件進行逐步測試。我想,這可能就是我們以後工作的大體方向吧,以文件為主的專案製作。由於測試文件的製作進度太慢,所以本週就忙測試文件的製作了一樣了,其它的什麼也沒幹,測試也只能等下週進行了。希望下週測試的時候效率會很高,期待的試一次,拿著測試文件去測試的感覺。
第七週:拿著測試文件,根據上面的要求,一項一項的測試,以確認專案的正確性。測試的順利讓我有了爽快的感覺,拿著測試文件,直接去校驗程式碼就可以了。幾乎不用去想程式內部的測試流程,因為文件上已經給你寫的明明白白了。到這裡,我有一種感覺,像埃森哲這種大公司內,文件的重要性比編碼本身更為重要。我想,這就是企業派來的老師沒有直接給我們進行技術培訓,而是讓我們來了解軟體工程的流程的原因。當然,根據企業的文化不同,對軟體工程的生命週期也會有細微的差別,他們會選擇最適合自己公司的方法來進行整個軟體的生命週期,並不是一成不變的。
第八週:這一週,我們沒有跟技術相關的任務,只要好好準備準備個人展示就可以了。但你可千萬不要小瞧這個人展示,因為他將佔你整個實習成績的`50%,這也是企業老師在本週週一時才告訴我們的,我們之前根本就不知道還有實習成績這一說。專案總結,我們將用一週的時間來總結整個實習的收穫,在本週的週五進行自我展示,以及收穫報告。至此,實習的生涯將會到此結束。這一週,我們思考著、沉澱著、總結著,將我們對整個實習的收穫、總結、體會等各個方面進行了精華的提煉,以PPT為基礎,進行為期10分鐘的個人展示以及專案答辯。就此,我們的實習畫上了完整的句號。
四、實習總結
我們的實習已經結束,但生活卻沒有結束,這一次的實習,對於我們這幫還沒有畢業的學生來說可以用意義重大四個字來形容。他不僅僅對我們的專業知識進行了鞏固和拓展;還對我們作為軟體開發人員的視野進行了增大,讓我們瞭解了很多軟體開發這個職業應該注意的一些細節;更是讓我們親身體會了軟體工程這門科學對於一個軟體的意義。這些經驗對我們來說就是一筆寶貴的財富。而經過了8周的實習,在大家的共同努力下,也都完成了各自的任務,但我想說的是,我們並不僅僅是完成了任務,我們更是個個滿載而歸:
專案的製作以及疑難問題的解決,將我們把大學期間那些快要淡忘的知識又重新熟悉了起來,並且對程式碼有了更深層次的理解。程式碼的複用性、類與類之間的呼叫、物件的建立、資料庫的連線以及操作等各種專業知識的使用,讓我們能更好的將這些各種各樣知識合理的整合在一起。
如果說專業知識收穫頗多,那麼接下來的職業技能卻是我認為在整個實習過程中收穫最大的地方。程式碼的註釋以及編碼的規範這兩點是我以前很少注意的地方,對其也並沒有多少重視。但這一次,卻明白了他的重要性:這是作為一個軟體開發人員必須應該具備的能力,或者說應該特別注重的地方。因為我們的程式碼並沒有多少註釋以及很多地方的編碼很不規範,企業老師寧願讓我們多花一週的時間修改,也沒有匆匆的進行下一步測試。在修改的這一週內,透過自己的體會以及老師的重點強調,對於程式碼的編碼規範和程式碼的註釋有了更深層次的理解。通過了這次的實習,我個人認為,程式碼的註釋以及編碼的規範比個人的技術更為重要。
這次實習的最終目的就是希望我們瞭解軟體的整個製作過程,也就是軟體工程這門科學。這一次的實習,中間的製作文件時間大約是編碼的好幾倍,編碼的時間即使是因為我們修改的原因也只有兩週,而其他的大部分時間就是製作文件。我個人猜想可能進公司後文檔的製作比個人的技術更加重要。因為文件的原因,我們的專案製作,感到非常的流暢,條例非常的清晰,邏輯也很流暢。對於軟體的製作,這些文件起了很重要的意義,所以覺得,軟體工程也許就是自己以後努力的方向吧。
最後,總結這段時間的實習生活的收穫,真的是使我受益匪淺。在實習中,我學習到了不僅僅是技術上的收穫,更還有生活中的的人際交往以及其他的許多經驗。而這些,都將作為我邁入社會的根本,我將以此為我的基礎,懷著一顆勇敢無畏的心去迎接我即將來臨的工作。
五、實習體會
這一次的實習,給了我很深刻的體會,不僅僅是專業的收穫,更還有團隊間的相互合作,這些讓我明白了團隊的意義。工作即將來臨,我期待著工作的到來,我將帶著這次實習的收穫,儘量的將學到的知識運用到實際工作中,去迎接一個又一個的挑戰。前方的路會有很多困難等著我,但我不怕,因為我堅信,只要我努力,終會克服這些困難。路就在腳下,我將帶著堅定的信念,不畏挫折,勇往直前!