国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

軟件工程學習心得體會

時間:2023-04-02 20:49:25 學習心得體會 我要投稿

軟件工程學習心得體會(通用10篇)

  當我們經(jīng)過反思,有了新的啟發(fā)時,通常就可以寫一篇心得體會將其記下來,這樣可以幫助我們分析出現(xiàn)問題的原因,從而找出解決問題的辦法。那么心得體會該怎么寫?想必這讓大家都很苦惱吧,以下是小編幫大家整理的軟件工程學習心得體會,供大家參考借鑒,希望可以幫助到有需要的朋友。

軟件工程學習心得體會(通用10篇)

  軟件工程學習心得體會 篇1

  一、需求分析和概要設(shè)計。

  1)需求分析

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

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

  2.概要設(shè)計產(chǎn)生了軟件概要設(shè)計說明書,說明系統(tǒng)模塊劃分、選擇的技術(shù)路線等,整體說明軟件的實現(xiàn)思路。并且需要指出關(guān)鍵技術(shù)難點等。

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

  1.本系統(tǒng)在高校應(yīng)用后高校工資管理方面的教職工將減少至目前的50%左右;

  2.本系統(tǒng)在高校應(yīng)用后將在高校各方面的成本將會有所降低;

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

  2)概要設(shè)計

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

  在本階段主要涉及處理流程的設(shè)計、總體結(jié)構(gòu)和模塊外部設(shè)計、功能分配。在接口設(shè)計上有用戶接口、外部接口、內(nèi)部接口;數(shù)據(jù)結(jié)構(gòu)設(shè)計有邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計等等。在接口設(shè)計時參考了大量的資料。

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

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

  三、軟件工程課程設(shè)計——心得體會

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

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

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

  軟件工程學習心得體會 篇2

  在本學期的軟件工程課程的學習中,我們學習了十一章的內(nèi)容。第一章軟件與軟件工程的概念,這一章主要講解的是一些概念性和基礎(chǔ)性的內(nèi)容,例如軟件的概念、特性,軟件危機的主要表現(xiàn),軟件工程的概念以及軟件生存期、典型生存期模型等等。第二章軟件工程方法與工具,這一章主要對軟件工程方法進行介紹,包括三種方法:傳統(tǒng)方法、面向?qū)ο蠓椒、形式化方法。還引出了工具UML。第三章軟件需求獲取與結(jié)構(gòu)化分析方法,本章詳細介紹了需求獲取與需求分析階段的任務(wù)以及結(jié)構(gòu)化分析方法,畫分層的數(shù)據(jù)流圖、E—R圖以及狀態(tài)圖式本節(jié)的重點。第四章結(jié)構(gòu)化分析方法,這一章重點講解了使用變換型映射方法和事務(wù)型映射方法生成初始的模塊結(jié)構(gòu)以及模塊結(jié)構(gòu)的改進。第五章編碼,這一章重點講解了編碼的風格及規(guī)范,還告訴我們編碼規(guī)范說帶來的好處,并告誡我們將來一點要形成好的編碼風格。第六章軟件測試方法,本章講解了軟件測試相關(guān)的概念及重要性,軟件測試與開發(fā)各個階段的關(guān)系;還介紹了白盒測試技術(shù)以及黑河測試技術(shù)。第七章統(tǒng)一建模語言UML概述,本章詳細介紹了UML的基本模式、事物、關(guān)系及建模時用到的各種圖進行了介紹。第八章面向?qū)ο蠓治觯@一章主要講解了面向?qū)ο蠓治龅?種模型,包括功能模型、靜態(tài)模型和動態(tài)模型。第九章軟件體系結(jié)構(gòu)與設(shè)計模式,本章對軟件體系結(jié)構(gòu)的基本概念、典型風格等進行了講解。第十章面向?qū)ο笤O(shè)計,本章的重點是對面向?qū)ο蠓治鰰r建立的對象模型進行調(diào)整和細化。第十一章軟件維護,本章主要介紹軟件維護的任務(wù)、軟件維護活動以及軟件維護方法進行了介紹。

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

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

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

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

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

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

  PAD圖:它是用結(jié)構(gòu)化程序設(shè)計思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。PAD也設(shè)置了五種基本控制結(jié)構(gòu)的圖示,并允許遞歸使用。

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

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

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

  靜態(tài)分析技術(shù):不執(zhí)行被測軟件,可對需求分析說明書、軟件設(shè)計說明書、源程序做結(jié)構(gòu)檢查、流程分析、符號執(zhí)行來找出軟件錯誤。

  動態(tài)測試技術(shù):當把程序作為一個函數(shù),輸入的全體稱為函數(shù)的定義域,輸出的全體稱為函數(shù)的值域,函數(shù)則描述了輸入的定義域與輸出值域的關(guān)系。

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

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

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

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

  在學習中,我們還要注意比較三種方法的優(yōu)缺點,例如:傳統(tǒng)方法雖然使軟件擺脫了混亂和無序,但其在適應(yīng)需求變化的方面不夠靈活,而且傳統(tǒng)方法要么面向行為,要么面向數(shù)據(jù),缺乏兩者的有機結(jié)合。而面向?qū)ο蠓椒ǖ某绦蛟O(shè)計和問題求解更符合人們?nèi)粘W匀坏乃季S習慣,適合大型、復雜及交互性比較強的系統(tǒng)。形式化方法則是一中基于形式化數(shù)學變換的軟件開發(fā)方法,它可將系統(tǒng)的規(guī)格說明轉(zhuǎn)換為可執(zhí)行的程序。

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

  軟件工程學習心得體會 篇3

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

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

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

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

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

  1、可行性分析就是關(guān)于當前項目能不能干的分析結(jié)果。

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

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

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

  5、開發(fā)日志我一直都認為這是文檔中最有趣的部分。開發(fā)日志相當于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突然萌發(fā)的靈感,或?qū)Υa的一些微小的修改,或?qū)Τ绦蚪Y(jié)構(gòu)的一些微小變動等,還要對上述這些修改變動作些說明。

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

  軟件工程學習心得體會 篇4

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

  整本書的內(nèi)容邏輯很清晰明了,由淺入深循序漸進,首先我就大概描述下我們所學的內(nèi)容,第一章是從整體分析軟件工程這門學科的發(fā)展和所處的社會環(huán)境,接著后面的幾章深入分析了軟件開放過程和模式、軟件項目管理、計算機工程、需求分析、結(jié)構(gòu)化分析建模以及基于UML面向?qū)ο蠓治鼋5取=又揖驮敿毥榻B下我對這門課程知識點的理解概括:

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

  ①軟件是一種邏輯實體,而不是具體的物理實體,因而它具有抽象性。

  ②軟件是通過人們的智力活動,把知識與技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品。

  ③軟件成為產(chǎn)品后,其生產(chǎn)只是簡單的拷貝,不同于硬件制造。

 、芫S護過程比硬件復雜的多,甚至會引發(fā)新的錯誤。軟件危機:指的是軟件開發(fā)和維護過程中遇到的一系列嚴重問題。

  出現(xiàn)軟件危機的原因:

 、佘浖S護費用急劇上升,直接威脅計算機應(yīng)用的擴大。

 、谲浖a(chǎn)技術(shù)進步緩慢。軟件工程是指導計算機軟件開發(fā)和維護的工程學科。軟件生存周期:一個軟件從定義到開發(fā)、使用和維護,直到最終被棄用,要經(jīng)歷一個漫長的時期,通常把軟件經(jīng)歷的這個漫長的時期稱為生存周期。

  軟件的生存周期可分為八個階段:

  ①問題定義;

  ②可行性研究;

  ③需求分析;

  ④總體(概要)設(shè)計;

 、菰敿氃O(shè)計;

 、蘧幋a與單元測試;

  ⑦綜合測試;

  ⑧軟件維護;

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

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

  增量模式:開發(fā)過程有三個任務(wù)域,分別是設(shè)計結(jié)構(gòu)、開發(fā)構(gòu)件和集成系統(tǒng),它既有完善的工程管理機制,又能適應(yīng)用戶需求變更,有利于質(zhì)量的監(jiān)控,并且各局部基于構(gòu)件構(gòu)造,有利于逐步構(gòu)建與完善;由于先交付核心構(gòu)件可利于降低項目的技術(shù)風險。

  螺旋模式:是一種可較好的規(guī)避開發(fā)風險過程的模式,項目是基于任務(wù)的螺旋式推進,每個螺旋由內(nèi)之外分別是需求分析、軟件設(shè)計、系統(tǒng)集成、驗證與交付。

  軟件開發(fā)的整個過程:

  ①需要項目團隊,組建優(yōu)秀的團隊可以開發(fā)出更搞質(zhì)量的軟件產(chǎn)品。任務(wù)開發(fā)團隊要求小而精,成員大多在8人以內(nèi),主要成員有項目負責人、開發(fā)人員、資料管理員和軟件測試員。

 、陧椖坑媱澥菫榱耸管浖_發(fā)各項工作有秩序地進行,包括任務(wù)分配和基于里程碑的進度安排,甘特圖和任務(wù)網(wǎng)絡(luò)圖是用來描述進度計劃的工具。項目計劃書可以作為軟件開發(fā)的工作指南。

 、垌椖砍杀竟浪,由于項目有來自各方面的成本包括工資開支、場地費、差旅費、設(shè)備費和資料費等,但是軟件主要是對人力成本的估算,常用的方法有程序代碼成本估算法等。

 、苘浖L險管理包括很多不確定的風險因素,如計劃風險、管理風險、需求風險、技術(shù)風險、人員風險、產(chǎn)品風險、用戶風險和商業(yè)風險等等,而風險管理的主要任務(wù)是:風險識別、風險評估、和風險防范。

 、蒈浖臋n管理,軟件文檔是工程模式軟件開發(fā)的成果體現(xiàn),包括技術(shù)文檔、管理文檔和用戶文檔。

  ⑥軟件配置管理與軟件質(zhì)量管理,包括配置規(guī)劃、軟件變更控制、軟件版本控制和質(zhì)量控制計劃。

  計算機系統(tǒng)由硬件、軟件、數(shù)據(jù)資源、網(wǎng)絡(luò)資源、使用系統(tǒng)的人等諸多元素。有三種典型的計算機體系結(jié)構(gòu):

  ①主機結(jié)構(gòu),主機集中了全部智能,并依靠終端接口與外部設(shè)備連接。

 、贑lient/Server結(jié)構(gòu),智能分布于服務(wù)器與客戶機,并依靠網(wǎng)絡(luò)連接成系統(tǒng),其中,服務(wù)器處于核心位置,提供被動核心服務(wù);客戶機處于邊緣位置,可主動訪問服務(wù)器,尋求服務(wù)支持。

 、跙rowser/server結(jié)構(gòu),可適應(yīng)互聯(lián)網(wǎng)遠程交互的特殊結(jié)構(gòu),基于Web服務(wù)器構(gòu)建。

  需求分析:系統(tǒng)開發(fā)前期需求分析很重要,它是為了有效解決用戶問題的需要進行的一項工程活動,所需要考慮的需求問題是功能需求、數(shù)據(jù)需求、性能需求和接口需求,開發(fā)者承擔分析任務(wù),核心是用戶。其步驟有三個:

 、佾@取客戶需求,客戶泛指某個人或機構(gòu)部門等,一般方法是調(diào)查,包括訪談、座談、問卷、跟班和收集資料,需求規(guī)約可表達用戶的軟件價值。

 、诮⑿枨竽P,它是用戶需求的圖解,一些常用的模型有:業(yè)務(wù)樹圖、用例圖、活動圖。分別用于結(jié)構(gòu)化需求建模、系統(tǒng)業(yè)務(wù)舉例和反映系統(tǒng)工作流程。

 、圻M行需求驗證,要驗證的主要內(nèi)容有:有效性驗證、一致性驗證、完整性驗證、現(xiàn)實性驗證和可檢驗性驗證。結(jié)構(gòu)化分析建模:它是建立在需求規(guī)約基礎(chǔ)上的,對軟件問題進行全面解說,包括四個方面:

 、贁(shù)據(jù)建模,它與數(shù)據(jù)庫設(shè)計密切相關(guān),ER圖涉及實體、關(guān)系、屬性等圖形元素,在業(yè)務(wù)層面建立數(shù)據(jù)庫概念模型,一般用于前期的建模構(gòu)想。

  ②功能建模,是對系統(tǒng)數(shù)據(jù)加工的圖解,數(shù)據(jù)流程圖是常用的建模工具,涉及數(shù)據(jù)接口、數(shù)據(jù)處理、數(shù)據(jù)流、數(shù)據(jù)存儲等圖形元素,用于描述系統(tǒng)數(shù)據(jù)加工細節(jié)。

 、坌袨榻,行為模型用于說哦名軟件系統(tǒng)與環(huán)境的交互,狀態(tài)轉(zhuǎn)換圖常用的軟件行為建模工具涉及狀態(tài)、事件等圖形元素。

 、輸(shù)據(jù)字典,是用于定義軟件的元素,使軟件元素獲得嚴肅的、詳密的、精確的規(guī)格說明。需求分析模型中的數(shù)據(jù)、功能、行為等諸多方面的元素,都有必要通過數(shù)據(jù)字典給予細節(jié)說明,以達到對系統(tǒng)較完整全面的規(guī)格定義。

  基于UML對象面向?qū)ο蠓治鼋#篣ML是統(tǒng)一建模語言,有統(tǒng)一的語法、語義和語用規(guī)則,其建模過程的特點是:用例驅(qū)動、以構(gòu)架為中心和增量迭代,通過包實現(xiàn)對模型的有效的一體化管理。包括三部分:

  ①用例建模,它面向用戶需求的,能夠反映系統(tǒng)的用戶價值,用例圖的基本元素有用例、參與者、交流;用例之間有泛化、延伸和包含關(guān)系。

  ②活動建模,活動圖用于描述系統(tǒng)動態(tài)過程,主要圖形元素有:活動、轉(zhuǎn)換、起點、終點、判斷、并發(fā)、同步、泳道等?擅枋龈邔訕I(yè)務(wù)級活動,涉及整個業(yè)務(wù)流程,針對每個用例活動建模,反映用例內(nèi)部活動細節(jié)。

  ③類分析建模,這里就只考慮實體類,實體類所代表的數(shù)據(jù)相互之間通常有一定的關(guān)系,依靠這種關(guān)系可形成有組織的程序數(shù)據(jù)結(jié)構(gòu)。實體類之間的`主要數(shù)據(jù)關(guān)系有:關(guān)聯(lián)、聚類、泛化。

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

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

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

  軟件工程學習心得體會 篇5

  時間過的很快,轉(zhuǎn)眼間已經(jīng)實習將近5個月,其中有2個月是屬于完全被流放的。最先在內(nèi)部系統(tǒng)組參與內(nèi)部管理系統(tǒng)開發(fā)(struts+mysql+spring+hibernate),之后是去做網(wǎng)絡(luò)交換機軟件的腳本測試,F(xiàn)在又回歸內(nèi)部系統(tǒng),雖然在腳本組期間,編碼能力被別人甩在后頭,但至少具有了一些測試經(jīng)驗。

  至少自己做的東西,是真正交付到了客戶手上,到也稍微有些成就感。

  1、淺談測試

  一直以來,我都認為測試是脫離了軟件工程范圍的工作,不以為屑。但在實際情況中,測試是既重要且難以精湛的.其真正的壓力,在于找不到bug,責任在你,而不在于編碼人員。一般的測試人員不懂編碼,他們靠的是日以累計的經(jīng)驗總結(jié)和想象力。而要做到高級測試工程師,則一定要懂編碼,因為這是你完全掌握整個系統(tǒng)的方方面面具體運作的前提。但占主導地位的,還是大型系統(tǒng)的集成測試經(jīng)驗。實際項目中,編碼時間一般只占30%左右,真正耗費時間的`是IT階段的找 bug與對應(yīng)bug,此階段基本評定了coder的編碼質(zhì)量。

  2、程序員的困惑

  有些人,以為教學視頻和代碼看多,自己就懂的多,實際做起來,卻不知從何下手,

  問題在那?如何定位?如何解決?通通跟一樣能力有關(guān),debug追蹤能力,也稱調(diào)試。在項目組工作不愁源碼資源,但問題是蛋糕擺在面前,你如何去消化?

  有位同事告訴我:代碼看幾遍都沒用,要去抄,例如一個查詢模塊,在此基礎(chǔ)上去做具體記錄的歷史記錄查詢模塊,你可能會覺得很簡單,但實際情況卻往往報一堆異常,配置問題涉及到方方面面,以及數(shù)據(jù)庫字段,傳值問題等等,一大堆對于新人來說很郁悶的問題。但不用怕,只要學會調(diào)試,一個個問題去追蹤,一個個去解決,自然而然,那段“源碼”才真正屬于你。

  3、如何調(diào)試追蹤

  如果你能在短短的時間內(nèi)就看到問題點在那,放下斷點去追蹤,出去找工作,絕對沒問題。出現(xiàn)問題的時候,不要光看代碼,要用實際行動去追蹤運行期間的具體值,那是最好途徑。eclipse是個很爽的ide,這點做的很好。例如頁面內(nèi)容顯示不是自己想要的數(shù)據(jù),我們要先從數(shù)據(jù)庫查詢語句去下手,設(shè)置斷點,一步一步step over,讓sql字段(存取最終sql語句的字符串)運行到有值,inspect進去看,如果還看不出來,就點擊它,copy后在sql客戶端去實際運行,看看實際查詢出來的表是什么,如果是對的,有可能就是頁面調(diào)用的錯誤或者action邏輯的傳值問題。

  頁面錯誤的調(diào)試,基本方法是用右鍵點擊實際網(wǎng)頁查看源代碼,copy到editplus,就能看到具體錯誤發(fā)生在那幾行。通常有幾種常見的錯誤,例如:缺少對象這種很多時候是有些被你調(diào)用的字段有可能為空的情況出現(xiàn)的,可以加if(xxx=null)語句加保護。追蹤的方法基本就是用alert語句,放在有可能出錯的地方。

  4、一些習慣

  遇到問題先自己思考,無從下手再找高手幫忙看看,注意他幫你看的思路,別在一旁閑著,看多了自己也會了,不然你一輩子都停留在那種水平,從人身上學到的東西遠遠比書多的多。

  解決了一個問題后,要去究根問底去找到問題產(chǎn)生的起因,以防你下次遇到類似的問題再浪費同樣的時間。

  把代碼寫的漂亮,注釋、空行、規(guī)范一樣不能少,可讀性是放在第一位。曾經(jīng)看過一個高手寫的代碼,真的一看就是不同水平的人寫的,幾乎很完美,讀起來很流暢,方便自己也方便別人。

  任務(wù)完后不要呆著,去要求經(jīng)理給你更有挑戰(zhàn)性的任務(wù),只要你肯去嘗試,他們就會對你另言相看,把三天的任務(wù)一天加班搞定,效率和忠誠都有了,路也比較好走了。

  軟件工程學習心得體會 篇6

  早在我選擇民政職業(yè)技術(shù)學院就讀軟件開發(fā)與項目管理這門專業(yè)的時候,我一直認為軟件開發(fā)無非是努力的敲代碼,從敲代碼的過程中去體會各行代碼的意思和用處,在沒學軟件工程時我一直都是努力的敲代碼去學習軟件開發(fā)這門專業(yè)。在大一的時候我敲代碼的激情很好,但是到大二的時候就出現(xiàn)問題了,我根本就不喜歡敲代碼了,看見代碼就頭疼。所以感覺厭惡這門專業(yè),對學習也不感興趣了。而且,還有一件更頭疼的事是在寫一個簡單的程序時竟然老是出錯,難一點的,復雜一點的程序竟然無從下手。但是去看程序的參考答案時都看得懂,又感覺很容易。學了軟件工程以后,我就感覺我以前的學習方法是錯誤的。以前我只注重于代碼,而不注重理論知識以及編程的思路,程序的架構(gòu)。以至于在些程序時沒有寫程序的思路,不能形成程序的架構(gòu)。只想到看腦袋里是否有與此類似的代碼。越想程序越亂,最后腦袋里一片空白。不知道程序從哪個方面下手了。

  軟件工程這門課程是做軟件開發(fā)的人必學的課程,通過學這門課程,程序員就會注重軟件開發(fā)的理論知識,以及做項目開發(fā)的思路。學了這門課程后你寫程序就不會去盲目的`去套用代碼,而是理清此程序的架構(gòu)以及思路。程序該從什么時候開始,什么時候結(jié)束。在中間需要添加什么樣的功能,以完善該軟件。其實學軟件工程并不難,而且很容易。軟件工程與日常生活聯(lián)系起來的話,就是在一天中你該先做什么,后做什么。理解了先做什么,后做什么了以后寫程序就不是那么難了,再復雜的程序也可以分成幾大塊。你理清程序的思路后就可以一步步的解決其中的難題,最終實現(xiàn)軟件的功能。如果沒學軟件工程不知道理清程序的思路的話,做一個大的項目開發(fā),那么多的代碼,沒有一個很好的結(jié)構(gòu),最終只會導致程序混亂,錯誤百出,知道代碼再多也會素手無策的。

  總而言之,作為一個程序員學習軟件工程這門課程是至關(guān)必要的,如果沒學習軟件工程,你就不會做項目開發(fā),也不可能開發(fā)出一個完善的軟件出來。

  軟件工程學習心得體會 篇7

  曾經(jīng)看過一本書叫《道法自然》,內(nèi)容略記得一二,但我最欣賞的是它的書名。軟件設(shè)計沒什么太神秘有東西,只要用心體會,其實一切都很自然。軟件的設(shè)計之“道”,也不在于設(shè)計有多么的華麗、精巧,而在于其樸實、自然,最終達到“以無招勝有招”,進入一個全新的境界。

  一、軟件設(shè)計理論的層次

  以我的拙見,軟件設(shè)計領(lǐng)域中的各種概念,可以分為以下幾個層次來進行理解:

  1、軟件設(shè)計的目的:重用性、擴展性。

  這是最高的層次,是應(yīng)對軟件危機的需要。

  2、設(shè)計原則:低耦合、高聚合。

  各種軟件設(shè)計的原則,如依賴倒置原則、單一職則原則、面向接口等,以及各種設(shè)計模式,其根本的目的其實只是為了降低耦合這么簡單。因為只有低耦合才能更好的適應(yīng)變化,更好的重用和擴展。

  3、實現(xiàn)方法:運用設(shè)計模式封裝變化、降低耦合。

  設(shè)計模式只是用來“封裝變化、降低耦合”的工具而已。它是面向?qū)ο笤O(shè)計時代的產(chǎn)物,其本質(zhì)就是充分運用面向?qū)ο蟮娜齻特性,即:封裝、繼承和多態(tài),進行靈活的組合運用。

  二、關(guān)于耦合

  1、耦合的粒度

  耦合無論如何也是不可避免的。當我們實現(xiàn)接口、繼承父類的時候,就會不可避免的產(chǎn)生耦合。耦合是有不同粒度的,我們解耦到什么粒度為止,我認為應(yīng)以模塊的重用粒度為準。盡量解除重用模塊或?qū)ο笾g的耦合。而重用模塊之內(nèi)的耦合,應(yīng)屬于聚合的范疇,所以不要盲目的去解耦,否則就陷入了誤區(qū)。

  2、解耦的原理

  怎樣才能解耦呢,或者說為什么各種設(shè)計模式能達到解耦的目的呢?我覺得有以下幾個思路:

 。1)將具體的東西抽象處理

 。2)將分散的東西集中處理

  而面向?qū)ο笾械慕涌、繼承正為我們提供了這樣的一種機制。通過訪問接口或基類或抽象類,而不是具體的實現(xiàn)類,從而與具體的實現(xiàn)類達到了解耦的目的。我們還可以設(shè)計一些控制類,像潤滑劑一樣,協(xié)調(diào)各實現(xiàn)類之間的訪問,也可以達到耦的目的。

  事實上,各種設(shè)計模式的基本思想也就是這樣。創(chuàng)建型模式是為了解除創(chuàng)建對象時產(chǎn)生的耦合,實際上是解除對類稱名的依賴,而結(jié)構(gòu)型和行為型是為了解除對象屬性或方法的直接調(diào)用。不管什么設(shè)計模式,都是將對具體實現(xiàn)類的訪問提升為對接口、基類或用于協(xié)調(diào)的控制類的訪問。

  三、關(guān)于接口

  這一節(jié)更具體,談一談接口,因為使用接口是軟件設(shè)計的.重要手段,但已經(jīng)不屬于“道”了~

  1、接口與繼承

  接口描述的是對象某一個方面行為特征。使用接口與使用繼承關(guān)系各有優(yōu)缺點,使用子類繼承可以繼承父類的功能,體現(xiàn)了重用的精神。而接品更加靈活,因為它解除了子類與父類之間的高度耦合,它體現(xiàn)在靈活擴展的精神。

  2、接口與純虛類

  理論上接口可以由純虛基類實現(xiàn)類似的功能,那為什么還我們不去掉接口的概念,而直接使用虛類呢?

  接口存在的理由就是它更加靈活,關(guān)系簡單,易于理解。比如一個類可以實現(xiàn)十幾個甚至幾十個接口,但一般開發(fā)工具只支持單繼承(由于多繼承太容易導致混亂和沖突),如果要繼承十幾層,系統(tǒng)結(jié)構(gòu)想必會無法理解了,我以為這是接口存在的最重要的原因。

  如果接口和虛類繼承結(jié)合使用,可以產(chǎn)生強大的威力,這也是許多設(shè)計模式的“殺手锏”。

  以上算是總結(jié)一下自己的心得?隙ㄓ胁簧倨嬷帲埜魑恢附。

  軟件工程學習心得體會 篇8

  經(jīng)過這學期軟件工程實驗的學習,深深感到用戶需求對軟件的重要性。成功的軟件產(chǎn)品是建立在成功的需求基礎(chǔ)之上的,而高質(zhì)量的需求來源于用戶與開發(fā)人員之間有效的溝通與合作。當用戶有一個問題可以用計算機系統(tǒng)來解決,而開發(fā)人員開始幫助用戶解決這個問題,溝通就開始了。

  需求獲取可能是最困難、最關(guān)鍵、最易出錯及最需要溝通交流的活動。對需求的獲取往往有錯誤的認識:用戶知道需求是什么,我們所要做的就是和他們交談從他們那里得到需求,只要問用戶系統(tǒng)的目標特征,什么是要完成的,什么樣的系統(tǒng)能適合商業(yè)需要就可以了,但是實際上需求獲取并不是想象的這樣簡單,這條溝通之路布滿了荊棘。首先需求獲取要定義問題范圍,系統(tǒng)的邊界往往是很難明確的,用戶不了解技術(shù)實現(xiàn)的細節(jié),這樣造成了系統(tǒng)目標的混淆。

  其次是對問題的理解,用戶對計算機系統(tǒng)的能力和限制缺乏了解,任何一個系統(tǒng)都會有很多的用戶或者不同類型的用戶,每個用戶只知道自己需要的系統(tǒng),而不知道系統(tǒng)的整體情況,他們不知道系統(tǒng)作為一個整體怎么樣工作效率更好,也不太清楚那些工作可以交給軟件完成,他們不清楚需求是什么,或者說如何以一種精確的方式來描述需求,他們需要開發(fā)人員的協(xié)助和指導,但是用戶與開發(fā)人員之間的交流很容易出現(xiàn)障礙,忽略了那些被認為是"很明顯"的信息。最后是需求的.確認,因為需求的不穩(wěn)定性往往隨著時間的推移產(chǎn)生變動,使之難以確認。為了克服以上的問題,必須有組織的執(zhí)行需求的獲取活動。

  需求獲取活動要完成的任務(wù)或者步驟的過程如下:

  1、編寫項目視圖和范圍文檔

  系統(tǒng)的需求包括四個不同的層次:業(yè)務(wù)需求、用戶需求和功能需求、非功能性需求。業(yè)務(wù)需求說明了提供給用戶新系統(tǒng)的最初利益,反映了組織機構(gòu)或用戶對系統(tǒng)、產(chǎn)品高層次的目標要求,它們在項目視圖與范圍文檔中予以說明。用戶需求文檔描述了用戶使用產(chǎn)品必須要完成的任務(wù),這在使用實例文檔或方案腳本說明中予以說明。功能需求定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),從而滿足了業(yè)務(wù)需求。

  非功能性需求是用戶對系統(tǒng)良好運作提出的期望,包括了易用性、反應(yīng)速度、容錯性、健壯性等等質(zhì)量屬性。需求獲取就是根據(jù)系統(tǒng)業(yè)務(wù)需求去獲得系統(tǒng)用戶需求,然后通過需求分析得到系統(tǒng)的功能需求和非功能需求。項目視圖和范圍文檔就是從高層次上描述系統(tǒng)的業(yè)務(wù)需求,應(yīng)該包括高層的產(chǎn)品業(yè)務(wù)目標,評估問題解決方案的商業(yè)和技術(shù)可行性,所有的使用實例和功能需求都必須遵從的標準。而范圍文檔定義了項目產(chǎn)品所包括的所有工作及產(chǎn)生產(chǎn)品所用的過程。項目相關(guān)人員對項目的目標和范圍能達成共識,整個項目組都應(yīng)該把注意力集中在項目目標和范圍上。

  2、用戶群分類

  系統(tǒng)用戶在很多方面存在著差異,例如:使用系統(tǒng)的頻度和程度、應(yīng)用領(lǐng)域和計算機系統(tǒng)知識、所使用的系統(tǒng)特性、所進行的業(yè)務(wù)過程、訪問權(quán)限、地理上的布局以及個人的素質(zhì)和喜好等等。根據(jù)這些差異,你可以把這些不同的用戶分成不同的用戶類。與ULM中Usecase的Actor概念一樣,用戶類不一定都指人,也可以包括其他應(yīng)用系統(tǒng)、接口或者硬件,這樣做使得與系統(tǒng)邊界外的接口也成為系統(tǒng)需求。將用戶群分類并歸納各自特點,并詳細描述出它們的個性特點及任務(wù)狀況,將有助于需求的獲取和系統(tǒng)設(shè)計。

  3、建立核心隊

  通常用戶和開發(fā)人員不自覺的都有一種"我們和他們"的想法,產(chǎn)生一種對立關(guān)系,把彼此放在對立面,每一方都定義自己的"邊界",只想自己的利益而忽略對方的想法。他們通過文檔、記錄和對話來溝通,而不是作為一個合作的整體去識別和確定需求完成任務(wù)。實踐證明這樣的方法是不正確的,不會給雙方帶來一點益處,良好的溝通關(guān)系沒有建立導致了誤解和忽略重要的信息。只有當雙方參與者都明白要成功自己需要什么,同時也知道要成功對方需要什么時,才能建立起一種合作關(guān)系。

  為了建立合作關(guān)系通常采取一種組隊的方式來獲取需求,建立一個由用戶代表和開發(fā)人員組成的聯(lián)合小組作為需求獲取的核心隊伍。聯(lián)合小組將負責識別需求、分析解決方案和協(xié)商分歧,小組成員可以采用會議、電子郵件、綜合辦公系統(tǒng)等方式進行交流,但交流時應(yīng)注意以下原則:小組會議應(yīng)該由中立方來組織和主持,用戶和開發(fā)人員都要參加;交流預先要確定準備和參與的規(guī)則;議題要明確并覆蓋所有關(guān)鍵點,但信息來源應(yīng)該自由;交流目標要明確,并告知所有的成員。

  4、確定使用實例

  從用戶代表處收集他們將使用系統(tǒng)完成所需任務(wù)的描述,討論用戶與系統(tǒng)間的交互方式和對話要求,這就是使用實例,一個單一的使用實例可能包括完成某項任務(wù)的許多邏輯相關(guān)任務(wù)和交互順序。使用實例方法給需求獲取帶來的好處來自于該方法是用以任務(wù)為中心和以用戶為中心的觀點,比起使用以功能為中心和以開發(fā)者為中心的方法,使用實例方法可以使用戶更清楚地理解和認識到新系統(tǒng)允許他們做什么和怎么做。描寫使用實例的時候要注意使用簡潔直白的表述,盡量使用主動語態(tài),用"系統(tǒng)"或者"用戶"作為主語,比如"用戶提交用戶密碼,系統(tǒng)驗證用戶密碼是否正確",還有一點在描述中不要設(shè)計界面細節(jié),比如"用戶從下拉框中選擇產(chǎn)品類型"。使用實例為以后寫用例場景描述中的基本路徑和擴展路徑提供了素材。

  5、分析用戶工作流程

  分析用戶工作流程觀察用戶執(zhí)行業(yè)務(wù)任務(wù)的過程,通過分析使用實例得到系統(tǒng)的用例圖。編制用例圖文檔將有助于明確系統(tǒng)的使用實例和功能需求,統(tǒng)一建模語言的使用有助于與用戶進一步交流。每個用例的描述應(yīng)包括:編號,為每個用例分配一個唯一的編號,為需求的追溯提供了方便;參與者,與這個用例交互的 actor;前置條件,開始用例前所必須具備的系統(tǒng)狀態(tài);后置條件,用例完成后系統(tǒng)達到的狀態(tài);基本路徑,用例完成的關(guān)鍵路徑,也是用戶期望的路徑;擴展點,基本路徑的分枝,表示意外情況;字段說明,路徑中名稱的進一步分解說明,對以后類屬性的定義和數(shù)據(jù)庫字段設(shè)計起作用;設(shè)計約束,實現(xiàn)用例的非功能約束。

  6、檢查問題報告

  通過檢查當前已經(jīng)運行系統(tǒng)的問題報告來進一步完善需求客戶的問題報告及補充需求為新系統(tǒng)或新版本提供了大量豐富的改進及增加特性的想法,負責提供用戶支持及幫助的人能為收集需求過程提供極有價值的信息。

  7、需求重用

  如果客戶要求的功能與已有的系統(tǒng)很相似,則可查看需求是否有足夠的靈活性以允許重用一些已有的軟件組件。業(yè)務(wù)建模和領(lǐng)域建模式需求重用的最好方法,像分析模式和設(shè)計模式一樣,需求也有自己的模式。

  總結(jié):經(jīng)過一學期的軟工實驗,深刻感到其重要性的同時也學到了不少的東西 ,將對我在今后的軟件開發(fā)過程中起極大的作用。

  軟件工程學習心得體會 篇9

  在這次軟件工程課程中,我學到了很多東西,第一次深刻的體會到了什么叫做用工程化的思想來編寫軟件,以前自己也寫過一些小型軟件,沒有做過大型的項目,直到這次課堂我擔任組長并組織組員共同完成“個人圖書管理系統(tǒng)”這個項目,第一次和別人合作,才發(fā)現(xiàn)運用工程化的思想來做是如此的有必要。

  從這里,我才真正的意識到實施一個軟件工程并不是說簡單的會編碼就能夠解決問題的,我們更多的精力不是放在編碼上,編碼只是一個很小的模塊,只占到那么小的一個部分。這個事實在很大程度上顛覆了我以前的思想,在我以前的認識中,似乎整個軟件就是編碼,除此無它,還好有老師的指導,不然真的會出現(xiàn)老師所說的,撞得頭破血流之后才想起來用軟件工程的思想來完成這個工作。

  剛真正開始工作之前,我們費了很多的時間來完成一些前端工作,如需求分析和可行性分析,這塊工作在別人看來可能是相對無關(guān)緊要,甚至是多于的,其實,換做在以前,我也會這么認為?墒,我現(xiàn)在算是深深地明白了磨刀不誤砍柴工的道理,這些工作的完成太有必要了,太重要了,要想你的軟件有用有市場,能被別人接受和認可,在進行過程中不會出現(xiàn)崩潰性的問題,這些工作缺一不可。

  還有就是接下來的一些設(shè)計模塊,此模塊與軟件編碼涉及比較緊密,主要是解決一些參數(shù)傳遞和接口通訊的問題,此模塊對我的觸動遠沒有上兩個模塊對我的影響大,因此再次也不做過多的介紹。

  在整個活動的完成過程中,作為組長,我收獲很多,我發(fā)現(xiàn),要是組里有個人不怎么想做事情時,他對于整個組織的影響是毀滅性的,正所謂“一顆老鼠屎,能壞一倉谷”,以后我的`組織里要是出現(xiàn)這樣的人,我絕不會給他繼續(xù)留下來的機會,我會在第一時間將他清除出去。還有就是,作為組長,你要做的最重要的事情,不是發(fā)揮自己的聰明才智,而是創(chuàng)造出一個平臺,讓別人去發(fā)揮,你所要做得,出了保證這個平臺的完整性和公平性外,還有就是協(xié)調(diào)好各組員之間的關(guān)系。

  這就是我的實習感想。

  軟件工程學習心得體會 篇10

  我們是20XX年3月7號進入宏天實訓公司參加軟件開發(fā)實訓的,在此次實訓中,除了讓我明白工作中需要能力,素質(zhì),知識之外,更重要的是學會了如何去完成一個任務(wù),懂得了享受工作。當遇到問題,冷靜,想辦法一點一點的排除障礙,到最后獲取成功,一種自信心就由然而生,這應(yīng)該就是工作的樂趣。有時候不懂的就需要問別人了,虛心請教,從別人的身上真的能學到自己沒有的東西,每一次的挫折都會使我更接近成功。還有學會了在工作中與人的合作與交流,同樂同累,合作互助,這是團體的精神,也是必須學習的東西。

  經(jīng)過之前的在校學習,對程序設(shè)計有了一定的認識與理解。在校期間,一直都是學習理論知識,沒有機會去參與項目的開發(fā)。所以說實話,在實訓之前,軟件項目開發(fā)對我來說是比較抽象的,一個完整的項目要怎么分工以及完成該項目所要的步驟也不是很明確。而經(jīng)過這次實訓,讓我明白了一個完整項目的開發(fā),必須由團隊來分工合作,并在每個階段中進行必要的總結(jié)與論證。

  一個完整項目的開發(fā)它所要經(jīng)歷的階段包括:遠景范圍規(guī)劃和用例說明、項目結(jié)構(gòu)和風險評估、業(yè)務(wù)功能說明書、詳細設(shè)計說明書、代碼實現(xiàn)、測試和安裝包等等。一個項目的開發(fā)所需要的財力、人力都是很多的,如果沒有一個好的遠景規(guī)劃,對以后的開發(fā)進度會有很大的影響,甚至會出現(xiàn)在預定時間內(nèi)不能完成項目或者完成的項目跟原來預想的不一樣。一份好的項目結(jié)構(gòu)、業(yè)務(wù)功能和詳細設(shè)計說明書對一個項目的開發(fā)有明確的指引作用,它可以使開發(fā)人員對這個項目所要實現(xiàn)的功能在總體上有比較明確的認識,還能減少在開發(fā)過程中出現(xiàn)不必要的麻煩。代碼的`實現(xiàn)是一個項目開發(fā)成功與否的關(guān)鍵,也就是說,前期作業(yè)都是為代碼的實現(xiàn)所做的準備。

  我深刻的認識到要成為一名優(yōu)秀的軟件開發(fā)人員不是一件容易的事情,不僅要有足夠的干勁和熱情,還要有扎實的編寫代碼基礎(chǔ),必須要有事先對文檔進行可靠性報告,功能說明書,詳細設(shè)計說明書等的編寫和一些風險評估的編寫的能力。

【軟件工程學習心得體會】相關(guān)文章:

軟件工程學習心得體會(精選10篇)03-23

軟件工程學習心得體會(精選17篇)01-17

軟件工程學習心得體會(精選12篇)10-24

軟件工程學習方法11-11

軟件工程學習心得體會(通用16篇)02-08

軟件工程心得體會04-24

軟件工程心得體會07-06

軟件工程實習心得體會03-22

軟件工程心得體會精品06-04