久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

學習軟件工程心得體會[五篇]

時間:2019-05-12 15:46:08下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《學習軟件工程心得體會》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《學習軟件工程心得體會》。

第一篇:學習軟件工程心得體會

學習軟件工程的心得體會

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

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

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

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

原型進化模式:對軟件進行直接模擬或仿真,只需要分析需求框架后進行原型創建,再對原型系統進行逐步細化與完善,通過版本更新逐步滿足用戶對于軟件的多方面需要。

增量模式:開發過程有三個任務域,分別是設計結構、開發構件和集成系統,它既有完善的工程管理機制,又能適應用戶需求變更,有利于質量的監控,并且各局部基于構件構造,有利于逐步構建與完善;由于先交付核心構件可利于降低項目的技術風險。

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

軟件開發的整個過程:①需要項目團隊,組建優秀的團隊可以開發出更搞質量的軟件產品。任務開發團隊要求小而精,成員大多在8人以內,主要成員有項目負責人、開發人員、資料管理員和軟件測試員。②項目計劃是為了使軟件開發各項工作有秩序地進行,包括任務分配和基于里程碑的進度安排,甘特圖和任務網絡圖是用來描述進度計劃的工具。項目計劃書可以作為軟件開發的工作指南。③項目成本估算,由于項目有來自各方面的成本包括工資開支、場地費、差旅費、設備費和資料費等,但是軟件主要是對人力成本的估算,常用的方法有程序代碼成本估算法等。④軟件風險管理包括很多不確定的風險因素,如計劃風險、管理風險、需求風險、技術風險、人員風險、產品風險、用戶風險和商業風險等等,而風險管理的主要任務是:風險識別、風險評估、和風險防范。⑤軟件文檔管理,軟件文檔是工程模式軟件開發的成果體現,包括技術文檔、管理文檔和用戶文檔。⑥軟件配置管理與軟件質量管理,包括配置規劃、軟件變更控制、軟件版本控制和質量控制計劃。

計算機系統由硬件、軟件、數據資源、網絡資源、使用系統的人等諸多元素。有三種典型的計算機體系結構:①主機結構,主機集中了全部智能,并依靠終端接口與外部設備連接。②Client/Server結構,智能分布于服務器與客戶機,并依靠網絡連接成系統,其中,服務器處于核心位置,提供被動核心服務;客戶機處于邊緣位置,可主動訪問服務器,尋求服務支持。③Browser/server結構,可適應互聯網遠程交互的特殊結構,基于Web服務器構建。

需求分析:系統開發前期需求分析很重要,它是為了有效解決用戶問題的需要進行的一項工程活動,所需要考慮的需求問題是功能需求、數據需求、性能需求和接口需求,開發者承擔分析任務,核心是用戶。其步驟有三個:①獲取客戶需求,客戶泛指某個人或機構部門等,一般方法是調查,包括訪談、座談、問卷、跟班和收集資料,需求規約可表達用戶的軟件價值。②建立需求模型,它是用戶需求的圖解,一些常用的模型有:業務樹圖、用例圖、活動圖。分別用于結構化需求建模、系統業務舉例和反映系統工作流程。③進行需求驗證,要驗證的主要內容有:有效性驗證、一致性驗證、完整性驗證、現實性驗證和可檢驗性驗證。

結構化分析建模:它是建立在需求規約基礎上的,對軟件問題進行全面解說,包括四個方面:①數據建模,它與數據庫設計密切相關,ER圖涉及實體、關系、屬性等圖形元素,在業務層面建立數據庫概念模型,一般用于前期的建模構想。②功能建模,是對系統數據加工的圖解,數據流程圖是常用的建模工具,涉及數據接口、數據處理、數據流、數據存儲等圖形元素,用于描述系統數據加工細節。③行為建模,行為模型用于說哦名軟件系統與環境的交互,狀態轉換圖常用的軟件行為建模工具涉及狀態、事件等圖形元素。⑤數據字典,是用于定義軟件的元素,使軟件元素獲得嚴肅的、詳密的、精確的規格說明。需求分析模型中的數據、功能、行為等諸多方面的元素,都有必要通過數據字典給予細節說明,以達到對系統較完整全面的規格定義。

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

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

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

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

第二篇:軟件工程學習心得體會

軟件工程學習心得體會范文

我們從一些事情上得到感悟后,寫一篇心得體會,記錄下來,這樣可以幫助我們總結以往思想、工作和學習。應該怎么寫才合適呢?以下是小編為大家整理的軟件工程學習心得體會范文,僅供參考,歡迎大家閱讀。

軟件工程學習心得體會范文1

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

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

軟件:軟件是能夠完成預定功能和性能的可執行的計算機程序和使程序正常執行所需要的數據,加上描述程序的操作和使用的文檔。

軟件的特征:①軟件是一種邏輯實體,而不是具體的物理實體,因而它具有抽象性。②軟件是通過人們的智力活動,把知識與技術轉化成信息的一種產品。③軟件成為產品后,其生產只是簡單的拷貝,不同于硬件制造。④維護過程比硬件復雜的多,甚至會引發新的錯誤。軟件危機:指的是軟件開發和維護過程中遇到的一系列嚴重問題。出現軟件危機的原因:①軟件維護費用急劇上升,直接威脅計算機應用的擴大。②軟件生產技術進步緩慢。軟件工程是指導計算機軟件開發和維護的工程學科。軟件生存周期:一個軟件從定義到開發、使用和維護,直到最終被棄用,要經歷一個漫長的時期,通常把軟件經歷的這個漫長的時期稱為生存周期。

軟件的生存周期可分為八個階段:①問題定義;②可行性研究;③需求分析;④總體(概要)設計;⑤詳細設計;⑥編碼與單元測試;⑦綜合測試;⑧軟件維護;

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

原型進化模式:對軟件進行直接模擬或仿真,只需要分析需求框架后進行原型創建,再對原型系統進行逐步細化與完善,通過版本更新逐步滿足用戶對于軟件的多方面需要。

