博文谷

位置:首頁 > 實用範文 > 實習報告

軟件設計實習報告

實習之後我們需要寫相關的實習報告,大家一起看看下面的軟件設計實習報告,歡迎各位閱讀哦!

軟件設計實習報告

軟件設計實習報告

一、實習目的:

檢驗與鞏固理論知識,提高實際操作能力與社會實踐能力。

二、實習時間:

20xx-07-27 至 20xx-10-23

三、實習地點:

廣東廣州

四、實習單位與部門:

廣州**網絡科技有限公司·軟件開發部

五、實習內容:

學校要求,本人於七月二十七號來到廣州**網絡科技有限公司實習。初到該公司,聽公司負責人講解了公司狀況以及工作要求,就馬上開始我的工作。從該負責人得知,公司的軟件開發業務並沒有多長時間,所以公司的很多工作流程還不太規範。在3個月的實習時間裏,我參與了一個類似於erp的項目。項目的大致內容是:爲一家中型製造業企業量身訂做一套綜合管理系統,包括了倉庫管理,銷售管理,採購管理,生產管理,財務管理以及人事管理,共六個子系統,且這六個子系統是有機的組合,以方便該企業的管理生產資源,人力資源以及財務。在整個參與過程中,在不同時間裏擔任的工作任務也不同。

1、八月份

據瞭解,該項目早在3月份就開始了,而且該項目一直是處於不受控狀態,控制不了的原因有諸多,例如客戶的需求發生了巨大變動,該項目進行期間有很多其他的項目插入到開發過程中等等。於是,我參與了測試程序的工作,以熟悉整個項目的具體內容,功能實現,設計方法等。在做測試工作的過程中,發現實習單位目前對測試不太重視,在以前的項目中也很少有全面的軟件測試階段。主要表現在:一方面,在我實習期間,就陸續有以前做的系統拿回來,重新做測試工作並修改。據瞭解,目前國內的絕大多數軟件企業也是重編碼輕測試,導致軟件的強壯性低下,而在售後的維護階段中經常性需要大幅度修改。這樣一來,經常有不同的新老系統並行,給新系統的項目進度帶來了外部干擾;另方面,公司要求的測試方法也較爲簡單,且測試文檔的書寫格式極其簡單,這種書寫格式在一些功能上的錯誤和明顯的數據錯誤上有很好的表意效果,但是在表達程序的邏輯錯誤和內部數據錯誤時有很大的欠缺。在整個測試工作中也大概瞭解了該系統的各方面特性。該系統採用b/s結構開發,隨着internet的高速發展、電信部門對網絡線路的投入、帶寬的增加等各個對b/s結構有利的條件下,採用b/s結構可以節省很多的成本。在以前採用c/s結構開發的系統中,需要爲系統開發客戶端,而且在維護過程中,除了對服務器端的維護,還要對各個客戶端進行維護,而目前盛行的b/s結構,則只需要開發和維護服務器端,相比之下,開發和維護的成本也就大大降低。另外,b/s結構在internet裏的應用性比較高。但是,b/s結構也不是完美的選擇,它存在諸如b/s結構的用戶介面上比較難控制,瀏覽器的安全性能沒有很好的保障等問題。整個系統採用asp +ms sql server 2000做開發,編程語言採用c#和vb。

測試工作和書寫文檔是比較枯燥的工作,測試更是要細心,有耐性的去做,在這個月裏認真的完成了我的工作,還幫忙修改了用戶介面。我的工作得到了負責人的肯定。

2、九月份

八月末就得知要將整個系統重構,因爲原有未完成的系統跟變動後的用戶需求有太大的出入,而且系統存在比較多的錯誤,難以修復。負責人要求我參與到系統的重構工作中去,參與設計,代碼編寫。這對我來說是一個考驗也是一個機會,於是我選擇了“倉庫管理”子系統,用vb作爲編碼語言。在九月份的開發過程中,有兩個方面的感觸:

第一是技術方面。由於採用了vb編寫代碼,而自身只學了c/c++、還有java。對vb只是一點點了解,另外,對asp dotnet更是一點不通。所以,這個時候需要發揮下自學能力,和領悟能力。在開發過程中印象最深的是web form裏datagrid的操作,以及對整個web form的執行過程。首先,由於倉庫管理絕大部分工作是填寫單據,單據是由單頭和單體組成,單頭記錄基本資訊,單體記錄明細資訊。設計決定在填寫單體時,採用datagrid行內編輯,所以datagrid的行內編輯將是技術的難點。dotnet的datagrid控件有編輯命令與刪除命令,而新增則可以透過一個button點擊來生成一個新行等待編輯。三個操作的代碼清單如下:

‘編輯命令代碼清單

private sub datagrid1_editcommand(byval source as object, byval e as gridcommandeventargs) handles command

if viewstate("add") <> 1 then

itemindex = index ‘將該行的編輯狀態行

bind()

end if

end sub

‘刪除命令代碼清單

private sub datagrid1_command(byval source as object, byval e as gridcommandeventargs) handles and

if viewstate("add") <> 1 then

dim delindex as integer

delindex = cint(s(1))

dim dr as datarow

dr = es("tblbrand")(delindex)‘找到該行在數據集中的編號

dr.()‘將該行在數據集中刪除

te(es("tblbrand"))‘更新數據庫表

itemindex = -1

bind()

end if

end sub

‘新增按扭事件代碼清單

private sub button1_click(byval sender as ct, byval e as targs) handles k

dim dr as datarow

dr = es("tblbrand")ow()‘新增一行,並將該行插入到數據集

