啟蒙文學站

位置:首頁 > 範文 > 心得體會

軟體工程學習心得體會

在平日裡,心中難免會有一些新的想法,應該馬上記錄下來,寫一篇心得體會,從而不斷地豐富我們的思想。到底應如何寫心得體會呢?下面是小編為大家收集的軟體工程學習心得體會,歡迎大家借鑑與參考,希望對大家有所幫助。

軟體工程學習心得體會

軟體工程學習心得體會1

未接觸軟體工程之前一直都很想學這門課程,因為覺得這門課很牛,是那些有工程師稱號的高手才擺弄的東西。學了一個學期的軟體工程課,終於知道了個軟體工程的大概。學的時候總覺得很抽象,理解起來好像不難,但總是摸不著頭腦一種很茫然的感覺。曾經以為程式就是軟體,軟體就是程式。學習這門課程第一個收穫是,知道了二者的不同之處。以前做過的一些小型的軟體比如加密軟體,我也只是在程式旁邊附上一個軟體的說明,看來已經很接近作坊了。不過大的專案沒有接觸過,用軟體工程的方法還是第一次。我想也是程式的不斷複雜化導致了軟體危機的發生,使得人們不得不探索新的解決方法。

經過倪老師的講解,理解了軟體工程,就是一套用於軟體的團隊開發,以提高軟體質量和程式設計師工作效率為目的的規範。其核心就是,對於軟體開發的5個重要組成部分:需求分析,設計,編碼,除錯,維護,如何組織這5個部分的工作,以及如何完成每一個工作。吾生也有涯,而知也無涯,學習永無止境。起初,對軟體工程處於一知半解的狀態,分工比較混亂。

在劃分模組後明確了各自分工,漸漸形成良性迴圈。在學習過程中,知道了團隊合作十分重要,爭議固然存在,但通過討論、協商,群策群力,在不斷磨合中能夠達成一致與默契。團隊成員中能力各有高下,互相尊重,各取所長,不宜妄自菲薄。組長多加協調,組員積極配合,才能合作愉快。學習能力體現在能儘快接受新的知識,順應變化,學為所用。

上《軟體工程導論》這門課,我的收穫大概如下:我們為什麼需要軟體工程呢?上面已經給出了一些原因。專業點講,軟體工程最終是為了實現“軟體製造業”的社會化,工業化大生產,提高其勞動生產效率。只有如此,軟體業才能實現社會化,工業化大生產,才能“做大做強”。沒有管理的設計是失敗和混亂的設計,沒有設計指導的程式設計是無序的忙碌的。根據開發的'軟體的規模,應該適當程度的運用軟體工程化的思想,需要靈活,畢竟我們開發的軟體大多數是中小型的,大型的並不多見(我是這麼認為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟體工程才能更有效率,工作成果更穩定。

其實開發軟體,就像是解決一個邏輯問題。想想自己平時是怎樣寫程式的。首先是要有一個想法,即我寫的這個程式是要幹什麼的;然後就是對要實現的核心功能大概構思一種或多種實現方法,並從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模組;最後就是分模組來編碼和DEBUG。在我看來,除了第一步外,其餘的步驟應該是一個迴圈的過程。在編碼的過程中,你總是需要不斷地回過頭來修改原先的模組設計,甚至最初選定的實現演算法。具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,除錯,維護這幾部分的工作的時候,最核心的就是文件的編寫。

1.可行性分析就是關於當前專案能不能幹的分析結果。

2.專案描述這是在決定立項以後,對當前專案的一份扼要說明。

3.需求分析就是對客戶要求的功能的定義。

4.軟體設計這就是對程式的每一個模組的詳細設計的說明文件。

5.開發日誌我一直都認為這是文件中最有趣的部分。開發日誌相當於編碼階段的文件,它的形式可以很隨意,主要是記錄一些在寫程式時突然萌發的靈感,或對程式碼的一些微小的修改,或對程式結構的一些微小變動等,還要對上述這些修改變動作些說明。

6.測試分析用於指出程式存在或潛在的缺陷和錯誤,以及程式效能的數字描述。

軟體工程學習心得體會2

一、需求分析和概要設計。

1)需求分析

按照軟體工程的軟體過程來說:

1需求分析產生了軟體功能規格說明書,需要確定使用者對軟體的需求,要作到明確、無歧義。不涉及具體實現方法。使用者能看得明白,開發人員也可據此進行下面的工作(概要設計)。

2.概要設計產生了軟體概要設計說明書,說明系統模組劃分、選擇的技術路線等,整體說明軟體的實現思路。並且需要指出關鍵技術難點等。

