預(yù)算實(shí)習(xí)日記
20xx-2-25
這次實(shí)習(xí)所需的基本知識(shí)基本上都介紹過(guò)了,今天正式轉(zhuǎn)入開發(fā)階段。這次實(shí)習(xí)做的是一個(gè)費(fèi)用管理系統(tǒng),上午開始討論這個(gè)系統(tǒng)需求分析,包括實(shí)現(xiàn)項(xiàng)目預(yù)算,費(fèi)用報(bào)銷,人事管理和一些統(tǒng)計(jì)的功能,老師把整個(gè)系統(tǒng)的框架給我們做了一些大體的講解,希望我們能在接下來(lái)的幾天里去多思考,深化需求分析,細(xì)化功能設(shè)計(jì)。系統(tǒng)有組織結(jié)構(gòu)維護(hù),費(fèi)用項(xiàng)目維護(hù),審批流程維護(hù),報(bào)銷明細(xì)模塊,以及人員管理和一些統(tǒng)計(jì)的功能。每一個(gè)模塊都是對(duì)系統(tǒng)功能模塊的調(diào)整與維護(hù)。
人員管理有添加員工的功能,可以對(duì)添加的人員進(jìn)行修改和刪除,并給新增的員工分配權(quán)限。
Ø 費(fèi)用項(xiàng)目維護(hù)模塊:可以進(jìn)行費(fèi)用項(xiàng)目的添加和提交。
Ø 報(bào)銷模塊可以對(duì)報(bào)銷的項(xiàng)目在未提交之前進(jìn)行刪除和修改。
Ø 統(tǒng)計(jì)模塊主要是統(tǒng)計(jì)員工提交的報(bào)銷單預(yù)算單,及每個(gè)部門的項(xiàng)目信息和員工信息等。
所有這些操作都是直接對(duì)數(shù)據(jù)庫(kù)直接進(jìn)行操作。整個(gè)系統(tǒng)都是分角色登陸,每一個(gè)角色所擁有的權(quán)限都不完全相同,登陸進(jìn)去的菜單欄都有所不同,所以每個(gè)員工都應(yīng)該有一個(gè)角色,即有哪些操作權(quán)限。所有的功能和流程理清楚之后,就要開始原型設(shè)計(jì)了。
20xx-2-26
經(jīng)過(guò)對(duì)需求分析的進(jìn)一步理解,接下來(lái)我們開始這個(gè)項(xiàng)目的原型設(shè)計(jì)。我們所開發(fā)的費(fèi)用管理系統(tǒng)主要包括費(fèi)用報(bào)銷、項(xiàng)目預(yù)算管理、員工管理、公司的項(xiàng)目信息維護(hù)及管理、財(cái)務(wù)處項(xiàng)目信息的統(tǒng)計(jì)功能。圍繞這幾個(gè)功能模塊,我們逐個(gè)對(duì)其功能進(jìn)行細(xì)節(jié)設(shè)計(jì),比如分不同角色登陸系統(tǒng),登陸界面都是通用的,每個(gè)用戶都用自己的編號(hào)進(jìn)行登陸,系統(tǒng)會(huì)根據(jù)用戶的編號(hào)進(jìn)行匹配查找,找到角色I(xiàn)D之后進(jìn)入對(duì)應(yīng)的管理界面。進(jìn)入管理界面之后,就可以新增費(fèi)用報(bào)銷,可以對(duì)添加的費(fèi)用報(bào)銷單在未提交之前進(jìn)行修改、刪除操作,確定之后就可以提交,系統(tǒng)會(huì)根據(jù)session中保存的該用戶的編號(hào)查找到所在的部門,然后把用戶提交的申請(qǐng)表保存到該部門經(jīng)理處,當(dāng)該部門經(jīng)理登陸時(shí)就可以看到部門員工提交的申請(qǐng)表單,然后進(jìn)行審批等操作。所有的邏輯統(tǒng)一之后,我們分工開始做JSP界面和之間的邏輯跳轉(zhuǎn)。經(jīng)過(guò)一天的時(shí)間系統(tǒng)總算有個(gè)雛形了,。設(shè)計(jì)完大體的功能框架后,我們與老師一起開了一個(gè)小組討論會(huì),我們向老師說(shuō)明了我們的想法及大體的開發(fā)方向,老師也想我們提出了一些建議,經(jīng)過(guò)一番熱烈的爭(zhēng)論,我們對(duì)自己的模型做了進(jìn)一步的改動(dòng),功能設(shè)計(jì)也得到進(jìn)一步完善。功能框架的設(shè)計(jì)是整個(gè)開發(fā)階段十分重要的工作,指導(dǎo)小組進(jìn)行后面具體的開發(fā)。功能設(shè)計(jì)的準(zhǔn)確和完善也能夠幫助我們?cè)谝院蟮拈_發(fā)中少走彎路,達(dá)到事半功倍的效果。原型設(shè)計(jì)的完成是我們小組成員齊心協(xié)力共同完成的,這也讓我們感受到了團(tuán)隊(duì)工作的重要性和強(qiáng)大力量。
20xx-2-28 星期一
今天,我們的主要工作是根據(jù)昨天的原型設(shè)計(jì),做出功能展示頁(yè)面,并實(shí)現(xiàn)基本的跳轉(zhuǎn)。由于這些只是一個(gè)邏輯的跳轉(zhuǎn),沒(méi)有真正和數(shù)據(jù)庫(kù)交互,因此幾個(gè)超鏈接就可以把所有界面聯(lián)系到一塊,再加上一些javascript的提示框,原型幫助我們更深入的理解了這個(gè)系統(tǒng)的流程及功能。下午我們就開始了數(shù)據(jù)庫(kù)建表、物理模型的設(shè)計(jì)以及概念設(shè)計(jì)。根據(jù)需求分析及原型,我們很快就確定了系統(tǒng)需要的數(shù)據(jù)表,包括用戶的基本信息、用戶的角色I(xiàn)D、報(bào)銷申請(qǐng)表單、預(yù)算申請(qǐng)表單、部門項(xiàng)目信息等,以及每個(gè)表里面所需的字段,通過(guò)在數(shù)據(jù)庫(kù)中建表,SQL語(yǔ)句的用法更加熟練。根據(jù)這些數(shù)據(jù)表,物理模型也很快就完成了。因?yàn)閿?shù)據(jù)庫(kù)是整個(gè)系統(tǒng)的關(guān)鍵所在,所有前臺(tái)的操作都要和數(shù)據(jù)庫(kù)交互,所以它設(shè)計(jì)的好壞直接影響到之后程序的編寫。接下來(lái)我們繼續(xù)討論我們建立的表的冗余性以及合理性等,在老師的指導(dǎo)下,我們對(duì)部分表進(jìn)行了相應(yīng)的修改。
20xx-3-1
在昨天的基礎(chǔ)上,我們進(jìn)行了再次討論,數(shù)據(jù)庫(kù)的設(shè)計(jì)最終確定下來(lái)。接下來(lái)就開始了編碼,建立整個(gè)系統(tǒng)的框架由我負(fù)責(zé),按照開發(fā)的流程,首先根據(jù)數(shù)據(jù)表建立實(shí)體層,也就是javaBean,然后寫數(shù)據(jù)庫(kù)連接,數(shù)據(jù)訪問(wèn)層,業(yè)務(wù)邏輯層,控制層,整個(gè)框架搭建好之后,有利用老師講的Junit,寫了測(cè)試程序,對(duì)所寫的程序進(jìn)行初步測(cè)試,數(shù)據(jù)庫(kù)連接的測(cè)試順利通過(guò)。數(shù)據(jù)庫(kù)連通之后,下一步工作就是用戶的分角色登陸,事先在數(shù)據(jù)庫(kù)中插入了一些用戶信息,將角色分為五類,然后在數(shù)據(jù)訪問(wèn)層建立一個(gè)DAO類,創(chuàng)建函數(shù)用于從數(shù)據(jù)庫(kù)中讀取用戶的角色I(xiàn)D,然后在業(yè)務(wù)邏輯層判斷DAO層函數(shù)返回的值是否為空,如果不為空則在控制層的servlet類中就可以進(jìn)行判斷分角色登陸;若DAO層函數(shù)返回的值為空,則說(shuō)明該用戶名與密碼有誤,當(dāng)用戶點(diǎn)擊登陸按鈕時(shí)將轉(zhuǎn)到錯(cuò)誤提示的頁(yè)面。當(dāng)這些全部完成之后,我們開始進(jìn)行測(cè)試,但測(cè)試全未能如愿以償。調(diào)試、檢查了很久全未能發(fā)現(xiàn)錯(cuò)在哪里。今天沒(méi)能順利完成計(jì)劃好的任務(wù),深受打擊啊,不過(guò)沒(méi)關(guān)系,遇到問(wèn)題,解決問(wèn)題,也許會(huì)學(xué)到跟多知識(shí)。
20xx-3-2
上午接著做昨天未能完成的任務(wù),調(diào)試了兩個(gè)多小時(shí)還是未能所獲,只有請(qǐng)教老師了,看著老師在Debug模式下很快就找了出錯(cuò)的地方,原來(lái)在DAO層寫SQL語(yǔ)句時(shí)后面多了一個(gè)逗號(hào),看來(lái)編程也是需要非常的細(xì)心。總結(jié)了失敗的原因,記住教訓(xùn),一定不能再出現(xiàn)這樣的低級(jí)錯(cuò)誤,而導(dǎo)致降低效率。這一步總算通過(guò)之后,我們開始著手不同角色所擁有的操作權(quán)限,比如普通員工只有報(bào)銷申請(qǐng)的權(quán)限(新增報(bào)銷單、刪除、修改、提交、查看等功能),部門經(jīng)理不僅有報(bào)銷申請(qǐng)的權(quán)限,還有審核部門員工提交的報(bào)銷申請(qǐng)單和預(yù)算申請(qǐng)、部門項(xiàng)目管理等權(quán)限,每一種角色登陸到操作界面的功能按鈕不盡相同,所以當(dāng)普通角色登陸后,審核、預(yù)算等按鈕必須隱藏或者不可用。但是我們之前的界面里的按鈕實(shí)現(xiàn)隱藏與子菜單都很難實(shí)現(xiàn),所以不得不考慮改變策略。之后經(jīng)過(guò)討論我們將整個(gè)頁(yè)面布局改變?yōu)榭蚣苣J剑筮咃@示樹形菜單,top'Frame顯示LOGO,mainFrame顯示主顯示頁(yè)面,bottomFrame顯示版權(quán)信息以及系統(tǒng)時(shí)間。這樣我們貌似又回到了原型設(shè)計(jì),,還是沒(méi)有項(xiàng)目經(jīng)驗(yàn),最初就沒(méi)有考慮清除。
20xx-3-3
涉及到的JSP界面還比較多,每一個(gè)頁(yè)面都是用HTML一句一句寫出來(lái),再加上CSS樣式,所以半天的時(shí)間也沒(méi)有完成,今天上午繼續(xù)完成。當(dāng)所有的界面完成之后,開始了第一個(gè)功能模塊的編碼。當(dāng)用戶登陸到自己的主頁(yè)時(shí),顯示的都是歡迎界面,當(dāng)用戶點(diǎn)擊報(bào)銷單管理時(shí),必須根據(jù)用戶編號(hào)動(dòng)態(tài)的從數(shù)據(jù)庫(kù)中提取其所有的報(bào)銷單信息,然后顯示在展示界面上,用戶的編號(hào)的、是在用戶登陸時(shí)將用戶編號(hào)存儲(chǔ)在session中,默認(rèn)該用戶登陸系統(tǒng)30分鐘內(nèi)沒(méi)有操作的話,自動(dòng)讓該用戶注銷登陸。當(dāng)點(diǎn)擊報(bào)銷單管理按鈕時(shí),將用戶請(qǐng)求轉(zhuǎn)到servlet類中進(jìn)行后臺(tái)處理,讀取成功后,將這些信息傳到用戶的界面上,第一個(gè)原子功能實(shí)現(xiàn)后,我們更加有信心來(lái)完成其他模塊的編碼。原來(lái)一個(gè)真正的系統(tǒng)也應(yīng)該是這樣的原子操作組合而成的,從這一步的成功點(diǎn)燃了我們對(duì)編碼的興趣,不再畏懼和逃避。
【預(yù)算實(shí)習(xí)日記】相關(guān)文章:
預(yù)算員實(shí)習(xí)日記06-27
預(yù)算員實(shí)習(xí)日記12-13