增量模式:開發過程有三個任務域,分別是設計結構、開發構件和集成系統,它既有完善的工程管理機制,又能適應用戶需求變更,有利于質量的監控,并且各局部基于構件構造,有利于逐步構建與完善;由于先交付核心構件可利于降低項目的技術風險。

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

軟件開發的整個過程:①需要項目團隊,組建優秀的團隊可以開發出更搞質量的軟件產品。任務開發團隊要求小而精,成員大多在8人以內,主要成員有項目負責人、開發人員、資料管理員和軟件測試員。②項目計劃是為了使軟件開發各項工作有秩序地進行,包括任務分配和基于里程碑的進度安排,甘特圖和任務網絡圖是用來描述進度計劃的工具。項目計劃書可以作為軟件開發的工作指南。③項目成本估算,由于項目有來自各方面的成本包括工資開支、場地費、差旅費、設備費和資料費等,但是軟件主要是對人力成本的估算,常用的方法有程序代碼成本估算法等。④軟件風險管理包括很多不確定的風險因素,如計劃風險、管理風險、需求風險、技術風險、人員風險、產品風險、用戶風險和商業風險等等,而風險管理的主要任務是:風險識別、風險評估、和風險防范。⑤軟件文檔管理,軟件文檔是工程模式軟件開發的成果體現,包括技術文檔、管理文檔和用戶文檔。⑥軟件配置管理與軟件質量管理,包括配置規劃、軟件變更控制、軟件版本控制和質量控制計劃。

計算機系統由硬件、軟件、數據資源、網絡資源、使用系統的人等諸多元素。有三種典型的計算機體系結構:①主機結構,主機集中了全部智能,并依靠終端接口與外部設備連接。②Client/Server結構,智能分布于服務器與客戶機,并依靠網絡連接成系統,其中,服務器處于核心位置,提供被動核心服務;客戶機處于邊緣位置,可主動訪問服務器,尋求服務支持。③Browser/server結構,可適應互聯網遠程交互的特殊結構,基于Web服務器構建。

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

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

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

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

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

軟件工程學習心得體會范文2

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

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

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

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

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

1.可行性分析就是關于當前項目能不能干的分析結果。

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

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

4.軟件設計這就是對程序的每一個模塊的詳細設計的說明文檔。

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

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

軟件工程學習心得體會范文3

在本學期的軟件工程課程的學習中,我們學習了十一章的內容。第一章軟件與軟件工程的概念,這一章主要講解的是一些概念性和基礎性的內容,例如軟件的概念、特性,軟件危機的主要表現,軟件工程的概念以及軟件生存期、典型生存期模型等等。第二章軟件工程方法與工具,這一章主要對軟件工程方法進行介紹,包括三種方法:傳統方法、面向對象方法、形式化方法。還引出了工具UML。第三章軟件需求獲取與結構化分析方法,本章詳細介紹了需求獲取與需求分析階段的任務以及結構化分析方法,畫分層的數據流圖、E-R圖以及狀態圖式本節的重點。第四章結構化分析方法,這一章重點講解了使用變換型映射方法和事務型映射方法生成初始的模塊結構以及模塊結構的改進。第五章編碼,這一章重點講解了編碼的風格及規范,還告訴我們編碼規范說帶來的好處,并告誡我們將來一點要形成好的編碼風格。第六章軟件測試方法,本章講解了軟件測試相關的概念及重要性,軟件測試與開發各個階段的關系;還介紹了白盒測試技術以及黑河測試技術。第七章統一建模語言UML概述,本章詳細介紹了UML的基本模式、事物、關系及建模時用到的各種圖進行了介紹。第八章面向對象分析,這一章主要講解了面向對象分析的3種模型,包括功能模型、靜態模型和動態模型。第九章軟件體系結構與設計模式,本章對軟件體系結構的基本概念、典型風格等進行了講解。第十章面向對象設計,本章的重點是對面向對象分析時建立的對象模型進行調整和細化。第十一章軟件維護,本章主要介紹軟件維護的任務、軟件維護活動以及軟件維護方法進行了介紹。

