優(yōu)秀軟件工程實訓心得體會(模板17篇)

字號:

    寫心得體會是一個評估自己學習和工作成果的方式。一篇較為完美的心得體會需要結(jié)合具體事例進行闡述和分析。4.下面是幾篇關于心得體會的優(yōu)秀例文,希望能給大家提供一些寫作思路和參考。
    軟件工程實訓心得體會篇一
    跟隨著公司的客車,我們來到了xx有限公司,一路的欣喜,卻掩飾不住心底的好奇,以及滿心的期待。于是不由得在心里起誓,一定要好好工作。來到公司的前三天,我們一直在接受培訓工作。嘿嘿,感覺不錯奧。早上來到會議室,吹著空調(diào),聽著演講,拿著公司發(fā)得筆記本,記錄著。這三天都是人力資源主任給我們做得培訓,講關于我們的職業(yè)規(guī)劃,講在日常工作及生活中的安全工作,還涉及到了怎樣為人處事。印象最深刻的是,在第三天主任培訓完后,請員工作這三天的總結(jié)時,我作的總結(jié)得到了大家的一致好評。感覺很開心。從下周開始我們開始進入車間,熟悉環(huán)境。
    第一周
    短短一周,卻可以讓我感慨萬千?,F(xiàn)在的我們還沒有到畢業(yè)季,然而最近的日子卻讓我們真切的感受到了,離別的依依不舍。我的舍友,我的同窗,我的好友,大家都在紛紛忙于準備實習的事情。雖是短短兩年,誰也不會想到,面臨朋友所坐得的客車開動時,我們的'內(nèi)心,會如此難受,如此不舍。然而,轉(zhuǎn)念一想,也許這才是我們又一個新的開始。只希望我們安好。
    第二周
    這一周我們都被安排在了車間不同的部門工作,我在質(zhì)檢部,臨班的xx被安排在了設備維修部,其他人被安排在了生產(chǎn)部門。工廠所采用的機器都比較先進,但感覺就像回到了我們學校的實訓樓一樣,一般來說都是機器自動操作,比如cnc數(shù)控機、車銑復合、車床、磨床、齒輪磨床等。所以,這樣的公司給我們的感覺就是,員工操作得當,人員安排合理,一定都能產(chǎn)生較高的效率(一般來說,都需要熟練人工的,我們能來這實習應該很不錯)。我們也要好好學習了。我在質(zhì)檢部,跟隨xx工學習。
    第三周
    我們公司有自己的作息時間,并且都會嚴格遵守。我們中午有一個小時的休息時間,我一般就回宿舍休息會,不過車間的員工不是,他們就連中午休息間隙,每個工人都會把自己得區(qū)域整理得井然有序,這樣的自覺整理也是工廠之所以能保持潔凈的原因之一。在用餐問題上,工廠也有自己的特色。那就是上至高層主管下至普通工人,吃的飯菜一律相同,沒有任何的特殊化。
    第四周
    天氣依然很炎熱,車間的風扇呼呼的吹著,卻也解不了我們的炎熱,同時也掩飾不了我們內(nèi)心的火熱。因為我屬于質(zhì)檢部,我們是產(chǎn)品質(zhì)量的二次確認者,所以我必須努力的學習看圖紙,學習使用一切量具,包括游標卡尺、螺旋測微器、三維坐標測試儀等等。現(xiàn)在我們下午最后的一個小時是去會議室繼續(xù)培訓,每天都會有相關領導去給我們講解,關于公司的發(fā)展歷史,以及其他專業(yè)知識。并通知我們,下周二考試。于是我們在車間工作的同時,又找出了學校的課本學習。
    第五周
    離開校園已經(jīng)有一段時間了,雖然在這個廠里,我還有很多臨班的同學、朋友,帶我的師傅人也很好,但是有時我也會想我的同桌,想我的舍友,想班里的好伙伴們,在心底默默地想念,不知道他們在別的城市過得好不好,工作是否順心??吹綇S里我的同學面對對編程、數(shù)控一臉茫然的樣子,我多想念學校的日子,想念我的老師,想在學校里,老師無奈的樣子,心急的教誨。
    軟件工程實訓心得體會篇二
    所謂的實訓,無非是在工人師傅和老師的帶領下參觀實訓工廠,包括它的工作環(huán)境和工作過程等一系列的相關項目。然而,這看似簡單輕松的實訓卻不是我們想象的那么無味。實訓這個東西,關鍵看自己是不是認真的對待,倘若很重視它,那么實訓將會成為你受益終生的勝利果實;反之如果我們把它當做玩耍和消遣,那么也許我們將后悔一輩子。
    相機在實訓中是必須品,用于記錄那些精彩的東西,筆和本子更是不能缺少,因為我們需要他們的幫助來記錄好應該掌握的東西和知識。滿懷著對長春一汽的向往和對實訓這一新鮮事物的追求,我們邁著激動的步伐,徒步來到長春一汽的鑄造一廠。
    說到鑄造大家都知道,就是將金屬熔煉成符合一定要求的液體并澆進鑄型里,經(jīng)冷卻凝固、清整處理后得到有預定形狀、尺寸和性能的鑄件的工藝過程。鑄造毛胚因近乎成形,而達到免機械加工或少量加工的目的降低了成本并在一定程度上減少了時間。鑄造是現(xiàn)代機械制造工業(yè)的基礎工藝之一。通常是砂型鑄造和木模鑄造等等。我們在這里主要參觀的是砂型鑄造汽車發(fā)動機的缸體和缸蓋的鑄造過程。
    鑄造車間的特點歸結(jié)起來兩個字:臟和熱??梢哉f這里滿是灰塵,環(huán)境是很壞的;噪音很大,大得連大聲叫喊都難以聽見;光線昏暗不說,而且熱的很,工人師傅們在這里工作很辛苦。很復雜的生產(chǎn)線在昏暗的燈光下伴隨著隆隆的機器轟鳴聲傳遞著沉重的鑄件從一個工序到另一個工序;火紅的高爐邊,工人師傅穿著厚重的衣服在爐邊作業(yè)。盡管這里的環(huán)境如此的壞,但是絲毫沒有改變工人師傅們的工作態(tài)度和工作熱情,可以說他們的態(tài)度比鑄件的質(zhì)量還要高,他們的熱情比高爐的熱浪還要熱。正是在怎么惡劣的環(huán)境下,生產(chǎn)出了舒適的汽車的心臟——發(fā)動機的重要組成部分。可見,我們的大好生活來之不易,是用那么多人的心勤汗水一點一滴換來的,所以我們一定要珍惜它,并且為之努力奮斗。
    鑄造車間的實訓占用了我們半天的時間,總結(jié)起來可以說,由于環(huán)境和其他因素的限制,我們沒學習到能讓大家填飽肚子的'知識,但是我們至少學到了一點,那就是:態(tài)度決定一切。這也證明了哲學上的一句話:主觀因素對事物的發(fā)展起決定性的作用。盡管條件很艱苦,盡管環(huán)境很惡劣,但是我們既然選擇了它,我們就要勇于面對它,就要在心底把它征服。我們不是要逃避它,而是要改變它,把他完善的更加美好。忽然地感覺自己的肩上沉甸甸的,似乎祖國的機械制造業(yè)的明天就把握在自己的手里,仿佛祖國的振興就要靠我們來推動。事實也是這樣,我們就是祖國的希望,我們就是祖國的未來!
    軟件工程實訓心得體會篇三
    通過這次實訓,讓我了解到工程開發(fā)的過程,可行性分析——需求分析——概要設計——詳細設計——代碼編寫——測試——驗收。下面是本站小編為大家收集的軟件工程實訓的
    心得體會
    精選案例,望大家喜歡。
    我們是20xx年3月7號進入宏天實訓公司參加軟件開發(fā)實訓的,在此次實訓中,除了讓我明白工作中需要能力,素質(zhì),知識之外,更重要的是學會了如何去完成一個任務,懂得了享受工作。當遇到問題,冷靜,想辦法一點一點的排除障礙,到最后獲取成功,一種自信心就由然而生,這應該就是工作的樂趣。有時候不懂的就需要問別人了,虛心請教,從別人的身上真的能學到自己沒有的東西,每一次的挫折都會使我更接近成功。還有學會了在工作中與人的合作與交流,同樂同累,合作互助,這是團體的精神,也是必須學習的東西。
    經(jīng)過之前的在校學習,對程序設計有了一定的認識與理解。在校期間,一直都是學習理論知識,沒有機會去參與項目的開發(fā)。所以說實話,在實訓之前,軟件項目開發(fā)對我來說是比較抽象的,一個完整的項目要怎么分工以及完成該項目所要的步驟也不是很明確。而經(jīng)過這次實訓,讓我明白了一個完整項目的開發(fā),必須由團隊來分工合作,并在每個階段中進行必要的總結(jié)與論證。
    一個完整項目的開發(fā)它所要經(jīng)歷的階段包括:遠景范圍規(guī)劃和用例說明、項目結(jié)構(gòu)和風險評估、業(yè)務功能
    說明書
    、詳細設計說明書、代碼實現(xiàn)、測試和安裝包等等。一個項目的開發(fā)所需要的財力、人力都是很多的,如果沒有一個好的遠景規(guī)劃,對以后的開發(fā)進度會有很大的影響,甚至會出現(xiàn)在預定時間內(nèi)不能完成項目或者完成的項目跟原來預想的不一樣。一份好的項目結(jié)構(gòu)、業(yè)務功能和詳細設計說明書對一個項目的開發(fā)有明確的指引作用,它可以使開發(fā)人員對這個項目所要實現(xiàn)的功能在總體上有比較明確的認識,還能減少在開發(fā)過程中出現(xiàn)不必要的麻煩。代碼的實現(xiàn)是一個項目開發(fā)成功與否的關鍵,也就是說,前期作業(yè)都是為代碼的實現(xiàn)所做的準備。
    我深刻的認識到要成為一名優(yōu)秀的軟件開發(fā)人員不是一件容易的事情,不僅要有足夠的干勁和熱情,還要有扎實的編寫代碼基礎,必須要有事先對文檔進行可靠性報告,功能說明書,詳細設計說明書等的編寫和一些風險評估的編寫的能力。
    除了圖書館,最能讓我感覺到身在大學的就是實訓機房,在匆匆過去的兩個月內(nèi),我往返于實訓機房與宿舍之間,使我享受了一個充實的學習時期,讓我感受到了大學的魅力,對自己充滿信心,對大學充滿信心,以積極的心態(tài)迎接明天挑戰(zhàn)。
    實訓中要求有扎實的理論基本知識,操作起來才順心應手,我這時才明白什么是“書到用時方恨少”。這就激發(fā)了學習的欲望。
    “學以致用”,就是要把學來的知識能運用到實際操作當中,用實踐來檢驗知識的正確性。我想,這是實訓的最根本目的。
    “紙上得來終覺淺,絕知此事要躬行!”,在短暫的實訓過程中,讓我深深感受到自己在實際運用中專業(yè)知識的匱乏。以前總以為自己學的還不錯,一旦應用到實際就大不一樣了,這時才真正領悟“學無止境”的含義。
    經(jīng)過為期兩個月的電子政務服務平臺系統(tǒng)開發(fā)的實訓,我對visual 軟件開發(fā)平臺有了更深一步的了解,對微軟基礎類庫的認識與使用也有了大大的提高。以及如何使用sql server數(shù)據(jù)庫進行連接操作方面有了本質(zhì)的提高。
    短短的實訓結(jié)束了,為我將來的就業(yè)打下了良好的基礎,也提高了我的軟件開發(fā)的水平,今后我將會更加努力的學習,不斷提高自身素質(zhì),開拓創(chuàng)新,與時俱進,做一個優(yōu)秀的軟件開發(fā)工程師。
    這次軟件工程實訓是從20xx.12.26號開始的,截至20xx.12.31號。實訓內(nèi)容是用java相關知識(主要是jsp)做一個物流配送系統(tǒng)。下面談談對這次實訓的看法。
    因為自己平時對java知識儲備不足,特別是jsp這一塊基本不了解怎么回事,所以一拿到這個項目,我心里都是沒有底的,再加上我被分到的那個組,我知道就意味著是我一個人在戰(zhàn)斗了。呵呵,26號,實訓開始了,我們的老師是來自中軟國際公司的程序員,一個是周褀,一個是朱映,都是一身樸素的著裝,讓我感覺做軟件的也沒什么兩樣。老師介紹了自己之后,就直接切入正題了,分析了下我們各個組的系統(tǒng),即將用到的知識,然后就總體把覺得需要補充的知識(jsp和數(shù)據(jù)庫連接等這幾塊)給我們實際操作了下,因為當時看到用jsp,還講的那么認真,當時我就后悔了,平時要是多聽點,現(xiàn)在老師這么認真的給我們講,這是一個多么難得的機會啊。后悔也沒用啊,開始還勉強能理解一點,后來就直接暈了。然后再給大家介紹了一些即將用到的工具,比如rationalrose,svn,myeclipse等等。接下來的幾天就不再細講了。下面談談通過這次實訓的心得體會吧。
    通過這次實訓,讓我了解到工程開發(fā)的過程,可行性分析——需求分析——概要設計——詳細設計——代碼編寫——測試——驗收。從技術方面上,我開始jsp基礎基本上就是零的,在老師和syz2(另外一個物流小組,我一個人基本上是跟她們做的,或者說是看著她們做的)的幫助下,對jsp有了一個大概的認識。其實實訓開始前,我還以為做個系統(tǒng)沒什么大不了,可是當真正拿到一個項目,我卻真的無從下手了,而且就是在知道需求分析和詳細設計,在代碼編寫時,一樣寸步難行。通過這個實訓,也讓我了解到,團隊協(xié)作是多么的重要。一個人的精力是多么的有限。進一步理解到,企業(yè)為什么如此重視團隊協(xié)作。同時借用老師的話就是團隊協(xié)作固然重要,但是是建立在個人素質(zhì)的基礎上,假設你個人素質(zhì)不行,將會影響到整個團隊,就別提對團隊作更多貢獻了。**老師說這幾句話的時候,朝向了我,估計是有特殊意義的吧,所以,我將謹記老師的教導。
    還有一個收獲是從一個同學(小胖)那里得到的,他的那組成員跟我的這組大體一樣,我倒是覺得沒什么了,不過他倒是很重視這個問題吧。然后他說出來,我也覺得這個問題確實其實是個大的問題。就是不管你會不會這門技術,會不會做這個東西,態(tài)度要正確才好,就算你不會做,你也應該認真的對待,將來 出身到社會,就不是說像你現(xiàn)在,不會做就不做,跑去玩游戲了。小胖說出了這段話,也在我身上有了一個印證,雖然我jsp技術知識為0,但我也還是在認真的跟著他們一起做,不會做,就多問,畢竟現(xiàn)在我們是學生,可以毫不顧忌的詢問各種問題,老師也會盡力為你回答。將來出身社會就不一樣了。雖然,我就算個打醬油的水平,但是這個醬油也要打得有涵量啊。不管怎么樣,我能對自己有個交待,雖然我不會,但是這次實訓我確實是認真對待了,六天的實訓,除了晚上加班外,還花了2個通宵來完成不同階段的任務,完成與否也不重要了,我至少我做了,這點,是這次我應該對自己的一個肯定。
    這次實訓的心得基本上就是這些了,最后特別感謝中軟國際帶我們的那兩個老師(周褀,朱映),這兩個老師對待我們很平易近人,對我們提出的問題,總是不光解決了,還進行了擴展,晚上也跟我們一起加班加到很晚,印象尤其深刻就是朱映老師為了給小胖解決一個問題,臉都變紅了,還在繼續(xù)努力,這點我并不會覺得老師知識儲備不夠,我想應該是這個問題的突發(fā)吧,一時沒想到怎么處理。相反讓我感覺更多的就是老師很認真,很負責。還要感謝就是syz2小組的傾力支持,輔導。
    這學期學習了軟件工程實踐這門課,我覺得這是對上學期的軟件工程課程學習的檢驗,上學期學習軟件工程只是我們淺顯的認識,相比之下,這學期就更加全面的說明了開發(fā)一個項目所需要的步驟以及開發(fā)項目過程中所需要注意的諸多細節(jié)。如果說上學期的課程注重理論基礎的話,那么這學期的軟工實踐,顧名思義,就是側(cè)重我們動手操作的能力。
    原來我認為開發(fā)一個項目最重要的就是寫代碼,似乎整個軟件都是編代碼,因為自己動手能力不強所以就很排斥做項目。可是經(jīng)過我們學習軟工課程到團隊做項目再到學習軟件工程實踐課程之后,我才真正意識到實施一個軟件工程項目并不是說簡單的會編碼就能夠解決問題的,因為一個軟件的生命周期分為三個時期:軟件定義時期、開發(fā)時期、維護時期,而這三個時期整體又分為七個階段,他們分別是:問題定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試,由此可看出,當我們開發(fā)一個項目時,更多的精力不是放在編碼上,編碼只是一個很小的模塊,而是項目的整體結(jié)構(gòu)上。
    在寫軟工實踐體會之前,我想在這里總結(jié)一下上學期三人團隊做 項目的相關事宜。上學期我們?nèi)藞F隊根據(jù)軟件開發(fā)的步驟開發(fā)一個名為“西大老鄉(xiāng)‘薈’”的社交系統(tǒng),主要是為西大學子提供一個找老鄉(xiāng)的平臺。雖然只進行到詳細設計階段,沒有進一步實現(xiàn),但是我還是從中學到很多東西的。首先要先確定項目主題,也就是這個項目用來做什么,可以解決什么問題。接著就是這個項目是否有研究的必要以及是否有解決的辦法,針對我們的項目,我們對西大的一些學生做了問卷調(diào)查,并從調(diào)查中繼續(xù)完善系統(tǒng)本身的做用戶。第三步根據(jù)我們確定的項目主題進行需求分析,這一步驟當時做的不是很好,比如所畫e-r圖、數(shù)據(jù)流圖等都有考慮不周的問題,導致接下來的概要設計、詳細設計進行的很困難,有些步驟甚至還需要返工。
    從我們在需求分析中出現(xiàn)的問題,使我們明白了軟件定義階段對于一個項目的開發(fā)是至關重要的,當軟件定義階段完成時必須要用正式的文檔準確的地記錄目標系統(tǒng)的需求。只有前期的準備工作做得好,后面的工作才能順利進行。雖然項目最后沒有完全實現(xiàn),但是起碼我們已經(jīng)初步體會到軟件項目開發(fā)的步驟,以及每一步所需要完成的文檔等內(nèi)容。
    這學期的軟件工程實踐雖然不是親自動手開發(fā)一個系統(tǒng),但是張元平老師以“物聯(lián)網(wǎng)物流倉儲管理系統(tǒng)”為主給我們講解了一個真實系統(tǒng)的開發(fā)過程,從計劃到項目系統(tǒng)的發(fā)布實施,以及每一步必須生成的文檔。我主要從以下五個方面談一下我的心得體會。
    第一、行業(yè)背景說明方面
    對于一個軟件系統(tǒng)的開發(fā),第一步就是問題定義,了解所開發(fā)系統(tǒng)的行業(yè)背景,制定計劃。當我們計劃確定以后就要對項目系統(tǒng)本身進行可行性研究,主要從技術可行性、經(jīng)濟可行性和操作可行性三個方面著手。就比如《物聯(lián)網(wǎng)物流倉庫管理系統(tǒng)》的行業(yè)背景說明文檔中非常詳細地分析了當下物聯(lián)網(wǎng)物流行業(yè)的整體業(yè)務說明、應用背景、未來發(fā)展趨勢以及相關應用案例等四個方面,項目團隊中系統(tǒng)分析員就可以根據(jù)這份文檔以及相關的調(diào)查資料對將要開發(fā)系統(tǒng)的進行定義等工作。
    原來我們寫這類文檔的時候就是草草了事,不會做得這么詳細,而這次看到大型項目的行業(yè)背景說明也是這么詳細,也讓自己認識到不管是軟件開發(fā)的那個階段都要認真對待,這些瑣碎的文檔都是后期開發(fā)項目的支撐,只要它們做的透徹,后面的開發(fā)工作才能更順利的進行。
    第二、項目需求說明方面
    這部分項目需求說明就是軟件定義時期中需求分析階段,而該階段的主要目的就是了解用戶的需要,根據(jù)用戶的需要確定系統(tǒng)必須完成那些工作,并對目標系統(tǒng)提出完整、準確、清晰、具體的要求。在需求分析結(jié)束之前系統(tǒng)分析人員要寫出一份需求規(guī)格說明,即為《物聯(lián)網(wǎng)物流倉儲管理系統(tǒng)》項目需求說明文檔。我們可以看出該文檔也是非常詳細,相比之下我們之前做項目時寫的需求規(guī)格說明書就非常不合格,不僅格式不正確內(nèi)容也是少之又少。
    在這方面,這篇文檔給我啟發(fā)很大。首先就是文檔的格式,要美觀整齊,讓人看著舒服方便。其次就是文檔的內(nèi)容,原來它不是很重要,寫文檔的時候也不知道怎么寫就借鑒下網(wǎng)上的內(nèi)容,結(jié)果根本就沒有把自己項目的需求寫明白,以至于自己最后都有些糊涂,所以根據(jù)以前的經(jīng)驗教訓我會對這部分更加重視。
    第三、系統(tǒng)概要設計方面
    這部分內(nèi)容分說的是軟件設計時期的概要設計階段,該階段的主要目的就是實現(xiàn)系統(tǒng)的功能、設計軟件的結(jié)構(gòu)、模塊組成以及模塊之間的關系。在概要設計階段,我們可以站在全局的高度上,花較少的成本,從抽象的層次上分析對比多種可能的系統(tǒng)實現(xiàn)方案和軟件結(jié)構(gòu),從中選出最佳方案和最合理的結(jié)構(gòu)。在這個階段還會具體畫出e-r圖、數(shù)據(jù)流圖等方面的設計。
    比如《物聯(lián)網(wǎng)物流倉庫管理系統(tǒng)》的系統(tǒng)概要設計從項目概述、設計約束、功能單元與功能模塊設計、數(shù)據(jù)e-r圖設計、總體設計、界面設計等六個方面介紹,通過讀這個文檔,我覺得最重要的還是總體設計,分別從邏輯架構(gòu)設計、物理架構(gòu)設計、技術架構(gòu)設計設計系統(tǒng)。在這個階段中模塊要做到高內(nèi)聚低耦合,這樣開發(fā)出來的系統(tǒng)才會具有更高的獨立性。
    在原來做項目時沒有編寫過這類文檔,在該階段只是畫了結(jié)構(gòu)圖、層次圖以及相關的模塊劃分,對該類文檔尚未重視。通過張老師的講解和自己的學習,我相信在以后做項目的時候一定會注意到這類文檔的編寫。
    第四、詳細設計與分析方面
    詳細設計階段就是把概要設計階段的每個模塊進一步設計,確定每個模塊所需要的算法和數(shù)據(jù)結(jié)構(gòu)。在這個階段還是需要我們設計出程序的詳細規(guī)格說明,而不是編寫程序。在詳細設計階段,系統(tǒng)設計人員可以通過使用程序流程圖、盒圖、pad圖等過程設計的工具和jackson圖等面向數(shù)據(jù)結(jié)構(gòu)的設計工具進一步設計系統(tǒng)相關接口,主要包括界面設計接口、業(yè)務單設計接口、單元模塊設計接口等,這些對于以后的編碼工作都是極其重要的。
    第五、編碼和測試方案方面
    關于編碼,我認為編碼要想做的完美必備條件就是前面的軟件定義和軟件設計時期要按部就班的做,文檔一定要按要求書寫,不能偷懶也不能草草書寫。對于編碼也要有相應的文檔書寫規(guī)范,要使源程序代碼的邏輯簡明清晰、易讀易懂。這樣盡管我們不是設計系統(tǒng)的人員,當看到源程序代碼的時候也能容易讀懂代碼的意思。
    其次就是測試的內(nèi)容,從測試的文檔中我們可以得出,其實測試在軟件開發(fā)中同樣占據(jù)了重要的地位,它主要就是盡可能多的找到問題并排除其中的潛藏的錯誤,最終把一個高質(zhì)量的軟件系統(tǒng)交給用戶使用。它要求測試人員也要有很高的技術水平。
    軟件工程實訓心得體會篇四
    實訓,也讓我了解到,團隊協(xié)作是多么的重要。一個人的精力是多么的有限。下面是本站帶來的軟件工程實訓的
    心得體會
    ,僅供參考。
    這學期學習了軟件工程實踐這門課,我覺得這是對上學期的軟件工程課程學習的檢驗,上學期學習軟件工程只是我們淺顯的認識,相比之下,這學期就更加全面的說明了開發(fā)一個項目所需要的步驟以及開發(fā)項目過程中所需要注意的諸多細節(jié)。如果說上學期的課程注重理論基礎的話,那么這學期的軟工實踐,顧名思義,就是側(cè)重我們動手操作的能力。
    原來我認為開發(fā)一個項目最重要的就是寫代碼,似乎整個軟件都是編代碼,因為自己動手能力不強所以就很排斥做項目??墒墙?jīng)過我們學習軟工課程到團隊做項目再到學習軟件工程實踐課程之后,我才真正意識到實施一個軟件工程項目并不是說簡單的會編碼就能夠解決問題的,因為一個軟件的生命周期分為三個時期:軟件定義時期、開發(fā)時期、維護時期,而這三個時期整體又分為七個階段,他們分別是:問題定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試,由此可看出,當我們開發(fā)一個項目時,更多的精力不是放在編碼上,編碼只是一個很小的模塊,而是項目的整體結(jié)構(gòu)上。
    在寫軟工實踐體會之前,我想在這里總結(jié)一下上學期三人團隊做 項目的相關事宜。上學期我們?nèi)藞F隊根據(jù)軟件開發(fā)的步驟開發(fā)一個名為“西大老鄉(xiāng)‘薈’”的社交系統(tǒng),主要是為西大學子提供一個找老鄉(xiāng)的平臺。雖然只進行到詳細設計階段,沒有進一步實現(xiàn),但是我還是從中學到很多東西的。首先要先確定項目主題,也就是這個項目用來做什么,可以解決什么問題。接著就是這個項目是否有研究的必要以及是否有解決的辦法,針對我們的項目,我們對西大的一些學生做了問卷調(diào)查,并從調(diào)查中繼續(xù)完善系統(tǒng)本身的做用戶。第三步根據(jù)我們確定的項目主題進行需求分析,這一步驟當時做的不是很好,比如所畫e-r圖、數(shù)據(jù)流圖等都有考慮不周的問題,導致接下來的概要設計、詳細設計進行的很困難,有些步驟甚至還需要返工。
    從我們在需求分析中出現(xiàn)的問題,使我們明白了軟件定義階段對于一個項目的開發(fā)是至關重要的,當軟件定義階段完成時必須要用正式的文檔準確的地記錄目標系統(tǒng)的需求。只有前期的準備工作做得好,后面的工作才能順利進行。雖然項目最后沒有完全實現(xiàn),但是起碼我們已經(jīng)初步體會到軟件項目開發(fā)的步驟,以及每一步所需要完成的文檔等內(nèi)容。
    這學期的軟件工程實踐雖然不是親自動手開發(fā)一個系統(tǒng),但是張元平老師以“物聯(lián)網(wǎng)物流倉儲管理系統(tǒng)”為主給我們講解了一個真實系統(tǒng)的開發(fā)過程,從計劃到項目系統(tǒng)的發(fā)布實施,以及每一步必須生成的文檔。我主要從以下五個方面談一下我的心得體會。
    第一、行業(yè)背景說明方面
    對于一個軟件系統(tǒng)的開發(fā),第一步就是問題定義,了解所開發(fā)系統(tǒng)的行業(yè)背景,制定計劃。當我們計劃確定以后就要對項目系統(tǒng)本身進行可行性研究,主要從技術可行性、經(jīng)濟可行性和操作可行性三個方面著手。就比如《物聯(lián)網(wǎng)物流倉庫管理系統(tǒng)》的行業(yè)背景說明文檔中非常詳細地分析了當下物聯(lián)網(wǎng)物流行業(yè)的整體業(yè)務說明、應用背景、未來發(fā)展趨勢以及相關應用案例等四個方面,項目團隊中系統(tǒng)分析員就可以根據(jù)這份文檔以及相關的調(diào)查資料對將要開發(fā)系統(tǒng)的進行定義等工作。
    原來我們寫這類文檔的時候就是草草了事,不會做得這么詳細,而這次看到大型項目的行業(yè)背景說明也是這么詳細,也讓自己認識到不管是軟件開發(fā)的那個階段都要認真對待,這些瑣碎的文檔都是后期開發(fā)項目的支撐,只要它們做的透徹,后面的開發(fā)工作才能更順利的進行。
    第二、項目需求說明方面
    這部分項目需求說明就是軟件定義時期中需求分析階段,而該階段的主要目的就是了解用戶的需要,根據(jù)用戶的需要確定系統(tǒng)必須完成那些工作,并對目標系統(tǒng)提出完整、準確、清晰、具體的要求。在需求分析結(jié)束之前系統(tǒng)分析人員要寫出一份需求規(guī)格說明,即為《物聯(lián)網(wǎng)物流倉儲管理系統(tǒng)》項目需求說明文檔。我們可以看出該文檔也是非常詳細,相比之下我們之前做項目時寫的需求規(guī)格
    說明書
    就非常不合格,不僅格式不正確內(nèi)容也是少之又少。
    在這方面,這篇文檔給我啟發(fā)很大。首先就是文檔的格式,要美觀整齊,讓人看著舒服方便。其次就是文檔的內(nèi)容,原來它不是很重要,寫文檔的時候也不知道怎么寫就借鑒下網(wǎng)上的內(nèi)容,結(jié)果根本就沒有把自己項目的需求寫明白,以至于自己最后都有些糊涂,所以根據(jù)以前的經(jīng)驗教訓我會對這部分更加重視。
    第三、系統(tǒng)概要設計方面
    這部分內(nèi)容分說的是軟件設計時期的概要設計階段,該階段的主要目的就是實現(xiàn)系統(tǒng)的功能、設計軟件的結(jié)構(gòu)、模塊組成以及模塊之間的關系。在概要設計階段,我們可以站在全局的高度上,花較少的成本,從抽象的層次上分析對比多種可能的系統(tǒng)實現(xiàn)方案和軟件結(jié)構(gòu),從中選出最佳方案和最合理的結(jié)構(gòu)。在這個階段還會具體畫出e-r圖、數(shù)據(jù)流圖等方面的設計。
    比如《物聯(lián)網(wǎng)物流倉庫管理系統(tǒng)》的系統(tǒng)概要設計從項目概述、設計約束、功能單元與功能模塊設計、數(shù)據(jù)e-r圖設計、總體設計、界面設計等六個方面介紹,通過讀這個文檔,我覺得最重要的還是總體設計,分別從邏輯架構(gòu)設計、物理架構(gòu)設計、技術架構(gòu)設計設計系統(tǒng)。在這個階段中模塊要做到高內(nèi)聚低耦合,這樣開發(fā)出來的系統(tǒng)才會具有更高的獨立性。
    在原來做項目時沒有編寫過這類文檔,在該階段只是畫了結(jié)構(gòu)圖、層次圖以及相關的模塊劃分,對該類文檔尚未重視。通過張老師的講解和自己的學習,我相信在以后做項目的時候一定會注意到這類文檔的編寫。
    第四、詳細設計與分析方面
    詳細設計階段就是把概要設計階段的每個模塊進一步設計,確定每個模塊所需要的算法和數(shù)據(jù)結(jié)構(gòu)。在這個階段還是需要我們設計出程序的詳細規(guī)格說明,而不是編寫程序。在詳細設計階段,系統(tǒng)設計人員可以通過使用程序流程圖、盒圖、pad圖等過程設計的工具和jackson圖等面向數(shù)據(jù)結(jié)構(gòu)的設計工具進一步設計系統(tǒng)相關接口,主要包括界面設計接口、業(yè)務單設計接口、單元模塊設計接口等,這些對于以后的編碼工作都是極其重要的。
    第五、編碼和測試方案方面
    關于編碼,我認為編碼要想做的完美必備條件就是前面的軟件定義和軟件設計時期要按部就班的做,文檔一定要按要求書寫,不能偷懶也不能草草書寫。對于編碼也要有相應的文檔書寫規(guī)范,要使源程序代碼的邏輯簡明清晰、易讀易懂。這樣盡管我們不是設計系統(tǒng)的人員,當看到源程序代碼的時候也能容易讀懂代碼的意思。
    其次就是測試的內(nèi)容,從測試的文檔中我們可以得出,其實測試在軟件開發(fā)中同樣占據(jù)了重要的地位,它主要就是盡可能多的找到問題并排除其中的潛藏的錯誤,最終把一個高質(zhì)量的軟件系統(tǒng)交給用戶使用。它要求測試人員也要有很高的技術水平。
    這次軟件工程實訓是從xx年xx月xx日號開始的,截至xx年xx月xx日號。實訓內(nèi)容是用java相關知識(主要是jsp)做一個物流配送系統(tǒng)。下面談談對這次實訓的看法。
    因為自己平時對java知識儲備不足,特別是jsp這一塊基本不了解怎么回事,所以一拿到這個項目,我心里都是沒有底的,再加上我被分到的那個組,我知道就意味著是我一個人在戰(zhàn)斗了。呵呵,26號,實訓開始了,我們的老師是來自中軟國際公司的程序員,一個是周褀,一個是朱映,都是一身樸素的著裝,讓我感覺做軟件的也沒什么兩樣。老師介紹了自己之后,就直接切入正題了,分析了下我們各個組的系統(tǒng),即將用到的知識,然后就總體把覺得需要補充的知識(jsp和數(shù)據(jù)庫連接等這幾塊)給我們實際操作了下,因為當時看到用jsp,還講的那么認真,當時我就后悔了,平時要是多聽點,現(xiàn)在老師這么認真的給我們講,這是一個多么難得的機會啊。后悔也沒用啊,開始還勉強能理解一點,后來就直接暈了。然后再給大家介紹了一些即將用到的工具,比如rationalrose,svn,myeclipse等等。接下來的幾天就不再細講了。下面談談通過這次實訓的心得體會吧。
    通過這次實訓,讓我了解到工程開發(fā)的過程,可行性分析——需求分析——概要設計——詳細設計——代碼編寫——測試——驗收。從技術方面上,我開始jsp基礎基本上就是零的,在老師和syz2(另外一個物流小組,我一個人基本上是跟她們做的,或者說是看著她們做的)的幫助下,對jsp有了一個大概的認識。其實實訓開始前,我還以為做個系統(tǒng)沒什么大不了,可是當真正拿到一個項目,我卻真的無從下手了,而且就是在知道需求分析和詳細設計,在代碼編寫時,一樣寸步難行。通過這個實訓,也讓我了解到,團隊協(xié)作是多么的重要。一個人的精力是多么的有限。進一步理解到,企業(yè)為什么如此重視團隊協(xié)作。同時借用老師的話就是團隊協(xié)作固然重要,但是是建立在個人素質(zhì)的基礎上,假設你個人素質(zhì)不行,將會影響到整個團隊,就別提對團隊作更多貢獻了。**老師說這幾句話的時候,朝向了我,估計是有特殊意義的吧,所以,我將謹記老師的教導。
    還有一個收獲是從一個同學(小胖)那里得到的,他的那組成員跟我的這組大體一樣,我倒是覺得沒什么了,不過他倒是很重視這個問題吧。然后他說出來,我也覺得這個問題確實其實是個大的問題。就是不管你會不會這門技術,會不會做這個東西,態(tài)度要正確才好,就算你不會做,你也應該認真的對待,將來 出身到社會,就不是說像你現(xiàn)在,不會做就不做,跑去玩游戲了。小胖說出了這段話,也在我身上有了一個印證,雖然我jsp技術知識為0,但我也還是在認真的跟著他們一起做,不會做,就多問,畢竟現(xiàn)在我們是學生,可以毫不顧忌的詢問各種問題,老師也會盡力為你回答。將來出身社會就不一樣了。雖然,我就算個打醬油的水平,但是這個醬油也要打得有涵量啊。不管怎么樣,我能對自己有個交待,雖然我不會,但是這次實訓我確實是認真對待了,六天的實訓,除了晚上加班外,還花了2個通宵來完成不同階段的任務,完成與否也不重要了,我至少我做了,這點,是這次我應該對自己的一個肯定。
    這次實訓的心得基本上就是這些了,最后特別感謝中軟國際帶我們的那兩個老師(周褀,朱映),這兩個老師對待我們很平易近人,對我們提出的問題,總是不光解決了,還進行了擴展,晚上也跟我們一起加班加到很晚,印象尤其深刻就是朱映老師為了給小胖解決一個問題,臉都變紅了,還在繼續(xù)努力,這點我并不會覺得老師知識儲備不夠,我想應該是這個問題的突發(fā)吧,一時沒想到怎么處理。相反讓我感覺更多的就是老師很認真,很負責。還要感謝就是syz2小組的傾力支持,輔導。
    我們是20xx年3月7號進入宏天實訓公司參加軟件開發(fā)實訓的,在此次實訓中,除了讓我明白工作中需要能力,素質(zhì),知識之外,更重要的是學會了如何去完成一個任務,懂得了享受工作。當遇到問題,冷靜,想辦法一點一點的排除障礙,到最后獲取成功,一種自信心就由然而生,這應該就是工作的樂趣。有時候不懂的就需要問別人了,虛心請教,從別人的身上真的能學到自己沒有的東西,每一次的挫折都會使我更接近成功。還有學會了在工作中與人的合作與交流,同樂同累,合作互助,這是團體的精神,也是必須學習的東西。
    經(jīng)過之前的在校學習,對程序設計有了一定的認識與理解。在校期間,一直都是學習理論知識,沒有機會去參與項目的開發(fā)。所以說實話,在實訓之前,軟件項目開發(fā)對我來說是比較抽象的,一個完整的項目要怎么分工以及完成該項目所要的步驟也不是很明確。而經(jīng)過這次實訓,讓我明白了一個完整項目的開發(fā),必須由團隊來分工合作,并在每個階段中進行必要的總結(jié)與論證。
    一個完整項目的開發(fā)它所要經(jīng)歷的階段包括:遠景范圍規(guī)劃和用例說明、項目結(jié)構(gòu)和風險評估、業(yè)務功能說明書、詳細設計說明書、代碼實現(xiàn)、測試和安裝包等等。一個項目的開發(fā)所需要的財力、人力都是很多的,如果沒有一個好的遠景規(guī)劃,對以后的開發(fā)進度會有很大的影響,甚至會出現(xiàn)在預定時間內(nèi)不能完成項目或者完成的項目跟原來預想的不一樣。一份好的項目結(jié)構(gòu)、業(yè)務功能和詳細設計說明書對一個項目的開發(fā)有明確的指引作用,它可以使開發(fā)人員對這個項目所要實現(xiàn)的功能在總體上有比較明確的認識,還能減少在開發(fā)過程中出現(xiàn)不必要的麻煩。代碼的實現(xiàn)是一個項目開發(fā)成功與否的關鍵,也就是說,前期作業(yè)都是為代碼的實現(xiàn)所做的準備。
    我深刻的認識到要成為一名優(yōu)秀的軟件開發(fā)人員不是一件容易的事情,不僅要有足夠的干勁和熱情,還要有扎實的編寫代碼基礎,必須要有事先對文檔進行可靠性報告,功能說明書,詳細設計說明書等的編寫和一些風險評估的編寫的能力。
    除了圖書館,最能讓我感覺到身在大學的就是實訓機房,在匆匆過去的兩個月內(nèi),我往返于實訓機房與宿舍之間,使我享受了一個充實的學習時期,讓我感受到了大學的魅力,對自己充滿信心,對大學充滿信心,以積極的心態(tài)迎接明天挑戰(zhàn)。
    實訓中要求有扎實的理論基本知識,操作起來才順心應手,我這時才明白什么是“書到用時方恨少”。這就激發(fā)了學習的欲望。
    “學以致用”,就是要把學來的知識能運用到實際操作當中,用實踐來檢驗知識的正確性。我想,這是實訓的最根本目的。
    “紙上得來終覺淺,絕知此事要躬行!”,在短暫的實訓過程中,讓我深深感受到自己在實際運用中專業(yè)知識的匱乏。以前總以為自己學的還不錯,一旦應用到實際就大不一樣了,這時才真正領悟“學無止境”的含義。
    經(jīng)過為期兩個月的電子政務服務平臺系統(tǒng)開發(fā)的實訓,我對visual 軟件開發(fā)平臺有了更深一步的了解,對微軟基礎類庫的認識與使用也有了大大的提高。以及如何使用sql server數(shù)據(jù)庫進行連接操作方面有了本質(zhì)的提高。
    短短的實訓結(jié)束了,為我將來的就業(yè)打下了良好的基礎,也提高了我的軟件開發(fā)的水平,今后我將會更加努力的學習,不斷提高自身素質(zhì),開拓創(chuàng)新,與時俱進,做一個優(yōu)秀的軟件開發(fā)工程師。
    軟件工程實訓心得體會篇五
    20xx年xx月,我離開了學校,進入了最后一學期的頂崗實習階段。從離校的那天起,我就當自己是一個正式的員工,做好了經(jīng)歷重重困難的準備,我始終堅信,我的努力與堅持不懈不會白費,我的未來不是夢。
    南京xx有限公司是我現(xiàn)在實習的單位,它成立于xx年,是從事教育軟件、數(shù)字化教學資源、多媒體產(chǎn)品等開發(fā)、制作的專業(yè)公司;是江蘇省信息產(chǎn)業(yè)廳認定的雙軟企業(yè)、江蘇省新聞出版局審核認定的電子出版物開發(fā)制作單位。公司長期承擔高校及教育管理部門的數(shù)字化教學資源、教務教學、實驗科研等管理系統(tǒng)的開發(fā)和信息化項目建設。如:《數(shù)字化教學資源庫-名師名課網(wǎng)系統(tǒng)》、《oa辦公系統(tǒng)》等多個系統(tǒng)平臺。智風公司多年來致力于網(wǎng)絡課程的建設服務工作,擁有一支專業(yè)化的開發(fā)團隊,通過嚴格的開發(fā)流程和創(chuàng)新的教學理念為廣大院校提供優(yōu)質(zhì)的服務。專業(yè)化的研發(fā)隊伍:從教學設計、技術開發(fā),到交互設計、視覺設計、資源素材制作等各個方面,全面解決您的后顧之憂;豐富的開發(fā)經(jīng)驗:業(yè)已開發(fā)的課程中有42門被評為精品課程,累計開發(fā)的網(wǎng)絡課程已逾1000門。
    我在該公司任職軟件開發(fā)工程師,剛實習的第一個星期,主要的工作是熟悉公司的開發(fā)框架及開發(fā)流程,及時完成項目經(jīng)理派發(fā)的任務。從第二個星期開始,我就開始接觸公司的開發(fā)項目。令我印象最深、體會也最深的一個項目是《南京大學110周年校慶系統(tǒng)》。該項目不僅開發(fā)時間短(只有一個月的時間),最主要的是需求不清。在客戶與公司的雙重壓力下,我們這組人(共5人)在與客戶只溝通了兩次的需求下,我們就開始動工。該項目的用戶主要分為校領導和嘉賓。針對校領導和嘉賓進行相應的車輛、餐廳、賓館、會場、時間、志愿者的安排,要有沖突提示功能。如:在一個重疊的時間段內(nèi),一個人不能同時參加兩項及以上活動;一輛車安排的人數(shù)不能超過他的承載數(shù)等等。在做這些功能的時候,我們有過以人為基礎,分配車輛、餐廳等資源,也有考慮過以資源為主,分配人員等種.種意見。在每一次意見有了分歧以后,我們都要討論,各抒己見。這種方式使我樂于表達自己的.想法,當我的想法得到了其他同事的認可時,那種感覺無法用言語來表達。即使是自己的想法錯了,但聽到同事的另一番看法,使我茅塞頓開,也有了收獲的喜悅。由于項目太緊,我們經(jīng)常加班,每晚都要坐末班車回去,好幾次回來后倒頭就睡,周末也沒得休息。正是有了這些無以言表的感覺才使我對這個項目,對這個階段很難忘。在項目的功能方面,我負責所有基礎信息的添加與列表顯示。在做這些的時候,與我在學校做的項目的不同是分頁都是用的存儲過程,驗證要做到客戶端和服務端同時驗證。還涉及到站內(nèi)信互發(fā)、打印、導出、發(fā)郵件等這些我以前看似很神奇的東西,現(xiàn)在我已把神奇變?yōu)榱爽F(xiàn)實。
    在這半年多的工作實踐中,我學到了很多,這些都是作為學生學不到的,如:
    1、我參與的都是團隊合作的項目,無論是在自己公司,還是在合作公司,我們都講究團隊精神。在信任自己和他人的基礎上,思想統(tǒng)一,行動一致,這樣的團隊一定會攻無不克、戰(zhàn)無不勝。我們的很多工作是一起完成的,在這個過程中,大家互相提醒和補充,大大提高了工作效率,所有的工作中溝通是最重要的,一定要把信息處理的及時、有效和清晰。
    2、每一個項目在開始著手的第一步,一定要和客戶把需求溝通清楚,只有了解了項目的需求,才有可能真正做好一個項目。我們需要向客戶提出要求客戶提供所有涉及該項目的資料,每次與客戶見面都需要熟悉業(yè)務與程序的最少一至兩個程序員隨時記錄需求。
    3、工作中,有一個無論是技術,還是經(jīng)驗都比較讓人肯定的前輩帶領,將任務詳細化,詳細到每個頁面、甚至是一個頁面中的圖片什么時候做好,做到什么程度,這樣把工作進度有計劃有方向的暫定下來,做事很有效率。
    4、每天的工作小結(jié)真的很重要,這讓我們每天都有計劃的知道自己干了什么,不是漫無目的的工作。
    5、工作并不是一成不變的,也許有一天你要去其他崗位幫忙,所以同事之間的技術要互相學習,也許有一天,公司需要你發(fā)揮其他的技能幫忙,所以互相學習也是很重要的,我在公司,深有感觸,除編程之外,切圖、界面設計等工作都干過。
    轉(zhuǎn)眼,出來社會都已大半年,已是半個社會人了。不能再向?qū)W生那樣,某些時候可以隨心隨意。頂崗實習,為我們提供了一個很好的實踐機會,可以讓我們更好的把理論應用于實踐,在實踐中領悟理論,更可以學習到很多書本上學習不到的、甚至比理論知識更實用的業(yè)務知識。而且,這些實習經(jīng)驗,無疑是我們畢業(yè)后就業(yè)的一大籌碼。作為一個成年人,作為一個社會職業(yè)人,任何時候都要守規(guī)矩,做好自己的本分,承擔起自己所需要承擔的責任。經(jīng)歷了2家公司的工作,我漸漸的認識到,每一份工作或每一個工作環(huán)境都無法盡善盡美,但每一份工作中都有許多寶貴的經(jīng)驗和資源,如失敗的沮喪、自我成長的喜悅、溫馨的工作伙伴、值得感謝的客戶等等,這些都是工作成功者必須體驗的感受和必備的財富。如果每天懷著感恩的心情去工作,在工作中始終牢記“擁有一份工作,就要懂得感恩”的道理,你一定會收獲很多很多。在你收獲很多很多的同時,你會發(fā)現(xiàn)自己已經(jīng)在鍛煉中變得勇敢,堅強,樂觀,闊達。這樣的你,是不斷前進的走在成功的路上的。
    軟件工程實訓心得體會篇六
    剛上專業(yè)實訓這門課的時候都不知道要做什么,首先聽到老師安排的工作就是建立我們小組的項目立項書,聽老師安排的任務時候覺得很難,但是通過我們小組的努力和老師的指導下,我們用了三個周的時間完成了我們的項目立項書,雖然我們在立項目這個任務花費很多時間,但是我個人覺得我從中收獲很多,因為我感覺到了以后我們到社會上做一個項目時必須做的事情,而且從中我也感到了樂趣,我們表現(xiàn)出來不僅是團隊上的合作,還有我們對整個項目的安排和我們對整個項目的思路。
    (我個人感覺一個團隊的項目立項書就已經(jīng)看出整個團隊所做的項目是否好壞。)接下來的幾個周我們就按照我們的項目立項書開始完成我們的任務。我們通過我們小組開會討論分配每個小組成員的任務,首先是完成我們的界面,界面完成以后我們開始進行代碼編程,緊接著是數(shù)字庫的創(chuàng)建和他們之間的鏈接。在這些過程中我們都遇到了很多的困難,但是我們都堅信我們的口號“永不言棄”,最終把我們的項目大致完成。
    就是有堅強的克服困難的意志力,每當我們遇到自己的任務有困難,我首先堅信的是自己一定可以完成,而不是遇到困難就想放下自己手中的任務,等待他人完成,這個對自己最終的結(jié)果就是一無是處。
    感謝我們團隊的每個成員在這個學期里一直努力配合團隊完成我們的項目和完成自己的任務,同時也感謝你們每當我遇到困難的時候都給我打氣加油,謝謝你們的信任和支持。
    軟件工程實訓心得體會篇七
    曾經(jīng)看過一本書叫《道法自然》,內(nèi)容略記得一二,但我最欣賞的是它的.書名。軟件設計沒什么太神秘有東西,只要用心體會,其實一切都很自然。軟件的設計之“道”,也不在于設計有多么的華麗、精巧,而在于其樸實、自然,最終達到“以無招勝有招”,進入一個全新的境界。
    一、軟件設計理論的層次
    以我的拙見,軟件設計領域中的各種概念,可以分為以下幾個層次來進行理解:
    1、軟件設計的目的:重用性、擴展性。
    這是最高的層次,是應對軟件危機的需要。
    2、設計原則:低耦合、高聚合。
    各種軟件設計的原則,如依賴倒置原則、單一職則原則、面向接口等,以及各種設計模式,其根本的目的其實只是為了降低耦合這么簡單。因為只有低耦合才能更好的適應變化,更好的重用和擴展。
    3、實現(xiàn)方法:運用設計模式封裝變化、降低耦合。
    設計模式只是用來“封裝變化、降低耦合”的工具而已。它是面向?qū)ο笤O計時代的產(chǎn)物,其本質(zhì)就是充分運用面向?qū)ο蟮娜齻€特性,即:封裝、繼承和多態(tài),進行靈活的組合運用。
    二、關于耦合
    1、耦合的粒度
    耦合無論如何也是不可避免的。當我們實現(xiàn)接口、繼承父類的時候,就會不可避免的產(chǎn)生耦合。耦合是有不同粒度的,我們解耦到什么粒度為止,我認為應以模塊的重用粒度為準。盡量解除重用模塊或?qū)ο笾g的耦合。而重用模塊之內(nèi)的耦合,應屬于聚合的范疇,所以不要盲目的去解耦,否則就陷入了誤區(qū)。
    2、解耦的原理
    怎樣才能解耦呢,或者說為什么各種設計模式能達到解耦的目的呢?我覺得有以下幾個思路:
    (1)將具體的東西抽象處理
    (2)將分散的東西集中處理
    而面向?qū)ο笾械慕涌凇⒗^承正為我們提供了這樣的一種機制。通過訪問接口或基類或抽象類,而不是具體的實現(xiàn)類,從而與具體的實現(xiàn)類達到了解耦的目的。我們還可以設計一些控制類,像潤滑劑一樣,協(xié)調(diào)各實現(xiàn)類之間的訪問,也可以達到耦的目的。
    事實上,各種設計模式的基本思想也就是這樣。創(chuàng)建型模式是為了解除創(chuàng)建對象時產(chǎn)生的耦合,實際上是解除對類稱名的依賴,而結(jié)構(gòu)型和行為型是為了解除對象屬性或方法的直接調(diào)用。不管什么設計模式,都是將對具體實現(xiàn)類的訪問提升為對接口、基類或用于協(xié)調(diào)的控制類的訪問。
    三、關于接口
    這一節(jié)更具體,談一談接口,因為使用接口是軟件設計的重要手段,但已經(jīng)不屬于“道”了。
    1、接口與繼承
    接口描述的是對象某一個方面行為特征。使用接口與使用繼承關系各有優(yōu)缺點,使用子類繼承可以繼承父類的功能,體現(xiàn)了重用的精神。而接品更加靈活,因為它解除了子類與父類之間的高度耦合,它體現(xiàn)在靈活擴展的精神。
    2、接口與純虛類
    接口存在的理由就是它更加靈活,關系簡單,易于理解。比如一個類可以實現(xiàn)十幾個甚至幾十個接口,但一般開發(fā)工具只支持單繼承(由于多繼承太容易導致混亂和沖突),如果要繼承十幾層,系統(tǒng)結(jié)構(gòu)想必會無法理解了,我以為這是接口存在的最重要的原因。
    如果接口和虛類繼承結(jié)合使用,可以產(chǎn)生強大的威力,這也是許多設計模式的“殺手锏”。
    以上算是總結(jié)一下自己的心得。肯定有不少片面之處,請各位指教。
    軟件工程實訓心得體會篇八
    軟件工程師作為現(xiàn)代社會中越來越重要的職業(yè)之一,隨著信息技術的不斷發(fā)展,其職責也越來越廣泛和重要。作為一名軟件工程師,我在這個行業(yè)里摸爬滾打多年,深感自己的成長離不開各種經(jīng)驗和心得的積累。在接下來的文字中,我將從個人視角談談自己在軟件開發(fā)過程中的心得體會。
    第二段:選擇質(zhì)量
    在軟件開發(fā)的過程中,我最關注的是軟件的質(zhì)量。因為軟件需要長期運行,不僅要滿足用戶需求,還要兼顧安全性和可維護性等方面,這需要我們在開發(fā)過程中嚴格控制每一個環(huán)節(jié),做好每一個細節(jié)。因此,我在項目開發(fā)前會認真分析需求和可能的風險,對技術框架和工具的選擇非常謹慎。我也會定期進行代碼復審和單元測試等工作,確保代碼質(zhì)量達標。當然,在不斷優(yōu)化的過程中,我也意識到代碼質(zhì)量的提高不僅僅在于個人級別,而更應該顧及團隊整體水平,因此深感技術學習和交流的重要性。只有不斷積累、分享,才能讓團隊的發(fā)展更加健康和持久。
    第三段:溝通協(xié)作
    作為一名軟件工程師,我們的工作不僅僅是編寫代碼,更包括與產(chǎn)品經(jīng)理、UI設計師、測試工程師等各個角色之間的溝通協(xié)作。這就需要我們具備更多的軟技能。比如,要善于傾聽和引導,以便更好地理解產(chǎn)品需求和用戶痛點;要有清晰的表達能力,能夠清楚地向其他角色描述自己的想法和意圖;在開發(fā)過程中,也要非常注重團隊合作,及時溝通和協(xié)調(diào)出現(xiàn)的問題。整個軟件開發(fā)過程需要涵蓋從需求分析、規(guī)劃和設計,再到編碼、測試和上線等各個環(huán)節(jié),期間需要負責人與團隊的全面協(xié)作才能保證項目的順利完成。
    第四段:學習成長
    軟件開發(fā)是一個知識密集型的工作,要時刻緊跟技術的發(fā)展趨勢才能在激烈的競爭中取得優(yōu)勢。因此,我認為軟件工程師需要具備持續(xù)學習的能力和自我提升的意識。我會在業(yè)余時間去了解新的技術,參加相關的技術社群和活動,不斷學習和嘗試新東西,以此來增強自己的核心競爭力和解決實際問題的能力。同樣,我也會時刻關注團隊的成長和發(fā)展,希望能為團隊帶來更多的經(jīng)驗和技術積累。
    第五段:總結(jié)回顧
    在軟件開發(fā)的過程中,我覺得最重要的是要保持持之以恒的熱情和精神狀態(tài)。無論是在技術領域還是在團隊管理中,不停地學習和成長,分享并培育團隊的創(chuàng)新精神和專業(yè)精神,才能不斷提高自己和團隊的能力和素質(zhì),做出更好的產(chǎn)品。取得成功需要獨立思考和勇于探索,但更需要承認團隊的重要性,在各方面展現(xiàn)出自己領導團隊的能力和擔當。在今后的工作和生活中,我也將持續(xù)關注自己的成長需求,堅定地走好自己的職業(yè)道路。
    軟件工程實訓心得體會篇九
    軟件工程,就是一套用于軟件的團隊開發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的規(guī)范。你知道軟件工程
    心得體會
    是什么嗎?接下來就是本站小編為大家整理的關于軟件工程心得體會,供大家閱讀!
    時間飛逝,不知不覺間《軟件工程》的學習已經(jīng)過了大半了。在這將近半學期的學習中,雖然我不能說我將《軟件工程》學習的有多么的好,但是通過學習,我還是受益良多。
    在以前,我一直對軟件存在一些偏見或則是誤解,認為軟件就是程序,軟件的開發(fā)就是編寫程序,只要編完了程序,一切也就ok了,而且我還片面的認為只要我掌握了時下最新的語言和工具,那么我就能寫程序了。一個人,只要會編程,就能寫軟件,就是程序員;一個公司,只要招聘一些程序員,就能開發(fā)好的軟件產(chǎn)品。只要有幾個有經(jīng)驗的程序員,再找些兼職的大學生,就能組成一個軟件公司。
    但是通過了《軟件工程》這門課的學習,使我認識到了我以前的錯誤。軟件其實不僅僅是程序,軟件開發(fā)其實也不僅僅是編寫程序,軟件是思想在硬件上的載體和體現(xiàn),處理的是邏輯和信息。唯有對軟件和軟件的開發(fā)過程,有充分的認識,才能更好的開發(fā)出,過程受控、質(zhì)量受控的軟件產(chǎn)品。
    而且在以前,我一直以為軟件的開發(fā)其實是一件很輕松快樂的事情,只要一天坐在電腦旁敲敲鍵盤,那么一切就可以了,但是現(xiàn)在我才發(fā)現(xiàn),我以前的很多的思想是多么的膚淺可笑。編程其實是一種樂趣和苦惱共存的一項創(chuàng)造性活動。因為編程不僅能夠滿足我們內(nèi)心深處進行創(chuàng)造的渴望,而且還能愉悅我們內(nèi)在的情感。
    而且通過學習《軟件工程》,我還學到了很多其他的東西。比如通過學習《軟件工程》,特別是老師每次用實際的軟件現(xiàn)場的講解,為我提供了一個盡早接觸世界工作和真實項目的機會。讓我知道如何在以最小的成本中,訓練自己的基本工程素質(zhì)和能力,如何激發(fā)自己的積極性等。而且通過學習《軟件工程》,還讓我認識和培養(yǎng)了我的團隊協(xié)作能力,特別是對于我們這些在校的學生來說,這種學習更是能讓我在以后工作中少走很多的彎路。
    所以,通過《軟件工程》的學習,我是真的學習到了很多有用的東西,讓我明白了很多的道理。在此我對老師的辛勤教育表示感謝,因為是你讓我學習到了這些,是我獲益良多。
    軟件工程心得體會未接觸軟件工程之前一直都很想學這門課程,因為覺得這門課很牛,是那些有工程師稱號的高手才擺弄的東西。學了一個學期的軟件工程課,終于知道了個軟件工程的大概。學的時候總覺得很抽象,理解起來好像不難,但總是摸不著頭腦一種很茫然的感覺。曾經(jīng)以為程序就是軟件,軟件就是程序。學習這門課程第一個收獲是,知道了二者的不同之處。以前做過的一些小型的軟件比如加密軟件,我也只是在程序旁邊附上一個軟件的說明,看來已經(jīng)很接近作坊了。不過大的項目沒有接觸過,用軟件工程的方法還是第一次。我想也是程序的不斷復雜化導致了軟件危機的發(fā)生,使得人們不得不探索新的解決方法。
    經(jīng)過倪老師的講解,理解了軟件工程,就是一套用于軟件的團隊開發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的規(guī)范。其核心就是,對于軟件開發(fā)的5個重要組成部分:需求分析,設計,編碼,調(diào)試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。吾生也有涯,而知也無涯,學習永無止境。起初,對軟件工程處于一知半解的狀態(tài),分工比較混亂。
    在劃分模塊后明確了各自分工,漸漸形成良性循環(huán)。在學習過程中,知道了團隊合作十分重要,爭議固然存在,但通過討論、協(xié)商,群策群力,在不斷磨合中能夠達成一致與默契。團隊成員中能力各有高下,互相尊重,各取所長,不宜妄自菲薄。組長多加協(xié)調(diào),組員積極配合,才能合作愉快。學習能力體現(xiàn)在能盡快接受新的知識,順應變化,學為所用。
    上《軟件工程導論》這門課,我的收獲大概如下:我們?yōu)槭裁葱枰浖こ棠?上面已經(jīng)給出了一些原因。專業(yè)點講,軟件工程最終是為了實現(xiàn)“軟件制造業(yè)”的社會化,工業(yè)化大生產(chǎn),提高其勞動生產(chǎn)效率。只有如此,軟件業(yè)才能實現(xiàn)社會化,工業(yè)化大生產(chǎn),才能“做大做強”。沒有管理的設計是失敗和混亂的設計,沒有設計指導的編程是無序的忙碌的。根據(jù)開發(fā)的軟件的規(guī)模,應該適當程度的運用軟件工程化的思想,需要靈活,畢竟我們開發(fā)的軟件大多數(shù)是中小型的,大型的并不多見(我是這么認為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果更穩(wěn)定。
    其實開發(fā)軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實現(xiàn)的核心功能大概構(gòu)思一種或多種實現(xiàn)方法,并從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和debug。在我看來,除了第一步外,其余的步驟應該是一個循環(huán)的過程。在編碼的過程中,你總是需要不斷地回過頭來修改原先的模塊設計,甚至最初選定的實現(xiàn)算法。具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調(diào)試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。1.可行性分析就是關于當前項目能不能干的分析結(jié)果。
    2.項目描述這是在決定立項以后,對當前項目的一份扼要說明。
    3.需求分析就是對客戶要求的功能的定義。
    4.軟件設計這就是對程序的每一個模塊的詳細設計的說明文檔。
    5.開發(fā)日志我一直都認為這是文檔中最有趣的部分。開發(fā)日志相當于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突然萌發(fā)的靈感,或?qū)Υa的一些微小的修改,或?qū)Τ绦蚪Y(jié)構(gòu)的一些微小變動等,還要對上述這些修改變動作些說明。
    6.測試分析用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數(shù)字描述。
    共
    2
    頁,當前第
    1
    頁
    1
    2
    軟件工程實訓心得體會篇十
    在本學期的軟件工程課程的學習中,我們學習了十一章的內(nèi)容。第一章軟件與軟件工程的概念,這一章主要講解的是一些概念性和基礎性的內(nèi)容,例如軟件的概念、特性,軟件危機的主要表現(xiàn),軟件工程的概念以及軟件生存期、典型生存期模型等等。第二章軟件工程方法與工具,這一章主要對軟件工程方法進行介紹,包括三種方法:傳統(tǒng)方法、面向?qū)ο蠓椒ā⑿问交椒?。還引出了工具uml。第三章軟件需求獲取與結(jié)構(gòu)化分析方法,本章詳細介紹了需求獲取與需求分析階段的任務以及結(jié)構(gòu)化分析方法,畫分層的數(shù)據(jù)流圖、e-r圖以及狀態(tài)圖式本節(jié)的重點。第四章結(jié)構(gòu)化分析方法,這一章重點講解了使用變換型映射方法和事務型映射方法生成初始的模塊結(jié)構(gòu)以及模塊結(jié)構(gòu)的改進。第五章編碼,這一章重點講解了編碼的風格及規(guī)范,還告訴我們編碼規(guī)范說帶來的好處,并告誡我們將來一點要形成好的編碼風格。第六章軟件測試方法,本章講解了軟件測試相關的概念及重要性,軟件測試與開發(fā)各個階段的關系;還介紹了白盒測試技術以及黑河測試技術。第七章統(tǒng)一建模語言uml概述,本章詳細介紹了uml的基本模式、事物、關系及建模時用到的各種圖進行了介紹。第八章面向?qū)ο蠓治?,這一章主要講解了面向?qū)ο蠓治龅?種模型,包括功能模型、靜態(tài)模型和動態(tài)模型。第九章軟件體系結(jié)構(gòu)與設計模式,本章對軟件體系結(jié)構(gòu)的基本概念、典型風格等進行了講解。第十章面向?qū)ο笤O計,本章的重點是對面向?qū)ο蠓治鰰r建立的對象模型進行調(diào)整和細化。第十一章軟件維護,本章主要介紹軟件維護的任務、軟件維護活動以及軟件維護方法進行了介紹。
    要學習軟件工程,學會如何系統(tǒng)的思考,以及養(yǎng)成良好的編碼習慣,想學好軟件工程,就必須知道軟件工程的目標、過程和原則:軟件工程目標:生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。正確性指軟件產(chǎn)品達到預期功能的程度??捎眯灾杠浖窘Y(jié)構(gòu)、實現(xiàn)及文檔為用戶可用的程度。開銷合宜是指軟件開發(fā)、運行的整個開銷滿足用戶要求的程度。這些目標的實現(xiàn)不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
    軟件工程過程:生產(chǎn)一個最終能滿足需求且達到工程目標的軟件產(chǎn)品所需要的步驟。軟件工程過程主要包括開發(fā)過程、運作過程、維護過程。它們覆蓋了需求、設計、實現(xiàn)、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件系統(tǒng)結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關層次的說明、每一模塊的接口定義。詳細設計產(chǎn)生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說明及加工描述。實現(xiàn)活動把設計結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認活動貫穿于整個開發(fā)過程,實現(xiàn)完成后的確認,保證最終產(chǎn)品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
    軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。
    程序流程圖:程序流程圖又稱之為程序框圖,它是軟件開發(fā)者最熟悉的一種算法表達工具。它獨立于任何一種程序設計語言,比較直觀和清晰地描述過程的控制流程,易于學習掌握。在流程圖中只能使用下述的五種基本控制結(jié)構(gòu):順序型;選擇型;while型循環(huán);until型循環(huán);多情況型選擇。
    n-s圖:一種符合結(jié)構(gòu)化程序設計原則的圖形描述工具,稱為盒圖,又稱為n-s圖。在n-s圖中,為了表示五種基本控制結(jié)構(gòu),規(guī)定了五種圖形構(gòu)件。順序型;選擇型;while重復型;until重復型;多分支選擇型。
    pad圖:它是用結(jié)構(gòu)化程序設計思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。pad也設置了五種基本控制結(jié)構(gòu)的圖示,并允許遞歸使用。
    hipo圖:hipo圖是由一組ipo圖加一張hc圖組成。它是美國ibm公司在軟件設計中使用的主要表達工具。
    hc圖既是層次圖,用于表示軟件的分層結(jié)構(gòu)。hc圖中的每一個模塊,均可用一張ipo圖來描述。ipo圖由輸入、處理和輸出三個框組成,需要時還可以增加一個數(shù)據(jù)文件框,這種圖形的優(yōu)點,是能夠直觀地顯示輸入—處理—輸出三者之間的聯(lián)系。
    還有測試方法:按照測試過程是否在實際應用環(huán)境中來分,有靜態(tài)分析與動態(tài)測試。測試方法有分析方法(包括靜態(tài)分析法與白盒法)與非分析方法(稱黑盒法)。
    靜態(tài)分析技術:不執(zhí)行被測軟件,可對需求分析
    說明書
    、軟件設計說明書、源程序做結(jié)構(gòu)檢查、流程分析、符號執(zhí)行來找出軟件錯誤。
    動態(tài)測試技術:當把程序作為一個函數(shù),輸入的全體稱為函數(shù)的定義域,輸出的全體稱為函數(shù)的值域,函數(shù)則描述了輸入的定義域與輸出值域的關系。
    還學習了其他很多工具、語言、方法等,雖然不是都學得很透徹,但我相信在今后的學習中一定會慢慢的完善的。
    軟件工程對于初學者來說,知識基礎較薄弱,對一些應用操作、概念、工具方法等理解起來較為困難,要能從整體概念上較好地理解和把握、學好軟件工程,不是僅僅把幾本專業(yè)書籍細致地看幾遍,然后上機練習幾次就可以成功,學習過程中要注意多看多練要注意結(jié)合實際,更要多思考,面對錯誤不要一范就問,要嘗試自己去解決。但是還要注意什么都學,肯定是什么都學不透的,要集中精力打攻堅戰(zhàn),學習軟件工程首先要明白自己的學習目標究竟是什么,根據(jù)自己的實際工作出發(fā),有針對性的在相應的學習方向上進行提高,制定出詳細的學習規(guī)劃。還要注意與其他科目的相輔相成,就像我們在學習面向?qū)ο蠓治龅臅r候要結(jié)合大一學習的面向?qū)ο蠹捌浞椒▽W這一專業(yè)科目進行研究拓展;在學習語言時,要看看與c語言的聯(lián)系,多思多想,把從各個科目學到的知識通匯貫通。
    在軟件工程的學習中,我了解到了軟件并非是一些代碼這么簡單,在開發(fā)軟件的過程中,編寫代碼的工作量其實只占不到所有工程量的30%,而后期的管理和維護更是占了60%到80%之多。一個完整的項目規(guī)劃須包括,軟件的定義,可行性分析報告,項目開發(fā)計劃,軟件需求說明書,概要設計說明書,詳細設計說明書,用戶操作手冊,測試計劃,測試分析報告,開發(fā)進度報告,項目開發(fā)總結(jié)報告,軟件維護手冊,軟件問題報告,軟件修改報告,等多個文檔,每個文檔都要上級驗收審查,而文檔數(shù)量眾多,要做好這點真的不是很容易,而恰恰寫好文檔正能保證完成軟件工程其中一個目的的關鍵,既研究如何用最小的開銷做出生存期較長的軟件,再加上各個階段都要進行周密的策劃、詳細的分工部署和人員安排,且各階段要據(jù)具體情況不斷的反復才能達成,所以代碼只是開發(fā)軟件這個浩大的工程的一個小小的過程。
    而編碼的學習中,我更了解到形成自己獨特的規(guī)范的編碼風格是非常重要的事。因為這影響到了軟件后期繁重的維護,大家都要閱讀你的程序,如果你寫的程序毫無規(guī)范可言,那么別人怎么能讀懂你的程序?讀不懂程序,維護又從何談起呢?所以,我們在今后的學習中,一定要注意這方面的培養(yǎng),在寫程序的過程中,要逐步的在規(guī)范的基礎上形成屬于自己的風格,即方便自己的修改,也方便日后他人的閱讀。
    在學習中,我們還要注意比較三種方法的優(yōu)缺點,例如:傳統(tǒng)方法雖然使軟件擺脫了混亂和無序,但其在適應需求變化的方面不夠靈活,而且傳統(tǒng)方法要么面向行為,要么面向數(shù)據(jù),缺乏兩者的有機結(jié)合。而面向?qū)ο蠓椒ǖ某绦蛟O計和問題求解更符合人們?nèi)粘W匀坏乃季S習慣,適合大型、復雜及交互性比較強的系統(tǒng)。形式化方法則是一中基于形式化數(shù)學變換的軟件開發(fā)方法,它可將系統(tǒng)的規(guī)格說明轉(zhuǎn)換為可執(zhí)行的程序。
    在今后的學習中要注意多讀書、多思考、多練習、多討論,不斷熟悉書本的基礎,并以此為基礎將其擴散開來,應用于今后的實踐。不斷鍛煉自己,向一名合格的程序設計師邁進。
    共
    2
    頁,當前第
    2
    頁
    1
    2
    軟件工程實訓心得體會篇十一
    作為軟件工程師,我一直對自己在軟件開發(fā)領域的發(fā)展感到自豪。近年來,我一直致力于提高自己的技能,并在實踐中不斷探索和學習。在這個過程中,我收獲了許多寶貴的經(jīng)驗和體會,讓我更好地理解了軟件工程師的角色和職責,特別是在團隊合作方面的重要性。
    第二段:個人成長
    我的軟件開發(fā)之路始于大學時期學習編程語言,并在一家創(chuàng)業(yè)公司中獲得了第一份實習工作。在這一階段,我經(jīng)歷了許多挑戰(zhàn)和學習機會,計劃和設計軟件解決方案成為我的長項。在后來的工作中,我不斷提高自己的團隊合作技能,學會協(xié)調(diào)和溝通,特別是在多功能項目中尤為重要。
    第三段:貢獻團隊
    作為軟件工程師,我有責任在團隊中發(fā)揮重要作用,同時也需要學會尊重其他專業(yè)人員的意見和建議。我的目標是成為一名優(yōu)秀的團隊成員,通過協(xié)作和討論尋求最優(yōu)解決方案。在項目中,我總是盡力爭取更高的質(zhì)量和效率,發(fā)現(xiàn)和解決問題,對團隊的發(fā)展做出貢獻。
    第四段:重視學習
    隨著軟件技術的不斷發(fā)展,我們必須與時俱進,不斷學習新知識和技能。我經(jīng)常參加工作坊、研討會等活動,與同行交流經(jīng)驗,并積極閱讀相關書籍和文章。通過不斷學習,我擴大了自己的技能和知識范圍,更好地服務于團隊和客戶。
    第五段:結(jié)語
    軟件工程師的工作需要我們具備多種技能和素養(yǎng),而不僅僅是編程。我們需要協(xié)作,溝通和解決問題能力,同時也需要開放心態(tài)和持續(xù)學習的意愿。我相信通過不斷的積累經(jīng)驗和體會,我們將不斷提高自身能力,為軟件行業(yè)的發(fā)展做出更大的貢獻。
    軟件工程實訓心得體會篇十二
    在本學期的軟件工程課程的學習中,我們學習了十一章的內(nèi)容。第一章軟件與軟件工程的概念,這一章主要講解的是一些概念性和基礎性的內(nèi)容,例如軟件的概念、特性,軟件危機的主要表現(xiàn),軟件工程的概念以及軟件生存期、典型生存期模型等等。第二章軟件工程方法與工具,這一章主要對軟件工程方法進行介紹,包括三種方法:傳統(tǒng)方法、面向?qū)ο蠓椒ā⑿问交椒?。還引出了工具uml。第三章軟件需求獲取與結(jié)構(gòu)化分析方法,本章詳細介紹了需求獲取與需求分析階段的任務以及結(jié)構(gòu)化分析方法,畫分層的數(shù)據(jù)流圖、e—r圖以及狀態(tài)圖式本節(jié)的重點。第四章結(jié)構(gòu)化分析方法,這一章重點講解了使用變換型映射方法和事務型映射方法生成初始的模塊結(jié)構(gòu)以及模塊結(jié)構(gòu)的改進。第五章編碼,這一章重點講解了編碼的風格及規(guī)范,還告訴我們編碼規(guī)范說帶來的好處,并告誡我們將來一點要形成好的編碼風格。第六章軟件測試方法,本章講解了軟件測試相關的概念及重要性,軟件測試與開發(fā)各個階段的關系;還介紹了白盒測試技術以及黑河測試技術。第七章統(tǒng)一建模語言uml概述,本章詳細介紹了uml的基本模式、事物、關系及建模時用到的各種圖進行了介紹。第八章面向?qū)ο蠓治?,這一章主要講解了面向?qū)ο蠓治龅?種模型,包括功能模型、靜態(tài)模型和動態(tài)模型。第九章軟件體系結(jié)構(gòu)與設計模式,本章對軟件體系結(jié)構(gòu)的基本概念、典型風格等進行了講解。第十章面向?qū)ο笤O計,本章的重點是對面向?qū)ο蠓治鰰r建立的對象模型進行調(diào)整和細化。第十一章軟件維護,本章主要介紹軟件維護的任務、軟件維護活動以及軟件維護方法進行了介紹。
    要學習軟件工程,學會如何系統(tǒng)的思考,以及養(yǎng)成良好的編碼習慣,想學好軟件工程,就必須知道軟件工程的目標、過程和原則:軟件工程目標:生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。正確性指軟件產(chǎn)品達到預期功能的程度??捎眯灾杠浖窘Y(jié)構(gòu)、實現(xiàn)及文檔為用戶可用的程度。開銷合宜是指軟件開發(fā)、運行的整個開銷滿足用戶要求的程度。這些目標的實現(xiàn)不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
    軟件工程過程:生產(chǎn)一個最終能滿足需求且達到工程目標的軟件產(chǎn)品所需要的步驟。軟件工程過程主要包括開發(fā)過程、運作過程、維護過程。它們覆蓋了需求、設計、實現(xiàn)、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件系統(tǒng)結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關層次的說明、每一模塊的接口定義。詳細設計產(chǎn)生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說明及加工描述。實現(xiàn)活動把設計結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認活動貫穿于整個開發(fā)過程,實現(xiàn)完成后的確認,保證最終產(chǎn)品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
    軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。
    我們學習了詳細設計的方法,其原則是過程描述是否易于理解、復審和維護,進而過程描述能夠自然地轉(zhuǎn)換成代碼,并保證詳細設計與代碼完全一致。包括程序流程圖、n—s圖、pad圖、hipo圖。
    程序流程圖:程序流程圖又稱之為程序框圖,它是軟件開發(fā)者最熟悉的一種算法表達工具。它獨立于任何一種程序設計語言,比較直觀和清晰地描述過程的控制流程,易于學習掌握。在流程圖中只能使用下述的五種基本控制結(jié)構(gòu):順序型;選擇型;while型循環(huán);until型循環(huán);多情況型選擇。
    n—s圖:一種符合結(jié)構(gòu)化程序設計原則的圖形描述工具,稱為盒圖,又稱為n—s圖。在n—s圖中,為了表示五種基本控制結(jié)構(gòu),規(guī)定了五種圖形構(gòu)件。順序型;選擇型;while重復型;until重復型;多分支選擇型。
    pad圖:它是用結(jié)構(gòu)化程序設計思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。pad也設置了五種基本控制結(jié)構(gòu)的圖示,并允許遞歸使用。
    hipo圖:hipo圖是由一組ipo圖加一張hc圖組成。它是美國ibm公司在軟件設計中使用的主要表達工具。
    hc圖既是層次圖,用于表示軟件的分層結(jié)構(gòu)。hc圖中的每一個模塊,均可用一張ipo圖來描述。ipo圖由輸入、處理和輸出三個框組成,需要時還可以增加一個數(shù)據(jù)文件框,這種圖形的優(yōu)點,是能夠直觀地顯示輸入—處理—輸出三者之間的聯(lián)系。
    還有測試方法:按照測試過程是否在實際應用環(huán)境中來分,有靜態(tài)分析與動態(tài)測試。測試方法有分析方法(包括靜態(tài)分析法與白盒法)與非分析方法(稱黑盒法)。
    靜態(tài)分析技術:不執(zhí)行被測軟件,可對需求分析說明書、軟件設計說明書、源程序做結(jié)構(gòu)檢查、流程分析、符號執(zhí)行來找出軟件錯誤。
    動態(tài)測試技術:當把程序作為一個函數(shù),輸入的全體稱為函數(shù)的定義域,輸出的全體稱為函數(shù)的值域,函數(shù)則描述了輸入的定義域與輸出值域的關系。
    還學習了其他很多工具、語言、方法等,雖然不是都學得很透徹,但我相信在今后的學習中一定會慢慢的完善的。
    軟件工程對于初學者來說,知識基礎較薄弱,對一些應用操作、概念、工具方法等理解起來較為困難,要能從整體概念上較好地理解和把握、學好軟件工程,不是僅僅把幾本專業(yè)書籍細致地看幾遍,然后上機練習幾次就可以成功,學習過程中要注意多看多練要注意結(jié)合實際,更要多思考,面對錯誤不要一范就問,要嘗試自己去解決。但是還要注意什么都學,肯定是什么都學不透的,要集中精力打攻堅戰(zhàn),學習軟件工程首先要明白自己的學習目標究竟是什么,根據(jù)自己的實際工作出發(fā),有針對性的在相應的學習方向上進行提高,制定出詳細的學習規(guī)劃。還要注意與其他科目的相輔相成,就像我們在學習面向?qū)ο蠓治龅臅r候要結(jié)合大一學習的面向?qū)ο蠹捌浞椒▽W這一專業(yè)科目進行研究拓展;在學習語言時,要看看與c語言的聯(lián)系,多思多想,把從各個科目學到的知識通匯貫通。
    在軟件工程的學習中,我了解到了軟件并非是一些代碼這么簡單,在開發(fā)軟件的過程中,編寫代碼的工作量其實只占不到所有工程量的30%,而后期的管理和維護更是占了60%到80%之多。一個完整的項目規(guī)劃須包括,軟件的定義,可行性分析報告,項目開發(fā)計劃,軟件需求說明書,概要設計說明書,詳細設計說明書,用戶操作手冊,測試計劃,測試分析報告,開發(fā)進度報告,項目開發(fā)總結(jié)報告,軟件維護手冊,軟件問題報告,軟件修改報告,等多個文檔,每個文檔都要上級驗收審查,而文檔數(shù)量眾多,要做好這點真的不是很容易,而恰恰寫好文檔正能保證完成軟件工程其中一個目的的關鍵,既研究如何用最小的開銷做出生存期較長的軟件,再加上各個階段都要進行周密的策劃、詳細的分工部署和人員安排,且各階段要據(jù)具體情況不斷的反復才能達成,所以代碼只是開發(fā)軟件這個浩大的工程的一個小小的過程。
    而編碼的學習中,我更了解到形成自己獨特的規(guī)范的編碼風格是非常重要的事。因為這影響到了軟件后期繁重的維護,大家都要閱讀你的程序,如果你寫的程序毫無規(guī)范可言,那么別人怎么能讀懂你的程序?讀不懂程序,維護又從何談起呢?所以,我們在今后的學習中,一定要注意這方面的培養(yǎng),在寫程序的過程中,要逐步的在規(guī)范的基礎上形成屬于自己的風格,即方便自己的修改,也方便日后他人的閱讀。
    在學習中,我們還要注意比較三種方法的優(yōu)缺點,例如:傳統(tǒng)方法雖然使軟件擺脫了混亂和無序,但其在適應需求變化的方面不夠靈活,而且傳統(tǒng)方法要么面向行為,要么面向數(shù)據(jù),缺乏兩者的有機結(jié)合。而面向?qū)ο蠓椒ǖ某绦蛟O計和問題求解更符合人們?nèi)粘W匀坏乃季S習慣,適合大型、復雜及交互性比較強的系統(tǒng)。形式化方法則是一中基于形式化數(shù)學變換的軟件開發(fā)方法,它可將系統(tǒng)的規(guī)格說明轉(zhuǎn)換為可執(zhí)行的程序。
    在今后的學習中要注意多讀書、多思考、多練習、多討論,不斷熟悉書本的基礎,并以此為基礎將其擴散開來,應用于今后的實踐。不斷鍛煉自己,向一名合格的程序設計師邁進。
    軟件工程實訓心得體會篇十三
    軟件工程心得體會未接觸軟件工程之前一直都很想學這門課程,因為覺得這門課很牛,是那些有工程師稱號的高手才擺弄的東西。學了一個學期的軟件工程課,終于知道了個軟件工程的大概。學的時候總覺得很抽象,理解起來好像不難,但總是摸不著頭腦一種很茫然的感覺。曾經(jīng)以為程序就是軟件,軟件就是程序。學習這門課程第一個收獲是,知道了二者的不同之處。以前做過的一些小型的軟件比如加密軟件,我也只是在程序旁邊附上一個軟件的說明,看來已經(jīng)很接近作坊了。不過大的項目沒有接觸過,用軟件工程的方法還是第一次。我想也是程序的不斷復雜化導致了軟件危機的發(fā)生,使得人們不得不探索新的解決方法。
    經(jīng)過倪老師的講解,理解了軟件工程,就是一套用于軟件的團隊開發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的規(guī)范。其核心就是,對于軟件開發(fā)的5個重要組成部分:需求分析,設計,編碼,調(diào)試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。吾生也有涯,而知也無涯,學習永無止境。起初,對軟件工程處于一知半解的狀態(tài),分工比較混亂。
    在劃分模塊后明確了各自分工,漸漸形成良性循環(huán)。在學習過程中,知道了團隊合作十分重要,爭議固然存在,但通過討論、協(xié)商,群策群力,在不斷磨合中能夠達成一致與默契。團隊成員中能力各有高下,互相尊重,各取所長,不宜妄自菲薄。組長多加協(xié)調(diào),組員積極配合,才能合作愉快。學習能力體現(xiàn)在能盡快接受新的知識,順應變化,學為所用。
    上《軟件工程導論》這門課,我的收獲大概如下:我們?yōu)槭裁葱枰浖こ棠??上面已?jīng)給出了一些原因。專業(yè)點講,軟件工程最終是為了實現(xiàn)“軟件制造業(yè)”的社會化,工業(yè)化大生產(chǎn),提高其勞動生產(chǎn)效率。只有如此,軟件業(yè)才能實現(xiàn)社會化,工業(yè)化大生產(chǎn),才能“做大做強”。沒有管理的設計是失敗和混亂的設計,沒有設計指導的編程是無序的忙碌的。根據(jù)開發(fā)的軟件的規(guī)模,應該適當程度的運用軟件工程化的思想,需要靈活,畢竟我們開發(fā)的軟件大多數(shù)是中小型的,大型的并不多見(我是這么認為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果更穩(wěn)定。
    其實開發(fā)軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實現(xiàn)的核心功能大概構(gòu)思一種或多種實現(xiàn)方法,并從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和debug。在我看來,除了第一步外,其余的步驟應該是一個循環(huán)的過程。在編碼的'過程中,你總是需要不斷地回過頭來修改原先的模塊設計,甚至最初選定的實現(xiàn)算法。具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調(diào)試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。
    1、可行性分析就是關于當前項目能不能干的分析結(jié)果。
    2、項目描述這是在決定立項以后,對當前項目的一份扼要說明。
    3、需求分析就是對客戶要求的功能的定義。
    4、軟件設計這就是對程序的每一個模塊的詳細設計的說明文檔。
    5、開發(fā)日志我一直都認為這是文檔中最有趣的部分。開發(fā)日志相當于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突然萌發(fā)的靈感,或?qū)Υa的一些微小的修改,或?qū)Τ绦蚪Y(jié)構(gòu)的一些微小變動等,還要對上述這些修改變動作些說明。
    6、測試分析用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數(shù)字描述。
    軟件工程實訓心得體會篇十四
    在本學期的軟件工程課程的學習中,我們學習了十一章的內(nèi)容。
    第一章軟件與軟件工程的概念,這一章主要講解的是一些概念性和基礎性的內(nèi)容,例如軟件的概念、特性,軟件危機的主要表現(xiàn),軟件工程的概念以及軟件生存期、典型生存期模型等等。
    第二章軟件工程方法與工具,這一章主要對軟件工程方法進行介紹,包括三種方法:傳統(tǒng)方法、面向?qū)ο蠓椒ā⑿问交椒ā?BR>    還引出了工具uml。
    第三章軟件需求獲取與結(jié)構(gòu)化分析方法,本章詳細介紹了需求獲取與需求分析階段的任務以及結(jié)構(gòu)化分析方法,畫分層的數(shù)據(jù)流圖、e-r圖以及狀態(tài)圖式本節(jié)的重點。
    第四章結(jié)構(gòu)化分析方法,這一章重點講解了使用變換型映射方法和事務型映射方法生成初始的模塊結(jié)構(gòu)以及模塊結(jié)構(gòu)的改進。
    第五章編碼,這一章重點講解了編碼的風格及規(guī)范,還告訴我們編碼規(guī)范說帶來的好處,并告誡我們將來一點要形成好的編碼風格。
    第六章軟件測試方法,本章講解了軟件測試相關的概念及重要性,軟件測試與開發(fā)各個階段的關系;還介紹了白盒測試技術以及黑河測試技術。
    第七章統(tǒng)一建模語言uml概述,本章詳細介紹了uml的基本模式、事物、關系及建模時用到的各種圖進行了介紹。
    第八章面向?qū)ο蠓治觯@一章主要講解了面向?qū)ο蠓治龅?種模型,包括功能模型、靜態(tài)模型和動態(tài)模型。
    第九章軟件體系結(jié)構(gòu)與設計模式,本章對軟件體系結(jié)構(gòu)的'基本概念、典型風格等進行了講解。
    第十章面向?qū)ο笤O計,本章的重點是對面向?qū)ο蠓治鰰r建立的對象模型進行調(diào)整和細化。
    第十一章軟件維護,本章主要介紹軟件維護的任務、軟件維護活動以及軟件維護方法進行了介紹。
    要學習軟件工程,學會如何系統(tǒng)的思考,以及養(yǎng)成良好的編碼習慣,想學好軟件工程,就必須知道軟件工程的目標、過程和原則:軟件工程目標:生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。
    正確性指軟件產(chǎn)品達到預期功能的程度。
    可用性指軟件基本結(jié)構(gòu)、實現(xiàn)及文檔為用戶可用的程度。
    開銷合宜是指軟件開發(fā)、運行的整個開銷滿足用戶要求的程度。
    這些目標的實現(xiàn)不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
    軟件工程過程:生產(chǎn)一個最終能滿足需求且達到工程目標的軟件產(chǎn)品所需要的步驟。
    軟件工程過程主要包括開發(fā)過程、運作過程、維護過程。
    它們覆蓋了需求、設計、實現(xiàn)、確認以及維護等活動。
    需求活動包括問題分析和需求分析。
    問題分析獲取需求定義,又稱軟件需求規(guī)約。
    需求分析生成功能規(guī)約。
    設計活動一般包括概要設計和詳細設計。
    概要設計建立整個軟件系統(tǒng)結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關層次的說明、每一模塊的接口定義。
    詳細設計產(chǎn)生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說明及加工描述。
    實現(xiàn)活動把設計結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。
    確認活動貫穿于整個開發(fā)過程,實現(xiàn)完成后的確認,保證最終產(chǎn)品滿足用戶的要求。
    維護活動包括使用過程中的擴充、修改與完善。
    伴隨以上過程,還有管理過程、支持過程、培訓過程等。
    軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。
    我們學習了詳細設計的方法,其原則是過程描述是否易于理解、復審和維護,進而過程描述能夠自然地轉(zhuǎn)換成代碼,并保證詳細設計與代碼完全一致。
    包括程序流程圖、n-s圖、pad圖、hipo圖
    程序流程圖:程序流程圖又稱之為程序框圖,它是軟件開發(fā)者最熟悉的一種算法表達工具。
    它獨立于任何一種程序設計語言,比較直觀和清晰地描述過程的控制流程,易于學習掌握。
    軟件工程實訓心得體會篇十五
    時間過的很快,轉(zhuǎn)眼間已經(jīng)實習將近5個月,其中有2個月是屬于完全被流放的。最先在內(nèi)部系統(tǒng)組參與內(nèi)部管理系統(tǒng)開發(fā)(struts+mysql+spring+hibernate),之后是去做網(wǎng)絡交換機軟件的腳本測試?,F(xiàn)在又回歸內(nèi)部系統(tǒng),雖然在腳本組期間,編碼能力被別人甩在后頭,但至少具有了一些測試經(jīng)驗。
    至少自己做的東西,是真正交付到了客戶手上,到也稍微有些成就感。
    1、淺談測試
    一直以來,我都認為測試是脫離了軟件工程范圍的工作,不以為屑。但在實際情況中,測試是既重要且難以精湛的.其真正的壓力,在于找不到bug,責任在你,而不在于編碼人員。一般的測試人員不懂編碼,他們靠的是日以累計的經(jīng)驗總結(jié)和想象力。而要做到高級測試工程師,則一定要懂編碼,因為這是你完全掌握整個系統(tǒng)的方方面面具體運作的前提。但占主導地位的,還是大型系統(tǒng)的集成測試經(jīng)驗。實際項目中,編碼時間一般只占30%左右,真正耗費時間的是it階段的找bug與對應bug,此階段基本評定了coder的編碼質(zhì)量。
    2、程序員的困惑
    有些人,以為教學視頻和代碼看多,自己就懂的多,實際做起來,卻不知從何下手,
    有位同事告訴我:代碼看幾遍都沒用,要去抄,例如一個查詢模塊,在此基礎上去做具體記錄的歷史記錄查詢模塊,你可能會覺得很簡單,但實際情況卻往往報一堆異常,配置問題涉及到方方面面,以及數(shù)據(jù)庫字段,傳值問題等等,一大堆對于新人來說很郁悶的問題。但不用怕,只要學會調(diào)試,一個個問題去追蹤,一個個去解決,自然而然,那段“源碼”才真正屬于你。
    3、如何調(diào)試追蹤
    如果你能在短短的時間內(nèi)就看到問題點在那,放下斷點去追蹤,出去找工作,絕對沒問題。出現(xiàn)問題的時候,不要光看代碼,要用實際行動去追蹤運行期間的具體值,那是最好途徑。eclipse是個很爽的ide,這點做的很好。例如頁面內(nèi)容顯示不是自己想要的數(shù)據(jù),我們要先從數(shù)據(jù)庫查詢語句去下手,設置斷點,一步一步stepover,讓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)看過一個高手寫的代碼,真的一看就是不同水平的人寫的,幾乎很完美,讀起來很流暢,方便自己也方便別人。
    任務完后不要呆著,去要求經(jīng)理給你更有挑戰(zhàn)性的任務,只要你肯去嘗試,他們就會對你另言相看,把三天的任務一天加班搞定,效率和忠誠都有了,路也比較好走了。
    []
    軟件工程實訓心得體會篇十六
    對于一個軟件系統(tǒng)的開發(fā),第一步就是問題定義,了解所開發(fā)系統(tǒng)的行業(yè)背景,制定計劃。當我們計劃確定以后就要對項目系統(tǒng)本身進行可行性研究,主要從技術可行性、經(jīng)濟可行性和操作可行性三個方面著手。就比如《物聯(lián)網(wǎng)物流倉庫管理系統(tǒng)》的行業(yè)背景說明文檔中非常詳細地分析了當下物聯(lián)網(wǎng)物流行業(yè)的整體業(yè)務說明、應用背景、未來發(fā)展趨勢以及相關應用案例等四個方面,項目團隊中系統(tǒng)分析員就可以根據(jù)這份文檔以及相關的調(diào)查資料對將要開發(fā)系統(tǒng)的進行定義等工作。
    原來我們寫這類文檔的時候就是草草了事,不會做得這么詳細,而這次看到大型項目的行業(yè)背景說明也是這么詳細,也讓自己認識到不管是軟件開發(fā)的那個階段都要認真對待,這些瑣碎的文檔都是后期開發(fā)項目的支撐,只要它們做的透徹,后面的開發(fā)工作才能更順利的進行。
    第二、項目需求說明方面
    這部分項目需求說明就是軟件定義時期中需求分析階段,而該階段的主要目的就是了解用戶的需要,根據(jù)用戶的需要確定系統(tǒng)必須完成那些工作,并對目標系統(tǒng)提出完整、準確、清晰、具體的要求。在需求分析結(jié)束之前系統(tǒng)分析人員要寫出一份需求規(guī)格說明,即為《物聯(lián)網(wǎng)物流倉儲管理系統(tǒng)》項目需求說明文檔。我們可以看出該文檔也是非常詳細,相比之下我們之前做項目時寫的需求規(guī)格說明書就非常不合格,不僅格式不正確內(nèi)容也是少之又少。
    在這方面,這篇文檔給我啟發(fā)很大。首先就是文檔的格式,要美觀整齊,讓人看著舒服方便。其次就是文檔的內(nèi)容,原來它不是很重要,寫文檔的時候也不知道怎么寫就借鑒下網(wǎng)上的內(nèi)容,結(jié)果根本就沒有把自己項目的需求寫明白,以至于自己最后都有些糊涂,所以根據(jù)以前的經(jīng)驗教訓我會對這部分更加重視。
    第三、系統(tǒng)概要設計方面
    這部分內(nèi)容分說的是軟件設計時期的概要設計階段,該階段的主要目的就是實現(xiàn)系統(tǒng)的功能、設計軟件的結(jié)構(gòu)、模塊組成以及模塊之間的關系。在概要設計階段,我們可以站在全局的高度上,花較少的成本,從抽象的層次上分析對比多種可能的系統(tǒng)實現(xiàn)方案和軟件結(jié)構(gòu),從中選出最佳方案和最合理的結(jié)構(gòu)。在這個階段還會具體畫出e-r圖、數(shù)據(jù)流圖等方面的設計。
    比如《物聯(lián)網(wǎng)物流倉庫管理系統(tǒng)》的系統(tǒng)概要設計從項目概述、設計約束、功能單元與功能模塊設計、數(shù)據(jù)e-r圖設計、總體設計、界面設計等六個方面介紹,通過讀這個文檔,我覺得最重要的還是總體設計,分別從邏輯架構(gòu)設計、物理架構(gòu)設計、技術架構(gòu)設計設計系統(tǒng)。在這個階段中模塊要做到高內(nèi)聚低耦合,這樣開發(fā)出來的系統(tǒng)才會具有更高的獨立性。
    在原來做項目時沒有編寫過這類文檔,在該階段只是畫了結(jié)構(gòu)圖、層次圖以及相關的模塊劃分,對該類文檔尚未重視。通過張老師的講解和自己的學習,我相信在以后做項目的時候一定會注意到這類文檔的編寫。
    第四、詳細設計與分析方面
    詳細設計階段就是把概要設計階段的每個模塊進一步設計,確定每個模塊所需要的算法和數(shù)據(jù)結(jié)構(gòu)。在這個階段還是需要我們設計出程序的詳細規(guī)格說明,而不是編寫程序。在詳細設計階段,系統(tǒng)設計人員可以通過使用程序流程圖、盒圖、pad圖等過程設計的工具和jackson圖等面向數(shù)據(jù)結(jié)構(gòu)的設計工具進一步設計系統(tǒng)相關接口,主要包括界面設計接口、業(yè)務單設計接口、單元模塊設計接口等,這些對于以后的編碼工作都是極其重要的。
    第五、編碼和測試方案方面
    關于編碼,我認為編碼要想做的完美必備條件就是前面的軟件定義和軟件設計時期要按部就班的做,文檔一定要按要求書寫,不能偷懶也不能草草書寫。對于編碼也要有相應的文檔書寫規(guī)范,要使源程序代碼的邏輯簡明清晰、易讀易懂。這樣盡管我們不是設計系統(tǒng)的人員,當看到源程序代碼的時候也能容易讀懂代碼的意思。
    其次就是測試的內(nèi)容,從測試的文檔中我們可以得出,其實測試在軟件開發(fā)中同樣占據(jù)了重要的地位,它主要就是盡可能多的找到問題并排除其中的潛藏的錯誤,最終把一個高質(zhì)量的軟件系統(tǒng)交給用戶使用。它要求測試人員也要有很高的技術水平。
    軟件工程實訓心得體會篇十七
    軟件工程(softwareengineering,簡稱為se)是一門研究用工程化方法構(gòu)建和維護有效的、實用的和高質(zhì)量的軟件的學科。它涉及到程序設計語言,數(shù)據(jù)庫,軟件開發(fā)工具,系統(tǒng)平臺,標準,設計模式等方面。在現(xiàn)代社會中,軟件應用于多個方面。典型的軟件比如有電子郵件,嵌入式系統(tǒng),人機界面,辦公套件,操作系統(tǒng),編譯器,數(shù)據(jù)庫,游戲等。同時,各個行業(yè)幾乎都有計算機軟件的應用,比如工業(yè),農(nóng)業(yè),銀行,航空,政府部門等。這些應用促進了經(jīng)濟和社會的發(fā)展,使得人們的工作更加高效,同時提高了生活質(zhì)量。
    二、軟件工程的目標
    在給定成本、進度的前提下,開發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性并且滿足用戶需求的軟件產(chǎn)品。
    三、軟件工程的原則
    是指圍繞工程設計、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。軟件工程的原則有以下四項基本原則:1)選取適宜開發(fā)范型;2)采用合適的設計方法;3)提供高質(zhì)量的工程支持;4)重視開發(fā)過程的管理。
    四、軟件工程的由來
    據(jù)說上個世紀60年代的程序員都是天才,寫程式就像寫日記一樣,吃過晚飯沒事干隨手就可以寫幾個出來玩,第二天還可以拿去賣錢。所以那時候程序員在大家眼中,跟那些搞美術,音樂的是一類的,被稱為“藝術家”。
    但事過境遷,就像任何人都不會嫌錢多一樣,永遠都不會有人嫌cpu快的。于是,隨之而來的就是硬件的迅猛發(fā)展和越來越變態(tài)的軟件。記得以前常去同學家拷游戲,通常幾張軟盤就可以搞定,而現(xiàn)在的游戲,兩三張cd-rom都算少的了。像如此龐大復雜的怪物,就算你是如何的天才,一個人肯定是搞不定的,否則,等你把程式寫出來,人家intel連奔騰n都開發(fā)出來了。既要開發(fā)大型的軟件還要追求速度(這樣才能賺錢),于是很自然地,合作的概念被提了出來。
    在開始合作的初期,由于大家都習慣了當很有個性的“藝術家”,結(jié)果可想而知,一個是畢加索派的,而另一個是意大利印象派的,再加上一個畫潑墨山水畫的,要是像這樣湊出來的東西都能不出問題的話,那么bill早就轉(zhuǎn)行了。所以,那時侯的大型軟件,據(jù)說“藍屏”比windows98還多。
    馬克思告訴我們,萬物都是從量變到質(zhì)變的。隨著問題的不斷涌現(xiàn),一些master們開始嘗試去總結(jié)經(jīng)驗,并歸納了一些規(guī)范去指導軟件的分析,設計,實現(xiàn),測試,維護,人員交流協(xié)作,項目預算及時限控制等方方面面,這就是軟件工程的前身。
    軟件工程到現(xiàn)在已發(fā)展了30多年,可以說是相當成熟的了。現(xiàn)在開發(fā)軟件,據(jù)說都是一大幫人排排坐,按著一整套的規(guī)章制度來干活。于是,軟件開發(fā)成了“工程”,程序員也就淪為“工人”了。
    五、軟件工程的核心
    軟件工程,說白了,就是這樣一套用于軟件的團隊開發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的規(guī)范。其核心就是,對于軟件開發(fā)的5個重要組成部分:需求分析,設計,編碼,調(diào)試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。簡單來說,就是對于總體的組織和對于局部的實現(xiàn)。
    六、軟件開發(fā)過程
    開發(fā)軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實現(xiàn)的核心功能大概構(gòu)思一種或多種實現(xiàn)方法,并從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和debug。除了第一步外,其余的步驟應該是一個循環(huán)的過程。既然軟件開發(fā)是一個具有不可預知性和變化性的`動態(tài)的過程,那么,對其每一個步驟的組織,即周期模型,就必須包容它的這種性質(zhì)。
    具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調(diào)試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。文檔的作用在于以下3個方面:一是可以幫助整理思路。把要完成的目標,系統(tǒng)的結(jié)構(gòu),每一個模塊的功能等整理一下,然后分門別類地寫下來,這樣在開發(fā)的過程中,就有據(jù)可依,在需要回過頭來修改設計的時候,也有證可考。二是便于交流。想象一下開會時的情形。一大幫子人爭先恐后,激烈辯論,然后會終人散,思想靈感也就隨之散了,結(jié)果是開了半天會,什么也沒討論出來。這就是后來會議記錄被發(fā)明出來的原因。在腦子里的東西一多,就會散而且亂,用語言表達的時候,很容易會丟三落四,別人也很難把握住你的思想。但經(jīng)過整理寫在紙上以后,則會清晰得多,無論是別人還是自己,看起來都可以一目了然。三是可以作為以后維護時的參考資料。有一句名言:“筆和紙永遠都比大腦可靠”,意思就是說,放在大腦里的東西說不準哪天就忘了,但寫在紙上的東西,只要不發(fā)生什么意外,一般是丟不了的。當過了一段時間,你需要再回過頭來修改你的程序的時候,你就會發(fā)現(xiàn),你以前寫下的文檔實在太有價值了。別指望你的源代碼,對于復雜一點的程序來說,單純的源代碼幾乎會扼殺掉你所有的時間。
    可行性分析就是關于當前項目能不能干的分析結(jié)果。主要考慮的方面包括:是否能把這個項目開發(fā)出來;假如可以的話,預計需要多少時間,能否滿足客人的時間要求;需要多少人力和資金的投入;最重要的是,這個項目能否賺錢,能賺多少。還要對可能存在的風險進行評估。
    七、軟件工程學習感悟
    時間飛逝,不知不覺間《軟件工程》的學習完了。在這將近半學期的學習中,雖然我不能說我將《軟件工程》學習的有多么的好,但是通過學習,我還是受益良多。
    在以前,我一直對軟件存在一些偏見或則是誤解,認為軟件就是程序,軟件的開發(fā)就是編寫程序,只要編完了程序,一切也就ok了,而且我還片面的認為只要我掌握了時下最新的語言和工具,那么我就能寫程序了。一個人,只要會編程,就能寫軟件,就是程序員;一個公司,只要招聘一些程序員,就能開發(fā)好的軟件產(chǎn)品。只要有幾個有經(jīng)驗的程序員,再找些兼職的大學生,就能組成一個軟件公司。
    但是通過了《軟件工程》這門課的學習,使我認識到了我以前的錯誤。軟件其實不僅僅是程序,軟件開發(fā)其實也不僅僅是編寫程序,軟件是思想在硬件上的載體和體現(xiàn),處理的是邏輯和信息。唯有對軟件和軟件的開發(fā)過程,有充分的認識,才能更好的開發(fā)出,過程受控、質(zhì)量受控的軟件產(chǎn)品。
    而且在以前,我一直以為軟件的開發(fā)其實是一件很輕松快樂的事情,只要一天坐在電腦旁敲敲鍵盤,那么一切就可以了,但是現(xiàn)在我才發(fā)現(xiàn),我以前的很多的思想是多么的膚淺可笑。編程其實是一種樂趣和苦惱共存的一項創(chuàng)造性活動。因為編程不僅能夠滿足我們內(nèi)心深處進行創(chuàng)造的渴望,而且還能愉悅我們內(nèi)在的情感。
    而且通過學習《軟件工程》,我還學到了很多其他的東西。比如通過學習《軟件工程》,特別是教員的課程講解和每次用實際的軟件現(xiàn)場的講解,為我提供了一個盡早接觸世界工作和真實項目的機會。讓我知道如何在以最小的成本中,訓練自己的基本工程素質(zhì)和能力,如何激發(fā)自己的積極性等。而且通過學習《軟件工程》,還讓我認識和培養(yǎng)了我的團隊協(xié)作能力,特別是對于我們這些在校的學生來說,這種學習更是能讓我在以后工作中少走很多的彎路。
    所以,通過《軟件工程》的學習,我是真的學習到了很多有用的東西,讓我明白了很多的道理。在此我對教員的辛勤教育表示感謝,因為是你讓我學習到了這些,是我獲益良多。