es("tblbrand")(dr, es("tblbrand")t)

viewstate("add") = 1

end sub

其實datagrid中有很多很好用的特性,具體請參考msdn。其次,爲實現一次性提交整張單據到數據庫儲存,採用了sqlaadapter與dataset結合,應用sqlaadatper的uapdate方法特性:對dataset 的數據行做檢索,併發操作,update,三個命令,對刪除行做數據庫刪除,更改的數據行做更新,新增的行做插入。最後,在web form的初始到消除整個生命週期也有了較全面的瞭解。但是感覺dotnet中的web form的生命週期中,所發生的事件有些凌亂,例如datagrid每一行的創建和數據綁定都是比較複雜的,在開發中涉及的技術較多,在此不一一闡述。

第二是工作方面。在這個月中,同樣發現了公司的開發工作有較多的問題。首先,人員工作地點變動大,不便於溝通。在開發工作中,由於人員沒有固定工作地點,只是把任務分配了,接着就各自去完成,這樣一來,在各個模組的協調中經常出現了問題,但又不能很及時的和相關模組的負責人商討解決方法,工作效率也就隨之下降。其次,對整個項目的規劃,整個系統的'設計,編碼,測試等工作分工不明確且不統一。在項目開始時,只是草草的分了下模組,接着這個模組的設計、編碼、測試就由這個模組的負責人來做,沒有先對整個項目進行明確的整體的規劃。而且在設計過程中缺少討論,導致設計出來的模組獨立性過高,沒有考慮到公共的接口等問題。最後,對解決問題的速度慢。當在開發的過程中出現了問題,對問題的解決途徑多固然是好,但是,解決方案出現分歧的時候難以敲定具體實施哪個方案,導致進展緩慢,進度延期。

3、十月份

十月份是整個重構活動的收尾階段,該階段需要完成的工作是數據報表的設計與實現。數據報表設計方面,沿用原有的紙質報表的結構,所以整個設計過程相對輕鬆。但是在實現階段,由於在決定採用何種實現方式的決策問題上出現了飄忽不定的狀況,使得進度上又有了少許的延期,最後採用了crystalreports來實現。拋棄了打印分頁控制難的html方法,以及技術不成熟,安全性差的ms sql server reportingservice報表工具。在這個階段,我負責了倉庫管理、銷售管理、採購管理以及生產管理等四個子系統的報表實現,在此期間學會了crystalreports的使用和編程,收益頗多。這次重構活動涉及了數據結構的重構以及代碼的重構,提高了系統的清晰性、擴展性以及重用性。整體性能有了明顯的提升。

六、實習總結:

在這爲期3個月的實習過程中,透過擔任各種工作任務,充分的檢驗了自身所學的知識,瞭解了自身知識結構的不足;透過與接觸其他同事以及自我體驗,較深入地瞭解了軟件開發從業人員生活狀況,以及目前大部分中小型軟件開發企業的經營模式和操作流程。總結如下三點:

1、知識“閱兵式”

大學3年來所學的知識,在這次實習中得到了真正的檢閱,同樣,也暴露了知識結構的不合理性。技術上,學校裏所學的基礎知識表面上看似用不上,但卻是這些基礎知識讓我有很牢固的基礎,學起其他的技術知識自然而然的變得容易,能應對開發過程中所遇到的技術層面的問題。但是在業務上,由於缺乏所涉及的業務的相關課程的開展與自身涉獵知識面不廣,而造成了在業務流程轉換爲系統設計或程序實現的中間環節頻頻出現困惑。軟件工程專業培養的目標是管理或系統規劃與設計,這一類的高層次人才,而不是純粹的編碼人員,所以對相關的業務應當明確、清晰。建議學校開展一些行業縱向討論課題來彌補這個不足。

2、從業人員的生存狀況

大部分從業人員長期生活在一種“精神高壓”的環境中。由於項目控制的難度大,有了進度表跟沒進度表的項目都一樣,員工基本都是天天在趕工。不管是在大型企業的軟件開發從業人員,還是在中小型企業軟件開發從業人員的工作時間一般都不固定。只要手頭上有沒做完的事情就要趕,也有的企業讓這種不固定變成讓員工靈活安排時間的方法:只要手頭上沒東西做,人可以不用擺在辦公室。但是,這種靈活性不是單方面的靈活,而是員工與管理者雙方面的靈活。只要有事做,管理人員隨時都可以叫上程序員一起“奮鬥”。項目驗收交付後,員工纔算有休息一下的機會。這樣一來,人員的積極性、生產效率也隨着項目時間的持續而下降。但是,作爲一個黃金職業,大部分從業人員都願意吃這個苦。

3、中小型軟件企業的經營模式與操作流程

目前,國內大型軟件開發企業數量較少,就規模而言,有關數據表明:90%以上的企業人數不超過100人,人員超過1000人的只有10家,同樣的,企業的盈利水平也普遍低下。在這些中小型的軟件企業中,他們的經營模式與操作的流程也都是大同小異:從經營的模式來講,一般是接或拉定單,按客戶要求制定靈活性強,適應性強的軟件。做自主研發,零售產品的軟件企業極爲少數。從規模到盈利,就好比一家家的裁縫店,而非製衣廠;從操作的流程來講,從項目的規劃到啓動,再到測試驗收交付,其中規劃與測試一般都不充分,從而導致項目風險提高,進度延時以及交付後的產品強壯性差也是中小軟件企業存在的一大問題。

最後,在此感謝公司裏共事的每一位同事,感謝他們在實習期間給我的幫助。