要學習軟件工程,學會如何系統的思考,以及養成良好的編碼習慣,想學好軟件工程,就必須知道軟件工程的目標、過程和原則:軟件工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟件產品達到預期功能的程度。可用性指軟件基本結構、實現及文檔為用戶可用的程度。開銷合宜是指軟件開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的`約束。

軟件工程過程:生產一個最終能滿足需求且達到工程目標的軟件產品所需要的步驟。軟件工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的接口定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿于整個開發過程,實現完成后的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。

軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發過程中必須遵循的原則。

我們學習了詳細設計的方法,其原則是過程描述是否易于理解、復審和維護,進而過程描述能夠自然地轉換成代碼,并保證詳細設計與代碼完全一致。包括程序流程圖、N-S圖、PAD圖、HIPO圖

程序流程圖:程序流程圖又稱之為程序框圖,它是軟件開發者最熟悉的一種算法表達工具。它獨立于任何一種程序設計語言,比較直觀和清晰地描述過程的控制流程,易于學習掌握。在流程圖中只能使用下述的五種基本控制結構:順序型;選擇型;while型循環;until型循環;多情況型選擇。

N-S圖:一種符合結構化程序設計原則的圖形描述工具,稱為盒圖,又稱為N-S圖。在N-S圖中,為了表示五種基本控制結構,規定了五種圖形構件。順序型;選擇型;WHILE重復型;UNTIL重復型;多分支選擇型。

PAD圖:它是用結構化程序設計思想表現程序邏輯結構的圖形工具。PAD也設置了五種基本控制結構的圖示,并允許遞歸使用。

HIPO圖:HIPO圖是由一組IPO圖加一張HC圖組成。它是美國IBM公司在軟件設計中使用的主要表達工具。

HC圖既是層次圖,用于表示軟件的分層結構。HC圖中的每一個模塊,均可用一張IPO圖來描述。IPO圖由輸入、處理和輸出三個框組成,需要時還可以增加一個數據文件框,這種圖形的優點,是能夠直觀地顯示輸入—處理—輸出三者之間的聯系。

還有測試方法:按照測試過程是否在實際應用環境中來分,有靜態分析與動態測試。測試方法有分析方法(包括靜態分析法與白盒法)與非分析方法(稱黑盒法)。

靜態分析技術:不執行被測軟件,可對需求分析說明書、軟件設計說明書、源程序做結構檢查、流程分析、符號執行來找出軟件錯誤。

動態測試技術:當把程序作為一個函數,輸入的全體稱為函數的定義域,輸出的全體稱為函數的值域,函數則描述了輸入的定義域與輸出值域的關系。

還學習了其他很多工具、語言、方法等,雖然不是都學得很透徹,但我相信在今后的學習中一定會慢慢的完善的。

軟件工程對于初學者來說,知識基礎較薄弱,對一些應用操作、概念、工具方法等理解起來較為困難,要能從整體概念上較好地理解和把握、學好軟件工程,不是僅僅把幾本專業書籍細致地看幾遍,然后上機練習幾次就可以成功,學習過程中要注意多看多練要注意結合實際,更要多思考,面對錯誤不要一范就問,要嘗試自己去解決。但是還要注意什么都學,肯定是什么都學不透的,要集中精力打攻堅戰,學習軟件工程首先要明白自己的學習目標究竟是什么,根據自己的實際工作出發,有針對性的在相應的學習方向上進行提高,制定出詳細的學習規劃。還要注意與其他科目的相輔相成,就像我們在學習面向對象分析的時候要結合大一學習的面向對象及其方法學這一專業科目進行研究拓展;在學習語言時,要看看與C語言的聯系,多思多想,把從各個科目學到的知識通匯貫通。

在軟件工程的學習中,我了解到了軟件并非是一些代碼這么簡單,在開發軟件的過程中,編寫代碼的工作量其實只占不到所有工程量的30%,而后期的管理和維護更是占了60%到80%之多。一個完整的項目規劃須包括,軟件的定義,可行性分析報告,項目開發計劃,軟件需求說明書,概要設計說明書,詳細設計說明書,用戶操作手冊,測試計劃,測試分析報告,開發進度報告,項目開發總結報告,軟件維護手冊,軟件問題報告,軟件修改報告,等多個文檔,每個文檔都要上級驗收審查,而文檔數量眾多,要做好這點真的不是很容易,而恰恰寫好文檔正能保證完成軟件工程其中一個目的的關鍵,既研究如何用最小的開銷做出生存期較長的軟件,再加上各個階段都要進行周密的策劃、詳細的分工部署和人員安排,且各階段要據具體情況不斷的反復才能達成,所以代碼只是開發軟件這個浩大的工程的一個小小的過程。

而編碼的學習中,我更了解到形成自己獨特的規范的編碼風格是非常重要的事。因為這影響到了軟件后期繁重的維護,大家都要閱讀你的程序,如果你寫的程序毫無規范可言,那么別人怎么能讀懂你的程序?讀不懂程序,維護又從何談起呢?所以,我們在今后的學習中,一定要注意這方面的培養,在寫程序的過程中,要逐步的在規范的基礎上形成屬于自己的風格,即方便自己的修改,也方便日后他人的閱讀。

在學習中,我們還要注意比較三種方法的優缺點,例如:傳統方法雖然使軟件擺脫了混亂和無序,但其在適應需求變化的方面不夠靈活,而且傳統方法要么面向行為,要么面向數據,缺乏兩者的有機結合。而面向對象方法的程序設計和問題求解更符合人們日常自然的思維習慣,適合大型、復雜及交互性比較強的系統。形式化方法則是一中基于形式化數學變換的軟件開發方法,它可將系統的規格說明轉換為可執行的程序。

在今后的學習中要注意多讀書、多思考、多練習、多討論,不斷熟悉書本的基礎,并以此為基礎將其擴散開來,應用于今后的實踐。不斷鍛煉自己,向一名合格的程序設計師邁進。

第三篇:軟件工程學習心得體會[范文]

軟件工程學習心得體會

軟件工程學習心得體會一:學習軟件工程的心得體會

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

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

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

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

原型進化模式:對軟件進行直接模擬或仿真,只需要分析需求框架后進行原型創建,再對原型系統進行逐步細化與完善,通過版本更新逐步滿足用戶對于軟件的多方面需要。

增量模式:開發過程有三個任務域,分別是設計結構、開發構件和集成系統,它既有完善的工程管理機制,又能適應用戶需求變更,有利于質量的監控,并且各局部基于構件構造,有利于逐步構建與完善;由于先交付核心構件可利于降低項目的技術風險。

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

軟件開發的整個過程:①需要項目團隊,組建優秀的團隊可以開發出更搞質量的軟件產品。任務開發團隊要求小而精,成員大多在8人以內,主要成員有項目負責人、開發人員、資料管理員和軟件測試員。②項目計劃是為了使軟件開發各項工作有秩序地進行,包括任務分配和基于里程碑的進度安排,甘特圖和任務網絡圖是用來描述進度計劃的工具。項目計劃書可以作為軟件開發的工作指南。③項目成本估算,由于項目有來自各方面的成本包括工資開支、場地費、差旅費、設備費和資料費等,但是軟件主要是對人力成本的估算,常用的方法有程序代碼成本估算法等。④軟件風險管理包括很多不確定的風險因素,如計劃風險、管理風險、需求風險、技術風險、人員風險、產品風險、用戶風險和商業風險等等,而風險管理的主要任務是:風險識別、風險評估、和風險防范。⑤軟件文檔管理,軟件文檔是工程模式軟件開發的成果體現,包括技術文檔、管理文檔和用戶文檔。⑥軟件配置管理與軟件質量管理,包括配置規劃、軟件變更控制、軟件版本控制和質量控制計劃。

計算機系統由硬件、軟件、數據資源、網絡資源、使用系統的人等諸多元素。有三種典型的計算機體系結構:①主機結構,主機集中了全部智能,并依靠終端接口與外部設備連接。②Client/Server結構,智能分布于服務器與客戶機,并依靠網絡連接成系統,其中,服務器處于核心位置,提供被動核心服務;客戶機處于邊緣位置,可主動訪問服務器,尋求服務支持。③Browser/server結構,可適應互聯網遠程交互的特殊結構,基于Web服務器構建。

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

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

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

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

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

>軟件工程學習心得體會二:軟件工程學習心得>>(3520字)

通過這半學期我對軟件工程的學習,老師在課堂上從軟件工程的基礎到用戶的需求分析,最后到黑盒白盒測試通過自身做過的一些案例,生動形象的講解了軟件工程這門本身枯燥乏味的課程,這不僅增強了學生學習的積極性,也通過讓我們自己去做一些需求分析,我們從中學到了許多知識。

老師不僅僅在課堂上對我們悉心的知道,在課外還讓我們多看一些有關軟件工程方面最前沿的理論,通過這段時間我讀了《軟件工程——實踐者的研究方法》、《件工程案例》這兩本書,通過自己的讀書學習,我有以下心得體會。

眾所周知軟件對于一個公司,一個企業乃至一個國家都是十分重要的,因此一個軟件的維護也十分重要,下面我就講一些關于軟件維護的知識。

維護階段是軟件生存期中時間最長的一個階段,也是花費的精力和費用最多的一個階段。由于操作系統軟件和基礎軟件版本升級或應用管理系統軟件的不斷開發、完善,需要對軟件進行維護。但當運行環境改變或者系統功能、性能需求發生變化,使原軟件不能通過維護的手段滿足用戶需求時,則需要進行軟件更新。

1.軟件維護的類型:

軟件的開發過程對軟件的維護有較大的影響。若不采用軟件工程的方法開發軟件,則軟件只有程序而無文檔,維護工作非常困難,這是一種非結構化的維護。若采用軟件工程的方法開發軟件,則各階段都有相應的文檔,容易進行維護工這是一種結構化的維護。非結構化維護活動只能從閱讀、理解和分析源程序開始,這樣做難以弄清系統功能、軟件結構、數據結構等問題,常常造成誤解。同時由于沒有測試文檔,也不可能進行回歸測試很難保證程序的正確性。這種軟件維護方法僅在軟件工程時代之前采用。在進行結構化維護活動時,需從評價需求說明開始,弄清楚軟件功能、性能上的改變;對設計說明文檔進行評價,并進行修改和復查;根據設計的修改,進行程序的變動;根據測試文檔中的測試用例進行回歸測試;最后,把修改后的軟件再次交付使用。這對于減少精力、減少花費和提高軟件維護效率有很大的作用。

2.軟件維護的困難:

軟件維護的困難主要是由于軟件需求分析和開發方法的缺陷造成的。軟件生存周期中的開發階段沒有嚴格而科學的管理和規劃,就會引起軟件運行時的維護困難。這種困難表現在如下幾個方面。

(1)讀懂別人的程序是困難的。

(2)文檔的不一致性。這種不一致性表現在各種文檔之間的不一致以及文檔與程序之的不一致。

(3)軟件開發和軟件維護在人員和時間上存在差異。

(4)軟件維護不是一項吸引人的工作。

3.軟件維護的費用:

軟件維護的費用在總費用中的比重是不斷增加的,它在 1970 年占 35%~40%,1980 年上升到 40%~60%,1990 年上升到 70%~80%。軟件維護費用不斷上升,這只是軟件維護有形的代價,另外還有無形的代價,即要占用更多的資源。由于大量軟件的維護活動要使用較多的硬件、軟件和軟件人員等資源,這樣一來,投入新的軟件開發的資源就因不足而受到影響。由于維護時的改動,在軟件中引入了潛在的故障,從而降低了軟件的質量。

4.軟件維護的分類

軟件維護有改正性維護、適應性維護、完善性維護和預防性維護 4 類。

(1)改正性維護。在軟件交付使用后,由于開發時測試的不徹底、不完全,必然會有一部分隱藏的錯誤被帶到運行階段來,這些隱藏下來的錯誤在某些特定的使用環境下就會暴露。為了識別和糾正軟件錯誤、改正軟件性能上的缺陷、排除實施中的誤使用,應當進行的診斷和改正錯誤的過程,就叫做改正性維護。例如,改正性維護可以是改正原來程序中未使開關(off/on)復原的錯誤;解決開發時未能測試各種可能情況帶來的問題;解決原來程序中遺漏處理文件中最后一個記錄的問題等。

(2)適應性維護。隨著計算機的飛速發展,外部環境(新的硬、軟件配臵)或數據環境(數據庫、數據格式、數據輸入/輸出方式、數據存儲介質)可能發生變化,為了使軟件適應這種變化,而去修改軟件的過程就叫做適應性維護。例如,適應性維護可以是為現有的某個應用問題實現一個數據庫;對某個指定的事務編碼進行修改,增加字符個數;調整兩個程序,使它們可以使用相同的記錄結構;修改程序,使其適用于另外一種終端。

(3)完善性維護。在軟件的使用過程中,用戶往往會對軟件提出新的功能與性能要求。為了滿足這些要求,需要修改或再開發軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性,這種情況下進行的維護活動叫做完善性維護。例如,完善性維護可能是修改一個計算工資的程序,使其增加新的扣除項目;縮短系統的應答時間,使其達到特定的要求;把現有程序的終端對話方式加以改造,使其具有方便用戶使用的界面;改進圖形輸出;增加聯機幫助(Help)功能;為軟件的運行增加監控設施等。在維護階段的最初一兩年,改正性維護的工作量較大。隨著錯誤發現率急劇降低,并趨于穩定,就進入了正常使用期。然而,由于改造的要求,適應性維護和完善性維護的工作量逐步增加,在這種維護過程中又會引入新的錯誤,從而加重了維護的工作量。實踐表明,在幾種維護活動中,完善性維護所占的比重最大。即大部分維護工作是改變和加強軟件,而不是糾錯。所以,維護并不一定是救火式的緊急維修,而可以是有計劃、有預謀的一種再開發活動。事實證明,來自用戶要求而擴充、加強軟件功能、性能的維護活動約占整個維護工作的 50%。

(4)預防性維護。除了以上三類維護之外,還有一類維護活動,叫做預防性維護。這是為了提高軟件的可維護性、可靠性等,為以后進一步改進軟件打下良好基礎。通常,預防性維護定義為:“把今天的方法學用于昨天的系統以滿足明天的需要”。也就是說,采用先進的軟件工程方法對需要維護的軟件或軟件中的某一部分(重新)進行設計、編制和測試。

在整個軟件維護階段所花費的全部工作量中,預防性維護只占很小的比例,而完善性維護占了幾乎一半的工作量,軟件維護活動所花費的工作占整個生存期工作量的 70%以上。這是由于在漫長的軟件運行過程中需要不斷對軟件進行修改,以改正新發現的錯誤、適應新的環境和用戶新的要求。這些修改需要花費很多精力和時間,而且有時修改不正確,還會引入新的錯誤。同時,軟件維護技術不像開發技術那樣成熟、規范化,消耗工作量自然就比較多。

5.軟件維護:

(1)數據維護

大多應用軟件的數據隨著應用規模的日益擴大和用戶環境的迅速發展,不但基礎信息,其他所有專題信息也需要經常地進行維護和更新。應根據系統的規模和實際需求,建立系統的數據維護更新機制,規定數據維護更新的周期,使系統的所有數據均相對地始終處于最新的狀態。數據對一個軟件的重要性,越來越被人們認識。但是,數據如果不經常更新,則有可能失去應用價值,這是每個軟件維護和運行所應重視的問題。

(2)硬件維護

在軟件運行的過程中,應建立硬件設備的日常維護制度,并根據設備的使用說明進行及時的維護,以保證設備完好和系統的正常運行。但當設備的處理能力達不到要求,或者設備本身已經過時、淘汰,或者設備損壞,買不到零配件,或者修理不值得時,應考慮硬件更新。系統硬件更新應按關于硬件評價指標的規定要求重新進行選型。

(3)軟件維護的原因

要求進行軟件維護的原因多種多樣,歸結起來有 3 種類型。改正在特定的使用條件下暴露出來的一些潛在程序錯誤或設計缺陷。因在軟件使用過程中數據環境發生變化(例如,一個事務處理代碼發生改變)或處理環境發生變化(例如,安裝了新的硬件或操作系統),需要修改軟件以適應這種變化。用戶和數據處理人員在使用時常提出改進現有功能、增加新的功能,以及改善總體性能的要求,為滿足這些要求,就需要修改軟件把這些要求納入到軟件之中。

6.軟件維護的過程

一個維護申請提出之后,經評審需要維護,則按下列過程實施維護。

(1)首先要確定進行維護的類型。在許多情況下,用戶可以把一個請求看作改正性維護,而軟件開發者可以把這個請求看作適應性或完善性維護。此時,對不同觀點就需要協商解決。

(2)對改正性維護從評價錯誤的嚴重性開始。如果存在一個嚴重的錯誤,例如,一個系統的重要功能不能執行,則有管理者組織有關人員立即開始分析問題。如果錯誤并不嚴重,則改正性維護與軟件其他任務一起進行,統一安排,按計劃進行維護工作。

(3)適應性和完善性維護如同它是另一個開發工作一樣,建立每個請求的優先權,安排所需求的工作。

(4)實施維護任務。不管維護類型如何,大體上要開展相同的技術工作。這些工作包括修改軟件設計、必要的代碼修改、單元測試、集成測試、確認測試及復審。每種維護類型的側重點不一樣。

(5)“救火”式維護。并不完全適合上面所述的經過仔細考慮的維護申請,而是對于出現突發性的重大故障的維護。

以上是我對軟件工程中軟件維護的初步認識,以后我會更加努力的學習軟件工程這門課程。

>軟件工程學習心得體會三:學習軟件工程的心得體會>>(933字)

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

軟件工程是指導計算機軟件開發和維護的工程學科。

軟件生存周期:一個軟件從定義到開發、使用和維護,直到最終被棄用,要經歷一個漫長的時期,通常把軟件經歷的這個漫長的時期稱為生存周期。軟件的生存周期可分為八個階段:①問題定義;②可行性研究;③需求分析;④總體(概要)設計;⑤詳細設計;⑥編碼與單元測試;⑦綜合測試;⑧軟件維護; 瀑布模式:原型進化模式:增量模式:螺旋模式:

軟件開發的整個過程:①需要項目團隊,組建優秀的團隊可以開發出更搞質量的軟件產品。任務開發團隊要求小而精,成員大多在8人以內,主要成員有項目負責人、開發人員、資料管理員和軟件測試員。②項目計劃是為了使軟件開發各項工作有秩序地進行,包括任務分配和基于里程碑的進度安排,甘特圖和任務網絡圖是用來描述進度計劃的工具。項目計劃書可以作為軟件開發的工作指南。③項目成本估算,由于項目有來自各方面的成本包括工資開支、場地費、差旅費、設備費和資料費等,但是軟件主要是對人力成本的估算,常用的方法有程序代碼成本估算法等。④軟件風險管理包括很多不確定的風險因素,如計劃風險、管理風險、需求風險、技術風險、人員風險、產品風險、用戶風險和商業風險等等,而風險管理的主要任務是:風險識別、風險評估、和風險防范。⑤軟件文檔管理,軟件文檔是工程模式軟件開發的成果體現,包括技術文檔、管理文檔和用戶文檔。⑥軟件配置管理與軟件質量管理,包括配置規劃、軟件變更控制、軟件版本控制和質量控制計劃。

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

>軟件工程學習心得體會四:《軟件工程》學習心得>>(2931字)

一、軟件工程的定義

軟件工程(Software Engineering,簡稱為SE)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它涉及到程序設計語言,數據庫,軟件開發工具,系統平臺,標準,設計模式等方面。在現代社會中,軟件應用于多個方面。典型的軟件比如有電子郵件,嵌入式系統,人機界面,辦公套件,操作系統,編譯器,數據庫,游戲等。同時,各個行業幾乎都有計算機軟件的應用,比如工業,農業,銀行,航空,政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。

二、軟件工程的目標

在給定成本、進度的前提下,開發出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性并且滿足用戶需求的軟件產品。

三、軟件工程的原則

是指圍繞工程設計、工程支持以及工程管理在軟件開發過程中必須遵循的原則。軟件工程的原則有以下四項基本原則:1)選取適宜開發范型;2)采用合適的設計方法;3)提供高質量的工程支持;4)重視開發過程的管理。

四、軟件工程的由來

據說上個世紀60年代的程序員都是天才,寫程式就像寫日記一樣,吃過晚飯沒事干隨手就可以寫幾個出來玩,第二天還可以拿去賣錢。所以那時候程序員在大家眼中,跟那些搞美術,音樂的是一類的,被稱為“藝術家”。

但事過境遷,就像任何人都不會嫌錢多一樣,永遠都不會有人嫌CPU快的。于是,隨之而來的就是硬件的迅猛發展和越來越變態的軟件。記得以前常去同學家拷游戲,通常幾張軟盤就可以搞定,而現在的游戲,兩三張CD-ROM都算少的了。像如此龐大復雜的怪物,就算你是如何的天才,一個人肯定是搞不定的,否則,等你把程式寫出來,人家Intel連奔騰N都開發出來了。既要開發大型的軟件還要追求速度(這樣才能賺錢),于是很自然地,合作的概念被提了出來。

在開始合作的初期,由于大家都習慣了當很有個性的“藝術家”,結果可想而知,一個是畢加索派的,而另一個是意大利印象派的,再加上一個畫潑墨山水畫的,要是像這樣湊出來的東西都能不出問題的話,那么Bill早就轉行了。所以,那時侯的大型軟件,據說“藍屏”比WINDOWS 98還多。

馬克思告訴我們,萬物都是從量變到質變的。隨著問題的不斷涌現,一些master們開始嘗試去總結經驗,并歸納了一些規范去指導軟件的分析,設計,實現,測試,維護,人員交流協作,項目預算及時限控制等方方面面,這就是軟件工程的前身。

軟件工程到現在已發展了30多年,可以說是相當成熟的了。現在開發軟件,據說都是一大幫人排排坐,按著一整套的規章制度來干活。于是,軟件開發成了“工程”,程序員也就淪為“工人”了。

五、軟件工程的核心

軟件工程,說白了,就是這樣一套用于軟件的團隊開發,以提高軟件質量和程序員工作效率為目的的規范。其核心就是,對于軟件開發的5個重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。簡單來說,就是對于總體的組織和對于局部的實現。

六、軟件開發過程

開發軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實現的核心功能大概構思一種或多種實現方法,并從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和DEBUG。除了第一步外,其余的步驟應該是一個循環的過程。既然軟件開發是一個具有不可預知性和變化性的動態的過程,那么,對其每一個步驟的組織,即周期模型,就必須包容它的這種性質。

具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。文檔的作用在于以下3個方面:一是可以幫助整理思路。把要完成的目標,系統的結構,每一個模塊的功能等整理一下,然后分門別類地寫下來,這樣在開發的過程中,就有據可依,在需要回過頭來修改設計的時候,也有證可考。二是便于交流。想象一下開會時的情形。一大幫子人爭先恐后,激烈辯論,然后會終人散,思想靈感也就隨之散了,結果是開了半天會,什么也沒討論出來。這就是后來會議記錄被發明出來的原因。在腦子里的東西一多,就會散而且亂,用語言表達的時候,很容易會丟三落四,別人也很難把握住你的思想。但經過整理寫在紙上以后,則會清晰得多,無論是別人還是自己,看起來都可以一目了然。三是可以作為以后維護時的參考資料。有一句名言:“筆和紙永遠都比大腦可靠”,意思就是說,放在大腦里的東西說不準哪天就忘了,但寫在紙上的東西,只要不發生什么意外,一般是丟不了的。當過了一段時間,你需要再回過頭來修改你的程序的時候,你就會發現,你以前寫下的文檔實在太有價值了。別指望你的源代碼,對于復雜一點的程序來說,單純的源代碼幾乎會扼殺掉你所有的時間。

可行性分析 就是關于當前項目能不能干的分析結果。主要考慮的方面包括:是否能把這個項目開發出來;假如可以的話,預計需要多少時間,能否滿足客人的時間要求;需要多少人力和資金的投入;最重要的是,這個項目能否賺錢,能賺多少。還要對可能存在的風險進行評估。

七、軟件工程學習感悟

時間飛逝,不知不覺間《軟件工程》的學習完了。在這將近半學期的學習中,雖然我不能說我將《軟件工程》學習的有多么的好,但是通過學習,我還是受益良多。

在以前,我一直對軟件存在一些偏見或則是誤解,認為軟件就是程序,軟件的開發就是編寫程序,只要編完了程序,一切也就ok了,而且我還片面的認為只要我掌握了時下最新的語言和工具,那么我就能寫程序了。一個人,只要會編程,就能寫軟件,就是程序員;一個公司,只要招聘一些程序員,就能開發好的軟件產品。只要有幾個有經驗的程序員,再找些兼職的大學生,就能組成一個軟件公司。

但是通過了《軟件工程》這門課的學習,使我認識到了我以前的錯誤。軟件其實不僅僅是程序,軟件開發其實也不僅僅是編寫程序,軟件是思想在硬件上的載體和體現,處理的是邏輯和信息。唯有對軟件和軟件的開發過程,有充分的認識,才能更好的開發出,過程受控、質量受控的軟件產品。

而且在以前,我一直以為軟件的開發其實是一件很輕松快樂的事情,只要一天坐在電腦旁敲敲鍵盤,那么一切就可以了,但是現在我才發現,我以前的很多的思想是多么的膚淺可笑。編程其實是一種樂趣和苦惱共存的一項創造性活動。因為編程不僅能夠滿足我們內心深處進行創造的渴望,而且還能愉悅我們內在的情感。

而且通過學習《軟件工程》,我還學到了很多其他的東西。比如通過學習《軟件工程》,特別是教員的課程講解和每次用實際的軟件現場的講解,為我提供了一個盡早接觸世界工作和真實項目的機會。讓我知道如何在以最小的成本中,訓練自己的基本工程素質和能力,如何激發自己的積極性等。而且通過學習《軟件工程》,還讓我認識和培養了我的團隊協作能力,特別是對于我們這些在校的學生來說,這種學習更是能讓我在以后工作中少走很多的彎路。

所以,通過《軟件工程》的學習,我是真的學習到了很多有用的東西,讓我明白了很多的道理。在此我對教員的辛勤教育表示感謝,因為是你讓我學習到了這些,是我獲益良多。

第四篇:軟件工程學習心得體會

軟件工程學習心得體會

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

要學習軟件工程,學會如何系統的思考,以及養成良好的編碼習慣,想學好軟件工程,就必須知道軟件工程的目標、過程和原則: 軟件工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟件產品達到預期功能的程度。

可用性指軟件基本結構、實現及文檔為用戶可用的程度。開銷合宜是指軟件開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。

軟件工程過程:生產一個最終能滿足需求且達到工程目標的軟件產品所需要的步驟。軟件工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的接口定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿于整個開發過程,實現完成后的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發過程中必須遵循的原則。

pad圖:它是用結構化程序設計思想表現程序邏輯結構的圖形工具。pad也設置了五種基本控制結構的圖示,并允許遞歸使用。hipo圖:hipo圖是由一組ipo圖加一張hc圖組成。它是美國ibm公司在軟件設計中使用的主要表達工具。hc圖既是層次圖,用于表示軟件的分層結構。hc圖中的每一個模塊,均可用一張ipo圖來描述。ipo 圖由輸入、處理和輸出三個框組成,需要時還可以增加一個數據文件框,這種圖形的優點,是能夠直觀地顯示輸入處理輸出三者之間的聯系。還有測試方法:按照測試過程是否在實際應用環境中來分,有靜態分析與動態測試。測試方法有分析方法(包括靜態分析法與白盒法)與非分析方法(稱黑盒法)。靜態分析技術:不執行被測軟件,可對需求分析說明書、軟件設計說明書、源程序做結構檢查、流程分析、符號執行來找出軟件錯誤。動態測試技術:當把程序作為一個函數,輸入的全體稱為函數的定義域,輸出的全體稱為函數的值域,函數則描述了輸入的定義域與輸出值域的關系。還學習了其他很多工具、語言、方法等,雖然不是都學得很透徹,但我相信在今后的學習中一定會慢慢的完善的。

軟件工程對于初學者來說,知識基礎較薄弱,對一些應用操作、概念、工具方法等理解起來較為困難,要能從整體概念上較好地理解和把握、學好軟件工程,不是僅僅把幾本專業書籍細致地看幾遍,然后上機練習幾次就可以成功,學習過程中要注意多看多練要注意結合實際,更要多思考,面對錯誤不要一范就問,要嘗試自己去解決。但是還要注意什么都學,肯定是什么都學不透的,要集中精力打攻堅戰,學習軟件工程首先要明白自己的學習目標究竟是什么,根據自己的實際工作出發,有針對性的在相應的學習方向上進行提高,制定出詳細的學習規劃。還要注意與其他科目的相輔相成,就像我們在學習面向對象分析的時候要結合大一學習的面向對象及其方法學這一專業科目進行研究拓展;在學習語言時,要看看與c語言的聯系,多思多想,把從各個科目學到的知識通匯貫通。

在軟件工程的學習中,我了解到了軟件并非是一些代碼這么簡單,在開發軟件的過程中,編寫代碼的工作量其實只占不到所有工程量的30%,而后期的管理和維護更是占了60%到80%之多。一個完整的項目規劃須包括,軟件的定義,可行性分析報告,項目開發計劃,軟件需求說明書,概要設計說明書,詳細設計說明書,用戶操作手冊,測試計劃,測試分析報告,開發進度報告,項目開發總結報告,軟件維護手冊,軟件問題報告,軟件修改報告,等多個文檔,每個文檔都要上級驗收審查,而文檔數量眾多,要做好這點真的不是很容易,而恰恰寫好文檔正能保證完成軟件工程其中一個目的的關鍵,既研究如何用最小的開銷做出生存期較長的軟件,再加上各個階段都要進行周密的策劃、詳細的分工部署和人員安排,且各階段要據具體情況不斷的反復才能達成,所以代碼只是開發軟件這個浩大的工程的一個小小的過程。

而編碼的學習中,我更了解到形成自己獨特的規范的編碼風格是非常重要的事。因為這影響到了軟件后期繁重的維護,大家都要閱讀你的程序,如果你寫的程序毫無規范可言,那么別人怎么能讀懂你的程序?讀不懂程序,維護又從何談起呢?所以,我們在今后的學習中,一定要注意這方面的培養,在寫程序的過程中,要逐步的在規范的基礎上形成屬于自己的風格,即方便自己的修改,也方便日后他人的閱讀。

在學習中,我們還要注意比較三種方法的優缺點,例如:傳統方法雖然使軟件擺脫了混亂和無序,但其在適應需求變化的方面不夠靈活,而且傳統方法要么面向行為,要么面向數據,缺乏兩者的有機結合。而面向對象方法的程序設計和問題求解更符合人們日常自然的思維習慣,適合大型、復雜及交互性比較強的系統。形式化方法則是一中基于形式化數學變換的軟件開發方法,它可將系統的規格說明轉換為可執行的程序。在今后的學習中要注意多讀書、多思考、多練習、多討論,不斷熟悉書本的基礎,并以此為基礎將其擴散開來,應用于今后的實踐。不斷鍛煉自己,向一名合格的程序設計師邁進。

以上這篇是軟件工程學習心得體會。就為您介紹到這里,希望它對您有幫助。如果您喜歡這篇文章,請分享給您的好友。

第五篇:學習《軟件工程》課程心得體會

軟件工程課程

——心得體會

摘要:高校教職工工資管理系統是為了解決教職工工資管理的而設計的,目的是建立一個能夠初步實現高校教職工工資管理系統的智能化管理,該系統能跟據每位教師的職稱不同而確定不同的基本工資,同時能根據每個教職工的出勤率,加班時間計算出每個教職工的月工資,還能根據每個月的情況計算出年終獎金。利用此系統能減少工資計算管理教職工數量,增加教職工效率,同時還能使公司工資管理更加合理、透明,為高校節約成本。在進行軟件需求說明書設計及概要設計的心得體會。關鍵字:工資 管理 功能 心得

緒論:軟件工程課程設計的題目是高校教職工工資管理系統,本文主要是對于軟件工程課程設計中需求分析與概要設計分析的心得。

我們進行設計的項目是高校教職工工資管理系統。高校教職工工資管理系統是為了解決教職工工資管理的而設計的,目的是建立一個能夠初步實現高校教職工工資管理系統的智能化管理,該系統能跟據每位教師的職稱不同而確定不同的基本工資,同時能根據每個教職工的出勤率,加班時間計算出每個教職工的月工資,還能根據每個月的情況計算出年終獎金。利用此系統能減少工資計算管理教職工數量,增加教職工效率,同時還能使公司工資管理更加合理、透明,為高校節約成本。

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

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

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

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

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

1.本系統在高校應用后高校工資管理方面的教職工將減少至目前的50%左右; 2.本系統在高校應用后將在高校各方面的成本將會有所降低;

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

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

在本階段主要涉及處理流程的設計、總體結構和模塊外部設計、功能分配。在接口設計上有用戶接口、外部接口、內部接口;數據結構設計有邏輯結構設計、物理結構設計等等。在接口設計時參考了大量的資軟件工程課程設計——心得體會 料。

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

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

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

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

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

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

下載學習軟件工程心得體會[五篇]word格式文檔
下載學習軟件工程心得體會[五篇].doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    軟件工程心得體會

    《軟件工程》的感悟時間飛逝,不知不覺間《軟件工程》的學習已經過了大半了。在這將近半學期的學習中,雖然我不能說我將《軟件工程》學習的有多么的好,但是通過學習,我還是受益良......

    軟件工程心得體會(推薦)

    軟件工程學習心得這個學期我學習了軟件測試這門專業課程,在學期即將結束的時候,我也對這門課程建立基本的了解。軟件測試這門課程作為軟件工程專業中一門很重要的課程,已經在軟......

    軟件工程心得體會

    軟件工程心得體會 未接觸軟件工程之前一直都很想學這門課程,因為覺得這門課很牛,是那些有工程師稱號的高手才擺弄的東西。學了一個學期的軟件工程課,終于知道了個軟件工程的大......

    軟件工程學習總結

    軟件工程學習總結通過一個學期系統的學習軟件工程這門課,結合與小組成員一起開發設備管理系統的經驗,讓我對軟件的開發有了更深的了解,學習到每一個軟件的開發都不僅僅是寫代碼......

    軟件工程學習報告

    軟件工程學習報告 時間飛逝,不知不覺間《軟件工程》的學習已經即將結束了。在這將近一學期的學習中,雖然我不能說我將《軟件工程》學習的有多么的好,但是通過學習,我還是受益良......

    軟件工程的心得體會(模版)

    軟件工程心得 我本來可以很快完成心得體會的,回味那段美好的時光。或許未來的某一天,我重新翻開這個實驗報告,又會想到那段日子,想起組里的每個人,懷念我們的實驗。 現在回想起大......

    軟件工程實驗心得體會[最終定稿]

    軟件工程實驗心得體會 軟件工程實驗心得體會一:軟件工程實驗心得體會 經過這學期軟件工程實驗的學習,深深感到用戶需求對軟件的重要性。成功的軟件產品是建立在成功的需求基......

    軟件工程課 心得體會

    心得體會 通過本學期的學習,獨立完成了軟件工程方法實踐與案例的作業,同時也收獲了學習方法和思維方式。由于我是從電氣專業調劑到計算機專業,幾乎沒有基礎,所以在剛開始進入學......

主站蜘蛛池模板: 西西人体大胆www44he七| 久久欧美与黑人双交男男| 亚洲精品成人无码中文毛片不卡| 国产黄a三级三级三级av在线看| 日韩精品无码专区免费播放| 国产美女裸体无遮挡免费视频高潮| 秋霞最新高清无码鲁丝片| 无码熟妇人妻在线视频| 精品日韩欧美一区二区在线播放| 亚洲精品成人福利网站| 麻豆影视视频高清在线观看| 无码射肉在线播放视频| 欧美18精品久久久无码午夜福利| 国产午夜精品一区二区三区漫画| 国产a v高清一区二区三区| 欧美一进一出抽搐大尺度视频| 亚洲欧洲无码av电影在线观看| 午夜精品久久久久久久99老熟妇| 久久久久久久久888| 欧美性猛交aaaa片黑人| 国产精品一区二区av交换| 亚洲一区av无码少妇电影| 国产在线观看免费视频软件| 日韩人妻无码精品专区综合网| 国产白丝护士av在线网站| 久久草草亚洲蜜桃臀| 精品国产免费一区二区三区| 色欲一区二区三区精品a片| 日韩内射美女人妻一区二区三区| 国产精品永久在线观看| 黑人粗大猛烈进出高潮视频| 四虎成人精品国产永久免费| 国产偷窥盗摄一区二区| 无码精品国产一区二区三区免费| 久久理论片午夜琪琪电影网| 成人免费的视频| 成人欧美一区二区三区视频| y111111少妇影院无码| 综合网日日天干夜夜久久| 日本巨大的奶头在线观看| 人人妻人人狠人人爽天天综合网|