實習(xí)之后我們需要寫相關(guān)的實習(xí)報告,大家一起看看下面的軟件設(shè)計實習(xí)報告,歡迎各位閱讀哦!
軟件設(shè)計實習(xí)報告一、實習(xí)目的:
檢驗與鞏固理論知識,提高實際操作能力與社會實踐能力。
二、實習(xí)時間:
20xx-07-27 至 20xx-10-23
三、實習(xí)地點:
廣東廣州
四、實習(xí)單位與部門:
廣州**網(wǎng)絡(luò)科技有限公司·軟件開發(fā)部
五、實習(xí)內(nèi)容:
應(yīng)學(xué)校要求,本人于七月二十七號來到廣州**網(wǎng)絡(luò)科技有限公司實習(xí)。初到該公司,聽公司負責(zé)人講解了公司狀況以及工作要求,就馬上開始我的工作。從該負責(zé)人得知,公司的軟件開發(fā)業(yè)務(wù)并沒有多長時間,所以公司的很多工作流程還不太規(guī)范。在3個月的實習(xí)時間里,我參與了一個類似于erp的項目。項目的大致內(nèi)容是:為一家中型制造業(yè)企業(yè)量身訂做一套綜合管理系統(tǒng),包括了倉庫管理,銷售管理,采購管理,生產(chǎn)管理,財務(wù)管理以及人事管理,共六個子系統(tǒng),且這六個子系統(tǒng)是有機的組合,以方便該企業(yè)的管理生產(chǎn)資源,人力資源以及財務(wù)。在整個參與過程中,在不同時間里擔(dān)任的工作任務(wù)也不同。
1、八月份
據(jù)了解,該項目早在3月份就開始了,而且該項目一直是處于不受控狀態(tài),控制不了的原因有諸多,例如客戶的需求發(fā)生了巨大變動,該項目進行期間有很多其他的項目插入到開發(fā)過程中等等。于是,我參與了測試程序的工作,以熟悉整個項目的具體內(nèi)容,功能實現(xiàn),設(shè)計方法等。在做測試工作的過程中,發(fā)現(xiàn)實習(xí)單位目前對測試不太重視,在以前的項目中也很少有全面的軟件測試階段。主要表現(xiàn)在:一方面,在我實習(xí)期間,就陸續(xù)有以前做的系統(tǒng)拿回來,重新做測試工作并修改。據(jù)了解,目前國內(nèi)的絕大多數(shù)軟件企業(yè)也是重編碼輕測試,導(dǎo)致軟件的強壯性低下,而在售后的維護階段中經(jīng)常性需要大幅度修改。這樣一來,經(jīng)常有不同的新老系統(tǒng)并行,給新系統(tǒng)的項目進度帶來了外部干擾;另方面,公司要求的測試方法也較為簡單,且測試文檔的書寫格式極其簡單,這種書寫格式在一些功能上的錯誤和明顯的數(shù)據(jù)錯誤上有很好的表意效果,但是在表達程序的邏輯錯誤和內(nèi)部數(shù)據(jù)錯誤時有很大的欠缺。在整個測試工作中也大概了解了該系統(tǒng)的各方面特性。該系統(tǒng)采用b/s結(jié)構(gòu)開發(fā),隨著internet的高速發(fā)展、電信部門對網(wǎng)絡(luò)線路的投入、帶寬的增加等各個對b/s結(jié)構(gòu)有利的條件下,采用b/s結(jié)構(gòu)可以節(jié)省很多的成本。在以前采用c/s結(jié)構(gòu)開發(fā)的系統(tǒng)中,需要為系統(tǒng)開發(fā)客戶端,而且在維護過程中,除了對服務(wù)器端的維護,還要對各個客戶端進行維護,而目前盛行的b/s結(jié)構(gòu),則只需要開發(fā)和維護服務(wù)器端,相比之下,開發(fā)和維護的成本也就大大降低。另外,b/s結(jié)構(gòu)在internet里的應(yīng)用性比較高。但是,b/s結(jié)構(gòu)也不是完美的選擇,它存在諸如b/s結(jié)構(gòu)的用戶界面上比較難控制,瀏覽器的安全性能沒有很好的保障等問題。整個系統(tǒng)采用asp .net+ms sql server 2000做開發(fā),編程語言采用c#和vb。
測試工作和書寫文檔是比較枯燥的工作,測試更是要細心,有耐性的去做,在這個月里認真的完成了我的工作,還幫忙修改了用戶界面。我的工作得到了負責(zé)人的肯定。
2、九月份
八月末就得知要將整個系統(tǒng)重構(gòu),因為原有未完成的系統(tǒng)跟變動后的用戶需求有太大的出入,而且系統(tǒng)存在比較多的錯誤,難以修復(fù)。負責(zé)人要求我參與到系統(tǒng)的重構(gòu)工作中去,參與設(shè)計,代碼編寫。這對我來說是一個考驗也是一個機會,于是我選擇了“倉庫管理”子系統(tǒng),用vb作為編碼語言。在九月份的開發(fā)過程中,有兩個方面的感觸:
第一是技術(shù)方面。由于采用了vb編寫代碼,而自身只學(xué)了c/c++、還有java。對vb只是一點點了解,另外,對asp dotnet更是一點不通。所以,這個時候需要發(fā)揮下自學(xué)能力,和領(lǐng)悟能力。在開發(fā)過程中印象最深的是web form里datagrid的操作,以及對整個web form的運行過程。首先,由于倉庫管理絕大部分工作是填寫單據(jù),單據(jù)是由單頭和單體組成,單頭記錄基本信息,單體記錄明細信息。設(shè)計決定在填寫單體時,采用datagrid行內(nèi)編輯,所以datagrid的行內(nèi)編輯將是技術(shù)的難點。dotnet的datagrid控件有編輯命令與刪除命令,而新增則可以通過一個button點擊來生成一個新行等待編輯。三個操作的代碼清單如下:
‘編輯命令代碼清單
private sub datagrid1_editcommand(byval source as object, byval e as system.web.ui.webcontrols.datagridcommandeventargs) handles datagrid1.editcommand
if viewstate("add") <> 1 then
datagrid1.edititemindex = e.item.itemindex ‘將該行的編輯狀態(tài)行
datagrid1.databind()
end if
end sub
‘刪除命令代碼清單
private sub datagrid1_command(byval source as object, byval e as system.web.ui.webcontrols.datagridcommandeventargs) handles datagrid1.command
if viewstate("add") <> 1 then
dim delindex as integer
delindex = cint(e.item.cells(1).text)
dim dr as datarow
dr = dataset1.tables("tblbrand").rows.find(delindex)‘找到該行在數(shù)據(jù)集中的編號
dr.()‘將該行在數(shù)據(jù)集中刪除
sqldataadapter1.update(dataset1.tables("tblbrand"))‘更新數(shù)據(jù)庫表
datagrid1.edititemindex = -1
datagrid1.databind()
end if
end sub
‘新增按扭事件代碼清單
private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click
dim dr as datarow
dr = dataset1.tables("tblbrand").newrow()‘新增一行,并將該行插入到數(shù)據(jù)集
dataset1.tables("tblbrand").rows.at(dr, ataset1.tables("tblbrand").rows.count)
viewstate("add") = 1
end sub
其實datagrid中有很多很好用的特性,具體請參考msdn。其次,為實現(xiàn)一次性提交整張單據(jù)到數(shù)據(jù)庫保存,采用了sqlaadapter與dataset結(jié)合,應(yīng)用sqlaadatper的uapdate方法特性:對dataset 的數(shù)據(jù)行做檢索,并發(fā)操作,update,三個命令,對刪除行做數(shù)據(jù)庫刪除,更改的數(shù)據(jù)行做更新,新增的行做插入。最后,在web form的初始到消除整個生命周期也有了較全面的了解。但是感覺dotnet中的web form的生命周期中,所發(fā)生的事件有些凌亂,例如datagrid每一行的創(chuàng)建和數(shù)據(jù)綁定都是比較復(fù)雜的,在開發(fā)中涉及的技術(shù)較多,在此不一一闡述。
第二是工作方面。在這個月中,同樣發(fā)現(xiàn)了公司的開發(fā)工作有較多的問題。首先,人員工作地點變動大,不便于溝通。在開發(fā)工作中,由于人員沒有固定工作地點,只是把任務(wù)分配了,接著就各自去完成,這樣一來,在各個模塊的協(xié)調(diào)中經(jīng)常出現(xiàn)了問題,但又不能很及時的和相關(guān)模塊的負責(zé)人商討解決方法,工作效率也就隨之下降。其次,對整個項目的規(guī)劃,整個系統(tǒng)的設(shè)計,編碼,測試等工作分工不明確且不統(tǒng)一。在項目開始時,只是草草的分了下模塊,接著這個模塊的設(shè)計、編碼、測試就由這個模塊的負責(zé)人來做,沒有先對整個項目進行明確的整體的規(guī)劃。而且在設(shè)計過程中缺少討論,導(dǎo)致設(shè)計出來的模塊獨立性過高,沒有考慮到公共的接口等問題。最后,對解決問題的速度慢。當(dāng)在開發(fā)的過程中出現(xiàn)了問題,對問題的解決途徑多固然是好,但是,解決方案出現(xiàn)分歧的時候難以敲定具體實施哪個方案,導(dǎo)致進展緩慢,進度延期。
3、十月份
十月份是整個重構(gòu)活動的收尾階段,該階段需要完成的工作是數(shù)據(jù)報表的設(shè)計與實現(xiàn)。數(shù)據(jù)報表設(shè)計方面,沿用原有的紙質(zhì)報表的結(jié)構(gòu),所以整個設(shè)計過程相對輕松。但是在實現(xiàn)階段,由于在決定采用何種實現(xiàn)方式的決策問題上出現(xiàn)了飄忽不定的狀況,使得進度上又有了少許的延期,最后采用了crystalreports來實現(xiàn)。拋棄了打印分頁控制難的html方法,以及技術(shù)不成熟,安全性差的ms sql server reportingservice報表工具。在這個階段,我負責(zé)了倉庫管理、銷售管理、采購管理以及生產(chǎn)管理等四個子系統(tǒng)的報表實現(xiàn),在此期間學(xué)會了crystalreports的使用和編程,收益頗多。這次重構(gòu)活動涉及了數(shù)據(jù)結(jié)構(gòu)的重構(gòu)以及代碼的重構(gòu),提高了系統(tǒng)的清晰性、擴展性以及重用性。整體性能有了明顯的提升。
六、實習(xí)總結(jié):
在這為期3個月的實習(xí)過程中,通過擔(dān)任各種工作任務(wù),充分的檢驗了自身所學(xué)的知識,了解了自身知識結(jié)構(gòu)的不足;通過與接觸其他同事以及自我體驗,較深入地了解了軟件開發(fā)從業(yè)人員生活狀況,以及目前大部分中小型軟件開發(fā)企業(yè)的經(jīng)營模式和操作流程?偨Y(jié)如下三點:
1、知識“閱兵式”
大學(xué)3年來所學(xué)的知識,在這次實習(xí)中得到了真正的檢閱,同樣,也暴露了知識結(jié)構(gòu)的不合理性。技術(shù)上,學(xué)校里所學(xué)的基礎(chǔ)知識表面上看似用不上,但卻是這些基礎(chǔ)知識讓我有很牢固的基礎(chǔ),學(xué)起其他的技術(shù)知識自然而然的變得容易,能應(yīng)對開發(fā)過程中所遇到的技術(shù)層面的問題。但是在業(yè)務(wù)上,由于缺乏所涉及的業(yè)務(wù)的相關(guān)課程的開展與自身涉獵知識面不廣,而造成了在業(yè)務(wù)流程轉(zhuǎn)換為系統(tǒng)設(shè)計或程序?qū)崿F(xiàn)的中間環(huán)節(jié)頻頻出現(xiàn)困惑。軟件工程專業(yè)培養(yǎng)的目標(biāo)是管理或系統(tǒng)規(guī)劃與設(shè)計,這一類的高層次人才,而不是純粹的編碼人員,所以對相關(guān)的業(yè)務(wù)應(yīng)當(dāng)明確、清晰。建議學(xué)校開展一些行業(yè)縱向討論課題來彌補這個不足。
2、從業(yè)人員的生存狀況
大部分從業(yè)人員長期生活在一種“精神高壓”的環(huán)境中。由于項目控制的難度大,有了進度表跟沒進度表的項目都一樣,員工基本都是天天在趕工。不管是在大型企業(yè)的軟件開發(fā)從業(yè)人員,還是在中小型企業(yè)軟件開發(fā)從業(yè)人員的工作時間一般都不固定。只要手頭上有沒做完的事情就要趕,也有的企業(yè)讓這種不固定變成讓員工靈活安排時間的方法:只要手頭上沒東西做,人可以不用擺在辦公室。但是,這種靈活性不是單方面的靈活,而是員工與管理者雙方面的靈活。只要有事做,管理人員隨時都可以叫上程序員一起“奮斗”。項目驗收交付后,員工才算有休息一下的機會。這樣一來,人員的積極性、生產(chǎn)效率也隨著項目時間的持續(xù)而下降。但是,作為一個黃金職業(yè),大部分從業(yè)人員都愿意吃這個苦。
3、中小型軟件企業(yè)的經(jīng)營模式與操作流程
目前,國內(nèi)大型軟件開發(fā)企業(yè)數(shù)量較少,就規(guī)模而言,有關(guān)數(shù)據(jù)表明:90%以上的企業(yè)人數(shù)不超過100人,人員超過1000人的只有10家,同樣的,企業(yè)的盈利水平也普遍低下。在這些中小型的軟件企業(yè)中,他們的經(jīng)營模式與操作的流程也都是大同小異:從經(jīng)營的模式來講,一般是接或拉定單,按客戶要求制定靈活性強,適應(yīng)性強的軟件。做自主研發(fā),零售產(chǎn)品的軟件企業(yè)極為少數(shù)。從規(guī)模到盈利,就好比一家家的裁縫店,而非制衣廠;從操作的流程來講,從項目的規(guī)劃到啟動,再到測試驗收交付,其中規(guī)劃與測試一般都不充分,從而導(dǎo)致項目風(fēng)險提高,進度延時以及交付后的產(chǎn)品強壯性差也是中小軟件企業(yè)存在的一大問題。
最后,在此感謝公司里共事的每一位同事,感謝他們在實習(xí)期間給我的幫助。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。