軟件工程學習心得體會_第1頁
軟件工程學習心得體會_第2頁
軟件工程學習心得體會_第3頁
軟件工程學習心得體會_第4頁
軟件工程學習心得體會_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

軟件工程學習心得體會 軟件工程學習心得體會一:學習軟件工程的心得體會學習了這門課程,還有老師們的多元化教課,不但讓我從理論上掌握軟件工程,還有從不同的實例,讓理論和實踐得到了很好的結合。整一個學期下來,總的來說還是學到了很多東西的,有很多地方是值得肯定的,其實在我看來,軟件工程與其說是一門課程,不如說是一門思想。是一個如何去分析和處理問題的過程,應該說其范疇已經遠遠不止局限于該門課程,成為了一個綜合的一個能夠解決問題的思想集合。整本書的內容邏輯很清晰明了,由淺入深循序漸進,首先我就大概描述下我們所學的內容,第一章是從整體分析軟件工程這門學科的發展和所處的社會環境,接著后面的幾章深入分析了軟件開放過程和模式、軟件項目管理、計算機工程、需求分析、結構化分析建模以及基于UML面向對象分析建模等。接著我就詳細介紹下我對這門課程知識點的理解概括:軟件:軟件是能夠完成預定功能和性能的可執行的計算機程序和使程序正常執行所需要的數據,加上描述程序的操作和使用的文檔。軟件的特征:①軟件是一種邏輯實體,而不是具體的物理實體,因而它具有抽象性。②軟件是通過人們的智力活動,把知識與技術轉化成信息的一種產品。③軟件成為產品后,其生產只是簡單的拷貝,不同于硬件制造。④維護過程比硬件復雜的多,甚至會引發新的錯誤。軟件危機:指的是軟件開發和維護過程中遇到的一系列嚴重問題。出現軟件危機的原因:①軟件維護費用急劇上升,直接威脅計算機應用的擴大。②軟件生產技術進步緩慢。軟件工程是指導計算機軟件開發和維護的工程學科。軟件生存周期:一個軟件從定義到開發、使用和維護,直到最終被棄用,要經歷一個漫長的時期,通常把軟件經歷的這個漫長的時期稱為生存周期。軟件的生存周期可分為八個階段:①問題定義;②可行性研究;③需求分析;④總體(概要)設計;⑤詳細設計;⑥編碼與單元測試;⑦綜合測試;⑧軟件維護;瀑布模式:是傳統的軟件開發模式,其中的“瀑布”是對這個模式的形象表達,由山頂傾瀉下來的水,自頂向下、逐漸細化。其特點是:線性化過程;分為分析、設計、編碼、集成等幾個階段,并且各階段逐級推進,不允許跨越。里程碑管理;階段評審;文檔驅動;簡潔便于工程應用的線性化過程步驟,并可以通過里程碑管理機制而使項目進程量化。其明顯的優點就是沒個階段結束前都要對所完成的階段成果進行評審,這使得軟件的錯誤能夠在個階段內盡早發現并盡早解決,總的來說瀑布模式具有良好的質量保證機制,有很強的生命力。原型進化模式:對軟件進行直接模擬或仿真,只需要分析需求框架后進行原型創建,再對原型系統進行逐步細化與完善,通過版本更新逐步滿足用戶對于軟件的多方面需要。增量模式:開發過程有三個任務域,分別是設計結構、開發構件和集成系統,它既有完善的工程管理機制,又能適應用戶需求變更,有利于質量的監控,并且各局部基于構件構造,有利于逐步構建與完善;由于先交付核心構件可利于降低項目的技術風險。螺旋模式:是一種可較好的規避開發風險過程的模式,項目是基于任務的螺旋式推進,每個螺旋由內之外分別是需求分析、軟件設計、系統集成、驗證與交付。軟件開發的整個過程:①需要項目團隊,組建優秀的團隊可以開發出更搞質量的軟件產品。任務開發團隊要求小而精,成員大多在8人以內,主要成員有項目負責人、開發人員、資料管理員和軟件測試員。②項目計劃是為了使軟件開發各項工作有秩序地進行,包括任務分配和基于里程碑的進度安排,甘特圖和任務網絡圖是用來描述進度計劃的工具。項目計劃書可以作為軟件開發的工作指南。③項目成本估算,由于項目有來自各方面的成本包括工資開支、場地費、差旅費、設備費和資料費等,但是軟件主要是對人力成本的估算,常用的方法有程序代碼成本估算法等。④軟件風險管理包括很多不確定的風險因素,如計劃風險、管理風險、需求風險、技術風險、人員風險、產品風險、用戶風險和商業風險等等,而風險管理的主要任務是:風險識別、風險評估、和風險防范。⑤軟件文檔管理,軟件文檔是工程模式軟件開發的成果體現,包括技術文檔、管理文檔和用戶文檔。⑥軟件配置管理與軟件質量管理,包括配置規劃、軟件變更控制、軟件版本控制和質量控制計劃。計算機系統由硬件、軟件、數據資源、網絡資源、使用系統的人等諸多元素。有三種典型的計算機體系結構:①主機結構,主機集中了全部智能,并依靠終端接口與外部設備連接。②Client/Server結構,智能分布于服務器與客戶機,并依靠網絡連接成系統,其中,服務器處于核心位置,提供被動核心服務;客戶機處于邊緣位置,可主動訪問服務器,尋求服務支持。③Browser/server結構,可適應互聯網遠程交互的特殊結構,基于Web服務器構建。需求分析:系統開發前期需求分析很重要,它是為了有效解決用戶問題的需要進行的一項工程活動,所需要考慮的需求問題是功能需求、數據需求、性能需求和接口需求,開發者承擔分析任務,核心是用戶。其步驟有三個:①獲取客戶需求,客戶泛指某個人或《軟件工程》課程既強調基本概念和基本知識的理解和掌握,又側重軟件項目的分析、設計、實現和維護的基本技能。比較注意“點”和“面”的結合。我還是蠻喜歡這門課的,通過對這門課的學習讓我意識到理論學習很重要,實踐更重要,實踐是檢驗真理的唯一標準,只有將理論與實際結合,才更能發揮我們所學的知識的作用,更能直接的創造效益,社會和國家做出貢獻。>軟件工程學習心得體會二:軟件工程學習心得>>(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字)一、軟件工程的定義軟件工程(SoftwareEngineering,簡稱為SE)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它涉及到程序設計語言,數據庫,軟件開發工具,系統平臺,標準,設計模式等方面。在現代社會中,軟件應用于多個方面。典型的軟件比如有電子郵件,嵌入式系統,人機界面,辦公套件,操作系統,編譯器,數據庫,游戲等。同時,各個行業幾乎都有計算機軟件的應用,比如工業,農業,銀行,航空,政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。二、軟件工程的目標在給定成本、進度的前提下,開發出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性并且滿足用戶需求的軟件產品。三、軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發過程中必須遵循的原則。軟件工程的原則有以下四項基本原則:1)選取適宜開發范型;2)采用合適的設計方法;3)提供高質量的工程支持;4)重視開發過程的管理。四、軟件工程的由來據說上個世紀60年代的程序員都是天才,寫程式就像寫日記一樣,吃過晚飯沒事干隨手就可以寫幾個出來玩,第二天還可以拿去賣錢。所以那時候程序員在大家眼中,跟那些搞美術,音樂的是一類的,被稱為“藝術家”。但事過境遷,就像任何人都不會嫌錢多一樣,永遠都不會有人嫌CPU快的。于是,隨之而來的就是硬件的迅猛發展和越來越變態的軟件。記得以前常去同學家拷游戲,通常幾張軟盤就可以搞定,而現在的游戲,兩三張CD-ROM都算少的了。像如此龐大復雜的怪物,就算你是如何的天才,一個人肯定是搞不定的,否則,等你把程式寫出來,人家Intel連奔騰N都開發出來了。既要開發大型的軟件還要追求速度(這樣才能賺錢),于是很自然地,合作的概念被提了出來。在開始合作的初期,由于大家都習慣了當很有個性的“藝術家”,結果可想而知,一個是畢加索派的,而另一個是意大利印象派的,再加上一個畫潑墨山水畫的,要是像這樣湊出來的東西都能不出問題的話,那么Bill早就轉行了。所以,那時侯的大型軟件,據說“藍屏”比WINDOWS98還多。馬克思告訴我們,萬物都是從量變到質變的。隨著問題的不斷涌現,一些master們開始嘗試去總結經驗,并歸納了一些規范去指導軟件的分析,設計,實現,測試,維護,人員交流協作,項目預算及時限控制等方方面面,這就是軟件工程的前身。軟件工程到現在已發展了30多年,可以說是相當成熟的了。現在開發軟件,據說都是一大幫人排排坐,按著一整套的規章制度來干活。于是,軟件開發成了“工程”,程序員也就淪為“工人”了。五、軟件工程的核心軟件工程,說白了,就是這樣一套用于軟件的團隊開發,以提高軟件質量和程序員工作效率為目的的規范。其核心就是,對于軟件開發的5個重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。簡單來說,就是對于總體的組織和對于局部的實現。六、軟件開發過程開發軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實現的核心功能大概構思一種或多種實現方法,并從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和DEBUG。除了第一步外,其余的步驟應該是一個循環的過程。既然軟件開發是一個具有不可預知性和變化性的動態的過程,那么,對其每一個步驟的組織,即周期模型,就必須包容它的這種性質。具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。文檔的作用在于以下3個方面:一是可以幫助整理思路。把要完成的目標,系統的結構,每一個模塊的功能等整理一下,然后分門別類地寫下來,這樣在開發的過程中,就有據可依,在需要回過頭來修改設計的時候,也有證可考。二是便于交流。想象一下開會時的情形。一大幫子人爭先恐后,激烈辯論,然后會終人散,思想靈感也就隨之散了,結果是開了半天會,什么也沒討論出來。這就是后來會議記錄被發明出來的原因。在腦子里的東西一多,就會散而且亂,用語言表達的時候,很容易會丟三落四,別人也很難把握住你的思想。但經過整理寫在紙上以后,則會清晰得多,無論是別人還是自己,看起來都可以一目了然。三是可以作為以后維護時的參考資料。有一句名言:“筆和紙永遠都比大腦可靠”,意思就是說,放在大腦里的東西說不準哪天就忘了,但寫在紙上的東西,只要不發生什么意外,一般是丟不了的。當過了一段時間,你需要再回過頭來修改你的程序的時候,你就會發現,你以前寫下的文檔實在太有價值了。別指望你的源代碼,對于復雜一點的程序來說,單純的源代碼幾乎會扼殺掉你所

溫馨提示

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

評論

0/150

提交評論