下面是范文網(wǎng)小編收集的軟件工程培訓(xùn)心得6篇 對(duì)于軟件工程的心得體會(huì),以供參考。

軟件工程培訓(xùn)心得1
時(shí)間過(guò)的很快,轉(zhuǎn)眼間已經(jīng)實(shí)習(xí)將近5個(gè)月,其中有2個(gè)月是屬于完全被流放的。最先在內(nèi)部系統(tǒng)組參與內(nèi)部管理系統(tǒng)開(kāi)發(fā)(struts+mysql+spring+hibernate),之后是去做網(wǎng)絡(luò)交換機(jī)軟件的腳本測(cè)試。現(xiàn)在又回歸內(nèi)部系統(tǒng),雖然在腳本組期間,編碼能力被別人甩在后頭,但至少具有了一些測(cè)試經(jīng)驗(yàn)。
至少自己做的東西,是真正交付到了客戶手上,到也稍微有些成就感。
1、淺談測(cè)試
一直以來(lái),我都認(rèn)為測(cè)試是脫離了軟件工程范圍的工作,不以為屑。但在實(shí)際情況中,測(cè)試是既重要且難以精湛的。其真正的壓力,在于找不到bug,責(zé)任在你,而不在于編碼人員。一般的測(cè)試人員不懂編碼,他們靠的是日以累計(jì)的經(jīng)驗(yàn)總結(jié)和想象力。而要做到高級(jí)測(cè)試工程師,則一定要懂編碼,因?yàn)檫@是你完全掌握整個(gè)系統(tǒng)的方方面面具體運(yùn)作的前提。但占主導(dǎo)地位的,還是大型系統(tǒng)的集成測(cè)試經(jīng)驗(yàn)。實(shí)際項(xiàng)目中,編碼時(shí)間一般只占30%左右,真正耗費(fèi)時(shí)間的是IT階段的找 bug與對(duì)應(yīng)bug,此階段基本評(píng)定了coder的編碼質(zhì)量。
2、程序員的困惑
有些人,以為教學(xué)視頻和代碼看多,自己就懂的多,實(shí)際做起來(lái),卻不知從何下手,
問(wèn)題在那?如何定位?如何解決?通通跟一樣能力有關(guān),debug追蹤能力,也稱調(diào)試。在項(xiàng)目組工作不愁源碼資源,但問(wèn)題是蛋糕擺在面前,你如何去消化?
有位同事告訴我:代碼看幾遍都沒(méi)用,要去抄,例如一個(gè)查詢模塊,在此基礎(chǔ)上去做具體記錄的歷史記錄查詢模塊,你可能會(huì)覺(jué)得很簡(jiǎn)單,但實(shí)際情況卻往往報(bào)一堆異常,配置問(wèn)題涉及到方方面面,以及數(shù)據(jù)庫(kù)字段,傳值問(wèn)題等等,一大堆對(duì)于新人來(lái)說(shuō)很郁悶的問(wèn)題。但不用怕,只要學(xué)會(huì)調(diào)試,一個(gè)個(gè)問(wèn)題去追蹤,一個(gè)個(gè)去解決,自然而然,那段“源碼”才真正屬于你。
3、如何調(diào)試追蹤
如果你能在短短的時(shí)間內(nèi)就看到問(wèn)題點(diǎn)在那,放下斷點(diǎn)去追蹤,出去找工作,絕對(duì)沒(méi)問(wèn)題。出現(xiàn)問(wèn)題的時(shí)候,不要光看代碼,要用實(shí)際行動(dòng)去追蹤運(yùn)行期間的具體值,那是最好途徑。eclipse是個(gè)很爽的ide,這點(diǎn)做的很好。例如頁(yè)面內(nèi)容顯示不是自己想要的數(shù)據(jù),我們要先從數(shù)據(jù)庫(kù)查詢語(yǔ)句去下手,設(shè)置斷點(diǎn),一步一步step over,讓sql字段(存取最終sql語(yǔ)句的字符串)運(yùn)行到有值,inspect進(jìn)去看,如果還看不出來(lái),就點(diǎn)擊它,copy后在sql客戶端去實(shí)際運(yùn)行,看看實(shí)際查詢出來(lái)的表是什么,如果是對(duì)的,有可能就是頁(yè)面調(diào)用的錯(cuò)誤或者action邏輯的傳值問(wèn)題。
頁(yè)面錯(cuò)誤的調(diào)試,基本方法是用右鍵點(diǎn)擊實(shí)際網(wǎng)頁(yè)查看源代碼,copy到editplus,就能看到具體錯(cuò)誤發(fā)生在那幾行。通常有幾種常見(jiàn)的錯(cuò)誤,例如:缺少對(duì)象這種很多時(shí)候是有些被你調(diào)用的字段有可能為空的情況出現(xiàn)的,可以加if(xxx=null)語(yǔ)句加保護(hù)。追蹤的方法基本就是用alert語(yǔ)句,放在有可能出錯(cuò)的地方。
4、一些習(xí)慣
遇到問(wèn)題先自己思考,無(wú)從下手再找高手幫忙看看,注意他幫你看的思路,別在一旁閑著,看多了自己也會(huì)了,不然你一輩子都停留在那種水平,從人身上學(xué)到的東西遠(yuǎn)遠(yuǎn)比書多的多。
解決了一個(gè)問(wèn)題后,要去究根問(wèn)底去找到問(wèn)題產(chǎn)生的起因,以防你下次遇到類似的問(wèn)題再浪費(fèi)同樣的時(shí)間。
把代碼寫的漂亮,注釋、空行、規(guī)范一樣不能少,可讀性是放在第一位。曾經(jīng)看過(guò)一個(gè)高手寫的代碼,真的一看就是不同水平的人寫的,幾乎很完美,讀起來(lái)很流暢,方便自己也方便別人。
任務(wù)完后不要呆著,去要求經(jīng)理給你更有挑戰(zhàn)性的任務(wù),只要你肯去嘗試,他們就會(huì)對(duì)你另言相看,把三天的任務(wù)一天加班搞定,效率和忠誠(chéng)都有了,路也比較好走了。
軟件工程培訓(xùn)心得2
學(xué)習(xí)了這門課程,還有老師們的多元化教課,不但讓我從理論上掌握軟件工程,還有從不同的實(shí)例,讓理論和實(shí)踐得到了很好的結(jié)合。整一個(gè)學(xué)期下來(lái),總的來(lái)說(shuō)還是學(xué)到了很多東西的,有很多地方是值得肯定的,其實(shí)在我看來(lái),軟件工程與其說(shuō)是一門課程,不如說(shuō)是一門思想。是一個(gè)如何去分析和處理問(wèn)題的過(guò)程,應(yīng)該說(shuō)其范疇已經(jīng)遠(yuǎn)遠(yuǎn)不止局限于該門課程,成為了一個(gè)綜合的一個(gè)能夠解決問(wèn)題的思想集合。
整本書的內(nèi)容邏輯很清晰明了,由淺入深循序漸進(jìn),首先我就大概描述下我們所學(xué)的內(nèi)容,第一章是從整體分析軟件工程這門學(xué)科的發(fā)展和所處的社會(huì)環(huán)境,接著后面的幾章深入分析了軟件開(kāi)放過(guò)程和模式、軟件項(xiàng)目管理、計(jì)算機(jī)工程、需求分析、結(jié)構(gòu)化分析建模以及基于UML面向?qū)ο蠓治鼋5?。接著我就詳?xì)介紹下我對(duì)這門課程知識(shí)點(diǎn)的理解概括:
軟件:軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序和使程序正常執(zhí)行所需要的數(shù)據(jù),加上描述程序的操作和使用的文檔。
軟件的特征:
?、佘浖且环N邏輯實(shí)體,而不是具體的物理實(shí)體,因而它具有抽象性。
②軟件是通過(guò)人們的智力活動(dòng),把知識(shí)與技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品。
③軟件成為產(chǎn)品后,其生產(chǎn)只是簡(jiǎn)單的拷貝,不同于硬件制造。
?、芫S護(hù)過(guò)程比硬件復(fù)雜的多,甚至?xí)l(fā)新的錯(cuò)誤。
軟件危機(jī):指的是軟件開(kāi)發(fā)和維護(hù)過(guò)程中遇到的一系列嚴(yán)重問(wèn)題。
出現(xiàn)軟件危機(jī)的原因:
①軟件維護(hù)費(fèi)用急劇上升,直接威脅計(jì)算機(jī)應(yīng)用的擴(kuò)大。
?、谲浖a(chǎn)技術(shù)進(jìn)步緩慢。
軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的工程學(xué)科。
軟件生存周期:一個(gè)軟件從定義到開(kāi)發(fā)、使用和維護(hù),直到最終被棄用,要經(jīng)歷一個(gè)漫長(zhǎng)的時(shí)期,通常把軟件經(jīng)歷的這個(gè)漫長(zhǎng)的時(shí)期稱為生存周期。
軟件的生存周期可分為八個(gè)階段:
?、賳?wèn)題定義;
?、诳尚行匝芯浚?/p>
?、坌枨蠓治觯?/p>
?、芸傮w(概要)
設(shè)計(jì);
?、菰敿?xì)設(shè)計(jì);
⑥編碼與單元測(cè)試;
⑦綜合測(cè)試;
?、嘬浖S護(hù);
瀑布模式:是傳統(tǒng)的軟件開(kāi)發(fā)模式,其中的“瀑布”是對(duì)這個(gè)模式的形象表達(dá),由山頂傾瀉下來(lái)的水,自頂向下、逐漸細(xì)化。其特點(diǎn)是:線性化過(guò)程;分為分析、設(shè)計(jì)、編碼、集成等幾個(gè)階段,并且各階段逐級(jí)推進(jìn),不允許跨越。里程碑管理;階段評(píng)審;文檔驅(qū)動(dòng);簡(jiǎn)潔便于工程應(yīng)用的線性化過(guò)程步驟,并可以通過(guò)里程碑管理機(jī)制而使項(xiàng)目進(jìn)程量化。其明顯的優(yōu)點(diǎn)就是沒(méi)個(gè)階段結(jié)束前都要對(duì)所完成的階段成果進(jìn)行評(píng)審,這使得軟件的錯(cuò)誤能夠在個(gè)階段內(nèi)盡早發(fā)現(xiàn)并盡早解決,總的來(lái)說(shuō)瀑布模式具有良好的質(zhì)量保證機(jī)制,有很強(qiáng)的生命力。
原型進(jìn)化模式:對(duì)軟件進(jìn)行直接模擬或仿真,只需要分析需求框架后進(jìn)行原型創(chuàng)建,再對(duì)原型系統(tǒng)進(jìn)行逐步細(xì)化與完善,通過(guò)版本更新逐步滿足用戶對(duì)于軟件的多方面需要。
增量模式:開(kāi)發(fā)過(guò)程有三個(gè)任務(wù)域,分別是設(shè)計(jì)結(jié)構(gòu)、開(kāi)發(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ī)避開(kāi)發(fā)風(fēng)險(xiǎn)過(guò)程的模式,項(xiàng)目是基于任務(wù)的螺旋式推進(jìn),每個(gè)螺旋由內(nèi)之外分別是需求分析、軟件設(shè)計(jì)、系統(tǒng)集成、驗(yàn)證與交付。
軟件開(kāi)發(fā)的整個(gè)過(guò)程:
①需要項(xiàng)目團(tuán)隊(duì),組建優(yōu)秀的團(tuán)隊(duì)可以開(kāi)發(fā)出更搞質(zhì)量的軟件產(chǎn)品。任務(wù)開(kāi)發(fā)團(tuán)隊(duì)要求小而精,成員大多在8人以內(nèi),主要成員有項(xiàng)目負(fù)責(zé)人、開(kāi)發(fā)人員、資料管理員和軟件測(cè)試員。
?、陧?xiàng)目計(jì)劃是為了使軟件開(kāi)發(fā)各項(xiàng)工作有秩序地進(jìn)行,包括任務(wù)分配和基于里程碑的進(jìn)度安排,甘特圖和任務(wù)網(wǎng)絡(luò)圖是用來(lái)描述進(jìn)度計(jì)劃的工具。項(xiàng)目計(jì)劃書可以作為軟件開(kāi)發(fā)的工作指南。
?、垌?xiàng)目成本估算,由于項(xiàng)目有來(lái)自各方面的成本包括工資開(kāi)支、場(chǎng)地費(fèi)、差旅費(fèi)、設(shè)備費(fèi)和資料費(fèi)等,但是軟件主要是對(duì)人力成本的估算,常用的方法有程序代碼成本估算法等。
?、苘浖L(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)識(shí)別、風(fēng)險(xiǎn)評(píng)估、和風(fēng)險(xiǎn)防范。
?、蒈浖臋n管理,軟件文檔是工程模式軟件開(kāi)發(fā)的成果體現(xiàn),包括技術(shù)文檔、管理文檔和用戶文檔。
⑥軟件配置管理與軟件質(zhì)量管理,包括配置規(guī)劃、軟件變更控制、軟件版本控制和質(zhì)量控制計(jì)劃。
計(jì)算機(jī)系統(tǒng)由硬件、軟件、數(shù)據(jù)資源、網(wǎng)絡(luò)資源、使用系統(tǒng)的人等諸多元素。
有三種典型的計(jì)算機(jī)體系結(jié)構(gòu):
?、僦鳈C(jī)結(jié)構(gòu),主機(jī)集中了全部智能,并依靠終端接口與外部設(shè)備連接。
?、贑lient/Server結(jié)構(gòu),智能分布于服務(wù)器與客戶機(jī),并依靠網(wǎng)絡(luò)連接成系統(tǒng),其中,服務(wù)器處于核心位置,提供被動(dòng)核心服務(wù);客戶機(jī)處于邊緣位置,可主動(dòng)訪問(wèn)服務(wù)器,尋求服務(wù)支持。
?、跙rowser/server結(jié)構(gòu),可適應(yīng)互聯(lián)網(wǎng)遠(yuǎn)程交互的特殊結(jié)構(gòu),基于Web服務(wù)器構(gòu)建。
需求分析:系統(tǒng)開(kāi)發(fā)前期需求分析很重要,它是為了有效解決用戶問(wèn)題的需要進(jìn)行的一項(xiàng)工程活動(dòng),所需要考慮的需求問(wèn)題是功能需求、數(shù)據(jù)需求、性能需求和接口需求,開(kāi)發(fā)者承擔(dān)分析任務(wù),核心是用戶。
其步驟有三個(gè):
①獲取客戶需求,客戶泛指某個(gè)人或機(jī)構(gòu)部門等,一般方法是調(diào)查,包括訪談、座談、問(wèn)卷、跟班和收集資料,需求規(guī)約可表達(dá)用戶的軟件價(jià)值。
?、诮⑿枨竽P停怯脩粜枨蟮膱D解,一些常用的模型有:業(yè)務(wù)樹(shù)圖、用例圖、活動(dòng)圖。分別用于結(jié)構(gòu)化需求建模、系統(tǒng)業(yè)務(wù)舉例和反映系統(tǒng)工作流程。
?、圻M(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ǔ)上的,對(duì)軟件問(wèn)題進(jìn)行全面解說(shuō),包括四個(gè)方面:
?、贁?shù)據(jù)建模,它與數(shù)據(jù)庫(kù)設(shè)計(jì)密切相關(guān),ER圖涉及實(shí)體、關(guān)系、屬性等圖形元素,在業(yè)務(wù)層面建立數(shù)據(jù)庫(kù)概念模型,一般用于前期的建模構(gòu)想。
?、诠δ芙#菍?duì)系統(tǒng)數(shù)據(jù)加工的圖解,數(shù)據(jù)流程圖是常用的建模工具,涉及數(shù)據(jù)接口、數(shù)據(jù)處理、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)等圖形元素,用于描述系統(tǒng)數(shù)據(jù)加工細(xì)節(jié)。
?、坌袨榻?,行為模型用于說(shuō)哦名軟件系統(tǒng)與環(huán)境的交互,狀態(tài)轉(zhuǎn)換圖常用的軟件行為建模工具涉及狀態(tài)、事件等圖形元素。⑤數(shù)據(jù)字典,是用于定義軟件的元素,使軟件元素獲得嚴(yán)肅的、詳密的、精確的規(guī)格說(shuō)明。需求分析模型中的數(shù)據(jù)、功能、行為等諸多方面的元素,都有必要通過(guò)數(shù)據(jù)字典給予細(xì)節(jié)說(shuō)明,以達(dá)到對(duì)系統(tǒng)較完整全面的規(guī)格定義。
基于UML對(duì)象面向?qū)ο蠓治鼋#篣ML是統(tǒng)一建模語(yǔ)言,有統(tǒng)一的語(yǔ)法、語(yǔ)義和語(yǔ)用規(guī)則,其建模過(guò)程的特點(diǎn)是:用例驅(qū)動(dòng)、以構(gòu)架為中心和增量迭代,通過(guò)包實(shí)現(xiàn)對(duì)模型的有效的一體化管理。
包括三部分:
①用例建模,它面向用戶需求的,能夠反映系統(tǒng)的用戶價(jià)值,用例圖的基本元素有用例、參與者、交流;用例之間有泛化、延伸和包含關(guān)系。
?、诨顒?dòng)建模,活動(dòng)圖用于描述系統(tǒng)動(dòng)態(tài)過(guò)程,主要圖形元素有:活動(dòng)、轉(zhuǎn)換、起點(diǎn)、終點(diǎn)、判斷、并發(fā)、同步、泳道等??擅枋龈邔訕I(yè)務(wù)級(jí)活動(dòng),涉及整個(gè)業(yè)務(wù)流程,針對(duì)每個(gè)用例活動(dòng)建模,反映用例內(nèi)部活動(dòng)細(xì)節(jié)。
?、垲惙治鼋#@里就只考慮實(shí)體類,實(shí)體類所代表的數(shù)據(jù)相互之間通常有一定的關(guān)系,依靠這種關(guān)系可形成有組織的程序數(shù)據(jù)結(jié)構(gòu)。實(shí)體類之間的主要數(shù)據(jù)關(guān)系有:關(guān)聯(lián)、聚類、泛化。
接下來(lái)我就簡(jiǎn)單說(shuō)下我上這門課的簡(jiǎn)單的心得體會(huì),我們是大四的學(xué)生了,也只有這個(gè)學(xué)期有課了,剛開(kāi)始課表安排出來(lái)的時(shí)候覺(jué)得挺意外的,只有前八周有課,當(dāng)時(shí)我還是有點(diǎn)小感動(dòng)的,大四事情很多,有要考研的和工作的,大家也都有各自的事情,如果有16周的課,那么每周課不是特別多,但是時(shí)間特別分散,也不能集中某段時(shí)間去做什么事情。但是相對(duì)于老師的壓力也有,課程壓縮了相當(dāng)于每節(jié)課的教學(xué)任務(wù)大大增加了,在加上有些假期沖掉課,就感覺(jué)我們好像上課學(xué)不到什么東西,也只是一些關(guān)鍵的和考試掛鉤的才重點(diǎn)講,完全沒(méi)有擴(kuò)展的時(shí)間和空間了。但是總的來(lái)說(shuō),學(xué)校開(kāi)了這門課,我們上了這門課,總是學(xué)到了點(diǎn)東西的,不可能明明上了軟件工程這門課,卻像沒(méi)上一樣什么都不懂。在上課的時(shí)候我還是很認(rèn)真地去聽(tīng)老師所講述的內(nèi)容的,我覺(jué)得他的思想和我一向而來(lái)的培養(yǎng)計(jì)算機(jī)學(xué)生綜合素質(zhì)的理解還是在一定程度上不謀而合了,所謂的需求獲取,那就是一個(gè)談判,辯論,交流的過(guò)程,已經(jīng)不是單純的編編程序就能解決的問(wèn)題了。從我所看到的聽(tīng)到的來(lái)說(shuō),我最怕的就是計(jì)算機(jī)系的學(xué)生被別人說(shuō)成是個(gè)帶著厚眼鏡的,只能夠在電腦前編編程序的,在交際場(chǎng)上不知道說(shuō)什么而一個(gè)字都說(shuō)不出來(lái)的人。我覺(jué)得這樣的人進(jìn)入社會(huì)之后是沒(méi)有什么前途的,起碼他們?nèi)狈α伺c人溝通交流的能力。而這門課程在一定程度上給了我們這些學(xué)生一個(gè)機(jī)會(huì)來(lái)鍛煉自己在另一方面的能力,設(shè)想一下,一個(gè)又有技術(shù)又能夠與人交流合作的人所取得的成就自然要比一個(gè)單單只會(huì)編程序的人要大得多。其次,這門課程教給了我們?cè)谕瓿梢粋€(gè)實(shí)際項(xiàng)目時(shí)的一般程序及過(guò)程,我認(rèn)為這是一份非常具有實(shí)際意義的教學(xué)內(nèi)容。當(dāng)我們?cè)诋厴I(yè)之后,這是我們實(shí)際要運(yùn)用的一項(xiàng)非常有用的技能,而且不僅僅局限于軟件工程的范疇,我們即使是從事與其它行業(yè),不也是要從需求獲取開(kāi)始,一直有條有理地到最后成品的出爐嗎?應(yīng)該說(shuō)這就是這門課的價(jià)值所在。無(wú)論是在上課,還是在學(xué)生會(huì)里面做學(xué)生工作,我都深深地感覺(jué)到,技術(shù)性的工作就好比變魔術(shù),其實(shí)原理是非常簡(jiǎn)單的,甚至可以說(shuō)簡(jiǎn)單的可笑,但是當(dāng)你就是做出這么一個(gè)簡(jiǎn)單的東西出來(lái)之后,一些外行們有時(shí)候會(huì)用崇拜的眼光看著你,覺(jué)得你很厲害,很高深莫測(cè)。但是制作的過(guò)程他們卻不知道,也許知道之后他們只是會(huì)啞然失笑,原來(lái)這個(gè)東西的制作過(guò)程是如此的簡(jiǎn)單。這個(gè)可以說(shuō)就是技術(shù)的魅力了,而作為需求獲取及之后的一系列過(guò)程則是類似于魔術(shù)揭秘的過(guò)程,但是作為這個(gè)秘密我們并不需要一揭到底,至于揭的程度如何那就是我們那就是我們學(xué)出的程度如何了,我們要讓對(duì)方知道我們?cè)谧鍪裁??以及如何去做?這些東西需要我們以一定的技巧敘述出來(lái),所起到的作用就是能夠讓對(duì)方了解自己的進(jìn)度,卻又能夠不讓對(duì)方來(lái)干涉自己的工作過(guò)程。因?yàn)槲覀兪羌夹g(shù)員,對(duì)方只是外行,即使對(duì)方知道了這個(gè)魔術(shù)的操作過(guò)程,也并不代表他們就能夠向變著魔術(shù)的我們來(lái)隨便修改這個(gè)魔術(shù)的變法,況且我們能夠用不同的過(guò)程來(lái)得出一個(gè)同樣的結(jié)果,這個(gè)過(guò)程的得出的主動(dòng)權(quán)如何掌握在我們的手上,就看我們?nèi)绾我愿呙鞯姆绞絹?lái)揭開(kāi)這個(gè)魔術(shù)的謎底了。當(dāng)然了,在純粹的理論上,我覺(jué)得開(kāi)設(shè)這樣一門課程是很成功的。但是畢竟現(xiàn)實(shí)里有太多的不確定的因素。最重要的因素就是授課的老師和聽(tīng)課的學(xué)生。這兩個(gè)可以說(shuō)是這門課成與敗的決定性的因素。
作為我們學(xué)生來(lái)說(shuō),應(yīng)該負(fù)起比較主要的責(zé)任。在大學(xué)里有了太多的基礎(chǔ)課程,基礎(chǔ)課程大多都比較枯燥無(wú)味,也許在第一個(gè)學(xué)期里我們還能夠保持著新鮮感,但是在6學(xué)期之后,可以說(shuō)再有新鮮感就是一件比較困難的事情了,我們都已經(jīng)開(kāi)始變得遲鈍了。其次的,沒(méi)有認(rèn)識(shí)到這門課程的價(jià)值。這門課的價(jià)值我已經(jīng)在上面說(shuō)過(guò)了,是不言而喻的。但是并不是每個(gè)同學(xué)畢業(yè)之后都回從事計(jì)算機(jī)行業(yè),也不是每個(gè)同學(xué)都知道這門課程的意義已經(jīng)不僅僅局限于計(jì)算機(jī)這個(gè)范疇?;蛟S有些人覺(jué)得反正以后不是這個(gè)發(fā)展方向,也就不在乎這個(gè)課程吧。我個(gè)人覺(jué)得這門課確實(shí)是挺好的,如果認(rèn)真學(xué)必能學(xué)到很多東西,動(dòng)手實(shí)踐能力和從整個(gè)大體分析系統(tǒng)開(kāi)發(fā)的邏輯性思維也會(huì)明顯增強(qiáng),不管以后從事哪個(gè)方面的工作,這對(duì)以后來(lái)說(shuō)都是一筆很大的隱性財(cái)富。說(shuō)到我自己對(duì)這么課的學(xué)習(xí),還是有點(diǎn)愧疚的,前面四周我每周每節(jié)課都去上的,并且上課也認(rèn)真聽(tīng),一邊聽(tīng)老師講課一邊自己看書本的介紹,但是后來(lái)我上這門課的次數(shù)就降低了,因?yàn)橛X(jué)得時(shí)間很緊吧,而且老師上課的節(jié)奏我個(gè)人覺(jué)得有點(diǎn)慢,我都可以自己預(yù)習(xí)看到后面去了,但是這門課我還是每周至少上一節(jié)課的,雖然我早上7點(diǎn)多一點(diǎn)就出門,在自習(xí)室,但是有時(shí)候明明知道到了上課的時(shí)間,明明上課的地方離自習(xí)的地方不遠(yuǎn)也不太想去。我記得有次上課時(shí)候老師生氣了,說(shuō)來(lái)上課的人少,我仔細(xì)環(huán)顧了下四周發(fā)現(xiàn)確實(shí)人很少,稀稀疏疏的分散著,看起來(lái)確實(shí)不太舒服,讓我不得不反思了,這大學(xué)的教育到底怎么了,怎么到了大四大家都不來(lái)上課,雖然我不是每節(jié)課都來(lái),但是我還是時(shí)不時(shí)來(lái)上課的,可能是比較浮躁吧,快畢業(yè)了,覺(jué)得上課學(xué)不到什么實(shí)際的東西,要么實(shí)際一點(diǎn)好好考研繼續(xù)深造,要么去培訓(xùn)增強(qiáng)實(shí)踐能力這樣才能較好的為找個(gè)滿意的工作做好鋪墊。
《軟件工程》課程既強(qiáng)調(diào)基本概念和基本知識(shí)的理解和掌握,又側(cè)重軟件項(xiàng)目的分析、設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)的基本技能。比較注意“點(diǎn)”和“面”的結(jié)合。我還是蠻喜歡這門課的,通過(guò)對(duì)這門課的學(xué)習(xí)讓我意識(shí)到理論學(xué)習(xí)很重要,實(shí)踐更重要,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),只有將理論與實(shí)際結(jié)合,才更能發(fā)揮我們所學(xué)的知識(shí)的作用,更能直接的創(chuàng)造效益,社會(huì)和國(guó)家做出貢獻(xiàn)。
軟件工程培訓(xùn)心得3
軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它包括程序、相關(guān)數(shù)據(jù)及其說(shuō)明文檔。軟件工程(SoftwareEngineering,簡(jiǎn)稱為SE)是針對(duì)軟件這一具有特殊性質(zhì)的產(chǎn)品的工程化方法。SE涵蓋了軟件生命周期的所有階段,并提供了一整套工程化的方法,來(lái)指導(dǎo)軟件人員的工作。任何事物都是從無(wú)到有的,軟件當(dāng)然也不例外。上世紀(jì)中期,軟件產(chǎn)業(yè)從零開(kāi)始起步,經(jīng)過(guò)半個(gè)多世紀(jì)的發(fā)展,其大致經(jīng)歷的3個(gè)階段:程序設(shè)計(jì)階段、軟件設(shè)計(jì)階段和軟件工程時(shí)代,現(xiàn)已成為推動(dòng)人類社會(huì)發(fā)展的龍頭產(chǎn)業(yè),隨著信息化時(shí)代的發(fā)展,軟件對(duì)人類社會(huì)也將越看來(lái)越重要。人們對(duì)軟件的認(rèn)識(shí)自然經(jīng)歷了一個(gè)由淺入深的過(guò)程,在得到巨大需求的同時(shí),也遇到了一系列嚴(yán)重問(wèn)題,即軟件危機(jī)。所謂軟件危機(jī),是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一些嚴(yán)重問(wèn)題,其實(shí)質(zhì)是軟件產(chǎn)品的供應(yīng)趕不上需求的增長(zhǎng)。概括的說(shuō)包含兩方面的問(wèn)題:一、如何開(kāi)發(fā)軟件,以滿足不斷增長(zhǎng),日趨復(fù)雜的要求;二、如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品。為研究和解決軟件危機(jī),一門新興的學(xué)科軟件工程,應(yīng)運(yùn)而生。
軟件工程的概念是為了有效地控制軟件危機(jī)的發(fā)生而被提出來(lái)的,它的中心目標(biāo)就是把軟件作為一種物理的工業(yè)產(chǎn)品來(lái)開(kāi)發(fā),要求“采用工程化的原理與方法對(duì)軟件進(jìn)行計(jì)劃、開(kāi)發(fā)和維護(hù)”,它的主要對(duì)象是大型軟件,它的最終目的是擺脫手工生產(chǎn)軟件的現(xiàn)狀,逐步實(shí)現(xiàn)軟件開(kāi)發(fā)和維護(hù)的自動(dòng)化。軟件工程的概念自提出來(lái)后,經(jīng)過(guò)幾十年的發(fā)展,雖然軟件危機(jī)沒(méi)有得到徹底的解決,但在軟件開(kāi)發(fā)方法和技術(shù)方面已經(jīng)有了很大的進(jìn)步,提出了軟件工程知識(shí)體系、軟件工程三段論、軟件工程生存期模型、服用原則等等。
軟件開(kāi)發(fā)過(guò)程大致經(jīng)過(guò)7個(gè)階段:可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試、提交與維護(hù)。接下來(lái)逐一分析本人見(jiàn)解:
一、可行性分析:顧名思義,就是看項(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à)值去做,如果沒(méi)有價(jià)值,就放棄;如果有價(jià)值,就要看目前的資源是否能滿足項(xiàng)目的開(kāi)發(fā)。如果項(xiàng)目有價(jià)值,且有必需的資源,那么就可以確定能做這個(gè)項(xiàng)目了。
二、需求分析階段:解決“做什么、不做什么”的問(wèn)題。圍繞兩個(gè)核心問(wèn)題開(kāi)展需求分析:應(yīng)該了解什么?通過(guò)什么方式去了解?
1、了解什么:應(yīng)該先了解宏觀的問(wèn)題,再了解細(xì)節(jié)的問(wèn)題。最好為每個(gè)需求注釋“為什么”,這樣可以讓程序員了解需求的本質(zhì),以便選用最合適的技術(shù)來(lái)實(shí)現(xiàn)此需求。同時(shí),需求說(shuō)明不可有額二義性,更不能前后矛盾,如果有二義性貨前后相矛盾,則要重新分析此需求。然后,選擇合適的生存周期,建立合適的需求模型;
2、通過(guò)什么方式去了解:直接與客戶交談;有些需求客戶講不清楚,分析人員又猜不透,這是就要請(qǐng)教行家。需求分析是非常重要的階段,如果做不好的話,后果很麻煩。
三、概要設(shè)計(jì):解決“怎么做”的問(wèn)題。將需求描述的“做什么”問(wèn)題變?yōu)橐粋€(gè)實(shí)施方案的創(chuàng)造性過(guò)程,使得整個(gè)項(xiàng)目在邏輯上和物理上能夠得意實(shí)現(xiàn)。概要設(shè)計(jì)是第一個(gè)開(kāi)發(fā)活動(dòng),也是最重要的活動(dòng),是軟件項(xiàng)目實(shí)現(xiàn)的關(guān)鍵階段。設(shè)計(jì)質(zhì)量的高低直接決定了軟件項(xiàng)目的成敗,缺乏或者沒(méi)有軟件設(shè)計(jì)的過(guò)程會(huì)產(chǎn)生一個(gè)不穩(wěn)定的、甚至是失敗的軟件系統(tǒng)。一個(gè)良好的軟件設(shè)計(jì)是進(jìn)行快速軟件開(kāi)發(fā)的根本,沒(méi)有良好的設(shè)計(jì),會(huì)將時(shí)間花在不斷的調(diào)試上,無(wú)法添加新功能,修改時(shí)間越來(lái)越長(zhǎng),隨著給程序打上一個(gè)有一個(gè)的補(bǔ)丁,新的功能需要更多的代碼實(shí)現(xiàn),就變成一個(gè)惡性循環(huán)了。概要設(shè)計(jì)是軟件設(shè)計(jì)級(jí)別中的高級(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ù)庫(kù)設(shè)計(jì)、接口設(shè)計(jì)、網(wǎng)絡(luò)環(huán)境設(shè)計(jì)等,將產(chǎn)品分割成一些可以獨(dú)立設(shè)計(jì)和實(shí)現(xiàn)的部分并保證各個(gè)部分可以和諧的工作。此過(guò)程中畫數(shù)據(jù)流圖、IPO圖、E-R圖、界面設(shè)計(jì)等。
四、詳細(xì)設(shè)計(jì):解決“具體做什么”的問(wèn)題,將解決問(wèn)題的辦法進(jìn)行具體化。軟件設(shè)計(jì)的低級(jí)設(shè)計(jì),亦即詳細(xì)設(shè)計(jì),主要描述實(shí)現(xiàn)各個(gè)模塊的算法和數(shù)據(jù)結(jié)構(gòu)以及用特定計(jì)算機(jī)語(yǔ)言實(shí)現(xiàn)的初步描述,是針對(duì)程序開(kāi)發(fā)部分來(lái)說(shuō)的,但這個(gè)階段不是真正編寫程序,而是設(shè)計(jì)
出程序的詳細(xì)規(guī)格說(shuō)明,這種規(guī)格說(shuō)明類似于其他工程領(lǐng)域中工程師經(jīng)常使用的工程藍(lán)圖,程序員根據(jù)其中所包含的必要的細(xì)節(jié)寫出實(shí)際的程序代碼。用另一種方式說(shuō)就是,詳細(xì)設(shè)計(jì)是將概要設(shè)計(jì)的框架內(nèi)容具體化、明細(xì)化,將概要設(shè)計(jì)轉(zhuǎn)化為可以操作的軟件模型,但在實(shí)際項(xiàng)目進(jìn)行過(guò)程中,依據(jù)項(xiàng)目的具體情況和項(xiàng)目要求,這個(gè)過(guò)程可能可以省略(邏輯上沒(méi)有省略,表現(xiàn)在概要設(shè)計(jì)階段或者編碼階段),直接按照概要設(shè)計(jì)進(jìn)行編碼;不過(guò),個(gè)人認(rèn)為最好有,有詳細(xì)設(shè)計(jì)可以更好的保證編碼順利的進(jìn)行,可以預(yù)先掃清編碼過(guò)程中的障礙,提高代碼的質(zhì)量和編碼的效率。主要包括模塊描述、算法描述、數(shù)據(jù)描述,可以采用圖形、表格或者文字描述等方式表達(dá)出來(lái)。
五、編碼:實(shí)現(xiàn)項(xiàng)目。由項(xiàng)目的概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),將設(shè)計(jì)變?yōu)榇a需要通過(guò)編碼過(guò)程來(lái)完成。實(shí)現(xiàn)設(shè)計(jì)有很多種選擇,有很多實(shí)現(xiàn)語(yǔ)言、工具等可供選擇,但一般而言,在設(shè)計(jì)中會(huì)直接或間接地確定了實(shí)現(xiàn)語(yǔ)言。編碼過(guò)程的一個(gè)主要標(biāo)準(zhǔn)時(shí)變成與設(shè)計(jì)的對(duì)應(yīng)性和統(tǒng)一性。如果編碼沒(méi)有按設(shè)計(jì)的要求進(jìn)行,設(shè)計(jì)就失去意義了。設(shè)計(jì)過(guò)程中的算法、功能、接口、數(shù)據(jù)結(jié)構(gòu)都應(yīng)該在編碼過(guò)程中體現(xiàn)。如果需求發(fā)生變更,設(shè)計(jì)業(yè)對(duì)應(yīng)地發(fā)生變更,同時(shí)代碼也應(yīng)該一致地發(fā)生變更,這可以通過(guò)配置管理配置控制。可見(jiàn),如果編碼和設(shè)計(jì)不一致,很容易“跑偏”,走火入魔。編碼時(shí)要嚴(yán)格遵循編碼標(biāo)準(zhǔn)和規(guī)范,并提供必要的程序注釋,增加可讀性。另一個(gè)就是重構(gòu)的理解,所謂重構(gòu)是對(duì)軟件內(nèi)部的一種調(diào)整,目的是在不改變軟件基本功能和性能的前提下,提高其可理解性,降低成本,當(dāng)添加功能、修改代碼和復(fù)查
代碼的時(shí)候,更不要錯(cuò)過(guò)重構(gòu),另外,重構(gòu)可以和設(shè)計(jì)互補(bǔ)。還有一點(diǎn)值得注意,要在必要的時(shí)候部署編碼文檔。
六、測(cè)試:看軟件是否符合標(biāo)準(zhǔn)。軟件編碼完成之后,將軟件提交給用戶之前,需要對(duì)軟件進(jìn)行測(cè)試,這是保證軟件產(chǎn)品質(zhì)量的一個(gè)重要標(biāo)準(zhǔn),也是評(píng)估產(chǎn)品質(zhì)量的主要手段。軟件測(cè)試是從軟件工程中演化出來(lái)的一個(gè)分支,有著非常廣泛的內(nèi)容,并且隨著軟件產(chǎn)業(yè)的發(fā)展,它已經(jīng)變得越來(lái)越重要。軟件與生俱來(lái)就可能存在缺陷,為了防止和減少這些可能存在的缺陷,進(jìn)行軟件測(cè)試是有必要的,測(cè)試是最有效的的排錯(cuò)和防止缺陷和故障的手段。最原始的測(cè)試莫過(guò)于直接運(yùn)行軟件了,后來(lái)測(cè)試手段逐漸多樣化。測(cè)試手段有靜態(tài)測(cè)試、動(dòng)態(tài)測(cè)試面向?qū)ο蟮臏y(cè)試、自動(dòng)化測(cè)試等等之分。靜態(tài)測(cè)試或稱靜態(tài)分析是指一種不通過(guò)執(zhí)行程序來(lái)進(jìn)行測(cè)試的一種技術(shù),主要是檢查軟件的表示和描述是否一致,覆蓋程序的編碼格式、程序語(yǔ)法、檢查獨(dú)立語(yǔ)句的結(jié)構(gòu)和使用等,主要包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量等等,可以通過(guò)人工進(jìn)行,亦可借助工具(如:語(yǔ)法分析器)自動(dòng)進(jìn)行。動(dòng)態(tài)測(cè)試是運(yùn)行被測(cè)試的程序,通過(guò)輸入測(cè)試用例,對(duì)其運(yùn)行情況進(jìn)行分析,以達(dá)到檢測(cè)的目的,顯然動(dòng)態(tài)測(cè)試封像我們通常意義上的“測(cè)試”。動(dòng)態(tài)測(cè)試主要包括白盒測(cè)試、黑盒測(cè)試、灰盒測(cè)試(介于黑盒和白盒之間)。其他測(cè)試不再一一介紹。
七、提交與維護(hù):測(cè)試完之后,就要把軟件交給用戶使用了。提交不是剪裁,給人家就行了,還要教會(huì)客戶怎么使用這個(gè)系統(tǒng)。如果用戶不會(huì)使用系統(tǒng),就會(huì)不滿意系統(tǒng)的性能,那之前的努力就白費(fèi)了,
打水漂了。為了保證成功地將我們開(kāi)發(fā)的軟件提交給用戶,我們需要對(duì)用戶進(jìn)行培訓(xùn),同時(shí)提交必要的文檔及用戶手冊(cè)軟件。維護(hù)就不用多說(shuō)了,就是售后服務(wù)了。維護(hù)需要分析人員、編碼人員和設(shè)計(jì)人員等角色的參與,有糾錯(cuò)行維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)等。維護(hù)后,要寫軟件維護(hù)過(guò)程文檔,至少提交一個(gè)軟件維護(hù)記錄。以上是軟件工程及其幾個(gè)階段的介紹,知道怎樣開(kāi)發(fā)軟件只是軟件工程的一部分,搞好團(tuán)隊(duì)合作也是很重要的。項(xiàng)目是一個(gè)很大的工程,需要一個(gè)團(tuán)隊(duì)的統(tǒng)籌規(guī)劃,團(tuán)結(jié)協(xié)作,集思廣益,舉一反三,才能夠按預(yù)期完成。
軟件工程培訓(xùn)心得4
在這次軟件工程課程中,我學(xué)到了很多東西,第一次深刻的體會(huì)到了什么叫做用工程化的思想來(lái)編寫軟件,以前自己也寫過(guò)一些小型軟件,沒(méi)有做過(guò)大型的項(xiàng)目,直到這次課堂我擔(dān)任組長(zhǎng)并組織組員共同完成“個(gè)人圖書管理系統(tǒng)”這個(gè)項(xiàng)目,第一次和別人合作,才發(fā)現(xiàn)運(yùn)用工程化的思想來(lái)做是如此的有必要。
從這里,我才真正的意識(shí)到實(shí)施一個(gè)軟件工程并不是說(shuō)簡(jiǎn)單的會(huì)編碼就能夠解決問(wèn)題的,我們更多的精力不是放在編碼上,編碼只是一個(gè)很小的模塊,只占到那么小的一個(gè)部分。這個(gè)事實(shí)在很大程度上顛覆了我以前的思想,在我以前的認(rèn)識(shí)中,似乎整個(gè)軟件就是編碼,除此無(wú)它,還好有老師的指導(dǎo),不然真的會(huì)出現(xiàn)老師所說(shuō)的,撞得頭破血流之后才想起來(lái)用軟件工程的思想來(lái)完成這個(gè)工作。
剛真正開(kāi)始工作之前,我們費(fèi)了很多的時(shí)間來(lái)完成一些前端工作,如需求分析和可行性分析,這塊工作在別人看來(lái)可能是相對(duì)無(wú)關(guān)緊要,甚至是多于的,其實(shí),換做在以前,我也會(huì)這么認(rèn)為??墒?,我現(xiàn)在算是深深地明白了磨刀不誤砍柴工的道理,這些工作的完成太有必要了,太重要了,要想你的軟件有用有市場(chǎng),能被別人接受和認(rèn)可,在進(jìn)行過(guò)程中不會(huì)出現(xiàn)崩潰性的問(wèn)題,這些工作缺一不可。
還有就是接下來(lái)的一些設(shè)計(jì)模塊,此模塊與軟件編碼涉及比較緊密,主要是解決一些參數(shù)傳遞和接口通訊的問(wèn)題,此模塊對(duì)我的觸動(dòng)遠(yuǎn)沒(méi)有上兩個(gè)模塊對(duì)我的影響大,因此再次也不做過(guò)多的介紹。
在整個(gè)活動(dòng)的完成過(guò)程中,作為組長(zhǎng),我收獲很多,我發(fā)現(xiàn),要是組里有個(gè)人不怎么想做事情時(shí),他對(duì)于整個(gè)組織的影響是毀滅性的,正所謂“一顆老鼠屎,能壞一倉(cāng)谷”,以后我的組織里要是出現(xiàn)這樣的人,我絕不會(huì)給他繼續(xù)留下來(lái)的機(jī)會(huì),我會(huì)在第一時(shí)間將他清除出去。還有就是,作為組長(zhǎng),你要做的最重要的事情,不是發(fā)揮自己的聰明才智,而是創(chuàng)造出一個(gè)平臺(tái),讓別人去發(fā)揮,你所要做得,出了保證這個(gè)平臺(tái)的完整性和公平性外,還有就是協(xié)調(diào)好各組員之間的關(guān)系。
這就是我的實(shí)習(xí)感想。
軟件工程培訓(xùn)心得5
一、需求分析和概要設(shè)計(jì)。
1)需求分析
按照軟件工程的軟件過(guò)程來(lái)說(shuō):
1需求分析產(chǎn)生了軟件功能規(guī)格說(shuō)明書,需要確定用戶對(duì)軟件的需求,要作到明確、無(wú)歧義。不涉及具體實(shí)現(xiàn)方法。用戶能看得明白,開(kāi)發(fā)人員也可據(jù)此進(jìn)行下面的工作(概要設(shè)計(jì))。
2.概要設(shè)計(jì)產(chǎn)生了軟件概要設(shè)計(jì)說(shuō)明書,說(shuō)明系統(tǒng)模塊劃分、選擇的技術(shù)路線等,整體說(shuō)明軟件的實(shí)現(xiàn)思路。并且需要指出關(guān)鍵技術(shù)難點(diǎn)等。
在進(jìn)行需求分析時(shí),我們既是開(kāi)發(fā)者又是用戶,本系統(tǒng)的業(yè)務(wù)流程與業(yè)務(wù)分類的定義比較難。我們的團(tuán)隊(duì)進(jìn)行了研討,還充分運(yùn)用了身邊的各種資源,大量的查找了很多網(wǎng)絡(luò)上關(guān)于工資系統(tǒng)的資料。通過(guò)資料的進(jìn)行討論、根據(jù)我們的課題進(jìn)行分析,最后確定了用戶的需求為:
1.本系統(tǒng)在高校應(yīng)用后高校工資管理方面的教職工將減少至目前的50%左右;
2.本系統(tǒng)在高校應(yīng)用后將在高校各方面的成本將會(huì)有所降低;
3.本系統(tǒng)在高校應(yīng)用后將教職工的工資達(dá)到完全透明,計(jì)算更加精確教職工因糾紛事件減少到1%。 根據(jù)分析將系統(tǒng)的功能從一般教職工與系統(tǒng)管理者兩個(gè)角度將功能劃分為7個(gè)模塊,當(dāng)然介于我們的知識(shí)有限,有的功能沒(méi)有實(shí)現(xiàn):?jiǎn)T工工資與考勤直接掛鉤,但本系統(tǒng)無(wú)法與員工考勤系統(tǒng)掛鉤相連,由于涉及此系統(tǒng)時(shí)該高校并沒(méi)有員工考勤系統(tǒng),而且我們?cè)谧畛踹M(jìn)行商量的時(shí)候也沒(méi)有提出該要求。
2)概要設(shè)計(jì)
從概要階段開(kāi)發(fā)正式進(jìn)入軟件的實(shí)際開(kāi)發(fā)階段,本階段完成系統(tǒng)的大致設(shè)計(jì)并明確系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)與軟件結(jié)構(gòu)。在軟件設(shè)計(jì)階段主要是把一個(gè)軟件需求轉(zhuǎn)化為軟件表示的過(guò)程,這種表示只是描繪出軟件的總的概貌。由概要設(shè)計(jì)說(shuō)產(chǎn)生大的概要說(shuō)明書的目的就是進(jìn)一步細(xì)化軟件設(shè)計(jì)階段得出的軟件總體概貌,把它加工成在程序細(xì)節(jié)上非常接近于源程序的軟件表示。
在本階段主要涉及處理流程的設(shè)計(jì)、總體結(jié)構(gòu)和模塊外部設(shè)計(jì)、功能分配。在接口設(shè)計(jì)上有用戶接口、外部接口、內(nèi)部接口;數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)有邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)等等。在接口設(shè)計(jì)時(shí)參考了大量的資料。
最后就是編寫文檔――軟件需求說(shuō)明書、概要分析說(shuō)明書。
而文檔的作用在于:一是可以幫助整理思路。把要完成的目標(biāo),系統(tǒng)的結(jié)構(gòu),每一個(gè)模塊的功能等整理一下,然后分門別類地寫下來(lái),這樣在開(kāi)發(fā)的過(guò)程中,就有據(jù)可依,在需要回過(guò)頭來(lái)修改設(shè)計(jì)的時(shí)候,也有證可考。二是便于交流。三是可以作為以后維護(hù)時(shí)的參考資料。
三、軟件工程課程設(shè)計(jì)――心得體會(huì)
我們進(jìn)行了為期一周的課程設(shè)計(jì)。通過(guò)這次課程設(shè)計(jì),我拓寬了知識(shí)面,鍛煉了能力,綜合素質(zhì)得到較大提高。安排課程設(shè)計(jì)的基本目的,在于通過(guò)理論與實(shí)際的結(jié)合、人與人的溝通,進(jìn)一步提高思想覺(jué)悟。尤其是觀察、分析和解決問(wèn)題的實(shí)際工作能力,以便培養(yǎng)成為能夠主動(dòng)適應(yīng)社會(huì)主義現(xiàn)代化建設(shè)需要的高素質(zhì)的復(fù)合型人才。作為整個(gè)學(xué)習(xí)體系的有機(jī)組成部分,課程設(shè)計(jì)雖然安排在一周進(jìn)行,但并不具有絕對(duì)獨(dú)立的意義。它的一個(gè)重要功能,在于運(yùn)用學(xué)習(xí)成果,檢驗(yàn)學(xué)習(xí)成果。運(yùn)用學(xué)習(xí)成果,把課堂上學(xué)到的系統(tǒng)化的理論知識(shí),嘗試性地應(yīng)用于實(shí)際設(shè)計(jì)工作,并從理論的高度對(duì)設(shè)計(jì)工作的現(xiàn)代化提出一些有針對(duì)性的建議和設(shè)想。檢驗(yàn)學(xué)習(xí)成果,看一看課堂學(xué)習(xí)與實(shí)際工作到底有多大距離,并通過(guò)綜合分析,找出學(xué)習(xí)中存在的不足,以便為完善學(xué)習(xí)計(jì)劃,改變學(xué)習(xí)內(nèi)容與方法提供實(shí)踐依據(jù)。對(duì)我們信息管理與信息系統(tǒng)專業(yè)的學(xué)生來(lái)說(shuō),實(shí)際能力的培養(yǎng)至關(guān)重要,而這種實(shí)際能力的培養(yǎng)單靠課堂教學(xué)是遠(yuǎn)遠(yuǎn)不夠的,必須從課堂走向?qū)嵺`。這也是一次預(yù)演和準(zhǔn)備畢業(yè)設(shè)計(jì)工作。通過(guò)課程設(shè)計(jì),讓我們找出自身狀況與實(shí)際需要的差距,并在以后的學(xué)習(xí)期間及時(shí)補(bǔ)充相關(guān)知識(shí),為求職與正式工作做好充分的知識(shí)、能力準(zhǔn)備,從而縮短從校園走向社會(huì)的心理轉(zhuǎn)型期。課程設(shè)計(jì)促進(jìn)了我系人才培養(yǎng)計(jì)劃的完善和課程設(shè)置的調(diào)整。
在一個(gè)星期的課程設(shè)計(jì)之后,我們普遍感到不僅實(shí)際動(dòng)手能力有所提高,更重要的是通過(guò)對(duì)軟件開(kāi)發(fā)流程的了解,進(jìn)一步激發(fā)了我們對(duì)專業(yè)知識(shí)的興趣,并能夠結(jié)合實(shí)際存在的問(wèn)題在專業(yè)領(lǐng)域內(nèi)進(jìn)行更深入的學(xué)習(xí)。
軟件工程課程雖已結(jié)束,但我對(duì)于軟件工程的學(xué)習(xí)才剛剛開(kāi)始。我體會(huì)到項(xiàng)目管理的重要性,隨著軟件規(guī)模、復(fù)雜度的不斷增加,項(xiàng)目開(kāi)發(fā)中更多的是協(xié)作、管理和控制。我學(xué)習(xí)到很多一般性的方法,例如:需求獲取、模塊化、計(jì)劃等等。同時(shí),我也認(rèn)識(shí)到使用計(jì)算機(jī)解決實(shí)際問(wèn)題的復(fù)雜性,人們認(rèn)識(shí)表達(dá)的過(guò)程不斷反復(fù)、逐步深化,軟件工程方法要提供給程序員們一種更加有效的對(duì)客觀世界問(wèn)題域進(jìn)行形式化的過(guò)程方法。
軟件工程培訓(xùn)心得6
軟件工程是一門實(shí)踐性很強(qiáng)、交叉性很強(qiáng)的學(xué)科,它提供給我們的不僅是一種方法論,更是一種世界觀。
在沒(méi)有接觸軟件工程這門課時(shí),我一直認(rèn)為軟件就是程序。能編出解決問(wèn)題的程序就ok了,從沒(méi)有想過(guò),在寫一個(gè)程序之前還要構(gòu)思幾份文檔(可行性分析、需求分析、概要設(shè)計(jì))。不過(guò)對(duì)于那些大型軟件如植物僵尸大戰(zhàn)(至少對(duì)于我來(lái)說(shuō)是比較大型的了)怎么去實(shí)現(xiàn)它,想得我一頭霧水。絢麗的界面、40種植物、一大堆不同類型的僵尸,怎樣編代碼去實(shí)現(xiàn)它呢?
第一次上軟件工程的課,裴老師問(wèn)“軟件是什么?” 我的第一想法是:這個(gè)問(wèn)題太過(guò)愚昧了!誰(shuí)不知道軟件就是程序呀? “軟件是由計(jì)算機(jī)程序、數(shù)據(jù)及文檔組成。”聽(tīng)到這句話,我心里先是一驚,慌忙翻了下書“軟件是程序和所有使程序正確運(yùn)行所需的相關(guān)文檔和配置信息?!焙杖挥橙胛已酆煛M蝗婚g我發(fā)現(xiàn),就算是植物僵尸大戰(zhàn)這樣復(fù)雜的游戲,如果設(shè)計(jì)者實(shí)現(xiàn)分模塊把每一部分如何實(shí)現(xiàn)用文檔描敘出來(lái),那這個(gè)軟件實(shí)現(xiàn)起來(lái)不是很容易嗎?
第一次課后我明白了軟件工程是致力于專業(yè)化軟件開(kāi)發(fā)的理論、方法和工具的研究。雖然我從初中開(kāi)始信息奧賽,高中繼續(xù)這個(gè)愛(ài)好,但在大學(xué)二年級(jí)下學(xué)期才接觸在軟件開(kāi)發(fā)中這么有引導(dǎo)意義的學(xué)科,不覺(jué)有種相見(jiàn)恨晚的感覺(jué)。自然它的方法學(xué)三要素:方法、工具、過(guò)程,我牢記于心。
短短的四周,裴老師的課給我留下了深刻的印象,印象尤深的是:
做軟件我們首先考慮的是團(tuán)隊(duì)的實(shí)力。
如果別人給你50萬(wàn)讓你們團(tuán)隊(duì)開(kāi)發(fā)一個(gè)軟件,如果他要求你們團(tuán)隊(duì)給這個(gè)軟件永久維護(hù),那么你要去跟他協(xié)商付100萬(wàn)。很多軟件公司倒閉就是因?yàn)榫S護(hù)上的問(wèn)題。至此我才明白維護(hù)軟件是軟件生存周期中時(shí)間最長(zhǎng)的一個(gè)階段,它是最花費(fèi)精力與錢財(cái)?shù)囊粋€(gè)階段。
如果將來(lái)你們碰到了我,你跟我說(shuō)你是se那么我會(huì)很高興,如果你告訴我你是軟件工程師,我只會(huì)“嗯嗯”兩下。
其實(shí)在我接觸軟件后,渴望的是當(dāng)一名軟件工程師?,F(xiàn)在才知道學(xué)軟件工程專業(yè)后,去當(dāng)一名軟件工程師是最低層的也是最沒(méi)“技術(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)然理論知識(shí)是用來(lái)指導(dǎo)實(shí)踐的,親身體驗(yàn)才能領(lǐng)悟軟件工程的妙用。課設(shè)我們選擇了圖書館管理系統(tǒng),主要是這個(gè)系統(tǒng)我們接觸比較多,對(duì)于它的流程還是比較清楚的。雖然如此我們還是花了很大的時(shí)間去完成它。記得當(dāng)時(shí)我們定下這個(gè)題目是晚上,在討論用什么語(yǔ)言實(shí)現(xiàn)時(shí),大家各自說(shuō)出自己比較善于的語(yǔ)言。然后均衡了下,定下用java做開(kāi)發(fā)語(yǔ)言。在實(shí)現(xiàn)過(guò)程中,突然發(fā)現(xiàn)java環(huán)境連接數(shù)據(jù)庫(kù)和tomcat超級(jí)麻煩且數(shù)據(jù)庫(kù)老是連接不上。趁時(shí)間還早我們?nèi)俅斡懻?,決定用c#做開(kāi)發(fā)語(yǔ)言,主要是c#相對(duì)于c++與java來(lái)說(shuō)簡(jiǎn)易寫。同時(shí)我們定下不管以后遇到什么困難都要堅(jiān)持下去的準(zhǔn)則。在課設(shè)期間我們沒(méi)少跑圖書館,查閱各種資料,對(duì)比各本書上實(shí)現(xiàn)圖書館管理系統(tǒng)的代碼。終于在4月11日把所有課設(shè)的所有事情弄好了。當(dāng)然這只是個(gè)概述。
我印象尤深記憶深厚的是最初實(shí)現(xiàn)文檔那塊。剛開(kāi)始,軟件工程這門課還沒(méi)學(xué)多少,基本的設(shè)計(jì)理念就很模糊。文檔到底該怎么寫,很糾結(jié)。于是我從網(wǎng)上狂下相關(guān)文檔。通過(guò)粘貼與復(fù)制終于一份內(nèi)容亂七八糟的需求分析文檔出來(lái)了,當(dāng)然這只是用來(lái)借鑒的。后來(lái)孟陽(yáng)分享了十三份關(guān)于文檔這方面的模板。我們照著那個(gè)樣子在結(jié)合團(tuán)隊(duì)項(xiàng)目的相關(guān)實(shí)例開(kāi)始了文檔的寫作。我們的文檔總是一個(gè)人先寫好,再拿給另一個(gè)人改,最后由第三個(gè)人評(píng)審。大家都覺(jué)的可以了,才過(guò)關(guān)。測(cè)試報(bào)告雖然是我一個(gè)人完成了,但也經(jīng)歷了不少時(shí)間,當(dāng)然這時(shí)間是按小時(shí)算的。首先把大體寫出了,然后修改,再增加信息。大量的截圖以及思考怎樣用例超費(fèi)腦子,兩天的通宵,徹底把我搞垮了,不過(guò)在文檔出爐后,心里異常開(kāi)心。
軟件工程課程雖已結(jié)束,但我對(duì)于軟件工程的學(xué)習(xí)才剛剛開(kāi)始,裴老師的課讓我受益匪淺。我體會(huì)到項(xiàng)目管理的重要性,隨著軟件規(guī)模、復(fù)雜度的不斷增加,項(xiàng)目開(kāi)發(fā)中更多的是協(xié)作、管理和控制。我學(xué)習(xí)到很多一般性的方法,例如:需求獲娶模塊化、分治、估算、計(jì)劃等等。同時(shí),我也認(rèn)識(shí)到使用計(jì)算機(jī)解決實(shí)際問(wèn)題的復(fù)雜性,在圖靈機(jī)模型和馮?諾依曼體系的計(jì)算機(jī)框架下,人們認(rèn)識(shí)表達(dá)的過(guò)程(不斷反復(fù)、逐步深化)和計(jì)算機(jī)的實(shí)現(xiàn)過(guò)程(順序執(zhí)行)相差甚遠(yuǎn),軟件工程方法要提供給程序員們一種更加有效的對(duì)客觀世界問(wèn)題域進(jìn)行形式化的過(guò)程方法。
向se進(jìn)軍!至少這是現(xiàn)在的目標(biāo)。
謝謝裴老師!您的課通俗易懂,舉的例子貼近生活,讓我們易于接受。
軟件工程培訓(xùn)心得6篇 對(duì)于軟件工程的心得體會(huì)相關(guān)文章: