軟件工程心得體會_第1頁
軟件工程心得體會_第2頁
軟件工程心得體會_第3頁
軟件工程心得體會_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件工程心得體會一:軟件工程心得體會軟件工程心得體會未接觸軟件工程之前一直都很想學這門課程,因為覺得這門課很牛,是那些有工程師稱號的高手才擺弄的東西。 學了一個學期的軟件工程課,終于知道了個軟件工程的大概。學的時候總覺得很抽象,理解起來好像不難,但總是摸不著頭腦一種很茫然的感覺。曾經以為程序就是軟件,軟件就是程序。學習這門課程第一個收獲是,知道了二者的不同之處。以前做過的一些小型的軟件比如加密軟件, 我也只是在程序旁邊附上一個軟件的說明,看來已經很接近作坊了。不過大的項目沒有接觸過,用軟件工程的方法還是第一次。我想也是程序的不斷復雜化導致了軟件危機的發生,使得人們不得不探索新的解決方法。經過倪老師的講解,理解了軟件工程,就是一套用于軟件的團隊開發, 以提高軟件質量和程序員工作效率為目的的規范。 其核心就是,對于軟件開發的5個重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這 5個部分的工作,以及如何完成每一個工作。吾生也有涯,而知也無涯,學習永無止境。起初,對軟件工程處于一知半解的狀態,分工比較混亂。在劃分模塊后明確了各自分工, 漸漸形成良性循環。在學習過程中,知道了團隊合作十分重要,爭議固然存在,但通過討論、協商,群策群力,在不斷磨合中能夠達成一致與默契。團隊成員中能力各有高下,互相尊重,各取所長,不宜妄自菲薄。組長多加協調,組員積極配合,才能合作愉快。學習能力體現在能盡快接受新的知識,順應變化,學為所用。上《軟件工程導論》這門課,我的收獲大概如下:我們為什么需要軟件工程呢?上面已經給出了一些原因。專業點講,軟件工程最終是為了實現“軟件制造業”的社會化 ,工業化大生產,提高其勞動生產效率。只有如此,軟件業才能實現社會化,工業化大生產,才能“做大做強”。沒有管理的設計是失敗和混亂的設計,沒有設計指導的編程是無序的忙碌的。根據開發的軟件的規模,應該適當程度的運用軟件工程化的思想, 需要靈活,畢竟我們開發的軟件大多數是中小型的,大型的并不多見(我是這么認為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果更穩定。其實開發軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。 首先是要有一個想法,即我寫的這個程序是要干什么的; 然后就是對要實現的核心功能大概構思一種或多種實現方法,并從中選出一種自認為是較好的; 接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和 DEBUG。在我看來,除了第一步外,其余的步驟應該是一個循環的過程。在編碼的過程中,你總是需要不斷地回過頭來修改原先的模塊設計,甚至最初選定的實現算法。具體到每一步的工作要怎樣完成, 是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。1?可行性分析就是關于當前項目能不能干的分析結果。2?項目描述這是在決定立項以后,對當前項目的一份扼要說明。3.需求分析就是對客戶要求的功能的定義。4?軟件設計這就是對程序的每一個模塊的詳細設計的說明文檔。開發日志我一直都認為這是文檔中最有趣的部分。開發日志相當于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突然萌發的靈感, 或對代碼的一些微小的修改,或對程序結構的一些微小變動等,還要對上述這些修改變動作些說明。測試分析用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數字描述。軟件工程心得體會二:軟件工程學習心得( 3185字)在本學期的軟件工程課程的學習中, 我們學習了十一章的內容。第一章軟件與軟件工程的概念,這一章主要講解的是一些概念性和基礎性的內容,例如軟件的概念、特性,軟件危機的主要表現,軟件工程的概念以及軟件生存期、 典型生存期模型等等。第二章軟件工程方法與工具,這一章主要對軟件工程方法進行介紹, 包括三種方法:傳統方法、面向對象方法、形式化方法。還引出了工具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%之多。一個完整的項目規劃須包括,軟件的定義,可行性分析報告,項目開發計劃,軟件需求說明書,概要設計說明書,詳細設計說明書,用戶操作手冊,測試計劃,測試分析報告,開發進度報告,項目開發總結報告,軟件維護手冊,軟件問題報告,軟件修改報告,等多個文檔,每個文檔都要上級驗收審查, 而文檔數量眾多,要做好這點真的不是很容易,而恰恰寫好文檔正能保證完成軟件工程其中一個目的的關鍵, 既研究如何用最小的開銷做出生存期較長的軟件,再加上各個階段都要進行周密的策劃、 詳細的分工部署和人員安排,且各階段要據具體情況不斷的反復才能達成, 所以代碼只是開發軟件這個浩大的工程的一個小小的過程。而編碼的學習中,我更了解到形成自己獨特的規范的編碼風格是非常重要的事。 因為這影響到了軟件后期繁重的維護, 大家都要閱讀你的程序,如果你寫的程序毫無規范可言, 那么別人怎么能讀懂你的程序?讀不懂程序, 維護又從何談起呢?所以,我們在今后的學習中,一定要注意這方面的培養,在寫程序的過程中,要逐步的在規范的基礎上形成屬于自己的風格,即方便自己的修改,也方便日后他人的閱讀。在學習中,我們還要注意比較三種方法的優缺點, 例如:傳統方法雖然使軟件擺脫了混亂和無序,但其在適應需求變化的方面不夠靈活, 而且傳統方法要么面向行為,要么面向數據,缺乏兩者的有機結合。而面向對象方法的程序設計和問題求解更符合人們日常自然的思維習慣,適合大型、復雜及交互性比較強的系統。形式化方法則是一中基于形式化數學變換的軟件開發方法,它可將系統的規格說明轉換為可執行的程序。在今后的學習中要注意多讀書、多思考、多練習、多討論,不斷熟悉書本的基礎,并以此為基礎將其擴散開來,應用于今后的實踐。不斷鍛煉自己,向一名合格的程序設計師邁進。軟件工程心得體會三:軟件工程心得體會( 797字)

時間飛逝,不知不覺間《軟件工程》的學習已經過了大半了。在這將近半學期的學習中,雖然我不能說我將《軟件工程》學習的有多么的好,但是通過學習,我還是受益良多。在以前,我一直對軟件存在一些偏見或則是誤解, 認為軟件就是程序,軟件的開發就是編寫程序,只要編完了程序,一切也就 ok了,而且我還片面的認為只要我掌握了時下最新的語言和工具,那么我就能寫程序了。一個人,只要會編程,就能寫軟件,就是程序員;一個公司,只要招聘一些程序員, 就能開發好的軟件產品。只要有幾個有經驗的程序員, 再找些兼職的大學生,就能組成一個軟件公司。但是通過了《軟件工程》這門課的學習,是程序,軟件開發其實也不僅僅是編寫程序,邏輯和信息。唯有對軟件和軟件的開發過程,質量受控的軟件產品。而且在以前,我一直以為軟件的開發其實旁敲敲鍵盤,那么一切就可以了,曰些兼職的大學生,就能組成一個軟件公司。但是通過了《軟件工程》這門課的學習,是程序,軟件開發其實也不僅僅是編寫程序,邏輯和信息。唯有對軟件和軟件的開發過程,質量受控的軟件產品。而且在以前,我一直以為軟件的開發其實旁敲敲鍵盤,那么一切就可以了,曰是但是現在我才發現,使我認識到了我以前的錯誤。軟件其實不僅僅軟件是思想在硬件上的載體和體現,處理的是有充分的認識,才能更好的開發出,過程受控、一件很輕松快樂的事情, 只要一天坐在電腦我以前的很多的思想是多么的膚淺可笑。編程其實是一種樂趣和苦惱共存的一項創造性活動。 因為編程不僅能夠滿足我們內心深處進行創造的渴望,而且還能愉

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論