軟件工程心得體會(huì )
從某件事情上得到收獲以后,可以通過(guò)寫(xiě)心得體會(huì )的方式將其記錄下來(lái),從而不斷地豐富我們的思想。那么好的心得體會(huì )都具備一些什么特點(diǎn)呢?以下是小編為大家收集的軟件工程心得體會(huì ),歡迎大家分享。
軟件工程心得體會(huì )1
時(shí)間飛逝,不知不覺(jué)間《軟件工程》的學(xué)習已經(jīng)過(guò)了大半了。在這將近半學(xué)期的學(xué)習中,雖然我不能說(shuō)我將《軟件工程》學(xué)習的有多么的好,但是通過(guò)學(xué)習,我還是受益良多。
在以前,我一直對軟件存在一些偏見(jiàn)或則是誤解,認為軟件就是程序,軟件的開(kāi)發(fā)就是編寫(xiě)程序,只要編完了程序,一切也就ok了,而且我還片面的認為只要我掌握了時(shí)下最新的語(yǔ)言和工具,那么我就能寫(xiě)程序了。一個(gè)人,只要會(huì )編程,就能寫(xiě)軟件,就是程序員;一個(gè)公司,只要招聘一些程序員,就能開(kāi)發(fā)好的軟件產(chǎn)品。只要有幾個(gè)有經(jīng)驗的程序員,再找些兼職的大學(xué)生,就能組成一個(gè)軟件公司。
但是通過(guò)了《軟件工程》這門(mén)課的學(xué)習,使我認識到了我以前的錯誤。軟件其實(shí)不僅僅是程序,軟件開(kāi)發(fā)其實(shí)也不僅僅是編寫(xiě)程序,軟件是思想在硬件上的載體和體現,處理的是邏輯和信息。唯有對軟件和軟件的開(kāi)發(fā)過(guò)程,有充分的認識,才能更好的開(kāi)發(fā)出,過(guò)程受控、質(zhì)量受控的軟件產(chǎn)品。
而且在以前,我一直以為軟件的開(kāi)發(fā)其實(shí)是一件很輕松快樂(lè )的事情,只要一天坐在電腦旁敲敲鍵盤(pán),那么一切就可以了,但是現在我才發(fā)現,我以前的很多的思想是多么的膚淺可笑。編程其實(shí)是一種樂(lè )趣和苦惱共存的一項創(chuàng )造性活動(dòng)。因為編程不僅能夠滿(mǎn)足我們內心深處進(jìn)行創(chuàng )造的渴望,而且還能愉悅我們內在的情感。
而且通過(guò)學(xué)習《軟件工程》,我還學(xué)到了很多其他的東西。比如通過(guò)學(xué)習《軟件工程》,特別是老師每次用實(shí)際的軟件現場(chǎng)的講解,為我提供了一個(gè)盡早接觸世界工作和真實(shí)項目的機會(huì )。讓我知道如何在以最小的成本中,訓練自己的基本工程素質(zhì)和能力,如何激發(fā)自己的積極性等。而且通過(guò)學(xué)習《軟件工程》,還讓我認識和培養了我的團隊協(xié)作能力,特別是對于我們這些在校的學(xué)生來(lái)說(shuō),這種學(xué)習更是能讓我在以后工作中少走很多的彎路。
所以,通過(guò)《軟件工程》的學(xué)習,我是真的學(xué)習到了很多有用的東西,讓我明白了很多的道理。在此我對老師的辛勤教育表示感謝,因為是你讓我學(xué)習到了這些,是我獲益良多。
軟件工程心得體會(huì )2
軟件工程心得體會(huì )未接觸軟件工程之前一直都很想學(xué)這門(mén)課程,因為覺(jué)得這門(mén)課很牛,是那些有工程師稱(chēng)號的高手才擺弄的東西。學(xué)了一個(gè)學(xué)期的軟件工程課,終于知道了個(gè)軟件工程的大概。學(xué)的時(shí)候總覺(jué)得很抽象,理解起來(lái)好像不難,但總是摸不著(zhù)頭腦一種很茫然的感覺(jué)。曾經(jīng)以為程序就是軟件,軟件就是程序。學(xué)習這門(mén)課程第一個(gè)收獲是,知道了二者的不同之處。以前做過(guò)的一些小型的軟件比如加密軟件,我也只是在程序旁邊附上一個(gè)軟件的說(shuō)明,看來(lái)已經(jīng)很接近作坊了。不過(guò)大的項目沒(méi)有接觸過(guò),用軟件工程的方法還是第一次。我想也是程序的不斷復雜化導致了軟件危機的發(fā)生,使得人們不得不探索新的解決方法。
經(jīng)過(guò)倪老師的講解,理解了軟件工程,就是一套用于軟件的團隊開(kāi)發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的'規范。其核心就是,對于軟件開(kāi)發(fā)的5個(gè)重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這5個(gè)部分的工作,以及如何完成每一個(gè)工作。吾生也有涯,而知也無(wú)涯,學(xué)習永無(wú)止境。起初,對軟件工程處于一知半解的狀態(tài),分工比較混亂。
在劃分模塊后明確了各自分工,漸漸形成良性循環(huán)。在學(xué)習過(guò)程中,知道了團隊合作十分重要,爭議固然存在,但通過(guò)討論、協(xié)商,群策群力,在不斷磨合中能夠達成一致與默契。團隊成員中能力各有高下,互相尊重,各取所長(cháng),不宜妄自菲薄。組長(cháng)多加協(xié)調,組員積極配合,才能合作愉快。學(xué)習能力體現在能盡快接受新的知識,順應變化,學(xué)為所用。
上《軟件工程導論》這門(mén)課,我的收獲大概如下:我們?yōu)槭裁葱枰浖こ棠?上面已?jīng)給出了一些原因。專(zhuān)業(yè)點(diǎn)講,軟件工程最終是為了實(shí)現“軟件制造業(yè)”的社會(huì )化,工業(yè)化大生產(chǎn),提高其勞動(dòng)生產(chǎn)效率。只有如此,軟件業(yè)才能實(shí)現社會(huì )化,工業(yè)化大生產(chǎn),才能“做大做強”。沒(méi)有管理的設計是失敗和混亂的設計,沒(méi)有設計指導的編程是無(wú)序的忙碌的。根據開(kāi)發(fā)的軟件的規模,應該適當程度的運用軟件工程化的思想,需要靈活,畢竟我們開(kāi)發(fā)的軟件大多數是中小型的,大型的并不多見(jiàn)(我是這么認為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果更穩定。
其實(shí)開(kāi)發(fā)軟件,就像是解決一個(gè)邏輯問(wèn)題。想想自己平時(shí)是怎樣寫(xiě)程序的。首先是要有一個(gè)想法,即我寫(xiě)的這個(gè)程序是要干什么的;然后就是對要實(shí)現的核心功能大概構思一種或多種實(shí)現方法,并從中選出一種自認為是較好的;接下來(lái)就是將涉及的各種主要或次要功能分成各個(gè)模塊;最后就是分模塊來(lái)編碼和DEBUG。在我看來(lái),除了第一步外,其余的步驟應該是一個(gè)循環(huán)的過(guò)程。在編碼的過(guò)程中,你總是需要不斷地回過(guò)頭來(lái)修改原先的模塊設計,甚至最初選定的實(shí)現算法。具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進(jìn)行分析,設計,編碼,調試,維護這幾部分的工作的時(shí)候,最核心的就是文檔的編寫(xiě)。
1、可行性分析就是關(guān)于當前項目能不能干的分析結果。
2、項目描述這是在決定立項以后,對當前項目的一份扼要說(shuō)明。
3、需求分析就是對客戶(hù)要求的功能的定義。
4、軟件設計這就是對程序的每一個(gè)模塊的詳細設計的說(shuō)明文檔。
5、開(kāi)發(fā)日志我一直都認為這是文檔中最有趣的部分。開(kāi)發(fā)日志相當于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫(xiě)程序時(shí)突然萌發(fā)的靈感,或對代碼的一些微小的修改,或對程序結構的一些微小變動(dòng)等,還要對上述這些修改變動(dòng)作些說(shuō)明。
6、測試分析用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數字描述。
軟件工程心得體會(huì )3
在本學(xué)期的軟件工程課程的學(xué)習中,我們學(xué)習了十一章的內容。第一章軟件與軟件工程的概念,這一章主要講解的是一些概念性和基礎性的內容,例如軟件的概念、特性,軟件危機的主要表現,軟件工程的概念以及軟件生存期、典型生存期模型等等。第二章軟件工程方法與工具,這一章主要對軟件工程方法進(jìn)行介紹,包括三種方法:傳統方法、面向對象方法、形式化方法。還引出了工具UML。第三章軟件需求獲取與結構化分析方法,本章詳細介紹了需求獲取與需求分析階段的任務(wù)以及結構化分析方法,畫(huà)分層的數據流圖、E—R圖以及狀態(tài)圖式本節的重點(diǎn)。第四章結構化分析方法,這一章重點(diǎn)講解了使用變換型映射方法和事務(wù)型映射方法生成初始的模塊結構以及模塊結構的改進(jìn)。第五章編碼,這一章重點(diǎn)講解了編碼的風(fēng)格及規范,還告訴我們編碼規范說(shuō)帶來(lái)的好處,并告誡我們將來(lái)一點(diǎn)要形成好的編碼風(fēng)格。第六章軟件測試方法,本章講解了軟件測試相關(guān)的概念及重要性,軟件測試與開(kāi)發(fā)各個(gè)階段的關(guān)系;還介紹了白盒測試技術(shù)以及黑河測試技術(shù)。第七章統一建模語(yǔ)言UML概述,本章詳細介紹了UML的基本模式、事物、關(guān)系及建模時(shí)用到的各種圖進(jìn)行了介紹。第八章面向對象分析,這一章主要講解了面向對象分析的3種模型,包括功能模型、靜態(tài)模型和動(dòng)態(tài)模型。第九章軟件體系結構與設計模式,本章對軟件體系結構的基本概念、典型風(fēng)格等進(jìn)行了講解。第十章面向對象設計,本章的重點(diǎn)是對面向對象分析時(shí)建立的對象模型進(jìn)行調整和細化。第十一章軟件維護,本章主要介紹軟件維護的任務(wù)、軟件維護活動(dòng)以及軟件維護方法進(jìn)行了介紹。
要學(xué)習軟件工程,學(xué)會(huì )如何系統的思考,以及養成良好的編碼習慣,想學(xué)好軟件工程,就必須知道軟件工程的目標、過(guò)程和原則:軟件工程目標:生產(chǎn)具有正確性、可用性以及開(kāi)銷(xiāo)合宜的產(chǎn)品。正確性指軟件產(chǎn)品達到預期功能的程度?捎眯灾杠浖窘Y構、實(shí)現及文檔為用戶(hù)可用的程度。開(kāi)銷(xiāo)合宜是指軟件開(kāi)發(fā)、運行的整個(gè)開(kāi)銷(xiāo)滿(mǎn)足用戶(hù)要求的程度。這些目標的實(shí)現不論在理論上還是在實(shí)踐中均存在很多待解決的問(wèn)題,它們形成了對過(guò)程、過(guò)程模型及工程方法選取的約束。
軟件工程過(guò)程:生產(chǎn)一個(gè)最終能滿(mǎn)足需求且達到工程目標的軟件產(chǎn)品所需要的步驟。軟件工程過(guò)程主要包括開(kāi)發(fā)過(guò)程、運作過(guò)程、維護過(guò)程。它們覆蓋了需求、設計、實(shí)現、確認以及維護等活動(dòng)。需求活動(dòng)包括問(wèn)題分析和需求分析。問(wèn)題分析獲取需求定義,又稱(chēng)軟件需求規約。需求分析生成功能規約。設計活動(dòng)一般包括概要設計和詳細設計。概要設計建立整個(gè)軟件系統結構,包括子系統、模塊以及相關(guān)層次的說(shuō)明、每一模塊的接口定義。詳細設計產(chǎn)生程序員可用的模塊說(shuō)明,包括每一模塊中數據結構說(shuō)明及加工描述。實(shí)現活動(dòng)把設計結果轉換為可執行的程序代碼。確認活動(dòng)貫穿于整個(gè)開(kāi)發(fā)過(guò)程,實(shí)現完成后的確認,保證最終產(chǎn)品滿(mǎn)足用戶(hù)的要求。維護活動(dòng)包括使用過(guò)程中的擴充、修改與完善。伴隨以上過(guò)程,還有管理過(guò)程、支持過(guò)程、培訓過(guò)程等。
軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開(kāi)發(fā)過(guò)程中必須遵循的原則。
我們學(xué)習了詳細設計的方法,其原則是過(guò)程描述是否易于理解、復審和維護,進(jìn)而過(guò)程描述能夠自然地轉換成代碼,并保證詳細設計與代碼完全一致。包括程序流程圖、N—S圖、PAD圖、HIPO圖
程序流程圖:程序流程圖又稱(chēng)之為程序框圖,它是軟件開(kāi)發(fā)者最熟悉的一種算法表達工具。它獨立于任何一種程序設計語(yǔ)言,比較直觀(guān)和清晰地描述過(guò)程的控制流程,易于學(xué)習掌握。在流程圖中只能使用下述的五種基本控制結構:順序型;選擇型;while型循環(huán);until型循環(huán);多情況型選擇。
N—S圖:一種符合結構化程序設計原則的圖形描述工具,稱(chēng)為盒圖,又稱(chēng)為N—S圖。在N—S圖中,為了表示五種基本控制結構,規定了五種圖形構件。順序型;選擇型;WHILE重復型;UNTIL重復型;多分支選擇型。
PAD圖:它是用結構化程序設計思想表現程序邏輯結構的圖形工具。PAD也設置了五種基本控制結構的圖示,并允許遞歸使用。
HIPO圖:HIPO圖是由一組IPO圖加一張HC圖組成。它是美國IBM公司在軟件設計中使用的主要表達工具。
HC圖既是層次圖,用于表示軟件的分層結構。HC圖中的每一個(gè)模塊,均可用一張IPO圖來(lái)描述。IPO圖由輸入、處理和輸出三個(gè)框組成,需要時(shí)還可以增加一個(gè)數據文件框,這種圖形的優(yōu)點(diǎn),是能夠直觀(guān)地顯示輸入—處理—輸出三者之間的聯(lián)系。
還有測試方法:按照測試過(guò)程是否在實(shí)際應用環(huán)境中來(lái)分,有靜態(tài)分析與動(dòng)態(tài)測試。測試方法有分析方法(包括靜態(tài)分析法與白盒法)與非分析方法(稱(chēng)黑盒法)。
靜態(tài)分析技術(shù):不執行被測軟件,可對需求分析說(shuō)明書(shū)、軟件設計說(shuō)明書(shū)、源程序做結構檢查、流程分析、符號執行來(lái)找出軟件錯誤。
動(dòng)態(tài)測試技術(shù):當把程序作為一個(gè)函數,輸入的全體稱(chēng)為函數的定義域,輸出的全體稱(chēng)為函數的值域,函數則描述了輸入的定義域與輸出值域的關(guān)系。
還學(xué)習了其他很多工具、語(yǔ)言、方法等,雖然不是都學(xué)得很透徹,但我相信在今后的學(xué)習中一定會(huì )慢慢的完善的。
軟件工程對于初學(xué)者來(lái)說(shuō),知識基礎較薄弱,對一些應用操作、概念、工具方法等理解起來(lái)較為困難,要能從整體概念上較好地理解和把握、學(xué)好軟件工程,不是僅僅把幾本專(zhuān)業(yè)書(shū)籍細致地看幾遍,然后上機練習幾次就可以成功,學(xué)習過(guò)程中要注意多看多練要注意結合實(shí)際,更要多思考,面對錯誤不要一范就問(wèn),要嘗試自己去解決。但是還要注意什么都學(xué),肯定是什么都學(xué)不透的,要集中精力打攻堅戰,學(xué)習軟件工程首先要明白自己的學(xué)習目標究竟是什么,根據自己的實(shí)際工作出發(fā),有針對性的在相應的學(xué)習方向上進(jìn)行提高,制定出詳細的學(xué)習規劃。還要注意與其他科目的相輔相成,就像我們在學(xué)習面向對象分析的時(shí)候要結合大一學(xué)習的面向對象及其方法學(xué)這一專(zhuān)業(yè)科目進(jìn)行研究拓展;在學(xué)習語(yǔ)言時(shí),要看看與C語(yǔ)言的聯(lián)系,多思多想,把從各個(gè)科目學(xué)到的知識通匯貫通。
在軟件工程的學(xué)習中,我了解到了軟件并非是一些代碼這么簡(jiǎn)單,在開(kāi)發(fā)軟件的過(guò)程中,編寫(xiě)代碼的工作量其實(shí)只占不到所有工程量的30%,而后期的管理和維護更是占了60%到80%之多。一個(gè)完整的項目規劃須包括,軟件的定義,可行性分析報告,項目開(kāi)發(fā)計劃,軟件需求說(shuō)明書(shū),概要設計說(shuō)明書(shū),詳細設計說(shuō)明書(shū),用戶(hù)操作手冊,測試計劃,測試分析報告,開(kāi)發(fā)進(jìn)度報告,項目開(kāi)發(fā)總結報告,軟件維護手冊,軟件問(wèn)題報告,軟件修改報告,等多個(gè)文檔,每個(gè)文檔都要上級驗收審查,而文檔數量眾多,要做好這點(diǎn)真的不是很容易,而恰恰寫(xiě)好文檔正能保證完成軟件工程其中一個(gè)目的的關(guān)鍵,既研究如何用最小的開(kāi)銷(xiāo)做出生存期較長(cháng)的軟件,再加上各個(gè)階段都要進(jìn)行周密的策劃、詳細的分工部署和人員安排,且各階段要據具體情況不斷的反復才能達成,所以代碼只是開(kāi)發(fā)軟件這個(gè)浩大的工程的一個(gè)小小的過(guò)程。
而編碼的學(xué)習中,我更了解到形成自己獨特的規范的編碼風(fēng)格是非常重要的事。因為這影響到了軟件后期繁重的維護,大家都要閱讀你的程序,如果你寫(xiě)的程序毫無(wú)規范可言,那么別人怎么能讀懂你的程序?讀不懂程序,維護又從何談起呢?所以,我們在今后的學(xué)習中,一定要注意這方面的培養,在寫(xiě)程序的過(guò)程中,要逐步的在規范的基礎上形成屬于自己的風(fēng)格,即方便自己的修改,也方便日后他人的閱讀。
在學(xué)習中,我們還要注意比較三種方法的優(yōu)缺點(diǎn),例如:傳統方法雖然使軟件擺脫了混亂和無(wú)序,但其在適應需求變化的方面不夠靈活,而且傳統方法要么面向行為,要么面向數據,缺乏兩者的有機結合。而面向對象方法的程序設計和問(wèn)題求解更符合人們日常自然的思維習慣,適合大型、復雜及交互性比較強的系統。形式化方法則是一中基于形式化數學(xué)變換的軟件開(kāi)發(fā)方法,它可將系統的規格說(shuō)明轉換為可執行的程序。
在今后的學(xué)習中要注意多讀書(shū)、多思考、多練習、多討論,不斷熟悉書(shū)本的基礎,并以此為基礎將其擴散開(kāi)來(lái),應用于今后的實(shí)踐。不斷鍛煉自己,向一名合格的程序設計師邁進(jìn)。
【軟件工程心得體會(huì )】相關(guān)文章:
軟件工程論文開(kāi)題報告01-25
軟件工程論文開(kāi)題報告范文01-25
軟件工程論文的開(kāi)題報告07-31
軟件工程師簡(jiǎn)歷范文09-01
軟件工程實(shí)習報告(通用15篇)01-21
java軟件工程師離職證明09-03
軟件工程師工作簡(jiǎn)歷范文11-21
軟件工程師的個(gè)人簡(jiǎn)歷01-13