在進行需求分析時,我們既是開發者又是使用者,本系統的業務流程與業務分類的定義比較難。我們的團隊進行了研討,還充分運用了身邊的各種資源,大量的查找了很多網路上關於工資系統的資料。通過資料的進行討論、根據我們的課題進行分析,最後確定了使用者的需求為:

1.本系統在高校應用後高校工資管理方面的教職工將減少至目前的50%左右;

2.本系統在高校應用後將在高校各方面的成本將會有所降低;

3.本系統在高校應用後將教職工的工資達到完全透明,計算更加精確教職工因糾紛事件減少到1%。 根據分析將系統的功能從一般教職工與系統管理者兩個角度將功能劃分為7個模組,當然介於我們的知識有限,有的功能沒有實現:員工工資與考勤直接掛鉤,但本系統無法與員工考勤系統掛鉤相連,由於涉及此係統時該高校並沒有員工考勤系統,而且我們在最初進行商量的時候也沒有提出該要求。

2)概要設計

從概要階段開發正式進入軟體的實際開發階段,本階段完成系統的大致設計並明確系統的資料結構與軟體結構。在軟體設計階段主要是把一個軟體需求轉化為軟體表示的過程,這種表示只是描繪出軟體的總的概貌。由概要設計說產生大的概要說明書的目的就是進一步細化軟體設計階段得出的軟體總體概貌,把它加工成在程式細節上非常接近於源程式的軟體表示。

在本階段主要涉及處理流程的設計、總體結構和模組外部設計、功能分配。在介面設計上有使用者介面、外部介面、內部介面;資料結構設計有邏輯結構設計、物理結構設計等等。在介面設計時參考了大量的資料。

最後就是編寫文件——軟體需求說明書、概要分析說明書。

而文件的作用在於:一是可以幫助整理思路。把要完成的目標,系統的結構,每一個模組的功能等整理一下,然後分門別類地寫下來,這樣在開發的過程中,就有據可依,在需要回過頭來修改設計的時候,也有證可考。二是便於交流。三是可以作為以後維護時的參考資料。

三、軟體工程課程設計——心得體會

我們進行了為期一週的課程設計。通過這次課程設計,我拓寬了知識面,鍛鍊了能力,綜合素質得到較大提高。安排課程設計的基本目的,在於通過理論與實際的結合、人與人的溝通,進一步提高思想覺悟。尤其是觀察、分析和解決問題的實際工作能力,以便培養成為能夠主動適應社會主義現代化建設需要的高素質的複合型人才。作為整個學習體系的有機組成部分,課程設計雖然安排在一週進行,但並不具有絕對獨立的意義。它的一個重要功能,在於運用學習成果,檢驗學習成果。運用學習成果,把課堂上學到的系統化的理論知識,嘗試性地應用於實際設計工作,並從理論的高度對設計工作的現代化提出一些有針對性的建議和設想。檢驗學習成果,看一看課堂學習與實際工作到底有多大距離,並通過綜合分析,找出學習中存在的不足,以便為完善學習計劃,改變學習內容與方法提供實踐依據。對我們資訊管理與資訊系統專業的學生來說,實際能力的培養至關重要,而這種實際能力的.培養單靠課堂教學是遠遠不夠的,必須從課堂走向實踐。這也是一次預演和準備畢業設計工作。通過課程設計,讓我們找出自身狀況與實際需要的差距,並在以後的學習期間及時補充相關知識,為求職與正式工作做好充分的知識、能力準備,從而縮短從校園走向社會的心理轉型期。課程設計促進了我係人才培養計劃的完善和課程設定的調整。

在一個星期的課程設計之後,我們普遍感到不僅實際動手能力有所提高,更重要的是通過對軟體開發流程的瞭解,進一步激發了我們對專業知識的興趣,並能夠結合實際存在的問題在專業領域內進行更深入的學習。

軟體工程課程雖已結束,但我對於軟體工程的學習才剛剛開始。我體會到專案管理的重要性,隨著軟體規模、複雜度的不斷增加,專案開發中更多的是協作、管理和控制。我學習到很多一般性的方法,例如:需求獲取、模組化、計劃等等。同時,我也認識到使用計算機解決實際問題的複雜性,人們認識表達的過程不斷反覆、逐步深化,軟體工程方法要提供給程式設計師們一種更加有效的對客觀世界問題域進行形式化的過程方法。

軟體工程學習心得體會3

