




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第軟件工程學(xué)習(xí)心得體會(21篇)
軟件工程學(xué)習(xí)心得體會(通用21篇)
軟件工程學(xué)習(xí)心得體會篇1
學(xué)習(xí)了這門課程,還有老師們的多元化教課,不但讓我從理論上掌握軟件工程,還有從不同的實(shí)例,讓理論和實(shí)踐得到了很好的結(jié)合。整一個(gè)學(xué)期下來,總的來說還是學(xué)到了很多東西的,有很多地方是值得肯定的,其實(shí)在我看來,軟件工程與其說是一門課程,不如說是一門思想。是一個(gè)如何去分析和處理問題的過程,應(yīng)該說其范疇已經(jīng)遠(yuǎn)遠(yuǎn)不止局限于該門課程,成為了一個(gè)綜合的一個(gè)能夠解決問題的思想集合。
要學(xué)習(xí)軟件工程,學(xué)會如何系統(tǒng)的思考,以及養(yǎng)成良好的編碼習(xí)慣,想學(xué)好軟件工程,就必須知道軟件工程的目標(biāo)、過程和原則:軟件工程目標(biāo):生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。正確性指軟件產(chǎn)品到達(dá)預(yù)期功能的程度。
可用性指軟件根本構(gòu)造、實(shí)現(xiàn)及文檔為用戶可用的程度。開銷合宜是指軟件開發(fā)、運(yùn)行的整個(gè)開銷滿足用戶要求的程度。這些目標(biāo)的實(shí)現(xiàn)不管在理論上還是在實(shí)踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
軟件工程過程:生產(chǎn)一個(gè)最終能滿足需求且到達(dá)工程目標(biāo)的軟件產(chǎn)品所需要的步驟。軟件工程過程主要包括開發(fā)過程、運(yùn)作過程、維護(hù)過程。它們覆蓋了需求、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)以及維護(hù)等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設(shè)計(jì)活動一般包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)建立整個(gè)軟件系統(tǒng)構(gòu)造,包括子系統(tǒng)、模塊以及相關(guān)層次的說明、每一模塊的接口定義。詳細(xì)設(shè)計(jì)產(chǎn)生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)構(gòu)造說明及加工描述。實(shí)現(xiàn)活動把設(shè)計(jì)結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認(rèn)活動貫穿于整個(gè)開發(fā)過程,實(shí)現(xiàn)完成后確實(shí)認(rèn),保證最終產(chǎn)品滿足用戶的要求。維護(hù)活動包括使用過程中的擴(kuò)充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓(xùn)過程等。軟件工程的原則是指圍繞工程設(shè)計(jì)、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。
pad圖:它是用構(gòu)造化程序設(shè)計(jì)思想表現(xiàn)程序邏輯構(gòu)造的圖形工具。pad也設(shè)置了五種根本控制構(gòu)造的圖示,并允許遞歸使用。hipo圖:hipo圖是由一組ipo圖加一張hc圖組成。它是美國ibm公司在軟件設(shè)計(jì)中使用的主要表達(dá)工具。hc圖既是層次圖,用于表示軟件的分層構(gòu)造。hc圖中的每一個(gè)模塊,均可用一張ipo圖來描述。ipo圖由輸入、處理和輸出三個(gè)框組成,需要時(shí)還可以增加一個(gè)數(shù)據(jù)文件框,這種圖形的優(yōu)點(diǎn),是能夠直觀地顯示輸入處理輸出三者之間的聯(lián)系。還有測試方法:按照測試過程是否在實(shí)際應(yīng)用環(huán)境中來分,有靜態(tài)分析與動態(tài)測試。測試方法有分析方法(包括靜態(tài)分析法與白盒法)與非分析方法(稱黑盒法)。靜態(tài)分析技術(shù):不執(zhí)行被測軟件,可對需求分析說明書、軟件設(shè)計(jì)說明書、源程序做構(gòu)造檢查、流程分析、符號執(zhí)行來找出軟件錯(cuò)誤。動態(tài)測試技術(shù):當(dāng)把程序作為一個(gè)函數(shù),輸入的全體稱為函數(shù)的定義域,輸出的全體稱為函數(shù)的值域,函數(shù)那么描述了輸入的定義域與輸出值域的關(guān)系。還學(xué)習(xí)了其他很多工具、語言、方法等,雖然不是都學(xué)得很透徹,但我相信在今后的學(xué)習(xí)中一定會慢慢的完善的。
軟件工程對于初學(xué)者來說,知識根底較薄弱,對一些應(yīng)用操作、概念、工具方法等理解起來較為困難,要能從整體概念上較好地理解和把握、學(xué)好軟件工程,不是僅僅把幾本專業(yè)書籍細(xì)致地看幾遍,然后上機(jī)練習(xí)幾次就可以成功,學(xué)習(xí)過程中要注意多看多練要注意結(jié)合實(shí)際,更要多思考,面對錯(cuò)誤不要一范就問,要嘗試自己去解決。但是還要注意什么都學(xué),肯定是什么都學(xué)不透的,要集中精力打攻堅(jiān)戰(zhàn),學(xué)習(xí)軟件工程首先要明白自己的學(xué)習(xí)目標(biāo)終究是什么,根據(jù)自己的實(shí)際工作出發(fā),有針對性的在相應(yīng)的學(xué)習(xí)方向上進(jìn)展提軟件工程對于初學(xué)者來說,知識根底較薄弱,對一些應(yīng)用操作、概念、工具方法等理解起來較為困難,要能從整體概念上較好地理解和把握、學(xué)好軟件工程,不是僅僅把幾本專業(yè)書籍細(xì)致地看幾遍,然后上機(jī)練習(xí)幾次就可以成功,學(xué)習(xí)過程中要注意多看多練要注意結(jié)合實(shí)際,更要多思考,面對錯(cuò)誤不要一范就問,要嘗試自己去解決。但是還要注意什么都學(xué),肯定是什么都學(xué)不透的,要集中精力打攻堅(jiān)戰(zhàn),學(xué)習(xí)軟件工程首先要明白自己的學(xué)習(xí)目標(biāo)終究是什么,根據(jù)自己的實(shí)際工作出發(fā),有針對性的在相應(yīng)的學(xué)習(xí)方向上進(jìn)展提高,制定出詳細(xì)的學(xué)習(xí)規(guī)劃。還要注意與其他科目的相輔相成,就像我們在學(xué)習(xí)面向?qū)ο蠓治龅臅r(shí)候要結(jié)合大一學(xué)習(xí)的面向?qū)ο蠹捌浞椒▽W(xué)這一專業(yè)科目進(jìn)展研究拓展;在學(xué)習(xí)語言時(shí),要看看與c語言的聯(lián)系,多思多想,把從各個(gè)科目學(xué)到的知識通匯貫穿。
在軟件工程的學(xué)習(xí)中,我了解到了軟件并非是一些代碼這么簡單,在開發(fā)軟件的過程中,編寫代碼的工作量其實(shí)只占不到所有工程量的30%,而后期的管理和維護(hù)更是占了60%到80%之多。一個(gè)完整的工程規(guī)劃須包括,軟件的定義,可行性分析報(bào)告,工程開發(fā)方案,軟件需求說明書,概要設(shè)計(jì)說明書,詳細(xì)設(shè)計(jì)說明書,用戶操作手冊,測試方案,測試分析報(bào)告,開發(fā)進(jìn)度報(bào)告,工程開發(fā)總結(jié)報(bào)告,軟件維護(hù)手冊,軟件問題報(bào)告,軟件修改報(bào)告,等多個(gè)文檔,每個(gè)文檔都要上級驗(yàn)收審查,而文檔數(shù)量眾多,要做好這點(diǎn)真的不是很容易,而恰恰寫好文檔正能保證完成軟件工程其中一個(gè)目的的關(guān)鍵,既研究如何用最小的開銷做出生存期較長的軟件,再加上各個(gè)階段都要進(jìn)展周密的籌劃、詳細(xì)的分工部署和人員安排,且各階段要據(jù)詳細(xì)情況不斷的反復(fù)才能達(dá)成,所以代碼只是開發(fā)軟件這個(gè)浩大的工程的一個(gè)小小的過程。
而編碼的學(xué)習(xí)中,我更了解到形成自己獨(dú)特的標(biāo)準(zhǔn)的編碼風(fēng)格是非常重要的事。因?yàn)檫@影響到了軟件后期繁重的維護(hù),大家都要閱讀你的程序,如果你寫的程序毫無標(biāo)準(zhǔn)可言,那么別人怎么能讀懂你的程序讀不懂程序,維護(hù)又從何談起呢所以,我們在今后的學(xué)習(xí)中,一定要注意這方面的培養(yǎng),在寫程序的過程中,要逐步的在標(biāo)準(zhǔn)的根底上形成屬于自己的風(fēng)格,即方便自己的修改,也方便日后他人的閱讀。
在學(xué)習(xí)中,我們還要注意比擬三種方法的優(yōu)缺點(diǎn),例如:傳統(tǒng)方法雖然使軟件擺脫了和無序,但其在適應(yīng)需求變化的方面不夠靈活,而且傳統(tǒng)方法要么面向行為,要么面向數(shù)據(jù),缺乏兩者的有機(jī)結(jié)合。而面向?qū)ο蠓椒ǖ某绦蛟O(shè)計(jì)和問題求解更符合人們?nèi)粘W匀坏乃季S習(xí)慣,適合大型、復(fù)雜及交互性比擬強(qiáng)的系統(tǒng)。形式化方法那么是一中基于形式化數(shù)學(xué)變換的軟件開發(fā)方法,它可將系統(tǒng)的規(guī)格說明轉(zhuǎn)換為可執(zhí)行的程序。在今后的學(xué)習(xí)中要注意多讀書、多思考、多練習(xí)、多討論,不斷熟悉書本的根底,并以此為根底將其擴(kuò)散開來,應(yīng)用于今后的實(shí)踐。不斷鍛煉自己,向一名合格的程序設(shè)計(jì)師邁進(jìn)。
這次軟件工程實(shí)訓(xùn)是從20__.12.26號開始的,截至20__.12.31號。實(shí)訓(xùn)內(nèi)容是用java相關(guān)知識(主要是jsp)做一個(gè)物流配送系統(tǒng)。下面談?wù)剬@次實(shí)訓(xùn)的看法。
因?yàn)樽约浩綍r(shí)對java知識儲藏缺乏,特別是jsp這一塊根本不了解怎么回事,所以一拿到這個(gè)工程,我心里都是沒有底的,再加上我被分到的那個(gè)組,我知道就意味著是我一個(gè)人在戰(zhàn)斗了。呵呵,26號,實(shí)訓(xùn)開始了,我們的老師是中軟國際公司的程序員,一個(gè)是周褀,一個(gè)是朱映,都是一身樸素的著裝,讓我感覺做軟件的也沒什么兩樣。老師介紹了自己之后,就直接切入正題了,分析了下我們各個(gè)組的系統(tǒng),即將用到的知識,然后就總體把覺得需要補(bǔ)充的知識(jsp和數(shù)據(jù)庫連接等這幾塊)給我們實(shí)際操作了下,因?yàn)楫?dāng)時(shí)看到用jsp,還講的那么認(rèn)真,當(dāng)時(shí)我就懊悔了,平時(shí)要是多聽點(diǎn),現(xiàn)在老師這么認(rèn)真的給我們講,這是一個(gè)多么難得的時(shí)機(jī)啊。懊悔也沒用啊,開始還勉強(qiáng)能理解一點(diǎn),后來就直接暈了。然后再給大家介紹了一些即將用到的工具,比方rationalRose,SVN,MyEclipse等等。接下來的幾天就不再細(xì)講了。下面談?wù)勍ㄟ^這次實(shí)訓(xùn)的心得體會吧。
通過這次實(shí)訓(xùn),讓我了解到工程開發(fā)的過程,可行性分析——>需求分析——>概要設(shè)計(jì)——>詳細(xì)設(shè)計(jì)——>代碼編寫——>測試——>驗(yàn)收。從技術(shù)方面上,我開始jsp根底根本上就是零的,在老師和syz2(另外一個(gè)物流小組,我一個(gè)人根本上是跟她們做的,或者說是看著她們做的)的幫助下,對jsp有了一個(gè)大概的認(rèn)識。其實(shí)實(shí)訓(xùn)開始前,我還以為做個(gè)系統(tǒng)沒什么大不了,可是當(dāng)真正拿到一個(gè)工程,我卻真的無從下手了,而且就是在知道需求分析和詳細(xì)設(shè)計(jì),在代碼編寫時(shí),一樣寸步難行。通過這個(gè)實(shí)訓(xùn),也讓我了解到,團(tuán)隊(duì)協(xié)作是多么的重要。一個(gè)人的精力是多么的有限。進(jìn)一步理解到,企業(yè)為什么如此重視團(tuán)隊(duì)協(xié)作。同時(shí)借用老師的話就是團(tuán)隊(duì)協(xié)作雖然重要,但是是建立在個(gè)人素質(zhì)的根底上,假設(shè)你個(gè)人素質(zhì)不行,將會影響到整個(gè)團(tuán)隊(duì),就別提對團(tuán)隊(duì)作更多奉獻(xiàn)了。__老師說這幾句話的時(shí)候,朝向了我,估計(jì)是有特殊意義的吧,所以,我將謹(jǐn)記老師的教誨。
還有一個(gè)收獲是從一個(gè)同學(xué)(小胖)那里得到的,他的那組成員跟我的這組大體一樣,我倒是覺得沒什么了,不過他倒是很重視這個(gè)問題吧。然后他說出來,我也覺得這個(gè)問題確實(shí)其實(shí)是個(gè)大的問題。就是不管你會不會這門技術(shù),會不會做這個(gè)東西,態(tài)度要正確才好,就算你不會做,你也應(yīng)該認(rèn)真的對待,將來出身到社會,就不是說像你現(xiàn)在,不會做就不做,跑去玩游戲了。小胖說出了這段話,也在我身上有了一個(gè)印證,雖然我jsp技術(shù)知識為0,但我也還是在認(rèn)真的跟著他們一起做,不會做,就多問,畢竟現(xiàn)在我們是學(xué)生,可以毫不顧忌的詢問各種問題,老師也會盡力為你答復(fù)。將來出身社會就不一樣了。雖然,我就算個(gè)打醬油的水平,但是這個(gè)醬油也要打得有涵量啊。不管怎么樣,我能對自己有個(gè)交待,雖然我不會,但是這次實(shí)訓(xùn)我確實(shí)是認(rèn)真對待了,六天的實(shí)訓(xùn),除了晚上加班外,還花了2個(gè)通宵來完成不同階段的任務(wù),完成與否也不重要了,我至少我做了,這點(diǎn),是這次我應(yīng)該對自己的一個(gè)肯定。
這次實(shí)訓(xùn)的心得根本上就是這些了,最后特別感謝中軟國際帶我們的那兩個(gè)老師(周褀,朱映),這兩個(gè)老師對待我們很平易近人,對我們提出的問題,總是不光解決了,還進(jìn)展了擴(kuò)展,晚上也跟我們一起加班加到很晚,印象尤其深刻就是朱映老師為了給小胖解決一個(gè)問題,臉都變紅了,還在繼續(xù)努力,這點(diǎn)我并不會覺得老師知識儲藏不夠,我想應(yīng)該是這個(gè)問題的突發(fā)吧,一時(shí)沒想到怎么處理。相反讓我感覺更多的就是老師很認(rèn)真,很負(fù)責(zé)。還要感謝就是syz2小組的傾力支持,輔導(dǎo)。
時(shí)間過的很快,轉(zhuǎn)眼間已經(jīng)實(shí)習(xí)將近5個(gè)月,其中有2個(gè)月是屬于完全被流放的。
最先在內(nèi)部系統(tǒng)組參與內(nèi)部管理系統(tǒng)開發(fā)
(struts+mysql+spring+hibernate),之后是去做網(wǎng)絡(luò)交換機(jī)軟件的腳本測試?,F(xiàn)在又回歸內(nèi)部系統(tǒng),雖然在腳本組期間,編碼能力被別人甩在后頭,但至少具有了一些測試經(jīng)歷。至少自己做的東西,是真正交付到了客戶手上,到也稍微有些成就感。
1、淺談測試
一直以來,我都認(rèn)為測試是脫離了軟件工程范圍的工作,不以為屑。但在實(shí)際情況中,測試是既重要且難以精湛的其真正的壓力,在于找不到bug,責(zé)任在你,而不在于編碼人員。一般的測試人員不懂編碼,他們靠的是日以累計(jì)的經(jīng)歷總結(jié)和想象力。而要做到高級測試工程師,那么一定要懂編碼,因?yàn)檫@是你完全掌握整個(gè)系統(tǒng)的方方面面詳細(xì)運(yùn)作的.前提。但占主導(dǎo)地位的,還是大型系統(tǒng)的集成測試經(jīng)歷。實(shí)際工程中,編碼時(shí)間一般只占30%左右,真正消耗時(shí)間的是IT階段的找bug與對應(yīng)bug,此階段根本評定了coder的編碼質(zhì)量。
2、程序員的困惑
有些人,以為教學(xué)視頻和代碼看多,自己就懂的多,實(shí)際做起來,卻不知從何下手,問題在那?如何定位?如何解決?通通跟一樣能力有關(guān),debug追蹤能力,也稱調(diào)試。在工程組工作不愁源碼資源,但問題是蛋糕擺在面前,你如何去消化?
有位同事告訴我:代碼看幾遍都沒用,要去抄,例如一個(gè)查詢模塊,在此根底上去做詳細(xì)記錄的歷史記錄查詢模塊,你可能會覺得很簡單,但實(shí)際情況卻往往報(bào)一堆異常,配置問題涉及到方方面面,以及數(shù)據(jù)庫字段,傳值問題等等,一大堆對于新人來說很郁悶的問題。但不用怕,只要學(xué)會調(diào)試,一個(gè)個(gè)問題去追蹤,一個(gè)個(gè)去解決,自然而然,那段“源碼”才真正屬于你。
3、如何調(diào)試追蹤
如果你能在短短的時(shí)間內(nèi)就看到問題點(diǎn)在那,放下斷點(diǎn)去追蹤,出去找工作,絕對沒問題。出現(xiàn)問題的時(shí)候,不要光看代碼,要用實(shí)際行動去追蹤運(yùn)行期間的詳細(xì)值,那是最好途徑。eclipse是個(gè)很爽的ide,這點(diǎn)做的很好。例如頁面內(nèi)容顯示不是自己想要的數(shù)據(jù),我們要先從數(shù)據(jù)庫查詢語句去下手,設(shè)置斷點(diǎn),一步一步stepover,讓sql字段(存取最終sql語句的字符串)運(yùn)行到有值,inspect進(jìn)去看,如果還看不出來,就點(diǎn)擊它,copy后在sql客戶端去實(shí)際運(yùn)行,看看實(shí)際查詢出來的表是什么,如果是對的,有可能就是頁面調(diào)用的錯(cuò)誤或者action邏輯的傳值問題。
頁面錯(cuò)誤的調(diào)試,根本方法是用右鍵點(diǎn)擊實(shí)際網(wǎng)頁查看源代碼,copy到editplus,就能看到詳細(xì)錯(cuò)誤發(fā)生在那幾行。通常有幾種常見的錯(cuò)誤,例如:缺少對象這種很多時(shí)候是有些被你調(diào)用的字段有可能為空的情況出現(xiàn)的,可以加if(=null)語句加保護(hù)。追蹤的方法根本就是用alert語句,放在有可能出錯(cuò)的地方。
4、一些習(xí)慣
遇到問題先自己思考,無從下手再找高手幫助看看,注意他幫你看的思路,別在一旁閑著,看多了自己也會了,不然你一輩子都停留在那種水平,從人身上學(xué)到的東西遠(yuǎn)遠(yuǎn)比書多的多。
解決了一個(gè)問題后,要去究根問底去找到問題產(chǎn)生的起因,以防你下次遇到類似的問題再浪費(fèi)同樣的時(shí)間。
把代碼寫的漂亮,注釋、空行、標(biāo)準(zhǔn)一樣不能少,可讀性是放在第一位。曾經(jīng)看過一個(gè)高手寫的代碼,真的一看就是不同水平的人寫的,幾乎很完美,讀起來很流暢,方便自己也方便別人。任務(wù)完后不要呆著,去要求經(jīng)理給你更有挑戰(zhàn)性的任務(wù),只要你肯去嘗試,他們就會對你另言相看,把三天的任務(wù)一天加班搞定,效率和忠誠都有了,路也比擬好走了。
在這次軟件工程課程中,我學(xué)到了很多東西,第一次深刻的體會到了什么叫做用工程化的思想來編寫軟件,以前自己也寫過一些小型軟件,沒有做過大型的工程,直到這次課堂我擔(dān)任組長并組織組員共同完成“個(gè)人圖書管理系統(tǒng)”這個(gè)工程,第一次和別人合作,才發(fā)現(xiàn)運(yùn)用工程化的思想來做是如此的有必要。
從這里,我才真正的意識到實(shí)施一個(gè)軟件工程并不是說簡單的會編碼就能夠解決問題的,我們更多的精力不是放在編碼上,編碼只是一個(gè)很小的模塊,只占到那么小的一個(gè)局部。這個(gè)事實(shí)在很大程度上顛覆了我以前的思想,在我以前的認(rèn)識中,似乎整個(gè)軟件就是編碼,除此無它,還好有老師的指導(dǎo),不然真的會出現(xiàn)老師所說的,撞得頭破血流之后才想起來用軟件工程的思想來完成這個(gè)工作。
剛真正開始工作之前,我們費(fèi)了很多的時(shí)間來完成一些前端工作,如需求分析和可行性分析,這塊工作在別人看來可能是相對無關(guān)緊要,甚至是多于的,其實(shí),換做在以前,我也會這么認(rèn)為??墒?,我現(xiàn)在算是深深地明白了磨刀不誤砍柴工的道理,這些工作的完成太有必要了,太重要了,要想你的軟件有用有市場,能被別人承受和認(rèn)可,在進(jìn)展過程中不會出現(xiàn)崩潰性的問題,這些工作缺一不可。
還有就是接下來的一些設(shè)計(jì)模塊,此模塊與軟件編碼涉及比擬嚴(yán)密,主要是解決一些參數(shù)傳遞和接口通訊的問題,此模塊對我的觸動遠(yuǎn)沒有上兩個(gè)模塊對我的影響大,因此再次也不做過多的介紹。在整個(gè)活動的完成過程中,作為組長,我收獲很多,我發(fā)現(xiàn),要是組里有個(gè)人不怎么想做事情時(shí),他對于整個(gè)組織的影響是消滅性的,正所謂“一顆老鼠屎,能壞一倉谷”,以后我的組織里要是出現(xiàn)這樣的人,我絕不會給他繼續(xù)留下來的時(shí)機(jī),我會在第一時(shí)間將他去除出去。還有就是,作為組長,你要做的最重要的事情,不是發(fā)揮自己的聰明才智,而是創(chuàng)造出一個(gè)平臺,讓別人去發(fā)揮,你所要做得,出了保證這個(gè)平臺的完整性和公平性外,還有就是協(xié)調(diào)好各組員之間的關(guān)系。
轉(zhuǎn)眼,出來社會都已大半年,已是半個(gè)社會人了。不能再向?qū)W生那樣,某些時(shí)候可以隨心隨意。頂崗實(shí)習(xí),為我們提供了一個(gè)很好的實(shí)踐時(shí)機(jī),可以讓我們更好的把理論應(yīng)用于實(shí)踐,在實(shí)踐中領(lǐng)悟理論,更可以學(xué)習(xí)到很多書本上學(xué)習(xí)不到的、甚至比理論知識更實(shí)用的業(yè)務(wù)知識。而且,這些實(shí)習(xí)經(jīng)歷,無疑是我們畢業(yè)后就業(yè)的一大籌碼。作為一個(gè)成年人,作為一個(gè)社會職業(yè)人,任何時(shí)候都要守規(guī)矩,做好自己的本分,承當(dāng)起自己所需要承當(dāng)?shù)呢?zé)任。經(jīng)歷了2家公司的工作,我漸漸的認(rèn)識到,每一份工作或每一個(gè)工作環(huán)境都無法盡善盡美,但每一份工作中都有許多珍貴的經(jīng)歷和資源,如失敗的沮喪、自我成長的喜悅、溫馨的工作伙伴、值得感謝的客戶等等,這些都是工作成功者必須體驗(yàn)的感受和必備的財(cái)富。如果每天懷著感恩的心情去工作,在工作中始終牢記“擁有一份工作,就要懂得感恩”的道理,你一定會收獲很多很多。在你收獲很多很多的同時(shí),你會發(fā)現(xiàn)自己已經(jīng)在鍛煉中變得勇敢,堅(jiān)強(qiáng),樂觀,闊達(dá)。這樣的你,是不斷前進(jìn)的走在成功的路上的。
軟件工程學(xué)習(xí)心得體會篇2
軟件工程是一門實(shí)踐性很強(qiáng)、交叉性很強(qiáng)的學(xué)科,它提供給我們的不僅是一種方法論,更是一種世界觀。
在沒有接觸軟件工程這門課時(shí),我一直認(rèn)為軟件就是程序。能編出解決問題的程序就ok了,從沒有想過,在寫一個(gè)程序之前還要構(gòu)思幾份文檔(可行性分析、需求分析、概要設(shè)計(jì))。不過對于那些大型軟件如植物僵尸大戰(zhàn)(至少對于我來說是比較大型的了)怎么去實(shí)現(xiàn)它,想得我一頭霧水。絢麗的界面、40種植物、一大堆不同類型的僵尸,怎樣編代碼去實(shí)現(xiàn)它呢?
第一次上軟件工程的課,裴老師問“軟件是什么?”我的第一想法是:這個(gè)問題太過愚昧了!誰不知道軟件就是程序呀?“軟件是由計(jì)算機(jī)程序、數(shù)據(jù)及文檔組成?!甭牭竭@句話,我心里先是一驚,慌忙翻了下書“軟件是程序和所有使程序正確運(yùn)行所需的相關(guān)文檔和配置信息?!焙杖挥橙胛已酆?。突然間我發(fā)現(xiàn),就算是植物僵尸大戰(zhàn)這樣復(fù)雜的游戲,如果設(shè)計(jì)者實(shí)現(xiàn)分模塊把每一部分如何實(shí)現(xiàn)用文檔描敘出來,那這個(gè)軟件實(shí)現(xiàn)起來不是很容易嗎?
第一次課后我明白了軟件工程是致力于專業(yè)化軟件開發(fā)的理論、方法和工具的研究。雖然我從初中開始信息奧賽,高中繼續(xù)這個(gè)愛好,但在大學(xué)二年級下學(xué)期才接觸在軟件開發(fā)中這么有引導(dǎo)意義的學(xué)科,不覺有種相見恨晚的感覺。自然它的方法學(xué)三要素:方法、工具、過程,我牢記于心。
短短的四周,裴老師的課給我留下了深刻的印象,印象尤深的是:
做軟件我們首先考慮的是團(tuán)隊(duì)的實(shí)力。
如果別人給你50萬讓你們團(tuán)隊(duì)開發(fā)一個(gè)軟件,如果他要求你們團(tuán)隊(duì)給這個(gè)軟件永久維護(hù),那么你要去跟他協(xié)商付100萬。很多軟件公司倒閉就是因?yàn)榫S護(hù)上的問題。至此我才明白維護(hù)軟件是軟件生存周期中時(shí)間最長的一個(gè)階段,它是最花費(fèi)精力與錢財(cái)?shù)囊粋€(gè)階段。
如果將來你們碰到了我,你跟我說你是se那么我會很高興,如果你告訴我你是軟件工程師,我只會“嗯嗯”兩下。
其實(shí)在我接觸軟件后,渴望的是當(dāng)一名軟件工程師。現(xiàn)在才知道學(xué)軟件工程專業(yè)后,去當(dāng)一名軟件工程師是最低層的也是最沒“技術(shù)”含量的。要做就做系統(tǒng)構(gòu)架師,當(dāng)然這需要我們的不懈努力才能達(dá)到。系統(tǒng)構(gòu)架師的.職責(zé)是設(shè)計(jì)一個(gè)公司的基礎(chǔ)構(gòu)架,并提供關(guān)于怎樣建立和維護(hù)系統(tǒng)的指導(dǎo)方針?;腥话l(fā)現(xiàn)學(xué)軟件不僅是學(xué)軟件,相關(guān)的管理能力也是需要具備的。
當(dāng)然理論知識是用來指導(dǎo)實(shí)踐的,親身體驗(yàn)才能領(lǐng)悟軟件工程的妙用。課設(shè)我們選擇了圖書館管理系統(tǒng),主要是這個(gè)系統(tǒng)我們接觸比較多,對于它的流程還是比較清楚的。雖然如此我們還是花了很大的時(shí)間去完成它。記得當(dāng)時(shí)我們定下這個(gè)題目是晚上,在討論用什么語言實(shí)現(xiàn)時(shí),大家各自說出自己比較善于的語言。然后均衡了下,定下用java做開發(fā)語言。在實(shí)現(xiàn)過程中,突然發(fā)現(xiàn)java環(huán)境連接數(shù)據(jù)庫和tomcat超級麻煩且數(shù)據(jù)庫老是連接不上。趁時(shí)間還早我們?nèi)俅斡懻?,決定用c#做開發(fā)語言,主要是c#相對于c++與java來說簡易寫。同時(shí)我們定下不管以后遇到什么困難都要堅(jiān)持下去的準(zhǔn)則。在課設(shè)期間我們沒少跑圖書館,查閱各種資料,對比各本書上實(shí)現(xiàn)圖書館管理系統(tǒng)的代碼。終于在4月11日把所有課設(shè)的所有事情弄好了。當(dāng)然這只是個(gè)概述。
我印象尤深記憶深厚的是最初實(shí)現(xiàn)文檔那塊。剛開始,軟件工程這門課還沒學(xué)多少,基本的設(shè)計(jì)理念就很模糊。文檔到底該怎么寫,很糾結(jié)。于是我從網(wǎng)上狂下相關(guān)文檔。通過粘貼與復(fù)制終于一份內(nèi)容亂七八糟的需求分析文檔出來了,當(dāng)然這只是用來借鑒的。后來孟陽分享了十三份關(guān)于文檔這方面的模板。我們照著那個(gè)樣子在結(jié)合團(tuán)隊(duì)項(xiàng)目的相關(guān)實(shí)例開始了文檔的寫作。我們的文檔總是一個(gè)人先寫好,再拿給另一個(gè)人改,最后由第三個(gè)人評審。大家都覺的可以了,才過關(guān)。測試報(bào)告雖然是我一個(gè)人完成了,但也經(jīng)歷了不少時(shí)間,當(dāng)然這時(shí)間是按小時(shí)算的。首先把大體寫出了,然后修改,再增加信息。大量的截圖以及思考怎樣用例超費(fèi)腦子,兩天的通宵,徹底把我搞垮了,不過在文檔出爐后,心里異常開心。
軟件工程課程雖已結(jié)束,但我對于軟件工程的學(xué)習(xí)才剛剛開始,裴老師的課讓我受益匪淺。我體會到項(xiàng)目管理的重要性,隨著軟件規(guī)模、復(fù)雜度的不斷增加,項(xiàng)目開發(fā)中更多的是協(xié)作、管理和控制。我學(xué)習(xí)到很多一般性的方法,例如:需求獲娶模塊化、分治、估算、計(jì)劃等等。同時(shí),我也認(rèn)識到使用計(jì)算機(jī)解決實(shí)際問題的復(fù)雜性,在圖靈機(jī)模型和馮·諾依曼體系的計(jì)算機(jī)框架下,人們認(rèn)識表達(dá)的過程(不斷反復(fù)、逐步深化)和計(jì)算機(jī)的實(shí)現(xiàn)過程(順序執(zhí)行)相差甚遠(yuǎn),軟件工程方法要提供給程序員們一種更加有效的對客觀世界問題域進(jìn)行形式化的過程方法。
軟件工程學(xué)習(xí)心得體會篇3
軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它包括程序、相關(guān)數(shù)據(jù)及其說明文檔。軟件工程(SoftwareEngineering,簡稱為SE)是針對軟件這一具有特殊性質(zhì)的產(chǎn)品的工程化方法。SE涵蓋了軟件生命周期的所有階段,并提供了一整套工程化的方法,來指導(dǎo)軟件人員的工作。任何事物都是從無到有的,軟件當(dāng)然也不例外。上世紀(jì)中期,軟件產(chǎn)業(yè)從零開始起步,經(jīng)過半個(gè)多世紀(jì)的發(fā)展,其大致經(jīng)歷的3個(gè)階段:程序設(shè)計(jì)階段、軟件設(shè)計(jì)階段和軟件工程時(shí)代,現(xiàn)已成為推動人類社會發(fā)展的龍頭產(chǎn)業(yè),隨著信息化時(shí)代的發(fā)展,軟件對人類社會也將越看來越重要。人們對軟件的認(rèn)識自然經(jīng)歷了一個(gè)由淺入深的過程,在得到巨大需求的同時(shí),也遇到了一系列嚴(yán)重問題,即軟件危機(jī)。所謂軟件危機(jī),是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一些嚴(yán)重問題,其實(shí)質(zhì)是軟件產(chǎn)品的供應(yīng)趕不上需求的增長。概括的說包含兩方面的問題:一、如何開發(fā)軟件,以滿足不斷增長,日趨復(fù)雜的要求;二、如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品。為研究和解決軟件危機(jī),一門新興的學(xué)科軟件工程,應(yīng)運(yùn)而生。
軟件工程的概念是為了有效地控制軟件危機(jī)的發(fā)生而被提出來的,它的中心目標(biāo)就是把軟件作為一種物理的工業(yè)產(chǎn)品來開發(fā),要求“采用工程化的原理與方法對軟件進(jìn)行計(jì)劃、開發(fā)和維護(hù)”,它的主要對象是大型軟件,它的最終目的是擺脫手工生產(chǎn)軟件的現(xiàn)狀,逐步實(shí)現(xiàn)軟件開發(fā)和維護(hù)的自動化。軟件工程的概念自提出來后,經(jīng)過幾十年的發(fā)展,雖然軟件危機(jī)沒有得到徹底的解決,但在軟件開發(fā)方法和技術(shù)方面已經(jīng)有了很大的進(jìn)步,提出了軟件工程知識體系、軟件工程三段論、軟件工程生存期模型、服用原則等等。
軟件開發(fā)過程大致經(jīng)過7個(gè)階段:可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測試、提交與維護(hù)。接下來逐一分析本人見解:
一、可行性分析:顧名思義,就是看項(xiàng)目究竟“能不能做”。有3個(gè)方面:技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性。要確定項(xiàng)目,首先要客觀的、科學(xué)的了解項(xiàng)目的規(guī)模、難度和時(shí)間限制,才可以確定應(yīng)該投入多少人力、物力和財(cái)力去做這個(gè)項(xiàng)目,必須準(zhǔn)確的估計(jì)項(xiàng)目的規(guī)模與難度??错?xiàng)目是否有價(jià)值去做,如果沒有價(jià)值,就放棄;如果有價(jià)值,就要看目前的資源是否能滿足項(xiàng)目的開發(fā)。如果項(xiàng)目有價(jià)值,且有必需的資源,那么就可以確定能做這個(gè)項(xiàng)目了。
二、需求分析階段:解決“做什么、不做什么”的問題。圍繞兩個(gè)核心問題開展需求分析:應(yīng)該了解什么?通過什么方式去了解?
1、了解什么:應(yīng)該先了解宏觀的問題,再了解細(xì)節(jié)的問題。最好為每個(gè)需求注釋“為什么”,這樣可以讓程序員了解需求的本質(zhì),以便選用最合適的技術(shù)來實(shí)現(xiàn)此需求。同時(shí),需求說明不可有額二義性,更不能前后矛盾,如果有二義性貨前后相矛盾,則要重新分析此需求。然后,選擇合適的生存周期,建立合適的需求模型;
2、通過什么方式去了解:直接與客戶交談;有些需求客戶講不清楚,分析人員又猜不透,這是就要請教行家。需求分析是非常重要的階段,如果做不好的話,后果很麻煩。
三、概要設(shè)計(jì):解決“怎么做”的問題。將需求描述的“做什么”問題變?yōu)橐粋€(gè)實(shí)施方案的創(chuàng)造性過程,使得整個(gè)項(xiàng)目在邏輯上和物理上能夠得意實(shí)現(xiàn)。概要設(shè)計(jì)是第一個(gè)開發(fā)活動,也是最重要的活動,是軟件項(xiàng)目實(shí)現(xiàn)的關(guān)鍵階段。設(shè)計(jì)質(zhì)量的高低直接決定了軟件項(xiàng)目的成敗,缺乏或者沒有軟件設(shè)計(jì)的過程會產(chǎn)生一個(gè)不穩(wěn)定的、甚至是失敗的軟件系統(tǒng)。一個(gè)良好的軟件設(shè)計(jì)是進(jìn)行快速軟件開發(fā)的根本,沒有良好的設(shè)計(jì),會將時(shí)間花在不斷的調(diào)試上,無法添加新功能,修改時(shí)間越來越長,隨著給程序打上一個(gè)有一個(gè)的補(bǔ)丁,新的功能需要更多的代碼實(shí)現(xiàn),就變成一個(gè)惡性循環(huán)了。概要設(shè)計(jì)是軟件設(shè)計(jì)級別中的高級設(shè)計(jì),是從需求出發(fā),描述了總體上系統(tǒng)架構(gòu)應(yīng)該包含的要素。概要設(shè)計(jì)盡可能模塊化,因此描述了各個(gè)模塊之間的關(guān)聯(lián),主要是根據(jù)需求規(guī)格或規(guī)格定義,合理、有效地實(shí)現(xiàn)產(chǎn)品規(guī)格中定義的各項(xiàng)需求,完成軟件模塊的劃分并描述模塊之間的關(guān)系,并不斷分解系統(tǒng)模塊,從高層分解到低層分解。它注重框架設(shè)計(jì)、總體結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、接口設(shè)計(jì)、網(wǎng)絡(luò)環(huán)境設(shè)計(jì)等,將產(chǎn)品分割成一些可以獨(dú)立設(shè)計(jì)和實(shí)現(xiàn)的部分并保證各個(gè)部分可以和諧的工作。此過程中畫數(shù)據(jù)流圖、IPO圖、E-R圖、界面設(shè)計(jì)等。
四、詳細(xì)設(shè)計(jì):解決“具體做什么”的問題,將解決問題的辦法進(jìn)行具體化。軟件設(shè)計(jì)的低級設(shè)計(jì),亦即詳細(xì)設(shè)計(jì),主要描述實(shí)現(xiàn)各個(gè)模塊的算法和數(shù)據(jù)結(jié)構(gòu)以及用特定計(jì)算機(jī)語言實(shí)現(xiàn)的初步描述,是針對程序開發(fā)部分來說的,但這個(gè)階段不是真正編寫程序,而是設(shè)計(jì)
出程序的詳細(xì)規(guī)格說明,這種規(guī)格說明類似于其他工程領(lǐng)域中工程師經(jīng)常使用的工程藍(lán)圖,程序員根據(jù)其中所包含的必要的細(xì)節(jié)寫出實(shí)際的程序代碼。用另一種方式說就是,詳細(xì)設(shè)計(jì)是將概要設(shè)計(jì)的框架內(nèi)容具體化、明細(xì)化,將概要設(shè)計(jì)轉(zhuǎn)化為可以操作的軟件模型,但在實(shí)際項(xiàng)目進(jìn)行過程中,依據(jù)項(xiàng)目的具體情況和項(xiàng)目要求,這個(gè)過程可能可以省略(邏輯上沒有省略,表現(xiàn)在概要設(shè)計(jì)階段或者編碼階段),直接按照概要設(shè)計(jì)進(jìn)行編碼;不過,個(gè)人認(rèn)為最好有,有詳細(xì)設(shè)計(jì)可以更好的保證編碼順利的進(jìn)行,可以預(yù)先掃清編碼過程中的障礙,提高代碼的質(zhì)量和編碼的效率。主要包括模塊描述、算法描述、數(shù)據(jù)描述,可以采用圖形、表格或者文字描述等方式表達(dá)出來。
五、編碼:實(shí)現(xiàn)項(xiàng)目。由項(xiàng)目的概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),將設(shè)計(jì)變?yōu)榇a需要通過編碼過程來完成。實(shí)現(xiàn)設(shè)計(jì)有很多種選擇,有很多實(shí)現(xiàn)語言、工具等可供選擇,但一般而言,在設(shè)計(jì)中會直接或間接地確定了實(shí)現(xiàn)語言。編碼過程的一個(gè)主要標(biāo)準(zhǔn)時(shí)變成與設(shè)計(jì)的對應(yīng)性和統(tǒng)一性。如果編碼沒有按設(shè)計(jì)的要求進(jìn)行,設(shè)計(jì)就失去意義了。設(shè)計(jì)過程中的算法、功能、接口、數(shù)據(jù)結(jié)構(gòu)都應(yīng)該在編碼過程中體現(xiàn)。如果需求發(fā)生變更,設(shè)計(jì)業(yè)對應(yīng)地發(fā)生變更,同時(shí)代碼也應(yīng)該一致地發(fā)生變更,這可以通過配置管理配置控制。可見,如果編碼和設(shè)計(jì)不一致,很容易“跑偏”,走火入魔。編碼時(shí)要嚴(yán)格遵循編碼標(biāo)準(zhǔn)和規(guī)范,并提供必要的程序注釋,增加可讀性。另一個(gè)就是重構(gòu)的理解,所謂重構(gòu)是對軟件內(nèi)部的一種調(diào)整,目的是在不改變軟件基本功能和性能的前提下,提高其可理解性,降低成本,當(dāng)添加功能、修改代碼和復(fù)查
代碼的時(shí)候,更不要錯(cuò)過重構(gòu),另外,重構(gòu)可以和設(shè)計(jì)互補(bǔ)。還有一點(diǎn)值得注意,要在必要的時(shí)候部署編碼文檔。
六、測試:看軟件是否符合標(biāo)準(zhǔn)。軟件編碼完成之后,將軟件提交給用戶之前,需要對軟件進(jìn)行測試,這是保證軟件產(chǎn)品質(zhì)量的一個(gè)重要標(biāo)準(zhǔn),也是評估產(chǎn)品質(zhì)量的主要手段。軟件測試是從軟件工程中演化出來的一個(gè)分支,有著非常廣泛的內(nèi)容,并且隨著軟件產(chǎn)業(yè)的發(fā)展,它已經(jīng)變得越來越重要。軟件與生俱來就可能存在缺陷,為了防止和減少這些可能存在的缺陷,進(jìn)行軟件測試是有必要的,測試是最有效的的排錯(cuò)和防止缺陷和故障的手段。最原始的測試莫過于直接運(yùn)行軟件了,后來測試手段逐漸多樣化。測試手段有靜態(tài)測試、動態(tài)測試面向?qū)ο蟮臏y試、自動化測試等等之分。靜態(tài)測試或稱靜態(tài)分析是指一種不通過執(zhí)行程序來進(jìn)行測試的一種技術(shù),主要是檢查軟件的表示和描述是否一致,覆蓋程序的編碼格式、程序語法、檢查獨(dú)立語句的結(jié)構(gòu)和使用等,主要包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量等等,可以通過人工進(jìn)行,亦可借助工具(如:語法分析器)自動進(jìn)行。動態(tài)測試是運(yùn)行被測試的程序,通過輸入測試用例,對其運(yùn)行情況進(jìn)行分析,以達(dá)到檢測的目的,顯然動態(tài)測試封像我們通常意義上的“測試”。動態(tài)測試主要包括白盒測試、黑盒測試、灰盒測試(介于黑盒和白盒之間)。其他測試不再一一介紹。
七、提交與維護(hù):測試完之后,就要把軟件交給用戶使用了。提交不是剪裁,給人家就行了,還要教會客戶怎么使用這個(gè)系統(tǒng)。如果用戶不會使用系統(tǒng),就會不滿意系統(tǒng)的性能,那之前的努力就白費(fèi)了,
打水漂了。為了保證成功地將我們開發(fā)的軟件提交給用戶,我們需要對用戶進(jìn)行培訓(xùn),同時(shí)提交必要的文檔及用戶手冊軟件。維護(hù)就不用多說了,就是售后服務(wù)了。維護(hù)需要分析人員、編碼人員和設(shè)計(jì)人員等角色的參與,有糾錯(cuò)行維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)等。維護(hù)后,要寫軟件維護(hù)過程文檔,至少提交一個(gè)軟件維護(hù)記錄。以上是軟件工程及其幾個(gè)階段的介紹,知道怎樣開發(fā)軟件只是軟件工程的一部分,搞好團(tuán)隊(duì)合作也是很重要的。項(xiàng)目是一個(gè)很大的工程,需要一個(gè)團(tuán)隊(duì)的統(tǒng)籌規(guī)劃,團(tuán)結(jié)協(xié)作,集思廣益,舉一反三,才能夠按預(yù)期完成。
軟件工程學(xué)習(xí)心得體會篇4
軟件工程是一門實(shí)踐性很強(qiáng)、交叉性很強(qiáng)的學(xué)科,它提供給我們的不僅是一種方法論,更是一種世界觀。
在沒有接觸軟件工程這門課時(shí),我一直認(rèn)為軟件就是程序。能編出解決問題的程序就ok了,從沒有想過,在寫一個(gè)程序之前還要構(gòu)思幾份文檔(可行性分析、需求分析、概要設(shè)計(jì))。不過對于那些大型軟件如植物僵尸大戰(zhàn)(至少對于我來說是比較大型的了)怎么去實(shí)現(xiàn)它,想得我一頭霧水。絢麗的界面、40種植物、一大堆不同類型的僵尸,怎樣編代碼去實(shí)現(xiàn)它呢?
第一次上軟件工程的課,裴老師問“軟件是什么?”我的第一想法是:這個(gè)問題太過愚昧了!誰不知道軟件就是程序呀?“軟件是由計(jì)算機(jī)程序、數(shù)據(jù)及文檔組成?!甭牭竭@句話,我心里先是一驚,慌忙翻了下書“軟件是程序和所有使程序正確運(yùn)行所需的相關(guān)文檔和配置信息?!焙杖挥橙胛已酆?。突然間我發(fā)現(xiàn),就算是植物僵尸大戰(zhàn)這樣復(fù)雜的游戲,如果設(shè)計(jì)者實(shí)現(xiàn)分模塊把每一部分如何實(shí)現(xiàn)用文檔描敘出來,那這個(gè)軟件實(shí)現(xiàn)起來不是很容易嗎?
第一次課后我明白了軟件工程是致力于專業(yè)化軟件開發(fā)的理論、方法和工具的研究。雖然我從初中開始信息奧賽,高中繼續(xù)這個(gè)愛好,但在大學(xué)二年級下學(xué)期才接觸在軟件開發(fā)中這么有引導(dǎo)意義的學(xué)科,不覺有種相見恨晚的感覺。自然它的方法學(xué)三要素:方法、工具、過程,我牢記于心。
短短的四周,裴老師的課給我留下了深刻的印象,印象尤深的是:
做軟件我們首先考慮的是團(tuán)隊(duì)的實(shí)力。
如果別人給你50萬讓你們團(tuán)隊(duì)開發(fā)一個(gè)軟件,如果他要求你們團(tuán)隊(duì)給這個(gè)軟件永久維護(hù),那么你要去跟他協(xié)商付100萬。很多軟件公司倒閉就是因?yàn)榫S護(hù)上的問題。至此我才明白維護(hù)軟件是軟件生存周期中時(shí)間最長的一個(gè)階段,它是最花費(fèi)精力與錢財(cái)?shù)囊粋€(gè)階段。
如果將來你們碰到了我,你跟我說你是se那么我會很高興,如果你告訴我你是軟件工程師,我只會“嗯嗯”兩下。
其實(shí)在我接觸軟件后,渴望的是當(dāng)一名軟件工程師?,F(xiàn)在才知道學(xué)軟件工程專業(yè)后,去當(dāng)一名軟件工程師是最低層的也是最沒“技術(shù)”含量的。要做就做系統(tǒng)構(gòu)架師,當(dāng)然這需要我們的不懈努力才能達(dá)到。系統(tǒng)構(gòu)架師的職責(zé)是設(shè)計(jì)一個(gè)公司的基礎(chǔ)構(gòu)架,并提供關(guān)于怎樣建立和維護(hù)系統(tǒng)的指導(dǎo)方針。恍然發(fā)現(xiàn)學(xué)軟件不僅是學(xué)軟件,相關(guān)的管理能力也是需要具備的。
當(dāng)然理論知識是用來指導(dǎo)實(shí)踐的,親身體驗(yàn)才能領(lǐng)悟軟件工程的妙用。課設(shè)我們選擇了圖書館管理系統(tǒng),主要是這個(gè)系統(tǒng)我們接觸比較多,對于它的流程還是比較清楚的。雖然如此我們還是花了很大的時(shí)間去完成它。記得當(dāng)時(shí)我們定下這個(gè)題目是晚上,在討論用什么語言實(shí)現(xiàn)時(shí),大家各自說出自己比較善于的語言。然后均衡了下,定下用java做開發(fā)語言。在實(shí)現(xiàn)過程中,突然發(fā)現(xiàn)java環(huán)境連接數(shù)據(jù)庫和tomcat超級麻煩且數(shù)據(jù)庫老是連接不上。趁時(shí)間還早我們?nèi)俅斡懻?,決定用c#做開發(fā)語言,主要是c#相對于c++與java來說簡易寫。同時(shí)我們定下不管以后遇到什么困難都要堅(jiān)持下去的準(zhǔn)則。在課設(shè)期間我們沒少跑圖書館,查閱各種資料,對比各本書上實(shí)現(xiàn)圖書館管理系統(tǒng)的代碼。終于在4月11日把所有課設(shè)的所有事情弄好了。當(dāng)然這只是個(gè)概述。
我印象尤深記憶深厚的是最初實(shí)現(xiàn)文檔那塊。剛開始,軟件工程這門課還沒學(xué)多少,基本的設(shè)計(jì)理念就很模糊。文檔到底該怎么寫,很糾結(jié)。于是我從網(wǎng)上狂下相關(guān)文檔。通過粘貼與復(fù)制終于一份內(nèi)容亂七八糟的需求分析文檔出來了,當(dāng)然這只是用來借鑒的。后來孟陽分享了十三份關(guān)于文檔這方面的模板。我們照著那個(gè)樣子在結(jié)合團(tuán)隊(duì)項(xiàng)目的相關(guān)實(shí)例開始了文檔的寫作。我們的文檔總是一個(gè)人先寫好,再拿給另一個(gè)人改,最后由第三個(gè)人評審。大家都覺的可以了,才過關(guān)。測試報(bào)告雖然是我一個(gè)人完成了,但也經(jīng)歷了不少時(shí)間,當(dāng)然這時(shí)間是按小時(shí)算的。首先把大體寫出了,然后修改,再增加信息。大量的截圖以及思考怎樣用例超費(fèi)腦子,兩天的通宵,徹底把我搞垮了,不過在文檔出爐后,心里異常開心。
軟件工程課程雖已結(jié)束,但我對于軟件工程的學(xué)習(xí)才剛剛開始,裴老師的課讓我受益匪淺。我體會到項(xiàng)目管理的重要性,隨著軟件規(guī)模、復(fù)雜度的不斷增加,項(xiàng)目開發(fā)中更多的是協(xié)作、管理和控制。我學(xué)習(xí)到很多一般性的方法,例如:需求獲娶模塊化、分治、估算、計(jì)劃等等。同時(shí),我也認(rèn)識到使用計(jì)算機(jī)解決實(shí)際問題的復(fù)雜性,在圖靈機(jī)模型和馮·諾依曼體系的計(jì)算機(jī)框架下,人們認(rèn)識表達(dá)的過程(不斷反復(fù)、逐步深化)和計(jì)算機(jī)的實(shí)現(xiàn)過程(順序執(zhí)行)相差甚遠(yuǎn),軟件工程方法要提供給程序員們一種更加有效的對客觀世界問題域進(jìn)行形式化的過程方法。
向se進(jìn)軍!至少這是現(xiàn)在的目標(biāo)。
謝謝裴老師!您的課通俗易懂,舉的例子貼近生活,讓我們易于接受。
軟件工程學(xué)習(xí)心得體會篇5
學(xué)習(xí)了這門課程,還有老師們的多元化教課,不但讓我從理論上掌握軟件工程,還有從不同的實(shí)例,讓理論和實(shí)踐得到了很好的結(jié)合。整一個(gè)學(xué)期下來,總的來說還是學(xué)到了很多東西的,有很多地方是值得肯定的,其實(shí)在我看來,軟件工程與其說是一門課程,不如說是一門思想。是一個(gè)如何去分析和處理問題的過程,應(yīng)該說其范疇已經(jīng)遠(yuǎn)遠(yuǎn)不止局限于該門課程,成為了一個(gè)綜合的一個(gè)能夠解決問題的思想集合。
整本書的內(nèi)容邏輯很清晰明了,由淺入深循序漸進(jìn),首先我就大概描述下我們所學(xué)的內(nèi)容,第一章是從整體分析軟件工程這門學(xué)科的發(fā)展和所處的社會環(huán)境,接著后面的幾章深入分析了軟件開放過程和模式、軟件項(xiàng)目管理、計(jì)算機(jī)工程、需求分析、結(jié)構(gòu)化分析建模以及基于UML面向?qū)ο蠓治鼋5?。接著我就詳?xì)介紹下我對這門課程知識點(diǎn)的理解概括:
軟件:軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序和使程序正常執(zhí)行所需要的數(shù)據(jù),加上描述程序的操作和使用的文檔。軟件的特征:①軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體,因而它具有抽象性。②軟件是通過人們的智力活動,把知識與技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品。③軟件成為產(chǎn)品后,其生產(chǎn)只是簡單的拷貝,不同于硬件制造。④維護(hù)過程比硬件復(fù)雜的多,甚至?xí)l(fā)新的錯(cuò)誤。軟件危機(jī):指的是軟件開發(fā)和維護(hù)過程中遇到的一系列嚴(yán)重問題。出現(xiàn)軟件危機(jī)的原因:①軟件維護(hù)費(fèi)用急劇上升,直接威脅計(jì)算機(jī)應(yīng)用的擴(kuò)大。②軟件生產(chǎn)技術(shù)進(jìn)步緩慢。軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。軟件生存周期:一個(gè)軟件從定義到開發(fā)、使用和維護(hù),直到最終被棄用,要經(jīng)歷一個(gè)漫長的時(shí)期,通常把軟件經(jīng)歷的這個(gè)漫長的時(shí)期稱為生存周期。軟件的生存周期可分為八個(gè)階段:①問題定義;②可行性研究;③需求分析;④總體(概要)設(shè)計(jì);⑤詳細(xì)設(shè)計(jì);⑥編碼與單元測試;⑦綜合測試;⑧軟件維護(hù);
瀑布模式:是傳統(tǒng)的軟件開發(fā)模式,其中的瀑布是對這個(gè)模式的形象表達(dá),由山頂傾瀉下來的水,自頂向下、逐漸細(xì)化。其特點(diǎn)是:線性化過程;分為分析、設(shè)計(jì)、編碼、集成等幾個(gè)階段,并且各階段逐級推進(jìn),不允許跨越。里程碑管理;階段評審;文檔驅(qū)動;簡潔便于工程應(yīng)用的線性化過程步驟,并可以通過里程碑管理機(jī)制而使項(xiàng)目進(jìn)程量化。其明顯的優(yōu)點(diǎn)就是沒個(gè)階段結(jié)束前都要對所完成的階段成果進(jìn)行評審,這使得軟件的錯(cuò)誤能夠在個(gè)階段內(nèi)盡早發(fā)現(xiàn)并盡早解決,總的來說瀑布模式具有良好的質(zhì)量保證機(jī)制,有很強(qiáng)的生命力。
原型進(jìn)化模式:對軟件進(jìn)行直接模擬或仿真,只需要分析需求框架后進(jìn)行原型創(chuàng)建,再對原型系統(tǒng)進(jìn)行逐步細(xì)化與完善,通過版本更新逐步滿足用戶對于軟件的多方面需要。
增量模式:開發(fā)過程有三個(gè)任務(wù)域,分別是設(shè)計(jì)結(jié)構(gòu)、開發(fā)構(gòu)件和集成系統(tǒng),它既有完善的工程管理機(jī)制,又能適應(yīng)用戶需求變更,有利于質(zhì)量的監(jiān)控,并且各局部基于構(gòu)件構(gòu)造,有利于逐步構(gòu)建與完善;由于先交付核心構(gòu)件可利于降低項(xiàng)目的技術(shù)風(fēng)險(xiǎn)。
螺旋模式:是一種可較好的規(guī)避開發(fā)風(fēng)險(xiǎn)過程的模式,項(xiàng)目是基于任務(wù)的螺旋式推進(jìn),每個(gè)螺旋由內(nèi)之外分別是需求分析、軟件設(shè)計(jì)、系統(tǒng)集成、驗(yàn)證與交付。
軟件開發(fā)的整個(gè)過程:①需要項(xiàng)目團(tuán)隊(duì),組建優(yōu)秀的團(tuán)隊(duì)可以開發(fā)出更搞質(zhì)量的軟件產(chǎn)品。任務(wù)開發(fā)團(tuán)隊(duì)要求小而精,成員大多在8人以內(nèi),主要成員有項(xiàng)目負(fù)責(zé)人、開發(fā)人員、資料管理員和軟件測試員。②項(xiàng)目計(jì)劃是為了使軟件開發(fā)各項(xiàng)工作有秩序地進(jìn)行,包括任務(wù)分配和基于里程碑的進(jìn)度安排,甘特圖和任務(wù)網(wǎng)絡(luò)圖是用來描述進(jìn)度計(jì)劃的工具。項(xiàng)目計(jì)劃書可以作為軟件開發(fā)的工作指南。③項(xiàng)目成本估算,由于項(xiàng)目有來自各方面的成本包括工資開支、場地費(fèi)、差旅費(fèi)、設(shè)備費(fèi)和資料費(fèi)等,但是軟件主要是對人力成本的估算,常用的方法有程序代碼成本估算法等。④軟件風(fēng)險(xiǎn)管理包括很多不確定的風(fēng)險(xiǎn)因素,如計(jì)劃風(fēng)險(xiǎn)、管理風(fēng)險(xiǎn)、需求風(fēng)險(xiǎn)、技術(shù)風(fēng)險(xiǎn)、人員風(fēng)險(xiǎn)、產(chǎn)品風(fēng)險(xiǎn)、用戶風(fēng)險(xiǎn)和商業(yè)風(fēng)險(xiǎn)等等,而風(fēng)險(xiǎn)管理的主要任務(wù)是:風(fēng)險(xiǎn)識別、風(fēng)險(xiǎn)評估、和風(fēng)險(xiǎn)防范。⑤軟件文檔管理,軟件文檔是工程模式軟件開發(fā)的成果體現(xiàn),包括技術(shù)文檔、管理文檔和用戶文檔。⑥軟件配置管理與軟件質(zhì)量管理,包括配置規(guī)劃、軟件變更控制、軟件版本控制和質(zhì)量控制計(jì)劃。
計(jì)算機(jī)系統(tǒng)由硬件、軟件、數(shù)據(jù)資源、網(wǎng)絡(luò)資源、使用系統(tǒng)的人等諸多元素。有三種典型的計(jì)算機(jī)體系結(jié)構(gòu):①主機(jī)結(jié)構(gòu),主機(jī)集中了全部智能,并依靠終端接口與外部設(shè)備連接。②Client/Server結(jié)構(gòu),智能分布于服務(wù)器與客戶機(jī),并依靠網(wǎng)絡(luò)連接成系統(tǒng),其中,服務(wù)器處于核心位置,提供被動核心服務(wù);客戶機(jī)處于邊緣位置,可主動訪問服務(wù)器,尋求服務(wù)支持。③Browser/server結(jié)構(gòu),可適應(yīng)互聯(lián)網(wǎng)遠(yuǎn)程交互的特殊結(jié)構(gòu),基于Web服務(wù)器構(gòu)建。
需求分析:系統(tǒng)開發(fā)前期需求分析很重要,它是為了有效解決用戶問題的需要進(jìn)行的一項(xiàng)工程活動,所需要考慮的需求問題是功能需求、數(shù)據(jù)需求、性能需求和接口需求,開發(fā)者承擔(dān)分析任務(wù),核心是用戶。其步驟有三個(gè):①獲取客戶需求,客戶泛指某個(gè)人或機(jī)構(gòu)部門等,一般方法是調(diào)查,包括訪談、座談、問卷、跟班和收集資料,需求規(guī)約可表達(dá)用戶的軟件價(jià)值。②建立需求模型,它是用戶需求的圖解,一些常用的模型有:業(yè)務(wù)樹圖、用例圖、活動圖。分別用于結(jié)構(gòu)化需求建模、系統(tǒng)業(yè)務(wù)舉例和反映系統(tǒng)工作流程。③進(jìn)行需求驗(yàn)證,要驗(yàn)證的主要內(nèi)容有:有效性驗(yàn)證、一致性驗(yàn)證、完整性驗(yàn)證、現(xiàn)實(shí)性驗(yàn)證和可檢驗(yàn)性驗(yàn)證。結(jié)構(gòu)化分析建模:它是建立在需求規(guī)約基礎(chǔ)上的,對軟件問題進(jìn)行全面解說,包括四個(gè)方面:①數(shù)據(jù)建模,它與數(shù)據(jù)庫設(shè)計(jì)密切相關(guān),ER圖涉及實(shí)體、關(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ù)加工細(xì)節(jié)。③行為建模,行為模型用于說哦名軟件系統(tǒng)與環(huán)境的交互,狀態(tài)轉(zhuǎn)換圖常用的軟件行為建模工具涉及狀態(tài)、事件等圖形元素。⑤數(shù)據(jù)字典,是用于定義軟件的元素,使軟件元素獲得嚴(yán)肅的、詳密的、精確的規(guī)格說明。需求分析模型中的數(shù)據(jù)、功能、行為等諸多方面的元素,都有必要通過數(shù)據(jù)字典給予細(xì)節(jié)說明,以達(dá)到對系統(tǒng)較完整全面的規(guī)格定義。
基于UML對象面向?qū)ο蠓治鼋#篣ML是統(tǒng)一建模語言,有統(tǒng)一的語法、語義和語用規(guī)則,其建模過程的特點(diǎn)是:用例驅(qū)動、以構(gòu)架為中心和增量迭代,通過包實(shí)現(xiàn)對模型的有效的一體化管理。包括三部分:①用例建模,它面向用戶需求的,能夠反映系統(tǒng)的用戶價(jià)值,用例圖的基本元素有用例、參與者、交流;用例之間有泛化、延伸和包含關(guān)系。②活動建模,活動圖用于描述系統(tǒng)動態(tài)過程,主要圖形元素有:活動、轉(zhuǎn)換、起點(diǎn)、終點(diǎn)、判斷、并發(fā)、同步、泳道等??擅枋龈邔訕I(yè)務(wù)級活動,涉及整個(gè)業(yè)務(wù)流程,針對每個(gè)用例活動建模,反映用例內(nèi)部活動細(xì)節(jié)。③類分析建模,這里就只考慮實(shí)體類,實(shí)體類所代表的數(shù)據(jù)相互之間通常有一定的關(guān)系,依靠這種關(guān)系可形成有組織的程序數(shù)據(jù)結(jié)構(gòu)。實(shí)體類之間的主要數(shù)據(jù)關(guān)系有:關(guān)聯(lián)、聚類、泛化。
接下來我就簡單說下我上這門課的簡單的心得體會,我們是大四的學(xué)生了,也只有這個(gè)學(xué)期有課了,剛開始課表安排出來的時(shí)候覺得挺意外的,只有前八周有課,當(dāng)時(shí)我還是有點(diǎn)小感動的,大四事情很多,有要考研的和工作的,大家也都有各自的事情,如果有16周的課,那么每周課不是特別多,但是時(shí)間特別分散,也不能集中某段時(shí)間去做什么事情。但是相對于老師的壓力也有,課程壓縮了相當(dāng)于每節(jié)課的教學(xué)任務(wù)大大增加了,在加上有些假期沖掉課,就感覺我們好像上課學(xué)不到什么東西,也只是一些關(guān)鍵的和考試掛鉤的才重點(diǎn)講,完全沒有擴(kuò)展的時(shí)間和空間了。但是總的來說,學(xué)校開了這門課,我們上了這門課,總是學(xué)到了點(diǎn)東西的,不可能明明上了軟件工程這門課,卻像沒上一樣什么都不懂。在上課的時(shí)候我還是很認(rèn)真地去聽老師所講述的內(nèi)容的,我覺得他的思想和我一向而來的培養(yǎng)計(jì)算機(jī)學(xué)生綜合素質(zhì)的理解還是在一定程度上不謀而合了,所謂的需求獲取,那就是一個(gè)談判,辯論,交流的過程,已經(jīng)不是單純的編編程序就能解決的問題了。從我所看到的聽到的來說,我最怕的就是計(jì)算機(jī)系的學(xué)生被別人說成是個(gè)帶著厚眼鏡的,只能夠在電腦前編編程序的,在交際場上不知道說什么而一個(gè)字都說不出來的人。我覺得這樣的人進(jìn)入社會之后是沒有什么前途的,起碼他們?nèi)狈α伺c人溝通交流的能力。而這門課程在一定程度上給了我們這些學(xué)生一個(gè)機(jī)會來鍛煉自己在另一方面的能力,設(shè)想一下,一個(gè)又有技術(shù)又能夠與人交流合作的人所取得的成就自然要比一個(gè)單單只會編程序的人要大得多。其次,這門課程教給了我們在完成一個(gè)實(shí)際項(xiàng)目時(shí)的一般程序及過程,我認(rèn)為這是一份非常具有實(shí)際意義的教學(xué)內(nèi)容。當(dāng)我們在畢業(yè)之后,這是我們實(shí)際要運(yùn)用的一項(xiàng)非常有用的技能,而且不僅僅局限于軟件工程的范疇,我們即使是從事與其它行業(yè),不也是要從需求獲取開始,一直有條有理地到最后成品的出爐嗎?應(yīng)該說這就是這門課的價(jià)值所在。無論是在上課,還是在學(xué)生會里面做學(xué)生工作,我都深深地感覺到,技術(shù)性的工作就好比變魔術(shù),其實(shí)原理是非常簡單的,甚至可以說簡單的可笑,但是當(dāng)你就是做出這么一個(gè)簡單的東西出來之后,一些外行們有時(shí)候會用崇拜的眼光看著你,覺得你很厲害,很高深莫測。但是制作的過程他們卻不知道,也許知道之后他們只是會啞然失笑,原來這個(gè)東西的制作過程是如此的簡單。這個(gè)可以說就是技術(shù)的魅力了,而作為需求獲取及之后的一系列過程則是類似于魔術(shù)揭秘的過程,但是作為這個(gè)秘密我們并不需要一揭到底,至于揭的程度如何那就是我們那就是我們學(xué)出的程度如何了,我們要讓對方知道我們在做什么?以及如何去做?這些東西需要我們以一定的技巧敘述出來,所起到的作用就是能夠讓對方了解自己的進(jìn)度,卻又能夠不讓對方來干涉自己的工作過程。因?yàn)槲覀兪羌夹g(shù)員,對方只是外行,即使對方知道了這個(gè)魔術(shù)的操作過程,也并不代表他們就能夠向變著魔術(shù)的我們來隨便修改這個(gè)魔術(shù)的變法,況且我們能夠用不同的過程來得出一個(gè)同樣的結(jié)果,這個(gè)過程的得出的主動權(quán)如何掌握在我們的手上,就看我們?nèi)绾我愿呙鞯姆绞絹斫议_這個(gè)魔術(shù)的謎底了。當(dāng)然了,在純粹的理論上,我覺得開設(shè)這樣一門課程是很成功的。但是畢竟現(xiàn)實(shí)里有太多的不確定的因素。最重要的因素就是授課的老師和聽課的學(xué)生。這兩個(gè)可以說是這門課成與敗的決定性的因素。
作為我們學(xué)生來說,應(yīng)該負(fù)起比較主要的責(zé)任。在大學(xué)里有了太多的基礎(chǔ)課程,基礎(chǔ)課程大多都比較枯燥無味,也許在第一個(gè)學(xué)期里我們還能夠保持著新鮮感,但是在6學(xué)期之后,可以說再有新鮮感就是一件比較困難的事情了,我們都已經(jīng)開始變得遲鈍了。其次的,沒有認(rèn)識到這門課程的價(jià)值。這門課的價(jià)值我已經(jīng)在上面說過了,是不言而喻的。但是并不是每個(gè)同學(xué)畢業(yè)之后都回從事計(jì)算機(jī)行業(yè),也不是每個(gè)同學(xué)都知道這門課程的意義已經(jīng)不僅僅局限于計(jì)算機(jī)這個(gè)范疇。或許有些人覺得反正以后不是這個(gè)發(fā)展方向,也就不在乎這個(gè)課程吧。我個(gè)人覺得這門課確實(shí)是挺好的,如果認(rèn)真學(xué)必能學(xué)到很多東西,動手實(shí)踐能力和從整個(gè)大體分析系統(tǒng)開發(fā)的邏輯性思維也會明顯增強(qiáng),不管以后從事哪個(gè)方面的工作,這對以后來說都是一筆很大的隱性財(cái)富。說到我自己對這么課的學(xué)習(xí),還是有點(diǎn)愧疚的,前面四周我每周每節(jié)課都去上的,并且上課也認(rèn)真聽,一邊聽老師講課一邊自己看書本的介紹,但是后來我上這門課的次數(shù)就降低了,因?yàn)橛X得時(shí)間很緊吧,而且老師上課的節(jié)奏我個(gè)人覺得有點(diǎn)慢,我都可以自己預(yù)習(xí)看到后面去了,但是這門課我還是每周至少上一節(jié)課的,雖然我早上7點(diǎn)多一點(diǎn)就出門,在自習(xí)室,但是有時(shí)候明明知道到了上課的時(shí)間,明明上課的地方離自習(xí)的地方不遠(yuǎn)也不太想去。我記得有次上課時(shí)候老師生氣了,說來上課的人少,我仔細(xì)環(huán)顧了下四周發(fā)現(xiàn)確實(shí)人很少,稀稀疏疏的分散著,看起來確實(shí)不太舒服,讓我不得不反思了,這大學(xué)的教育到底怎么了,怎么到了大四大家都不來上課,雖然我不是每節(jié)課都來,但是我還是時(shí)不時(shí)來上課的,可能是比較浮躁吧,快畢業(yè)了,覺得上課學(xué)不到什么實(shí)際的東西,要么實(shí)際一點(diǎn)好好考研繼續(xù)深造,要么去培訓(xùn)增強(qiáng)實(shí)踐能力這樣才能較好的為找個(gè)滿意的工作做好鋪墊。
《軟件工程》課程既強(qiáng)調(diào)基本概念和基本知識的理解和掌握,又側(cè)重軟件項(xiàng)目的分析、設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)的基本技能。比較注意點(diǎn)和面的結(jié)合。我還是蠻喜歡這門課的,通過對這門課的學(xué)習(xí)讓我意識到理論學(xué)習(xí)很重要,實(shí)踐更重要,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),只有將理論與實(shí)際結(jié)合,才更能發(fā)揮我們所學(xué)的知識的作用,更能直接的創(chuàng)造效益,社會和國家做出貢獻(xiàn)。
軟件工程學(xué)習(xí)心得體會篇6
學(xué)習(xí)軟件工程一個(gè)學(xué)期以來,我在陳燁老師的教導(dǎo)下確實(shí)獲益匪淺。軟件工程這門課,讓我對軟件的認(rèn)識有了大大的提升,從一開始對軟件工程的一無所知,到現(xiàn)在一學(xué)期下來的不斷學(xué)習(xí),懂得了許多的知識。
軟件不僅僅是程序,而是思想在硬件上的載體和體現(xiàn),軟件工程與其說是一門課程,不如說是一門思想。讓我懂得如何去分析和處理問題的過程,綜合解決問題。
在這段時(shí)間的學(xué)習(xí)中,我明白了一個(gè)完整的'項(xiàng)目規(guī)劃須包括,軟件的定義,可行性分析報(bào)告,項(xiàng)目開發(fā)計(jì)劃,軟件需求說明書,概要設(shè)計(jì)說明書,詳細(xì)設(shè)計(jì)說明書,用戶操作手冊,測試計(jì)劃,測試分析報(bào)告等多個(gè)文檔,而軟件的生存周期可分為八個(gè)階段,分別是問題定義,可行性研究,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),程序設(shè)計(jì),測試,文檔,技術(shù)支持,售后服務(wù)。而可行性包括經(jīng)濟(jì),技術(shù),法律和社會。了解了許多軟件開發(fā)模型,比如瀑布模型,增量模型和螺旋模型,也了解了UML對象面向?qū)ο蠼?,知道如何畫流圖,碩果累累。其實(shí)軟件和程序是兩個(gè)不同的概念,軟件除了程序還要有使用和維護(hù)該程序所需要的全部文檔。包括需求文檔、設(shè)計(jì)文檔、測試文檔、維護(hù)文檔以及使用手冊。
軟件工程對于初學(xué)者來說,知識基礎(chǔ)較薄弱,對一些應(yīng)用操作、概念、工具方法等理解起來較為困難,需要很好的基礎(chǔ)知識的理解和掌握,所以說學(xué)好軟件工程不是僅僅書多看幾遍就可以成功,而是要多注意結(jié)合實(shí)際,多思考,面對錯(cuò)誤不要一范就問,要嘗試自己去解決,然后舉一反三。
軟件工程這門課在我們畢業(yè)之后,是我們實(shí)際要運(yùn)用的一項(xiàng)非常有用的技能,這門課讓我意識到理論學(xué)習(xí)很重要,而實(shí)踐更重要,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),只有實(shí)踐和理論相結(jié)合,才能使效益最大化。軟件工程的課雖然快要結(jié)束了,但是我對軟件工程的學(xué)習(xí)才剛剛開始,有了這些基本知識做鋪墊,在以后做項(xiàng)目的時(shí)候?qū)墙鉀Q問題的有效措施。
軟件工程學(xué)習(xí)心得體會篇7
軟件工程心得體會未接觸軟件工程之前一直都很想學(xué)這門課程,因?yàn)橛X得這門課很牛,是那些有工程師稱號的高手才擺弄的東西。學(xué)了一個(gè)學(xué)期的軟件工程課,終于知道了個(gè)軟件工程的大概。學(xué)的時(shí)候總覺得很抽象,理解起來好像不難,但總是摸不著頭腦一種很茫然的感覺。曾經(jīng)以為程序就是軟件,軟件就是程序。學(xué)習(xí)這門課程第一個(gè)收獲是,知道了二者的不同之處。以前做過的一些小型的軟件比如加密軟件,我也只是在程序旁邊附上一個(gè)軟件的說明,看來已經(jīng)很接近作坊了。不過大的項(xiàng)目沒有接觸過,用軟件工程的方法還是第一次。我想也是程序的不斷復(fù)雜化導(dǎo)致了軟件危機(jī)的發(fā)生,使得人們不得不探索新的解決方法。
經(jīng)過倪老師的講解,理解了軟件工程,就是一套用于軟件的團(tuán)隊(duì)開發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的規(guī)范。其核心就是,對于軟件開發(fā)的5個(gè)重要組成部分:需求分析,設(shè)計(jì),編碼,調(diào)試,維護(hù),如何組織這5個(gè)部分的工作,以及如何完成每一個(gè)工作。吾生也有涯,而知也無涯,學(xué)習(xí)永無止境。起初,對軟件工程處于一知半解的狀態(tài),分工比較混亂。
在劃分模塊后明確了各自分工,漸漸形成良性循環(huán)。在學(xué)習(xí)過程中,知道了團(tuán)隊(duì)合作十分重要,爭議固然存在,但通過討論、協(xié)商,群策群力,在不斷磨合中能夠達(dá)成一致與默契。團(tuán)隊(duì)成員中能力各有高下,互相尊重,各取所長,不宜妄自菲薄。組長多加協(xié)調(diào),組員積極配合,才能合作愉快。學(xué)習(xí)能力體現(xiàn)在能盡快接受新的知識,順應(yīng)變化,學(xué)為所用。
上《軟件工程導(dǎo)論》這門課,我的收獲大概如下:我們?yōu)槭裁葱枰浖こ棠?上面已經(jīng)給出了一些原因。專業(yè)點(diǎn)講,軟件工程最終是為了實(shí)現(xiàn)軟件制造業(yè)的社會化,工業(yè)化大生產(chǎn),提高其勞動生產(chǎn)效率。只有如此,軟件業(yè)才能實(shí)現(xiàn)社會化,工業(yè)化大生產(chǎn),才能做大做強(qiáng)。沒有管理的設(shè)計(jì)是失敗和混亂的設(shè)計(jì),沒有設(shè)計(jì)指導(dǎo)的編程是無序的忙碌的。根據(jù)開發(fā)的軟件的規(guī)模,應(yīng)該適當(dāng)程度的運(yùn)用軟件工程化的思想,需要靈活,畢竟我們開發(fā)的軟件大多數(shù)是中小型的,大型的并不多見(我是這么認(rèn)為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果更穩(wěn)定。
其實(shí)開發(fā)軟件,就像是解決一個(gè)邏輯問題。想想自己平時(shí)是怎樣寫程序的。首先是要有一個(gè)想法,即我寫的這個(gè)程序是要干什么的;然后就是對要實(shí)現(xiàn)的核心功能大概構(gòu)思一種或多種實(shí)現(xiàn)方法,并從中選出一種自認(rèn)為是較好的;接下來就是將涉及的各種主要或次要功能分成各個(gè)模塊;最后就是分模塊來編碼和DEBUG。在我看來,除了第一步外,其余的步驟應(yīng)該是一個(gè)循環(huán)的過程。在編碼的過程中,你總是需要不斷地回過頭來修改原先的模塊設(shè)計(jì),甚至最初選定的實(shí)現(xiàn)算法。具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進(jìn)行分析,設(shè)計(jì),編碼,調(diào)試,維護(hù)這幾部分的工作的時(shí)候,最核心的就是文檔的編寫。1.可行性分析就是關(guān)于當(dāng)前項(xiàng)目能不能干的分析結(jié)果。
2.項(xiàng)目描述這是在決定立項(xiàng)以后,對當(dāng)前項(xiàng)目的一份扼要說明。
3.需求分析就是對客戶要求的功能的定義。
4.軟件設(shè)計(jì)這就是對程序的每一個(gè)模塊的詳細(xì)設(shè)計(jì)的說明文檔。
5.開發(fā)日志我一直都認(rèn)為這是文檔中最有趣的部分。開發(fā)日志相當(dāng)于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時(shí)突然萌發(fā)的靈感,或?qū)Υa的一些微小的修改,或?qū)Τ绦蚪Y(jié)構(gòu)的一些微小變動等,還要對上述這些修改變動作些說明。
6.測試分析用于指出程序存在或潛在的缺陷和錯(cuò)誤,以及程序性能的數(shù)字描述。
軟件工程學(xué)習(xí)心得體會篇8
在本學(xué)期的軟件工程課程的學(xué)習(xí)中,我們學(xué)習(xí)了十一章的內(nèi)容。第一章軟件與軟件工程的概念,這一章主要講解的是一些概念性和基礎(chǔ)性的內(nèi)容,例如軟件的概念、特性,軟件危機(jī)的主要表現(xiàn),軟件工程的概念以及軟件生存期、典型生存期模型等等。第二章軟件工程方法與工具,這一章主要對軟件工程方法進(jìn)行介紹,包括三種方法:傳統(tǒng)方法、面向?qū)ο蠓椒?、形式化方法。還引出了工具UML。第三章軟件需求獲取與結(jié)構(gòu)化分析方法,本章詳細(xì)介紹了需求獲取與需求分析階段的任務(wù)以及結(jié)構(gòu)化分析方法,畫分層的數(shù)據(jù)流圖、E-R圖以及狀態(tài)圖式本節(jié)的重點(diǎn)。第四章結(jié)構(gòu)化分析方法,這一章重點(diǎn)講解了使用變換型映射方法和事務(wù)型映射方法生成初始的模塊結(jié)構(gòu)以及模塊結(jié)構(gòu)的改進(jìn)。第五章編碼,這一章重點(diǎn)講解了編碼的風(fēng)格及規(guī)范,還告訴我們編碼規(guī)范說帶來的好處,并告誡我們將來一點(diǎn)要形成好的編碼風(fēng)格。第六章軟件測試方法,本章講解了軟件測試相關(guān)的概念及重要性,軟件測試與開發(fā)各個(gè)階段的關(guān)系;還介紹了白盒測試技術(shù)以及黑河測試技術(shù)。第七章統(tǒng)一建模語言UML概述,本章詳細(xì)介紹了UML的基本模式、事物、關(guān)系及建模時(shí)用到的各種圖進(jìn)行了介紹。第八章面向?qū)ο蠓治?,這一章主要講解了面向?qū)ο蠓治龅?種模型,包括功能模型、靜態(tài)模型和動態(tài)模型。第九章軟件體系結(jié)構(gòu)與設(shè)計(jì)模式,本章對軟件體系結(jié)構(gòu)的基本概念、典型風(fēng)格等進(jìn)行了講解。第十章面向?qū)ο笤O(shè)計(jì),本章的重點(diǎn)是對面向?qū)ο蠓治鰰r(shí)建立的對象模型進(jìn)行調(diào)整和細(xì)化。第十一章軟件維護(hù),本章主要介紹軟件維護(hù)的任務(wù)、軟件維護(hù)活動以及軟件維護(hù)方法進(jìn)行了介紹。
要學(xué)習(xí)軟件工程,學(xué)會如何系統(tǒng)的思考,以及養(yǎng)成良好的編碼習(xí)慣,想學(xué)好軟件工程,就必須知道軟件工程的目標(biāo)、過程和原則:軟件工程目標(biāo):生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。正確性指軟件產(chǎn)品達(dá)到預(yù)期功能的程度??捎眯灾杠浖窘Y(jié)構(gòu)、實(shí)現(xiàn)及文檔為用戶可用的程度。開銷合宜是指軟件開發(fā)、運(yùn)行的整個(gè)開銷滿足用戶要求的程度。這些目標(biāo)的實(shí)現(xiàn)不論在理論上還是在實(shí)踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
軟件工程過程:生產(chǎn)一個(gè)最終能滿足需求且達(dá)到工程目標(biāo)的軟件產(chǎn)品所需要的步驟。軟件工程過程主要包括開發(fā)過程、運(yùn)作過程、維護(hù)過程。它們覆蓋了需求、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)以及維護(hù)等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設(shè)計(jì)活動一般包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)建立整個(gè)軟件系統(tǒng)結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關(guān)層次的說明、每一模塊的接口定義。詳細(xì)設(shè)計(jì)產(chǎn)生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說明及加工描述。實(shí)現(xiàn)活動把設(shè)計(jì)結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認(rèn)活動貫穿于整個(gè)開發(fā)過程,實(shí)現(xiàn)完成后的確認(rèn),保證最終產(chǎn)品滿足用戶的要求。維護(hù)活動包括使用過程中的擴(kuò)充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓(xùn)過程等。
軟件工程的原則是指圍繞工程設(shè)計(jì)、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。
我們學(xué)習(xí)了詳細(xì)設(shè)計(jì)的方法,其原則是過程描述是否易于理解、復(fù)審和維護(hù),進(jìn)而過程描述能夠自然地轉(zhuǎn)換成代碼,并保證詳細(xì)設(shè)計(jì)與代碼完全一致。包括程序流程圖、N-S圖、PAD圖、HIPO圖
程序流程圖:程序流程圖又稱之為程序框圖,它是軟件開發(fā)者最熟悉的一種算法表達(dá)工具。它獨(dú)立于任何一種程序設(shè)計(jì)語言,比較直觀和清晰地描述過程的控制流程,易于學(xué)習(xí)掌握。在流程圖中只能使用下述的五種基本控制結(jié)構(gòu):順序型;選擇型;while型循環(huán);until型循環(huán);多情況型選擇。
N-S圖:一種符合結(jié)構(gòu)化程序設(shè)計(jì)原則的圖形描述工具,稱為盒圖,又稱為N-S圖。在N-S圖中,為了表示五種基本控制結(jié)構(gòu),規(guī)定了五種圖形構(gòu)件。順序型;選擇型;WHILE重復(fù)型;UNTIL重復(fù)型;多分支選擇型。
PAD圖:它是用結(jié)構(gòu)化程序設(shè)計(jì)思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。PAD也設(shè)置了五種基本控制結(jié)構(gòu)的圖示,并允許遞歸使用。
HIPO圖:HIPO圖是由一組IPO圖加一張HC圖組成。它是美國IBM公司在軟件設(shè)計(jì)中使用的主要表達(dá)工具。
HC圖既是層次圖,用于表示軟件的分層結(jié)構(gòu)。HC圖中的每一個(gè)模塊,均可用一張IPO圖來描述。IPO圖由輸入、處理和輸出三個(gè)框組成,需要時(shí)還可以增加一個(gè)數(shù)據(jù)文件框,這種圖形的優(yōu)點(diǎn),是能夠直觀地顯示輸入&處理&輸出三者之間的聯(lián)系。
還有測試方法:按照測試過程是否在實(shí)際應(yīng)用環(huán)境中來分,有靜態(tài)分析與動態(tài)測試。測試方法有分析方法(包括靜態(tài)分析法與白盒法)與非分析方法(稱黑盒法)。
靜態(tài)分析技術(shù):不執(zhí)行被測軟件,可對需求分析說明書、軟件設(shè)計(jì)說明書、源程序做結(jié)構(gòu)檢查、流程分析、符號執(zhí)行來找出軟件錯(cuò)誤。
動態(tài)測試技術(shù):當(dāng)把程序作為一個(gè)函數(shù),輸入的全體稱為函數(shù)的定義域,輸出的全體稱為函數(shù)的值域,函數(shù)則描述了輸入的定義域與輸出值域的關(guān)系。
還學(xué)習(xí)了其他很多工具、語言、方法等,雖然不是都學(xué)得很透徹,但我相信在今后的學(xué)習(xí)中一定會慢慢的完善的。
軟件工程對于初學(xué)者來說,知識基礎(chǔ)較薄弱,對一些應(yīng)用操作、概念、工具方法等理解起來較為困難,要能從整體概念上較好地理解和把握、學(xué)好軟件工程,不是僅僅把幾本專業(yè)書籍細(xì)致地看幾遍,然后上機(jī)練習(xí)幾次就可以成功,學(xué)習(xí)過程中要注意多看多練要注意結(jié)合實(shí)際,更要多思考,面對錯(cuò)誤不要一范就問,要嘗試自己去解決。但是還要注意什么都學(xué),肯定是什么都學(xué)不透的,要集中精力打攻堅(jiān)戰(zhàn),學(xué)習(xí)軟件工程首先要明白自己的學(xué)習(xí)目標(biāo)究竟是什么,根據(jù)自己的實(shí)際工作出發(fā),有針對性的在相應(yīng)的學(xué)習(xí)方向上進(jìn)行提高,制定出詳細(xì)的學(xué)習(xí)規(guī)劃。還要注意與其他科目的相輔相成,就像我們在學(xué)習(xí)面向?qū)ο蠓治龅臅r(shí)候要結(jié)合大一學(xué)習(xí)的面向?qū)ο蠹捌浞椒▽W(xué)這一專業(yè)科目進(jìn)行研究拓展;在學(xué)習(xí)語言時(shí),要看看與C語言的聯(lián)系,多思多想,把從各個(gè)科目學(xué)到的知識通匯貫通。
在軟件工程的學(xué)習(xí)中,我了解到了軟件并非是一些代碼這么簡單,在開發(fā)軟件的過程中,編寫代碼的工作量其實(shí)只占不到所有工程量的30%,而后期的管理和維護(hù)更是占了60%到80%之多。一個(gè)完整的項(xiàng)目規(guī)劃須包括,軟件的定義,可行性分析報(bào)告,項(xiàng)目開發(fā)計(jì)劃,軟件需求說明書,概要設(shè)計(jì)說明書,詳細(xì)設(shè)計(jì)說明書,用戶操作手冊,測試計(jì)劃,測試分析報(bào)告,開發(fā)進(jìn)度報(bào)告,項(xiàng)目開發(fā)總結(jié)報(bào)告,軟件維護(hù)手冊,軟件問題報(bào)告,軟件修改報(bào)告,等多個(gè)文檔,每個(gè)文檔都要上級驗(yàn)收審查,而文檔數(shù)量眾多,要做好這點(diǎn)真的不是很容易,而恰恰寫好文檔正能保證完成軟件工程其中一個(gè)目的的關(guān)鍵,既研究如何用最小的開銷做出生存期較長的軟件,再加上各個(gè)階段都要進(jìn)行周密的策劃、詳細(xì)的分工部署和人員安排,且各階段要據(jù)具體情況不斷的反復(fù)才能達(dá)成,所以代碼只是開發(fā)軟件這個(gè)浩大的工程的一個(gè)小小的過程。
而編碼的學(xué)習(xí)中,我更了解到形成自己獨(dú)特的規(guī)范的編碼風(fēng)格是非常重要的事。因?yàn)檫@影響到了軟件后期繁重的維護(hù),大家都要閱讀你的程序,如果你寫的程序毫無規(guī)范可言,那么別人怎么能讀懂你的程序?讀不懂程序,維護(hù)又從何談起呢?所以,我們在今后的學(xué)習(xí)中,一定要注意這方面的培養(yǎng),在寫程序的過程中,要逐步的在規(guī)范的基礎(chǔ)上形成屬于自己的風(fēng)格,即方便自己的修改,也方便日后他人的閱讀。
在學(xué)習(xí)中,我們還要注意比較三種方法的優(yōu)缺點(diǎn),例如:傳統(tǒng)方法雖然使軟件擺脫了混亂和無序,但其在適應(yīng)需求變化的方面不夠靈活,而且傳統(tǒng)方法要么面向行為,要么面向數(shù)據(jù),缺乏兩者的有機(jī)結(jié)合。而面向?qū)ο蠓椒ǖ某绦蛟O(shè)計(jì)和問題求解更符合人們?nèi)粘W匀坏乃季S習(xí)慣,適合大型、復(fù)雜及交互性比較強(qiáng)的系統(tǒng)。形式化方法則是一中基于形式化數(shù)學(xué)變換的軟件開發(fā)方法,它可將系統(tǒng)的規(guī)格說明轉(zhuǎn)換為可執(zhí)行的程序。
在今后的學(xué)習(xí)中要注意多讀書、多思考、多練習(xí)、多討論,不斷熟悉書本的基礎(chǔ),并以此為基礎(chǔ)將其擴(kuò)散開來,應(yīng)用于今后的實(shí)踐。不斷鍛煉自己,向一名合格的程序設(shè)計(jì)師邁進(jìn)。
軟件工程學(xué)習(xí)心得體會篇9
一、關(guān)于實(shí)習(xí)公司。
我所實(shí)習(xí)的南京軟件有限公司簡稱__公司,公司成立于__年,主營軟件開發(fā)和信息系統(tǒng)集成,專門從事工程建設(shè)項(xiàng)目管理信息系統(tǒng)開發(fā)和實(shí)施,具有自主知識產(chǎn)權(quán)的項(xiàng)目管理軟件產(chǎn)品__項(xiàng)目管理系列軟件,并已經(jīng)在全世界第一大橋蘇通長江大橋、國內(nèi)最大的開發(fā)區(qū)蘇州工業(yè)園區(qū)以及南水北調(diào)工程實(shí)施和應(yīng)用,目前正與南京城建集團(tuán)合作,開發(fā)城建項(xiàng)目管理平臺。
二、實(shí)習(xí)的內(nèi)容。
今年__月__日開始,我正式走進(jìn)開始了實(shí)習(xí)工作,并被調(diào)到了江蘇省建筑質(zhì)量檢測中心,參加正在進(jìn)行的一個(gè)檢測項(xiàng)目。由于我才大三,本身對企業(yè)的經(jīng)營方式等都很陌生,公司讓我們的王工帶我學(xué)習(xí),以師傅帶徒弟的方式,指導(dǎo)我的日常實(shí)習(xí)。在王工的熱心指導(dǎo)下,我依次對此次項(xiàng)目的業(yè)務(wù)流程和大概框架進(jìn)行了了解,并積極參與相關(guān)工作,注意把書本上學(xué)到的理論知識對照實(shí)際工作,用理論知識加深對實(shí)際工作的認(rèn)識,用實(shí)踐驗(yàn)證大學(xué)所學(xué)確實(shí)有用。以雙重身份完成了學(xué)習(xí)與工作兩重任務(wù)。跟公司同事一樣上下班,協(xié)助同事完成部門工作;又以學(xué)生身份虛心學(xué)習(xí),努力汲取實(shí)踐知識。我心里明白我要以良好的工作態(tài)度以及較強(qiáng)的工作能力和勤奮好學(xué)來適應(yīng)公司的工作,完成公司的任務(wù)。
三、實(shí)習(xí)的提高與收獲。
實(shí)習(xí)收獲,主要有四個(gè)方面:
一是通過直接參與企業(yè)的運(yùn)作過程,學(xué)到了實(shí)踐知識,同時(shí)進(jìn)一步加深了對理論知識的理解,使理論與實(shí)踐知識都有所提高,圓滿地完成了本科教學(xué)的實(shí)踐任務(wù)。
二是提高了實(shí)際工作能力,為就業(yè)和將來的工作取得了一些寶貴的實(shí)踐經(jīng)驗(yàn)。
三是一些學(xué)生在實(shí)習(xí)單位受到認(rèn)可并促成就業(yè)。
四是為畢業(yè)后的正式工作做好了準(zhǔn)備。
四、結(jié)語。
到公司實(shí)習(xí)并沒有我想象中的難以融入,通過慢慢的學(xué)習(xí),發(fā)現(xiàn)在公司用的到得知識在我們的學(xué)校學(xué)習(xí)中都會遇到。至暑期結(jié)束,從不懂到漸漸的做了幾個(gè)檢測項(xiàng)目。學(xué)到不少的東西。實(shí)習(xí)生活還沒結(jié)束,開學(xué)了我還是會繼續(xù)留在公司我的學(xué)習(xí)和探索。
軟件工程學(xué)習(xí)心得體會篇10
時(shí)間過的很快,轉(zhuǎn)眼間已經(jīng)實(shí)習(xí)將近5個(gè)月,其中有2個(gè)月是屬于完全被流放的。最先在內(nèi)部系統(tǒng)組參與內(nèi)部管理系統(tǒng)開發(fā)(struts+mysql+spring+hibernate),之后是去做網(wǎng)絡(luò)交換機(jī)軟件的腳本測試?,F(xiàn)在又回歸內(nèi)部系統(tǒng),雖然在腳本組期間,編碼能力被別人甩在后頭,但至少具有了一些測試經(jīng)驗(yàn)。
至少自己做的東西,是真正交付到了客戶手上,到也稍微有些成就感。
1、淺談測試
一直以來,我都認(rèn)為測試是脫離了軟件工程范圍的工作,不以為屑。但在實(shí)際情況中,測試是既重要且難以精湛的.其真正的壓力,在于找不到bug,責(zé)任在你,而不在于編碼人員。一般的測試人員不懂編碼,他們靠的是日以累計(jì)的經(jīng)驗(yàn)總結(jié)和想象力。而要做到高級測試工程師,則一定要懂編碼,因?yàn)檫@是你完全掌握整個(gè)系統(tǒng)的方方面面具體運(yùn)作的前提。但占主導(dǎo)地位的,還是大型系統(tǒng)的集成測試經(jīng)驗(yàn)。實(shí)際項(xiàng)目中,編碼時(shí)間一般只占30%左右,真正耗費(fèi)時(shí)間的是IT階段的找bug與對應(yīng)bug,此階段基本評定了coder的編碼質(zhì)量。
2、程序員的困惑
有些人,以為教學(xué)視頻和代碼看多,自己就懂的多,實(shí)際做起來,卻不知從何下手,問題在那?如何定位?如何解決?通通跟一樣能力有關(guān),debug追蹤能力,也稱調(diào)試。在項(xiàng)目組工作不愁源碼資源,但問題是蛋糕擺在面前,你如何去消化?
有位同事告訴我:代碼看幾遍都沒用,要去抄,例如一個(gè)查詢模塊,在此基礎(chǔ)上去做具體記錄的歷史記錄查詢模塊,你可能會覺得很簡單,但實(shí)際情況卻往往報(bào)一堆異常,配置問題涉及到方方面面,以及數(shù)據(jù)庫字段,傳值問題等等,一大堆對于新人來說很郁悶的問題。但不用怕,只要學(xué)會調(diào)試,一個(gè)個(gè)問題去追蹤,一個(gè)個(gè)去解決,自然而然,那段源碼才真正屬于你。
3、如何調(diào)試追蹤
如果你能在短短的時(shí)間內(nèi)就看到問題點(diǎn)在那,放下斷點(diǎn)去追蹤,出去找工作,絕對沒問題。出現(xiàn)問題的時(shí)候,不要光看代碼,要用實(shí)際行動去追蹤運(yùn)行期間的具體值,那是最好途徑。eclipse是個(gè)很爽的ide,這點(diǎn)做的很好。例如頁面內(nèi)容顯示不是自己想要的數(shù)據(jù),我們要先從數(shù)據(jù)庫查詢語句去下手,設(shè)置斷點(diǎn),一步一步stepover,讓sql字段(存取最終sql語句的字符串)運(yùn)行到有值,inspect進(jìn)去看,如果還看不出來,就點(diǎn)擊它,copy后在sql客戶端去實(shí)際運(yùn)行,看看實(shí)際查詢出來的表是什么,如果是對的,有可能就是頁面調(diào)用的錯(cuò)誤或者action邏輯的傳值問題。
頁面錯(cuò)誤的調(diào)試,基本方法是用右鍵點(diǎn)擊實(shí)際網(wǎng)頁查看源代碼,copy到editplus,就能看到具體錯(cuò)誤發(fā)生在那幾行。通常有幾種常見的錯(cuò)誤,例如:缺少對象這種很多時(shí)候是有些被你調(diào)用的字段有可能為空的情況出現(xiàn)的,可以加if(=null)語句加保護(hù)。追蹤的方法基本就是用alert語句,放在有可能出錯(cuò)的地方。
4、一些習(xí)慣
遇到問題先自己思考,無從下手再找高手幫忙看看,注意他幫你看的思路,別在一旁閑著,看多了自己也會了,不然你一輩子都停留在那種水平,從人身上學(xué)到的東西遠(yuǎn)遠(yuǎn)比書多的多。
解決了一個(gè)問題后,要去究根問底去找到問題產(chǎn)生的起因,以防你下次遇到類似的問題再浪費(fèi)同樣的時(shí)間。
把代碼寫的漂亮,注釋、空行、規(guī)范一樣不能少,可讀性是放在第一位。曾經(jīng)看過一個(gè)高手寫的代碼,真的一看就是不同水平的人
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國土壤修復(fù)項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 中國家用分子篩制氧機(jī)項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 中國基礎(chǔ)辦公軟件項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 中國礦用載波通信設(shè)備項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 中國肉兔屠宰項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 中國計(jì)算機(jī)外部設(shè)備項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 中國集成灶電商項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 中國冠狀動脈介入器械項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 2025年個(gè)人借款合同模板
- 中國干果蔬項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 2025年陜西中考數(shù)學(xué)復(fù)習(xí)題型專練:小幾何壓軸題(含答案)
- 小學(xué)數(shù)學(xué)命題培訓(xùn)
- 愛眼日小學(xué)生護(hù)眼課件
- 2025年江蘇南京市河西集團(tuán)招聘筆試參考題庫含答案解析
- 大數(shù)據(jù)思維與技術(shù)知到智慧樹章節(jié)測試課后答案2024年秋北京理工大學(xué)
- 相控陣培訓(xùn)課件
- 天津外國語大學(xué)《形式與政策國防教育》2023-2024學(xué)年第一學(xué)期期末試卷
- 《湖南省工程勘察設(shè)計(jì)收費(fèi)指導(dǎo)標(biāo)準(zhǔn)》
- 2024-2030年中國環(huán)境影響評價(jià)行業(yè)轉(zhuǎn)型升級模式及投資規(guī)劃分析報(bào)告
- 電力建設(shè)安全操作指南火力發(fā)電廠安全規(guī)定
- 廣東省2024年中考生物試卷(含答案)
評論
0/150
提交評論