第一篇:軟件工程課 心得體會
心得體會
通過本學期的學習,獨立完成了軟件工程方法實踐與案例的作業,同時也收獲了學習方法和思維方式。由于我是從電氣專業調劑到計算機專業,幾乎沒有基礎,所以在剛開始進入學習時感覺非常的困難。但是,李老師每節課都循序漸進的引導教學,讓我慢慢理解了軟件工程的學習思維,并且堅持學習,逐漸找到了學習軟件工程的方法。在整個的學習中,一點一點的學習:上網搜索、問同學和老師、找參考書、查文獻,甚至下倉庫管理的軟件進行使用研究,用了很多方法,也終于對軟件工程的整體設計有了深刻概念和理解。
老師給我們分組分配任務,同時又每個人有不同的具體任務,這樣既鍛煉了我們的合作溝通的能力,同時也強調了獨立自主的思考。我們倉庫管理小組進行過好幾次集體討論,大家互相討論,共同學習,也曾出現過意見不統一,通過探討,共同解決,我覺得這也是學習提升的過程。明確了自己的任務后,就努力去完成,按時完成自己的任務。
在完成作業的同時,學到了很多的數據庫知識和軟件使用方法。首先接觸了visio軟件,發現了它畫圖比較方便,之后老師介紹用rose軟件后,發現其功能更加強大。由于rose軟件是英文版,所以剛開始用的時候比較吃力,經過搜索使用教程和多次使用練習后,終于可以熟練使用了。
整個設計過程,包括調研設計、需求分析、概要設計、數據庫設計、詳細設計等。其中,我對UML圖印象最為深刻,也是從這個地方開始,我對軟件設計有了質的改變,體會和理解了軟件設計應該樹立的思維方式,對以后的學習和任務有有很大幫助,后期做作業時也沒有那么困難了。
在這整個課程學習和完成作業過程中,收獲知識,提高能力的同時,我也學到了很多人生習慣,懂得怎么樣去制定計劃,怎么樣去實現這個計劃,并掌握了在執行過程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學習的過程中,我一定會把這種習慣帶到生活中,不畏,勇往直前!
最后感謝李老師對我們耐心的教育和指導,認真細心的給我們批改作業,給予我們這些沒有基礎的學生耐心指導,謝謝老師!
第二篇:軟件工程心得體會
《軟件工程》的感悟
時間飛逝,不知不覺間《軟件工程》的學習已經過了大半了。在這將近半學期的學習中,雖然我不能說我將《軟件工程》學習的有多么的好,但是通過學習,我還是受益良多。
在以前,我一直對軟件存在一些偏見或則是誤解,認為軟件就是程序,軟件的開發就是編寫程序,只要編完了程序,一切也就ok了,而且我還片面的認為只要我掌握了時下最新的語言和工具,那么我就能寫程序了。一個人,只要會編程,就能寫軟件,就是程序員;一個公司,只要招聘一些程序員,就能開發好的軟件產品。只要有幾個有經驗的程序員,再找些兼職的大學生,就能組成一個軟件公司。
但是通過了《軟件工程》這門課的學習,使我認識到了我以前的錯誤。軟件其實不僅僅是程序,軟件開發其實也不僅僅是編寫程序,軟件是思想在硬件上的載體和體現,處理的是邏輯和信息。唯有對軟件和軟件的開發過程,有充分的認識,才能更好的開發出,過程受控、質量受控的軟件產品。
而且在以前,我一直以為軟件的開發其實是一件很輕松快樂的事情,只要一天坐在電腦旁敲敲鍵盤,那么一切就可以了,但是現在我才發現,我以前的很多的思想是多么的膚淺可笑。編程其實是一種樂趣和苦惱共存的一項創造性活動。因為編程不僅能夠滿足我們內心深處進行創造的渴望,而且還能愉悅我們內在的情感。
而且通過學習《軟件工程》,我還學到了很多其他的東西。比如通過學習《軟件工程》,特別是老師每次用實際的軟件現場的講解,為我提供了一個盡早接觸世界工作和真實項目的機會。讓我知道如何在以最小的成本中,訓練自己的基本工程素質和能力,如何激發自己的積極性等。而且通過學習《軟件工程》,還讓我認識和培養了我的團隊協作能力,特別是對于我們這些在校的學生來說,這種學習更是能讓我在以后工作中少走很多的彎路。
所以,通過《軟件工程》的學習,我是真的學習到了很多有用的東西,讓我明白了很多的道理。在此我對老師的辛勤教育表示感謝,因為是你讓我學習到了這些,是我獲益良多。
第三篇:軟件工程心得體會(推薦)
軟件工程學習心得
這個學期我學習了軟件測試這門專業課程,在學期即將結束的時候,我也對這門課程建立基本的了解。軟件測試這門課程作為軟件工程專業中一門很重要的課程,已經在軟件領域占據了不可替代的角色,當一個軟件從雛形到真正的在一臺計算機是哪個運行的時候,誰也不能保證計算機軟件能一步到位的滿足人們的需求。所以就有了軟件測試,其目的的:第一是確認軟件的質量,其一方面是確認軟件做了你所期望的事情,另一方面是確認軟件以正確的方式來做了這個事情。
我認為,在整個龐大的軟件工程中,不管是需求分析、架構設計,甚至是最后的debug,都會產生引入不管的機會,這就要去作為一個軟件測試師要掌握豐富的軟件工程原理和知識。測試的工作將會存在于整個項目周期,即在項目開始時需要各種分析調研時就開始了,尤其是在形成需求規格說明書時就有對文檔的測試需求,甚至主導整個項目的走向。
軟件測試對邏輯思維、學習能力、反應思維要求很高,是否有嚴密的思維和逆向思維也非常重要。做測試還要考慮到所有出錯的可能性,有時候還要用一些非常規的測試方法。軟件測試還很注重軟件性能問題,也
就是要保證軟件運行得很好;在不同環境下,考慮軟件 的兼容性同樣重要。對于測試人員來講,會比開發人員更加重視軟件產品的質量問題。在測試過程中,測試者可能會為可會的需求角度考慮更多,由此我們可以認為測試人員有權利決定產品是否可以發布。然而,通過一個學期的學習,我們又不得不懂得,軟件測試人員不是萬能的,測試人員在面對一個設計爛編碼的軟件時,也是無法不低頭的,再怎么測試它也變不成優秀的軟件。
通過課上的理論和課下的實踐,以及在網上和一些論壇里討論和學習,使我對測試有了大致的接觸和深入的了解。以下就是我在軟件測試方面的認識:
每項測試都包括三個部分,一組操作,一組預期結果和一組實際結果。另外要盡量用最少的測試用例覆蓋軟件功能的絕大方面。考慮到各個方面的原因,我們應考慮盡可能多的條件下的測試,這樣我們的測試才能更具有全面性和普遍性。大體上我們的測試可以分一下幾個方面:
(1)邊界測試,測試用戶輸入框中的數值的最大數和最小數,以及為空時的情況。
(2)非法測試,例如在輸入數字的地方輸入字母。
(3)跟蹤測試,跟蹤一條數據的流程,保證數據的正確性。
(4)在開始測試之前應保證數據的正確性,然后再從系統中找出各種BUG。
(5)接口測試,程序往往在接口的地方很容易發生錯誤,要在此模塊測試勿掉以輕心。
(6)代碼重用測試,在開發過程中有些模塊功能幾乎相同,開發人員在重用代碼時可能忘記在原有代碼上修改或修改不全面,而造成的錯誤。
(7)突發事件測試,服務器上可能發生意外情況的測試,如網絡中斷,電源斷電等極端的情況。
(8)外界環境測試,有些系統在開發時依賴于另外一個系統,當另外一個系統發生錯誤時, 這個系統所受到的影響的情況。
(9)系統兼容測試,例如有些程序在IE6能運行正常,到IE5下不能運行。有些程序在WIN2000下能運行,而到WIN98卻不能運行。
(10)用戶的易用性測試,往往用戶的需求是不斷的變化的,而其中的一部份變化的原因,是由用戶操作上不方便引起的。
雖然課程已經接近尾聲,我卻開始對軟件測試產生濃厚興趣,也增加了我對其的知識,在以后的大學課余時間中我一定會更加努力,永不放棄,世上無難事,只怕有心人!通過刻苦鉆研,相信有付出就一定有回報,總有一天,我定能在計算機和軟件測試方面有所成就。
第四篇:軟件工程心得體會
軟件工程心得體會
未接觸軟件工程之前一直都很想學這門課程,因為覺得這門課很牛,是那些有工程師稱號的高手才擺弄的東西。學了一個學期的軟件工程課,終于知道了個軟件工程的大概。學的時候總覺得很抽象,理解起來好像不難,但總是摸不著頭腦一種很茫然的感覺。
曾經以為程序就是軟件,軟件就是程序。學習這門課程第一個收獲是,知道了二者的不同之處。以前做過的一些小型的軟件比如加密軟件,我也只是在程序旁邊附上一個軟件的說明,看來已經很接近作坊了。不過大的項目沒有接觸過,用軟件工程的方法還是第一次。我想也是程序的不斷復雜化導致了軟件危機的發生,使得人們不得不探索新的解決方法。
經過倪老師的講解,理解了軟件工程,就是一套用于軟件的團隊開發,以提高軟件質量和程序員工作效率為目的的規范。其核心就是,對于軟件開發的5個重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。
吾生也有涯,而知也無涯,學習永無止境。起初,對軟件工程處于一知半解的狀態,分工比較混亂。在劃分模塊后明確了各自分工,漸漸形成良性循環。
在學習過程中,知道了團隊合作十分重要,爭議固然存在,但通過討論、協商,群策群力,在不斷磨合中能夠達成一致與默契。團隊成員中能力各有高下,互相尊重,各取所長,不宜妄自菲薄。組長多加協調,組員積極配合,才能合作愉快。
學習能力體現在能盡快接受新的知識,順應變化,學為所用。上《軟件工程導論》這門課,我的收獲大概如下:
我們為什么需要軟件工程呢?上面已經給出了一些原因。專業點講,軟件工程最終是為了實現“軟件制造業”的社會化,工業化大生產,提高其勞動生產效率。只有如此,軟件業才能實現社會化,工業化大生產,才能“做大做強”。沒有管理的設計是失敗和混亂的設計,沒有設計指導的編程是無序的忙碌的。根據開發的軟件的規模,應該適當程度的運用軟件工程化的思想,需要靈活,畢竟我們開發的軟件大多數是中小型的,大型的并不多見(我是這么認為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果更穩定。
其實開發軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實現的核心功能大概構思一種或多種實現方法,并從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和DEBUG。在我看來,除了第一步外,其余的步驟應該是一個循環的過程。在編碼的過程中,你總是需要不斷地回過頭來修改原先的模塊設計,甚至最初選定的實現算法。
具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。
1.可行性分析就是關于當前項目能不能干的分析結果。
2.項目描述這是在決定立項以后,對當前項目的一份扼要說明。3.需求分析就是對客戶要求的功能的定義。
4.軟件設計這就是對程序的每一個模塊的詳細設計的說明文檔。5.開發日志我一直都認為這是文檔中最有趣的部分。開發日志相當于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突然萌發的靈感,或對代碼的一些微小的修改,或對程序結構的一些微小變動等,還要對上述這些修改變動作些說明。
6.測試分析 用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數字描述。
第五篇:軟件工程課設心得
軟件工程是一門實踐性很強、交叉性很強的學科,它提供給我們的不僅是一種方法論,更是一種世界觀。
在沒有接觸軟件工程這門課時,我一直認為軟件就是程序。能編出解決問題的程序就ok了,從沒有想過,在寫一個程序之前還要構思幾份文檔(可行性分析、需求分析、概要設計)。不過對于那些大型軟件如植物僵尸大戰(至少對于我來說是比較大型的了)怎么去實現它,想得我一頭霧水。絢麗的界面、40種植物、一大堆不同類型的僵尸,怎樣編代碼去實現它呢?
第一次上軟件工程的課,裴老師問“軟件是什么?” 我的第一想法是:這個問題太過愚昧了!誰不知道軟件就是程序呀? “軟件是由計算機程序、數據及文檔組成。”聽到這句話,我心里先是一驚,慌忙翻了下書“軟件是程序和所有使程序正確運行所需的相關文檔和配置信息。”赫然映入我眼簾。突然間我發現,就算是植物僵尸大戰這樣復雜的游戲,如果設計者實現分模塊把每一部分如何實現用文檔描敘出來,那這個軟件實現起來不是很容易嗎?
第一次課后我明白了軟件工程是致力于專業化軟件開發的理論、方法和工具的研究。雖然我從初中開始信息奧賽,高中繼續這個愛好,但在大學二年級下學期才接觸在軟件開發中這么有引導意義的學科,不覺有種相見恨晚的感覺。自然它的方法學三要素:方法、工具、過程,我牢記于心。
短短的四周,裴老師的課給我留下了深刻的印象,印象尤深的是:
做軟件我們首先考慮的是團隊的實力。
如果別人給你50萬讓你們團隊開發一個軟件,如果他要求你們團隊給這個軟件永久維護,那么你要去跟他協商付100萬。很多軟件公司倒閉就是因為維護上的問題。至此我才明白維護軟件是軟件生存周期中時間最長的一個階段,它是最花費精力與錢財的一個階段。
如果將來你們碰到了我,你跟我說你是se那么我會很高興,如果你告訴我你是軟件工程師,我只會“嗯嗯”兩下。
其實在我接觸軟件后,渴望的是當一名軟件工程師。現在才知道學軟件工程專業后,去當一名軟件工程師是最低層的也是最沒“技術”含量的。要做就做系統構架師,當然這需要我們的不懈努力才能達到。系統構架師的職責是設計一個公司的基礎構架,并提供關于怎樣建立和維護系統的指導方針。恍然發現學軟件不僅是學軟件,相關的管理能力也是需要具備的。
當然理論知識是用來指導實踐的,親身體驗才能領悟軟件工程的妙用。課設我們選擇了圖書館管理系統,主要是這個系統我們接觸比較多,對于它的流程還是比較清楚的。雖然如此我們還是花了很大的時間去完成它。記得當時我們定下這個題目是晚上,在討論用什么語言實現時,大家各自說出自己比較善于的語言。然后均衡了下,定下用java做開發語言。在實現過程中,突然發現java環境連接數據庫和tomcat超級麻煩且數據庫老是連接不上。趁時間還早我們三再次討論,決定用c#做開發語言,主要是c#相對于c++與java來說簡易寫。同時我們定下不管以后遇到什么困難都要堅持下去的準則。在課設期間我們沒少跑圖書館,查閱各種資料,對比各本書上實現圖書館管理系統的代碼。終于在4月11日把所有課設的所有事情弄好了。當然這只是個概述。
我印象尤深記憶深厚的是最初實現文檔那塊。剛開始,軟件工程這門課還沒學多少,基本的設計理念就很模糊。文檔到底該怎么寫,很糾結。于是我從網上狂下相關文檔。通過粘貼與復制終于一份內容亂七八糟的需求分析文檔出來了,當然這只是用來借鑒的。后來孟陽分享了十三份關于文檔這方面的模板。我們照著那個樣子在結合團隊項目的相關實例開始了文檔的寫作。我們的文檔總是一個人先寫好,再拿給另一個人改,最后由第三個人評審。大家都覺的可以了,才過關。測試報告雖然是我一個人完成了,但也經歷了不少時間,當然這時間是按小時算的。首先把大體寫出了,然后修改,再增加信息。大量的截圖以及思考怎樣用例超費腦子,兩天的通宵,徹底把我搞垮了,不過在文檔出爐后,心里異常開心。
軟件工程課程雖已結束,但我對于軟件工程的學習才剛剛開始,裴老師的課讓我受益匪淺。我體會到項目管理的重要性,隨著軟件規模、復雜度的不斷增加,項目開發中更多的是協作、管理和控制。我學習到很多一般性的方法,例如:需求獲取、模塊化、分治、估算、計劃等等。同時,我也認識到使用計算機解決實際問題的復雜性,在圖靈機模型和馮·諾依曼體系的計算機框架下,人們認識表達的過程(不斷反復、逐步深化)和計算機的實現過程(順序執行)相差甚遠,軟件工程方法要提供給程序員們一種更加有效的對客觀世界問題域進行形式化的過程方法。
向se進軍!至少這是現在的目標。
謝謝裴老師!您的課通俗易懂,舉的例子貼近生活,讓我們易于接受。