學習了這門課程, 還有老師們的多元化教課,不但讓我從理論上掌握軟體工程,還有從不同的例項,讓理論和實踐得到了很好的結合。整一個學期下來,總的來說還是學到了很多東西的,有很多地方是值得肯定的,其實在我看來,軟體工程與其說是一門課程,不如說是一門思想。是一個如何去分析和處理問題的過程,應該說其範疇已經遠遠不止侷限於該門課程,成為了一個綜合的一個能夠解決問題的思想集合。

整本書的內容邏輯很清晰明瞭,由淺入深循序漸進,首先我就大概描述下我們所學的內容,第一章是從整體分析軟體工程這門學科的發展和所處的社會環境,接著後面的幾章深入分析了軟體開放過程和模式、軟體專案管理、計算機工程、需求分析、結構化分析建模以及基於UML面向物件分析建模等。接著我就詳細介紹下我對這門課程知識點的理解概括:

軟體:軟體是能夠完成預定功能和效能的可執行的計算機程式和使程式正常執行所需要的資料,加上描述程式的操作和使用的文件。軟體的特徵:①軟體是一種邏輯實體,而不是具體的物理實體,因而它具有抽象性。②軟體是通過人們的智力活動,把知識與技術轉化成資訊的一種產品。③軟體成為產品後,其生產只是簡單的拷貝,不同於硬體製造。④維護過程比硬體複雜的多,甚至會引發新的錯誤。軟體危機:指的是軟體開發和維護過程中遇到的一系列嚴重問題。出現軟體危機的原因:①軟體維護費用急劇上升,直接威脅計算機應用的擴大。②軟體生產技術進步緩慢。軟體工程是指導計算機軟體開發和維護的工程學科。 軟體生存週期:一個軟體從定義到開發、使用和維護,直到最終被棄用,要經歷一個漫長的時期,通常把軟體經歷的這個漫長的時期稱為生存週期。軟體的生存週期可分為八個階段:①問題定義;②可行性研究;③需求分析;④總體(概要)設計;⑤詳細設計;⑥編碼與單元測試;⑦綜合測試;⑧軟體維護;

瀑布模式:是傳統的軟體開發模式,其中的“瀑布”是對這個模式的形象表達,由山頂傾瀉下來的水,自頂向下、逐漸細化。其特點是:線性化過程;分為分析、設計、編碼、整合等幾個階段,並且各階段逐級推進,不允許跨越。里程碑管理;階段評審;文件驅動;簡潔便於工程應用的線性化過程步驟,並可以通過里程碑管理機制而使專案程序量化。其明顯的優點就是沒個階段結束前都要對所完成的階段成果進行評審,這使得軟體的錯誤能夠在個階段內儘早發現並儘早解決,總的來說瀑布模式具有良好的質量保證機制,有很強的生命力。

原型進化模式:對軟體進行直接模擬或模擬,只需要分析需求框架後進行原型建立,再對原型系統進行逐步細化與完善,通過版本更新逐步滿足使用者對於軟體的多方面需要。

增量模式:開發過程有三個任務域,分別是設計結構、開發構件和整合系統,它既有完善的工程管理機制,又能適應使用者需求變更,有利於質量的監控,並且各區域性基於構件構造,有利於逐步構建與完善;由於先交付核心構件可利於降低專案的技術風險。

螺旋模式:是一種可較好的規避開發風險過程的模式,專案是基於任務的螺旋式推進,每個螺旋由內之外分別是需求分析、軟體設計、系統整合、驗證與交付。

軟體開發的整個過程:①需要專案團隊,組建優秀的團隊可以開發出更搞質量的軟體產品。任務開發團隊要求小而精,成員大多在8人以內,主要成員有項

目負責人、開發人員、資料管理員和軟體測試員。②專案計劃是為了使軟體開發各項工作有秩序地進行,包括任務分配和基於里程碑的進度安排,甘特圖和任務網路圖是用來描述進度計劃的工具。專案計劃書可以作為軟體開發的工作指南。③專案成本估算,由於專案有來自各方面的成本包括工資開支、場地費、差旅費、裝置費和資料費等,但是軟體主要是對人力成本的估算,常用的方法有程式程式碼成本估演算法等。④軟體風險管理包括很多不確定的風險因素,如計劃風險、管理風險、需求風險、技術風險、人員風險、產品風險、使用者風險和商業風險等等,而風險管理的主要任務是:風險識別、風險評估、和風險防範。⑤軟體文件管理,軟體文件是工程模式軟體開發的成果體現,包括技術文件、管理文件和使用者文件。 ⑥軟體配置管理與軟體質量管理,包括配置規劃、軟體變更控制、軟體版本控制和質量控制計劃。

計算機系統由硬體、軟體、資料資源、網路資源、使用系統的人等諸多元素。有三種典型的.計算機體系結構:①主機結構,主機集中了全部智慧,並依靠終端介面與外部裝置連線。②Client/Server結構,智慧分佈於伺服器與客戶機,並依靠網路連線成系統,其中,伺服器處於核心位置,提供被動核心服務;客戶機處於邊緣位置,可主動訪問伺服器,尋求服務支援。③Browser/server結構,可適應網際網路遠端互動的特殊結構,基於Web伺服器構建。

需求分析:系統開發前期需求分析很重要,它是為了有效解決使用者問題的需要進行的一項工程活動,所需要考慮的需求問題是功能需求、資料需求、效能需求和介面需求,開發者承擔分析任務,核心是使用者。其步驟有三個:①獲取客戶需求,客戶泛指某個人或機構部門等,一般方法是調查,包括訪談、座談、問卷、跟班和收集資料,需求規約可表達使用者的軟體價值。②建立需求模型,它是使用者需求的圖解,一些常用的模型有:業務樹圖、用例圖、活動圖。分別用於結構化需求建模、系統業務舉例和反映系統工作流程。③進行需求驗證,要驗證的主要內容有:有效性驗證、一致性驗證、完整性驗證、現實性驗證和可檢驗性驗證。 結構化分析建模:它是建立在需求規約基礎上的,對軟體問題進行全面解說,包括四個方面:①資料建模,它與資料庫設計密切相關,ER圖涉及實體、關係、屬性等圖形元素,在業務層面建立資料庫概念模型,一般用於前期的建模構想。②功能建模,是對系統資料加工的圖解,資料流程圖是常用的建模工具,涉及資料介面、資料處理、資料流、資料儲存等圖形元素,用於描述系統資料加工細節。③行為建模,行為模型用於說哦名軟體系統與環境的互動,狀態轉換圖常用的軟體行為建模工具涉及狀態、事件等圖形元素。⑤資料字典,是用於定義軟體的元素,使軟體元素獲得嚴肅的、詳密的、精確的規格說明。需求分析模型中的資料、功能、行為等諸多方面的元素,都有必要通過資料字典給予細節說明,以達到對系統較完整全面的規格定義。

基於UML物件面向物件分析建模:UML是統一建模語言,有統一的語法、語義和語用規則,其建模過程的特點是:用例驅動、以構架為中心和增量迭代,通過包實現對模型的有效的一體化管理。包括三部分:①用例建模,它面向使用者需求的,能夠反映系統的使用者價值,用例圖的基本元素有用例、參與者、交流;用例之間有泛化、延伸和包含關係。②活動建模,活動圖用於描述系統動態過程,主要圖形元素有:活動、轉換、起點、終點、判斷、併發、同步、泳道等。可描述高層業務級活動,涉及整個業務流程,針對每個用例活動建模,反映用例內部活動細節。③類分析建模,這裡就只考慮實體類,實體類所代表的資料相互之間通常有一定的關係,依靠這種關係可形成有組織的程式資料結構。實體類之間的

主要資料關係有:關聯、聚類、泛化。

接下來我就簡單說下我上這門課的簡單的心得體會,我們是大四的學生了,也只有這個學期有課了,剛開始課表安排出來的時候覺得挺意外的,只有前八週有課,當時我還是有點小感動的,大四事情很多,有要考研的和工作的,大家也都有各自的事情,如果有16周的課,那麼每週課不是特別多,但是時間特別分散,也不能集中某段時間去做什麼事情。但是相對於老師的壓力也有,課程壓縮了相當於每節課的教學任務大大增加了,在加上有些假期沖掉課,就感覺我們好像上課學不到什麼東西,也只是一些關鍵的和考試掛鉤的才重點講,完全沒有擴充套件的時間和空間了。但是總的來說,學校開了這門課,我們上了這門課,總是學到了點東西的,不可能明明上了軟體工程這門課,卻像沒上一樣什麼都不懂。在上課的時候我還是很認真地去聽老師所講述的內容的,我覺得他的思想和我一向而來的培養計算機學生綜合素質的理解還是在一定程度上不謀而合了,所謂的需求獲取,那就是一個談判,辯論,交流的過程,已經不是單純的編程式設計序就能解決的問題了。從我所看到的聽到的來說,我最怕的就是計算機系的學生被別人說成是個帶著厚眼鏡的,只能夠在電腦前編程式設計序的,在交際場上不知道說什麼而一個字都說不出來的人。我覺得這樣的人進入社會之後是沒有什麼前途的,起碼他們缺乏了與人溝通交流的能力。而這門課程在一定程度上給了我們這些學生一個機會來鍛鍊自己在另一方面的能力,設想一下,一個又有技術又能夠與人交流合作的人所取得的成就自然要比一個單單隻會程式設計序的人要大得多。其次,這門課程教給了我們在完成一個實際專案時的一般程式及過程,我認為這是一份非常具有實際意義的教學內容。當我們在畢業之後,這是我們實際要運用的一項非常有用的技能,而且不僅僅侷限於軟體工程的範疇,我們即使是從事與其它行業,不也是要從需求獲取開始,一直有條有理地到最後成品的出爐嗎?應該說這就是這門課的價值所在。無論是在上課,還是在學生會裡面做學生工作,我都深深地感覺到,技術性的工作就好比變魔術,其實原理是非常簡單的,甚至可以說簡單的可笑,但是當你就是做出這麼一個簡單的東西出來之後,一些外行們有時候會用崇拜的眼光看著你,覺得你很厲害,很高深莫測。但是製作的過程他們卻不知道,也許知道之後他們只是會啞然失笑,原來這個東西的製作過程是如此的簡單。這個可以說就是技術的魅力了,而作為需求獲取及之後的一系列過程則是類似於魔術揭祕的過程,但是作為這個祕密我們並不需要一揭到底,至於揭的程度如何那就是我們那就是我們學出的程度如何了,我們要讓對方知道我們在做什麼?以及如何去做?這些東西需要我們以一定的技巧敘述出來,所起到的作用就是能夠讓對方瞭解自己的進度,卻又能夠不讓對方來干涉自己的工作過程。因為我們是技術員,對方只是外行,即使對方知道了這個魔術的操作過程,也並不代表他們就能夠向變著魔術的我們來隨便修改這個魔術的變法,況且我們能夠用不同的過程來得出一個同樣的結果,這個過程的得出的主動權如何掌握在我們的手上,就看我們如何以高明的方式來揭開這個魔術的謎底了。當然了,在純粹的理論上,我覺得開設這樣一門課程是很成功的。但是畢竟現實裡有太多的不確定的因素。最重要的因素就是授課的老師和聽課的學生。這兩個可以說是這門課成與敗的決定性的因素。

作為我們學生來說,應該負起比較主要的責任。在大學裡有了太多的基礎課程,基礎課程大多都比較枯燥無味,也許在第一個學期裡我們還能夠保持著新鮮感,但是在6學期之後,可以說再有新鮮感就是一件比較困難的事情了,我們都已經開始變得遲鈍了。其次的,沒有認識到這門課程的價值。這門課的價值我已

經在上面說過了,是不言而喻的。但是並不是每個同學畢業之後都回從事計算機行業,也不是每個同學都知道這門課程的意義已經不僅僅侷限於計算機這個範疇。或許有些人覺得反正以後不是這個發展方向,也就不在乎這個課程吧。我個人覺得這門課確實是挺好的,如果認真學必能學到很多東西,動手實踐能力和從整個大體分析系統開發的邏輯性思維也會明顯增強,不管以後從事哪個方面的工作,這對以後來說都是一筆很大的隱性財富。說到我自己對這麼課的學習,還是有點愧疚的,前面四周我每週每節課都去上的,並且上課也認真聽,一邊聽老師講課一邊自己看書本的介紹,但是後來我上這門課的次數就降低了,因為覺得時間很緊吧,而且老師上課的節奏我個人覺得有點慢,我都可以自己預習看到後面去了,但是這門課我還是每週至少上一節課的,雖然我早上7點多一點就出門,在自習室,但是有時候明明知道到了上課的時間,明明上課的地方離自習的地方不遠也不太想去。我記得有次上課時候老師生氣了,說來上課的人少,我仔細環顧了下四周發現確實人很少,稀稀疏疏的分散著,看起來確實不太舒服,讓我不得不反思了,這大學的教育到底怎麼了,怎麼到了大四大家都不來上課,雖然我不是每節課都來,但是我還是時不時來上課的,可能是比較浮躁吧,快畢業了,覺得上課學不到什麼實際的東西,要麼實際一點好好考研繼續深造,要麼去培訓增強實踐能力這樣才能較好的為找個滿意的工作做好鋪墊。

《軟體工程》課程既強調基本概念和基本知識的理解和掌握,又側重軟體專案的分析、設計、實現和維護的基本技能。比較注意“點”和“面”的結合。我還是蠻喜歡這門課的,通過對這門課的學習讓我意識到理論學習很重要,實踐更重要,實踐是檢驗真理的唯一標準,只有將理論與實際結合,才更能發揮我們所學的知識的作用,更能直接的創造效益,社會和國家做出貢獻。