版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
-PAGE34-固定資產管理系統(tǒng)摘要隨著計算機信息技術的發(fā)展以及對資產、設備的管理科學化、合理化的高要求,利用計算機實現設備及資產的信息化管理已經顯得非常重要。固定資產管理系統(tǒng)是一個單位不可缺少的部分。但一直以來人們使用傳統(tǒng)的人工方式管理固定資產的信息,這種管理方式存在著許多缺點,這對于查找、更新和維護都帶來了不小的困難。因此,開發(fā)一個界面友好,易操作的資產管理軟件進行自動化管理變得十分重要。這正是本系統(tǒng)開發(fā)的目的和意義。本文所闡述的固定資產管理系統(tǒng),以瀏覽器/服務器模式高效地實現了固定資產管理的各項功能,可進行資產的添加,刪除、修改、查詢、打印報表等功能;還可以對每位職工的添加、刪除、修改、查詢基本操作;本系統(tǒng)還對權限進行限制,操作員只可對資產和用戶進行基本操作,管理員可以為每位員工賦權限。使用本系統(tǒng),不僅提升了效率,而且滿足現代高校資產管理的需要。關鍵詞:資產管理JSPStrutsHibernateSpringFixed-assetsManagerSystemAbstractWiththedevelopmentofcomputerinformationtechnologyandthehighdemandofscientificmanagementandrationalizationofassetsandequipment,usingcomputertoachievetheinformationmanagementofequipmentandassetshasbecomeveryimportant.Fixedassetsmanagementsystemisanindispensablepartofaunit,However,wehavebeenusingthetraditionalmanualtomanagetheinformationoffixedassets,andtherearemanyshortcomingsofthisapproach,whichhasbroughtalotofdifficultiestofindandupdateandmaintenance.Therefore,todevelopaassetmanagementsoftwarewithfriendlyinterfaceandeasyoperationtocarryoutautomatedmanagementbecomeveryimportant.Thisisthepurposeandsignificanceofthedevelopmentofthesystem.Thefixedassetmanagementsystemdecriedinthisarticleachievesfunctionsofefficientmanagementoffixedassetsusingbrowser/servermodel.Inthissystem,wecanusethefunctionofassetsadd,deleteeditsandinquiry,statementsprintingandsoon;wecanalsousethebasicoperationofworkersadd,delete,modifyandcheck.Thesystemalsolimittheauthoritysothatoperatorscanonlydosomebasicoperationstousersandassetsandtheadministratorgivepermissionstoeveryemployee.Withthehelpofthissystem,theuniversitynotonlyenhancestheefficiencybutalsomeetstheneedsofmodernmanagementofasset.Keywords:Fixed-assetsJSPStrutsHibernateSpring目錄TOC\o"1-3"\h\z固定資產管理系統(tǒng) I摘要 IAbstract II前言 V第1章緒論 11.1項目背景 11.2項目設計原則 11.2.1實用性原則 11.2.2經濟性原則 11.2.3擴充性原則 21.2.4社會可行性原則 21.3本章小結 2第2章系統(tǒng)分析 32.1需求分析 32.2技術可行性 32.2.1動態(tài)網站技術介紹 32.2.2程序語言的選擇 32.3軟件可行性分析 42.3.1軟件環(huán)境 42.3.2硬件環(huán)境 72.4系統(tǒng)結構可行性分析 72.4.1B/S模式簡介 72.4.2B/S模式的優(yōu)點 82.5本章小結 8第3章關鍵技術 93.1開發(fā)架構 93.1.1軟件開發(fā)架構的意義 93.1.2Struts架構簡介 93.2數據持久層 113.2.1持久層主流方案 113.2.2持久層主流方案 123.2.3持久化技術 123.3本章小結 13第4章總體設計 144.1總體設計 144.2數據庫設計 154.2.1數據庫的需求分析 154.2.2數據庫表的具體設計 154.3詳細設計 174.3.1功能設計 174.3.2系統(tǒng)登陸 184.3.3系統(tǒng)用戶管理 204.3.4員工信息管理 234.3.5資產入庫管理 244.3.6資產維護管理 284.3.7資產借還管理 294.3.8打印報表 314.3.9密碼修改 344.4技術難點 344.4.1中文亂碼 344.4.2圖片處理 344.4.3HQL語言 354.4.4安全性 354.5本章小結 36第5章系統(tǒng)測試 375.1測試的定義及目的 375.2測試的原則 375.3系統(tǒng)的方法 375.3.1界面測試 375.3.2功能測試 385.3.3需求測試 385.3.4性能測試 385.4系統(tǒng)中其它要注意的地方 385.5固定資產管理系統(tǒng)的測試 395.6本章小結 39結論 40致謝 41參考文獻 42前言隨著社會經濟的迅速發(fā)展和科學技術的全面進步,計算機事業(yè)的飛速發(fā)展,以計算機與通信技術為基礎的信息系統(tǒng)正處于蓬勃發(fā)展的時期。隨著企業(yè)的發(fā)展,企業(yè)的規(guī)模也逐漸發(fā)生變化,其管理難度也越來越大,如何優(yōu)化企業(yè)設備、資產的日常管理也就成為了一個大眾化的課題。如何更好的提高生產效率,相關的企業(yè)資產管理系統(tǒng)的研發(fā)在社會中越來越受到重視。固定資產已成為公司管理中不可或缺的一部分,在許多國家得到了廣泛的研究與應用??偟恼f來,固定資產管理系統(tǒng)就是通過集中固定資產信息,對公司的資產進行調控。實現固定資產管理系統(tǒng)現代化的根本途徑是信息化、系統(tǒng)化。作為計算機應用的一部分,使用計算機對固定資產進行管理,具有手工管理所無法比擬的優(yōu)點。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高固定資產管理的效率,也是科學化、正規(guī)化管理的重要條件。固定資產管理系統(tǒng)通過采集固定資產日常工作中所產生的各種原始數據,根據資產管理的要求,對數據進行分類、統(tǒng)計、匯總、分析,建立程序化、制度化、規(guī)范化的固定資產計算機軟件管理系統(tǒng),包括了固定資產的一般特性、固定資產狀態(tài)數據和固定資產能力數據,及時準確地報出各種報表,為固定資產管理提供了一個現代化的管理手段,這一手段可以強化和規(guī)范對固定資產的管理。便于計劃、財務、審計等管理部門的介入,形成嚴格的監(jiān)督、約束機制。緒論項目背景隨著我國高等教育事業(yè)的迅猛發(fā)展,高等學校使用的固定資產規(guī)模在急速增長,使其日趨復雜,管理難度越來越大。尤其是隨著校際間的合并與調整、學校內部推行的后勤、財務、人事、分配等各項改革的深化,對高等學校的固定資產管理工作不斷提出新要求。但是,多年來固定資產管理工作一直是高校管理的一個薄弱環(huán)節(jié),管理基礎工作不夠規(guī)范,資產安全控制體系尚不完善,家底不清、帳實不符、資產流失的現象在不少的學校依然存在,與高等教育發(fā)展改革的新形勢很不適應。近幾年來,為加強固定資產管理工作,國內一些地區(qū)和學校進行了有益的探索,開發(fā)管理軟件,開始使用計算機管理教學儀器、設備等,技術上有了一定的進步。但總的看來,這些軟件實現的往往是對原來手工勞動的簡單替代,完成的僅僅是單一業(yè)務和專門用途資產的管理,未能從根本上改變高校固定資產管理被動、滯后的局面。因此,必須以有力支撐高等教育發(fā)展改革的高度出發(fā),對固定資產管理工作進行系統(tǒng)的規(guī)劃和建設,運用現代信息技術真正實現管理水平上的飛躍。本系統(tǒng)就是基于此種社會背景進行獨立開發(fā),解決了以往資產管理中存在的普遍問題,如資產的錄入、刪除等模糊不清,數據來去不透明,致使資產無據可查。本系統(tǒng)不僅實現了通過簡單操作完成繁瑣的資產管理功能,而且將每筆資產的動態(tài)信息進行數據記錄,里面有資產、相關操作人員和時間的記錄,使得所有資產都有據可查、透明可見,提高資產管理效率,解決以往資產管理弊端。項目設計原則實用性原則固定資產管理是企業(yè)管理中的一個重要組成部分,其管理具有數量大、種類多、價值高、使用周期長、使用地點分散等特點,管理難度比較大。很多單位目前仍采用人工記賬的管理方式,因為以上原因使得管理工作異常艱難,導致資產流失和重復購置等問題,所以迫切的需要一款實用的管理軟件的出現。充分考慮到在固定資產管理中可能遇到的種種問題,系統(tǒng)主要應該包括資產管理中的日常管理,從而實現對資產的全方位監(jiān)控管理。從實用性來分析。系統(tǒng)已實際需求為基礎,盡量全面的做好需求分析,解決固定資產中的種種普遍問題,以減少日后更新軟件的次數。經濟性原則系統(tǒng)開發(fā)需要進行多方面的考慮,不僅要從使用性和擴充性考慮,還需要從適當的經濟角度分析。首先,進行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項目是否值得投資開發(fā),這些即為經濟可行性研究的內容。對于大多數系統(tǒng),一般衡量經濟上是否合算,應考慮一個底線。其次,經濟可行性研究范圍比較廣,包括成本—效益分析、公司的長期經營策略、開發(fā)所需的成本和資源、潛在的市場前景。本系統(tǒng)建立適合高校自身需求的網絡平臺,提供廣泛的涵蓋資產管理多種需求的功能,數據處理方式靈活,滿足需求,節(jié)省網站建設成本,并確保其較好的拓展性和開放性;同時網站具有基于WEB界面的管理后臺,能夠自主的對網站中的內容作更新、修改操作,節(jié)省了高校網站的運營成本,提高了信息更新、傳播效率。擴充性原則網站的整體規(guī)劃及框架設計是具可擴充性的。首先前臺頁面的設計能保證網站在增加欄目后不會破壞網站的整體結構。以此方便后期維護升級,不僅減少經濟開支,并且大大提高了解決實際問題的效率,所以本系統(tǒng)具有很高的實際應用價值。其次后臺數據庫的設計具有高度的擴充性,能夠根據需要對資產、員工的增、減、改、查,從而完成對資產設備的大批量錄入或者刪除及修改等相關操作,對員工表亦可如此操作,達到了根據實際需求實現操作并完成提高升級性能和高度擴充的目的。社會可行性原則研究要開發(fā)的項目是否存在任何侵犯、妨礙等責任問題,要開發(fā)項目的運行方式在用戶組織內是否行的通,現有管理制度、人員素質和操作方式是否可行,這些即為社會可行性研究的內容。社會可行性所涉及的范圍也比較廣,它包括合同、責任、侵權、用戶組織的管理模式及規(guī)范,其他一些技術人員常常不了解的陷阱等。本項目根據實際需求開發(fā),能夠完成資產的基本管理應用,具有一定的上線應用價值。因為本平臺是個人自主開發(fā)的,所以不存在侵權、管理制度、組織管理等問題,這個平臺的社會可行性是可行的。本章小結本章主要介紹固定資產的管理在過去有很大的弊端,急需一個系統(tǒng)高效的管理系統(tǒng)。并且以實際角度出發(fā),根據固定資產具有的相關特點對項目進行實用性、經濟性、擴充性和社會可行性等多方面做到深層次的分析,達到管理容易、更新信息方便、操作簡便、信息透明化等目的,從而解決以往存在的問題。系統(tǒng)分析需求分析設備不僅是高校固定資產的重要組成部分,也是一個高校技術裝備水平的重要標志,賴以正常經營和參與市場競爭的物質技術基礎。根據高校的實際需求本系統(tǒng)具有以下的功能需求:統(tǒng)一、友好的操作界面,能保證系統(tǒng)的易用性。完善的資產及設備檔案管理,支持資產及設備信息的增加、刪除、修改、查詢等基本管理模塊。軟件同時提供了資產及設備的借出、歸還管理,資產及設備的維修管理。軟件提供了多功能查詢,有多種查詢條件可以任意選擇,方便信息的匯總。連續(xù)錄入式的應用增添及維護管理,用戶的權限、密碼修改設置。技術可行性動態(tài)網站技術介紹Internet起源于20世紀60年代的美國,它在近幾年迅速風靡全球,其根本原因不僅在于它擁有卓越的國際通信功能,更在于它擁有巨大的信息資源。所謂的Internet是指由分布在全世界成千上萬的計算機網絡遵循一定的通訊協(xié)議,并相互聯(lián)系在一起而形成的國際互連網絡,也就是說,Internet是建立和使用這些網絡的人群、群體、公司以及各種網絡資源的集合體。隨著網絡技術的不斷發(fā)展,單純的靜態(tài)頁面已經不能滿足發(fā)展的需要,因為靜態(tài)頁面是用單純的HTML語言組成的,它沒有交互性.因此,為了滿足實際的需要,許多網頁文件擴展名不再只是“htm”、“html”,出現了以“php”、“asp”、“jsp”、“shtml”等為后綴的網頁文件,這些都是采用動態(tài)網頁技術制作出來的。程序語言的選擇CGICGI(CommonGatewayInterface,通用網關接口)。首先,客戶端(即Web瀏覽器)根據某資源的URL(UniformResourceLocator,統(tǒng)一資源定位器)向Web服務器提出請求,Web服務器的HTTPDaemon(守護進程)將此請求的參數通過標準輸入stdin和環(huán)境變量傳遞給指定的CGI程序,并啟動此應用程序進行處理,如要存取數據庫服務器上數據庫的數據,則向數據庫服務器發(fā)出處理請求,數據庫服務器將執(zhí)行結果返回給CGI程序,CGI程序處理結果通過標準輸出stdout返回給HTTPDaemon進程,再由HTTPDaemon進程返回給客戶端,由瀏覽器解釋執(zhí)行,將最終結果在用戶面前顯示。CGI允許Web服務器運行外部應用程序,以通過外部程序來訪問數據庫等一些外部資源,并產生HTML文檔給瀏覽器。但每次請求CGI程序都要重新啟動程序,影響了響應的速度,且CGI程序不能被多個客戶請求共享,影響了各種資源的使用效率。為了克服CGI的這些缺點,一些Web服務器廠商開發(fā)出了專用的API(ApplicationsProgramInterface應用程序接口),這樣就允許程序員編寫程序來擴展服務器的功能。API相對于CGI與Web服務器的結合更加緊密,占用的資源較少,運行的效率大有提高,安全性與保護性更好。但是開發(fā)API應用程序比開發(fā)CGI應用程序復雜得多,要求程序員掌握更多的計算機軟件知識,且各種API之間的兼容性不好,業(yè)界沒有一個統(tǒng)一的標準,使得API程序只能工作在專用的Web服務器與操作系統(tǒng)之上。編寫CGI的程序設計語言有許多種,常用的有C,PERL,VisualC++等,由于對程序員的要求較高,且編寫與調試比其它隊編程技術困難,故近年來基于B/S的信息系統(tǒng)工程時間中已很少被采用。JSPJSP(JavaServerPages)是由Sun公司倡導,許多別的公司參與一起創(chuàng)建的一種新動態(tài)網頁技術標準,類似其他技術標準。在傳統(tǒng)的網頁HTML文件(*.htm,*.html)中加入Java程序片斷(Scriptlet)和JSP標簽,構成了JSP網頁(*.jsp)Servlet/JSPContainer收到客戶端發(fā)出的請求時,首先執(zhí)行其中的程序片斷,然后將執(zhí)行結果以HTML格式響應給客戶端,其中程序片斷可以是:操作數據庫,重新定向網頁以及發(fā)送E-Mail等等,這些都是建立動態(tài)網站所需要的功能。所有程序操作都在服務器端運行,網絡上傳送給客戶端的僅是得到的結果,與客戶端的瀏覽器無關,因此,JSP被稱為Server-sideLanguage,所以被許多人認為是未來最有發(fā)展前途的動態(tài)網站技術之一。經過如上的程序語言的比較,PHP功能相對簡單,不適合作大程序,而CGI效率相對較低,所以也不考慮,因為該系統(tǒng)并沒有原有的基礎平臺需要擴展,也不需要與其他系統(tǒng)進行太多的交互,所以使用J2EE的模式并不能夠體現出J2EE本身的優(yōu)勢,而JSP又是J2EE的核心技術之一,可以隨時升級為J2EE程序,這里暫時不考慮采用J2EE,這樣只需要在ASP和JSP中進行選擇.在進行了諸多因素的比較之后,最終認為目前這個階段比較合適的是JSP,而選擇Struts架構作為開發(fā)的主體框架,選用Hibernate作為數據持續(xù)性處理層,則是考慮到了其高速的開發(fā)效率,及代碼重用性高,易于維護等各種優(yōu)勢。其最終目的是希望提高系統(tǒng)底層業(yè)務邏輯的可重用性,增加系統(tǒng)的可擴展性,降低系統(tǒng)維護成本。軟件可行性分析軟件環(huán)境開發(fā)一個固定資產管理系統(tǒng)需相應的前段開發(fā)工具和數據管理系統(tǒng),還需要一個服務器等。本系統(tǒng)根據Struts+Spring+Hibernate組合結構設計而成,利用Hibernate進行持久層開發(fā),Struts進行業(yè)務邏輯控制,利用Spring進行Bean的管理,依賴注入。MVC模式貫穿了整個設計流程,Model層的使用spring的核心技術IOC控制依賴注入對調用者和被調用者幾乎沒有任何要求,完全支持對POJO之間的依賴關系管理,如此減少代碼冗余,View層主要運用Ajax無刷新提交,充分增加了客戶體驗,JSTL的應用使各個層之間的聯(lián)系更加容易,JavaScript進行多種頁面的驗證,判斷是否符合邏輯要求,若不符合驗證需要重新填寫,為后臺服務器節(jié)省資源,已達到提高效率減輕服務器壓力,繼承使得我們可以對持久層的對象進行抽象,方便理解易于管理,可以簡化創(chuàng)建用戶界面的過程。Controller層中的action主要負責接受HTTP請求信息,可以接管用戶請求并對異常進行處理。根據配置文件struts-config.xml的配置信息,把請求轉發(fā)給合適的Action對象。Action類負責調用模型的方法,更新模型的狀態(tài),并幫助控制應用程序的流程。本文開發(fā)的固定資產管理系統(tǒng)所需要的環(huán)境如下:開發(fā)工具:Myeclipse8.0,PowerDesigner12.5,RationalRose數據庫:MySQL5.1Web服務器:Tomcat6.0操作系統(tǒng):Windows7外部包:Struts.jar,Hibernate.jar,JavaReport-V3-Enterprise-Released.jar服務器端開發(fā)工具MyEclipse企業(yè)級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴展,利用它我們可以在數據庫和JavaEE的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大地提高了工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調試、測試和發(fā)布功能,完整支持HTML、Struts、JSF、CSS。JavaScript、SQL、Hibernate。本系統(tǒng)利用現在JAVAEE開發(fā)的主流工具MyEclipse進行開發(fā),它不僅是一個開源軟件,而且是一個基于Java的可擴展開發(fā)平臺。MyEclipse的功能十分強大,支持也十分廣泛,尤其是對各種開元產品的支持十分不錯。數據庫MySQL是最受歡迎的開源SQL數據庫管理系統(tǒng),它由MySQLAB開發(fā)、發(fā)布和支持。它是一個快速的、多線程、多用戶和健壯的SQL數據庫服務器,服務器支持關鍵任務、重負載生產系統(tǒng)的使用,也可以將它嵌入到一個大配置(mass-deployed)的軟件中去,一個數據庫是一個結構化的數據集合,如果要添加、訪問和處理存儲在一個計算機數據庫中的數據,就需要一個像MySQL這樣的數據庫管理系統(tǒng)。從計算機可以很好的處理大量的數據以來,數據庫管理系統(tǒng)就在計算機處理中和獨立應用程序或其他部分應用程序一樣扮演著一個重要的角色。MySQL服務器就是這樣一個快的、可靠的和易于使用的數據庫服務器,它的連接性、速度和安全性使MySQL非常適合訪問在Internet上的數據庫。Web服務器Tomcat不僅僅是一個Servlet容器,它也具有傳統(tǒng)的Web服務器的功能:處理Html頁面?;赥omcat的開發(fā)其實主要是Jsp和Servlet的開發(fā),開發(fā)Jsp和Servlet非常簡單,可以用普通的文本編輯器或者IDE,然后將其打包成WAR即可,和傳統(tǒng)的桌面應用程式不同,Tomcat中的應用程式是個WAR(WebArchive)文件,WAR是Sun提出的一種Web應用程式格式,和JAR類似,也是許多文件的一個壓縮包。這個包中的文件按一定目錄結構來組織:通常其根目錄下包含有Html和Jsp文件或包含這兩種文件的目錄,另外還會有一個WEB-INF目錄,這個目錄非常重要。通常在WEB-INF目錄下有一個web.xml文件和一個classes目錄,web.xml是這個應用的設置文件,而classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其他類(如JavaBean)。通常這些所依賴的類也能打包成JAR放到WEB-INF下的lib目錄下進行統(tǒng)一管理。在Tomcat4以后的高級版本中可以利用Servlet2.3提供的事件監(jiān)聽器功能,來對系統(tǒng)的應用或者Session實行監(jiān)聽。Tomcat也提供其它的一些特征,如與SSL集成到一塊,實現安全傳輸。還有Tomcat也提供JNDI支持,這與那些J2EE應用服務器提供的是一致的。開發(fā)語言Java是一種跨平臺,適合于分布式計算環(huán)境的面向對象編程語言。具體來說,它具有如下特性:面向對象、多態(tài)性、分布式、可靠、安全、多線程等如下:面向對象:面向對象其實是現實世界模型的自然延伸?,F實世界中任何實體都可以看作是對象。對象之間通過消息相互作用。另外,現實世界中任何實體都可歸屬于某類事物,任何對象都是某一類事物的實例。如果說傳統(tǒng)的過程式編程語言是以過程為中心以算法為驅動的話,面向對象的編程語言則是以對象為中心以消息為驅動。用公式表示,過程式編程語言為:程序=算法+數據;面向對象編程語言為:程序=對象+消息。所有面向對象編程語言都支持三個概念:封裝、多態(tài)性和繼承,Java也不例外?,F實世界中的對象均有屬性和行為,映射到計算機程序上,屬性則表示對象的數據,行為表示對象的方法(其作用是處理數據或同外界交互)。所謂封裝,就是用一個自主式框架把對象的數據和方法聯(lián)在一起形成一個整體??梢哉f,對象是支持封裝的手段,是封裝的基本單位。Java語言的封裝性較強,因為Java無全程變量,無主函數,在Java中絕大部分成員是對象,只有簡單的數字類型、字符類型和布爾類型除外。而對于這些類型,Java也提供了相應的對象類型以便與其他對象交互操作。多態(tài)性:就是多種表現形式,具體來說,可以用“一個對外接口,多個內在實現方法”表示。舉一個例子,計算機中的堆??梢源鎯Ω鞣N格式的數據,包括整型,浮點或字符。不管存儲的是何種數據,堆棧的算法實現是一樣的。針對不同的數據類型,編程人員不必手工選擇,只需使用統(tǒng)一接口名,系統(tǒng)可自動選擇。運算符重載(operatoroverload)一直被認為是一種優(yōu)秀的多態(tài)機制體現,但由于考慮到它會使程序變得難以理解,所以Java最后還是把它取消了。繼承是指一個對象直接使用另一對象的屬性和方法。事實上,我們遇到的很多實體都有繼承的含義。例如,若把汽車看成一個實體,它可以分成多個子實體,如:卡車、公共汽車等。這些子實體都具有汽車的特性,因此,汽車是它們的“父親”,而這些子實體則是汽車的“孩子”。Java提供給用戶一系列類(class),Java的類有層次結構,子類可以繼承父類的屬性和方法。與另外一些面向對象編程語言不同,Java只支持單一繼承。平臺無關性:Java是平臺無關的語言是指用Java寫的應用程序不用修改就可在不同的軟硬件平臺上運行。平臺無關有兩種:源代碼級和目標代碼級。C和C++具有一定程度的源代碼級平臺無關,表明用C或C++寫的應用程序不用修改只需重新編譯就可以在不同平臺上運行。Java主要靠Java虛擬機(JVM)在目標碼級實現平臺無關性。JVM是一種抽象機器,它附著在具體操作系統(tǒng)之上,本身具有一套虛機器指令,并有自己的棧、寄存器組等。但JVM通常是在軟件上而不是在硬件上實現。(目前,SUN系統(tǒng)公司已經設計實現了Java芯片,主要使用在網絡計算機NC上。另外,Java芯片的出現也會使Java更容易嵌入到家用電器中。)JVM是Java平臺無關的基礎,在JVM上,有一個Java解釋器用來解釋Java編譯器編譯后的程序。Java編程人員在編寫完軟件后,通過Java編譯器將Java源程序編譯為JVM的字節(jié)代碼。任何一臺機器只要配備了Java解釋器,就可以運行這個程序,而不管這種字節(jié)碼是在何種平臺上生成的。另外,Java采用的是基于IEEE標準的數據類型。通過JVM保證數據類型的一致性,也確保了Java的平臺無關性。Java的平臺無關性具有深遠意義。首先,它使得編程人員所夢寐以求的事情(開發(fā)一次軟件在任意平臺上運行)變成事實,這將大大加快和促進軟件產品的開發(fā)。其次Java的平臺無關性正好迎合了“網絡計算機”思想。如果大量常用的應用軟件(如字處理軟件等)都用Java重新編寫,并且放在某個Internet服務器上,那么具有NC的用戶將不需要占用大量空間安裝軟件,他們只需要一個Java解釋器,每當需要使用某種應用軟件時,下載該軟件的字節(jié)代碼即可,運行結果也可以發(fā)回服務器。目前,已有數家公司開始使用這種新型的計算模式構筑自己的企業(yè)信息系統(tǒng)。分布式:分布式包括數據分布和操作分布。數據分布是指數據可以分散在網絡的不同主機上,操作分布是指把一個計算分散在不同主機上處理。Java支持WWW客戶機/服務器計算模式,因此,它支持這兩種分布性。對于前者,Java提供了一個叫做URL的對象,利用這個對象,你可以打開并訪問具有相同URL地址上的對象,訪問方式與訪問本地文件系統(tǒng)相同。對于后者,Java的applet小程序可以從服務器下載到客戶端,即部分計算在客戶端進行,提高系統(tǒng)執(zhí)行效率。Java提供了一整套網絡類庫,開發(fā)人員可以利用類庫進行網絡程序設計,方便得實現Java的分布式特性??煽啃院桶踩裕篔ava最初設計目的是應用于電子類消費產品,因此要求較高的可靠性。Java雖然源于C++,但它消除了許多C++不可靠因素,可以防止許多編程錯誤。首先,Java是強類型的語言,要求顯式的方法聲明,這保證了編譯器可以發(fā)現方法調用錯誤,保證程序更加可靠;其次,Java不支持指針,這杜絕了內存的非法訪問;第三,Java的自動單元收集防止了內存丟失等動態(tài)內存分配導致的問題;第四,Java解釋器運行時實施檢查,可以發(fā)現數組和字符串訪問的越界,最后,Java提供了異常處理機制,程序員可以把一組錯誤代碼放在一個地方,這樣可以簡化錯誤處理任務便于恢復。由于Java主要用于網絡應用程序開發(fā),因此對安全性有較高的要求。如果沒有安全保證,用戶從網絡下載程序執(zhí)行就非常危險。Java通過自己的安全機制防止了病毒程序的產生和下載程序對本地系統(tǒng)的威脅破壞。當Java字節(jié)碼進入解釋器時,首先必須經過字節(jié)碼校驗器的檢查,然后,Java解釋器將決定程序中類的內存布局,隨后,類裝載器負責把來自網絡的類裝載到單獨的內存區(qū)域,避免應用程序之間相互干擾破壞。最后,客戶端用戶還可以限制從網絡上裝載的類只能訪問某些文件系統(tǒng)。上述幾種機制結合起來,使得Java成為安全的編程語言。多線程:線程是操作系統(tǒng)的一種新概念,它又被稱作輕量進程,是比傳統(tǒng)進程更小的可并發(fā)執(zhí)行的單位。C和C++采用單線程體系結構,而Java卻提供了多線程支持。Java在兩方面支持多線程。一方面,Java環(huán)境本身就是多線程的。若干個系統(tǒng)線程運行負責必要的無用單元回收,系統(tǒng)維護等系統(tǒng)級操作;另一方面,Java語言內置多線程控制,可以大大簡化多線程應用程序開發(fā)。Java提供了一個類Thread,由它負責啟動運行,終止線程,并可檢查線程狀態(tài)。Java的線程還包括一組同步原語。這些原語負責對線程實行并發(fā)控制。利用Java的多線程編程接口,開發(fā)人員可以方便得寫出支持多線程的應用程序,提高程序執(zhí)行效率。必須注意地是,Java的多線程支持在一定程度上受運行時支持平臺的限制。例如,如果操作系統(tǒng)本身不支持多線程,Java的多線程特性可能就表現不出來。客戶端客戶端由于不涉及到系統(tǒng)的開發(fā)和維護等問題,因此可以不用安裝過多的軟件,只要能夠實現對服務器端的訪問就可以,一般來說普通PC機即可。硬件環(huán)境服務器端服務器端的配置是有建立站點所需的硬件來決定的。在最低配置下,服務器雖然能正常工作,但其性能往往不盡如人意,如果我們想使服務器工作的更好的話,我們需要更好的配置,特別是服務器的內存應該大于2G,下面為服務器的最低配置:處理器:雙核2.1GHz內存:2GB顯卡:SVGA顯示適配器光驅:安裝系統(tǒng)及相關軟件網卡:PCI和ISA接口均可客戶端客戶端主要用于瀏覽系統(tǒng)界面、同web數據庫進行數據交互等基本操作,因此客戶端對硬件要求不高,主要由所安裝的Windows的要求來決定。但若期望性能更好,需要的配置應該高于以下配置:處理器:雙核2.1GHz內存:2GB硬盤:320G顯卡:SVGA顯示適配器網卡:PCI和ISA接口均可系統(tǒng)結構可行性分析B/S模式簡介本系統(tǒng)采用B/S模式B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,但是主要事務邏輯在服務器端(Server)實現,形成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術看,局域網建立B/S結構的網絡應用,并通過Internet/Intranet模式下數據庫應用,相對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實現不同的人員,從不同的地點,以不同的接入方式(比如LAN、WAN、Internet/Intranet等)訪問和操作共同的數據庫;它能有效地保護數據平臺和管理訪問權限,服務器數據庫也很安全。特別是在JAVA這樣的跨平臺語言出現之后,B/S架構管理軟件更是方便、快捷、高效。B/S模式的優(yōu)點維護和升級方式簡單目前,軟件系統(tǒng)的改進和升級越來越頻繁,B/S架構的產品明顯體現著更為方便的特性。對一個稍微大一點的單位來說,系統(tǒng)管理員如果需要在幾百甚至上千部電腦之間來回奔跑,效率和工作量是可想而知的,但B/S架構的軟件只需要管理服務器就行了,所有的客戶端只是瀏覽器,根本不需要做任何的維護。無論用戶的規(guī)模有多大,有多少分支機構都不會增加任何維護升級的工作量,所有的操作只需要針對服務器進行就可以;如果是異地,只需要把服務器連接專網即可,實現遠程維護、升級和共享。所以客戶機越來越“瘦”,而服務器越來越“胖”是將來信息化發(fā)展的主流方向。今后,軟件升級和維護會越來越容易,而使用起來會越來越簡單,這對用戶人力、物力、時間、費用的節(jié)省是顯而易見的驚人。因此,維護和升級革命的方式是“瘦”客戶機,“胖”服務器。成本降低,選擇更多大家都知道windows操作系統(tǒng)在平常應用上幾乎一統(tǒng)天下,瀏覽器成為了標準配置,但在服務器操作系統(tǒng)上windows并不是處于絕對的統(tǒng)治地位。現在的趨勢是凡使用B/S架構的應用管理軟件,只需安裝在Linux服務器上即可,而且安全性高。所以服務器操作系統(tǒng)的選擇是很多的,不管選用哪種操作系統(tǒng)都可以讓大部分人使用windows作為桌面操作系統(tǒng),電腦不受影響,這就使得最流行免費的Linux操作系統(tǒng)快速發(fā)展起來,Linux除了操作系統(tǒng)是免費的以外,連數據庫也是免費的,這種選擇非常盛行。比如說很多人每天上“網易”網,只要安裝了瀏覽器就可以了,并不需要了解“網易”的服務器用的是什么操作系統(tǒng),而事實上大部分網站確實沒有使用windows操作系統(tǒng),但用戶的電腦本身安裝的大部分是windows操作系統(tǒng)。本章小結本章節(jié)首先對項目所要實現的功能進行分析,應主要包含對資產的錄入、銷毀、維修、借入借出和多功能查詢,和對相關工作人員的管理和權限的分配。然后介紹一下本系統(tǒng)所涉及到的技術知識,及對系統(tǒng)所需要的軟硬件環(huán)境進行說明。最后闡述為何會選擇B/S結構和諸多好處。關鍵技術開發(fā)架構軟件開發(fā)架構的意義對于已經習慣了使用傳統(tǒng)的JSP設計方式實現動態(tài)網站的程序員,在剛開始接觸Struts時經常會出現一種困惑:專業(yè)書籍和文章中總是使用StrutsFramework這種說法,Struts通常也被稱為是一種Web應用開發(fā)的架構(Framework),那么到底什么是架構,軟件開發(fā)架構的意義又是什么呢?如果將早期的軟件開發(fā)方式比喻為傳統(tǒng)手工業(yè)生產方式的話,那么基于軟件開發(fā)架構的開發(fā)方式則是大型現代化工廠生產方式的體現。雖然二者都能夠制作出產品,但是在生產效率及產品質量的保證上顯然會有巨大的差異。汽車生產廠家在制造一輛汽車時,總是先在各條生產線上制作出不同類型的零件,最終再由專業(yè)的技師在專業(yè)的組裝生產線上將成百上千的零件組裝成一臺完整的汽車,顯然,設計者的主要精力并不是用于重復地制造相同的車輪,相同的方向盤,而是利用現成的車輪組裝出一輛輛不同的汽車。同樣,開發(fā)人員也可以利用軟件架構中提供的組建庫(如同已經生產好的規(guī)范化的汽車核心零部件庫),按照既定的組裝方式將不同的組建應用在軟件產品的各個環(huán)節(jié),最終開發(fā)出一個完整的,高質量的軟件產品。實際上,如果需要,汽車設計者也可以將原有的車輪進行改造,例如涂上不同的顏色,貼上不同的裝飾物等。同理,軟件開發(fā)人員可以在現有組件的基礎上進行擴展和改進,這實際上充分地實現了軟件開發(fā)的可擴展性。組件復用是面向對象編程思想的結晶,而在軟件架構的基礎上進行開發(fā)可以最大限度地實現組件的復用。在大型、多層結構的軟件開發(fā)項目中,開發(fā)和使用具有可重用性,可擴展性,經過良好測試的軟件組織,可以使開發(fā)者從大量繁瑣的代碼工作中解脫出來,專注于軟件設計和業(yè)務邏輯的實現。通常將被驗證為有效的,相同類型問題的解決方案進行抽象,即可提取形成一個應用程序框架,即Framework。每一種Framework都有自己的一套明確的實現機制,通常在Framework結構中都會包含一個“命令和控制”組件(“commandandcontrol”component),類似于工業(yè)生產中的“控制中心”,開發(fā)人員通過它可以很容易地控制、擴充和實現該Framework上的開發(fā)結構。Struts架構簡介隨著Web開發(fā)技術的日益成熟,在Web開發(fā)領域中出現了許多設計好的軟件開發(fā)框架,Struts就是一種基于MVC經典設計模式的框架,也是當前Web開發(fā)中比較成熟的一種框架。經典的MVC模式MVC(Model-View-Controller)模式,即模型-視圖-控制器模式,其核心思想是將整個程序代碼分成相對獨立而又能協(xié)同工作的3個組成部分。(1)模型(Model):業(yè)務邏輯層。實現具體的業(yè)務邏輯,狀態(tài)管理的功能。(2)視圖(View):表示層。即與用戶實現交互的界面,通常實現數據輸入和輸出功能。(3)控制器(Controller):控制層。起到控制整個業(yè)務流程(FlowControl)的作用,實現View和Model部分的協(xié)同工作。MVC設計模式可以針對需要為同樣的數據提供多個不同視圖的應用程序,例如:公司產品數據庫中同樣的產品信息數據,但需要根據用戶的不同需求在頁面中顯示其所需的不同產品信息。MVC設計模式中,事件一般是指客戶端Web瀏覽器提交的各種不同請求,這些請求由控制器進行處理,控制器根據事件的類型來改變模型或各個視圖,視圖也可以接受模型發(fā)出的數據更新的通知,依據數據更新的結果調整視圖效果,呈現在用戶面前。而模型也可以通過視圖所獲得的用戶提交的數據進行具體業(yè)務邏輯的處理。顯然這樣的運行機制可以起到分工明確,職責清晰,各盡所長的效果。而在軟件開發(fā)的過程中,這樣的開發(fā)方式無疑可以有效地區(qū)分不同的開發(fā)者,盡可能減少彼此之間的互相影響。充分發(fā)揮每個開發(fā)者的特長。這在開發(fā)大型復雜的Web項目時體現得尤為突出。如圖3-1所示。模模型視圖1視圖2控制器事件改變改變改變更新更新獲得數據獲得數據圖3-1MVC設計模式的結構Struts1.2開發(fā)框架作為基于MVC設計模式的Web應用的一種典型體現,Struts架構實際上是建立在Model2基礎上的,對Model,View和Controller都提供了現成的實現組建。Controller控制器部分Struts中的Controller控制器部分是通過專門的Servlet來實現的,該Servlet是一個StrutsAPI中提供的ActionServlet類型的實例,ActionServlet類繼承javax.servlet.http.HttpServlet類,因此該類的實例可以和普通的Servlet一樣工作,其作用是接收客戶端瀏覽器的請求,然后選擇執(zhí)行相應的業(yè)務邏輯,再把響應結果送回到客戶端。Action對象是開發(fā)者定義的類(該類必須是StrutsAPI中提供的Action類的子類)的實例。在繼承該類的過程中開發(fā)者可以加入具體業(yè)務邏輯或調用業(yè)務邏輯模塊。Action對象在進行了業(yè)務邏輯或調用業(yè)務邏輯模塊。Action對象在進行了業(yè)務邏輯的處理以后會將應用程序流程轉到合適的View組件,最終將響應送回瀏覽器客戶端。Struts中提倡Action對象只用來決定“做什么”,相當于一個低層面的控制器,因此也可以將Action歸納為Controller的組成部分。Model模型部分MVC系統(tǒng)中的Model模型部分從概念上可以分為兩類:系統(tǒng)的內部狀態(tài)和改變系統(tǒng)狀態(tài)的動作。Struts中的Model部分一般由JavaBean以及EJB組成。在Struts架構中使用JavaBean來提供具體的業(yè)務邏輯,即“怎么做”,對于復雜的系統(tǒng)也可以使用EJB等組件來實現系統(tǒng)狀態(tài)維護。這種業(yè)務邏輯的細分可以增強代碼的可重用性。View視圖部分Struts中的View視圖部分依然可以采用JSP來實現.此外,Struts還提供了豐富的自定義標簽庫,View部分使用這些自定義標簽同樣可以實現與Model部分的有效交互并能夠增強顯示功能。Struts開發(fā)環(huán)境安裝在Tomcat安裝完成后,即可將Struts框架工具安裝到對應的WEBContainer中??梢酝ㄟ^Struts的二進制發(fā)布包安裝Struts框架,具體操作步驟:(1)下載二進制發(fā)布版;(2)將下載的Struts二進制發(fā)布包進行解包,將解包目錄下的lib目錄下的所有.jar文件全部復制到項目目錄的WEB-INF/lib下,如果在多個項目中都用到了Struts,則將上述文件直接復制到Tomcat目錄下的common/lib下;(3)將對應的lib目錄下的struts.jar文件添加到環(huán)境變量CLASSPATH中即可。以上資源可以從/struts/userGuide/index.html獲得更多關于Struts安裝和相關配置的說明信息。數據持久層數據是軟件系統(tǒng)中不可缺少的環(huán)節(jié),數據持久化的解決之道也一直是企業(yè)計算標準中最有影響力的部分。如今關系型數據庫已經穩(wěn)定地占據著主要的數據庫市場,XML技術和XML數據庫技術也日漸成熟。J2EE的三層結構是指表示層(Presentation),業(yè)務邏輯層(BusinessLogic)以及基礎架構層(Infrastructure),這樣的劃分非常經典,但是在實際的項目開發(fā)法中,開發(fā)者通常對三層結構進行擴展來滿足一些項目的具體要求,一個最常用的擴展就是將三層體系擴展為五層體系,即表示層(Presentation),控制/中介層(Controller/Mediator)、領域層(Domain),數據持久層(DataPersistence)和數據源層(DataSource)。它其實是在三層架構中增加了兩個中間層??刂?中介層位于表示層和領域層之間,數據持久層位于領域層和基礎架構層之間。由于對象范例和關系范例這兩大領域之間存在“阻抗不匹配”,所以把數據持久層單獨作為J2EE體系的一個層提出來的原因就是能夠在對象-關系數據庫之間提供一個成功的企業(yè)級映射解決方案盡最大可能彌補這兩種范例之間的差異。持久層主流方案數據是我們軟件開發(fā)人員必須考慮的對象。無論你使用哪種技術,借助哪種工具,以及購買哪種軟件平臺產品,當接受一個實際的問題時,你都需要面對實際的數據,考慮實際數據的各種問題。在這些問題中往往都包含數據持久化的問題,這不僅是因為我們的計算機內存有限,更主要的原是業(yè)務邏輯的需要,作為一個接觸軟件技術,嘗試寫程序的人,我們要接觸各種類型的數據。下面列舉了三種常見的數據類型:隨機數據這種數據指的是不確定結構,不了解數量,目前也搞不清關系的數據。它聽起來很奇怪,但在實際的程序設計中十分常見。例如:從一個震動源傳遞到計算機采集卡的數據,再比如一個自然物生長過程中的數據??赡苡行祿嶋H上是很有規(guī)律的,但是在設計程序時由于對它的了解很少,使它對于我們來說也成了隨機的數據了。我曾經在遇到這種搞不大清楚的數據時,使用很大的數組或者多個鏈表來表述,不管下一個數據的值是什么,先存儲起來再說。有時候當遇到的數據總也摸不到規(guī)律,或者越來越多,內存也容納不下時,就找個文件存放起來,后來發(fā)現其實存入文件的方式很不錯,起碼可以一直繼續(xù)下去。也許這就是最佳的持久化策略了。屬性數據在接觸具體的項目開發(fā)任務時,更多的時候要接觸到屬性類型的數據,這些數據來源于對象的屬性,當然這些屬性之間還存在關系,對于此類數據,似乎最好的持久化方法就是利用關系型數據庫表了,在存入數據表的過程中還可以借助Hibernate來提高開發(fā)的效率,或者直接使用JDBC來傳遞SQL語句。這兩種方法有些相似但還有細微的差別。XML數據現在很多網絡上的應用程序都使用XML類型的數據,或者說是一種樹狀的數據,如何將這兩種數據持久化保存下來呢?一種方法是將XML數據拆分為屬性數據,然后存儲到關系型數據庫中。另一種方式比較新,是將XML數據存儲到XML數據庫中,在XML數據庫中存儲這種數據時,數據的結構不變,XML數據在XML數據庫中以文檔對象形式保存,使用XPaht和XQuery查詢語言來查詢XML數據中的節(jié)點數據,或者多個XML文檔中的多個節(jié)點數據。持久層主流方案JDBC許多開發(fā)者用JDBC進行數據庫程序的開發(fā)。此中方式很多情況下都使用DAO模式,采用SQL進行查詢。雖然用此方式可以使應用程序代碼與具體的數據庫廠商和數據庫位置無關,不過JDBC是低級別的數據庫訪問方式,JDBC并不支持面向對象的數據庫表示。JDBC數據庫表示完全圍繞關系數據庫模型。在大型應用程序的DAO中書寫這樣的代碼,維護量是非常大的。EJB在J2EE的規(guī)范中,為EJB定義了兩種持久化的解決方案:一種是BMP,另一種是CMP。其中CMP不需要將SQL語句加入到代碼中。目前,在采用J2EE的應用中,EJBCMP方式得到了廣泛應用。更加引人注意的是,隨著EJB規(guī)范的發(fā)展,CMP也包含了一些高級關系的內容。但是,CMP的使用比較復雜,對很多開發(fā)人員來說比較難以掌握。而且,不是在所有的情況下都適合在系統(tǒng)中采用EJB,而且想要非常清楚的了解EJB規(guī)范也是非常費時的。在用EJB編碼前,先要讓專家理解API,然后需要了解每一個容器部署時所要關注的技術。此外,許多情況下商用容器的性能和支持也不是很好。JDOJDO是一個存儲java對象的規(guī)范,JDO規(guī)范1.0的提出可以使你將精力集中在設計Java對象模型,然后在企業(yè)應用軟件架構的不同層面中存儲傳統(tǒng)的Java對象(PlainOldJavaObjects,簡稱POJOs),采用JDOQL語言進行SQL操作。一些公司(包括sun)企圖根據JDO規(guī)范進行設計并實現JDO產品,然而他們都不能很好的進行實現,并且性能優(yōu)化上比較差。持久化技術一直以來,在Java開發(fā)領域中基于數據庫應用的設計實現一直是面向關系的,也就是說與數據庫相關的處理過程并沒有實現真正的面向對象。如何在數據存取的操作中實現真正的面向對象,一直是開發(fā)人員探索的問題。正在使用中的對象序列化技術,EJB中EntityBean技術等,都是在這方面很好的探索。但是實體Bean設計實現過程中的繁瑣和復雜,使得許多開發(fā)人員望而卻步。而Hibernate的出現,提供了一個符合Java面向對象編程思想,易于使用的數據庫持久化解決方案。因此,在目前行業(yè)的Java數據庫應用項目中,有越來越多的開發(fā)人員開始嘗試使用Hibernate在數據庫外面包裹上一層面向對象的外衣,從而將開發(fā)人員從繁瑣、重復、技術含量不高的數據庫編程中結果出來。Hibernate概述:Hibernate在英文中的意思是“冬眠”,從這個角度也可以體會到Hibernate架構下提供的相關技術可以實現對十角狀態(tài)的持久性保存。在傳統(tǒng)的數據庫編程中,開發(fā)人員要面對大量重復行代碼的編寫,以實現對不同數據表中的數據的獲取,并將獲取到的記錄數據封裝成對象,在處理完成之后,如果需要進行對象狀態(tài)的存取,需要將對象中的數據拆卸成數據庫記錄中的對應字段的值,然后向數據庫中進行存取。這種工作方式顯然沒有實現真正意義上的數據存取階段的面向對象。雖然數據存取過程中的工作步驟是基本固定的,但是由于操作的數據表中字段列表數據的不同,使得開發(fā)人員必須要不厭其煩地書寫與相應的實體類對應的封裝處理過程。而在Hibernate中,類似這種重復性高,工作量大,但是又必須保證高質量完成的體力活,全部由Hibernate接管過去。這對廣大的Java開發(fā)人員無疑是個非常好的消息。Hibernate本質上是一個面向Java開發(fā)環(huán)境的對象/關系數據庫映射工具。在Hibernate之前,開發(fā)人員要將面向對象的軟件和關系數據庫結合在一起,往往會費長麻煩。而借助Hibernate對象/關系數據庫映射技術,可以非常輕松地將以面向對象思想封裝的對像的各個狀態(tài)數據映射到基于SQL的關系模型數據結構中去。如圖3-2所示。JavaJava應用HibernateHQL語句數據庫SQL語句XML映射文件圖3-2Hibernate工作示意圖本章小結本章節(jié)闡述了Struts框架有何優(yōu)點,并將MVC模式以圖形加文字的雙重方式進行介紹,充分展現其好處,引出固定資產管理系統(tǒng)選取Struts1.2為開發(fā)框架,采用經典的MVC模式對項目進行整體的分層,讓項目層次分明、代碼規(guī)范。再由框架引出數據庫同樣是系統(tǒng)中不可分割的一部分,然后提出通過Hibernate的映射文件簡化對數據庫的操作,從而達到更好的面向對象進行開發(fā)??傮w設計系統(tǒng)設計是在系統(tǒng)分析的基礎上由抽象到具體的過程。主要目標是將系統(tǒng)分析階段所提出的反映了信息需求的系統(tǒng)邏輯方案轉換成可以實施的基于計算機與通信系統(tǒng)的物理(技術)方案,為下一階段系統(tǒng)實施提供必要的技術資料,應符合系統(tǒng)性、靈活性、可靠性、經濟性的要求。根據系統(tǒng)分析階段能確定新系統(tǒng)的邏輯模型、功能要求,在可實現的環(huán)境下設計出一個能在計算機網絡環(huán)境上實施的方案,即建立新系統(tǒng)的物理模型。本階段的任務是設計軟件系統(tǒng)的模型層次結構,設計數據庫的結構以及涉及模塊的控制流程,其目的是明確系統(tǒng)具體怎么實現。這個階段又分為兩個步驟:概要設計和詳細設計。概要設計解決軟件系統(tǒng)的模塊劃分和模塊的層次機構以及數據庫設計;詳細設計解決每個模塊的控制流程,內部算法和數據結構的設計。根據種種分析設計在逐步實現各個功能,完成一個完整的固定資產管理系統(tǒng)??傮w設計用戶管理資產管理資產維護用戶管理資產管理資產維護系統(tǒng)管理增加刪除用戶用戶信息維護增加資產信息刪除資產信息資產借出資產歸還資產信息查詢刪除維修信息添加維修信息維修信息查詢用戶密碼修改系統(tǒng)退出員工管理增加員工信息修改員工信息刪除員工信息報表打印報表固定資產管理系統(tǒng)圖4-1系統(tǒng)功能模塊圖本系統(tǒng)主要分為四大模塊:資產管理模塊:根據不同資產的唯一編號對資產進行購入、銷毀、修改屬性和多種組合條件的查詢操作等,里面包括相應的邏輯驗證及提示。對資產維護的增加維修設備、刪除已經維修好的信息、查詢操作;支持對固定資產庫存報表的多種格式打印。用戶管理模塊:可直接添加員工成為用戶并為其分配不同的權限,管理員權限是本系統(tǒng)最大的權限,可以對所有的設備和人員進行維護、查詢等操作。操作員不擁有分配權限的功能,可以完成除了此模塊之外的所有功能,如:首先,可對資產進行錄入、所有資產不同方式的查詢、銷毀某些設備、修改設備屬性信息及對設備進行借出歸還狀態(tài)的跟蹤和更改,及時更新設備的所處狀態(tài)和庫存設備的全部信息等。其次可對員工進行的增加、刪除、修改信息和查詢等相應的維護,可以將庫存設備信息根據不同需求打印出來。員工管理:支持對學校的教工信息的維護,包括新增員工、刪除員工、修改員工所處狀態(tài)和對員工進行明細查詢等。系統(tǒng)管理:修改登陸用戶的登錄密碼及安全退出系統(tǒng),保證系統(tǒng)的正常運行。數據庫設計數據庫的需求分析依據項目的處理需求,對應數據表的設計及功能如下:資產信息表:主要用于保存入庫的資產信息。資產設備的借出歸還表:主要用于保存借出設備的信息。資產設備維修信息表:主要用于保存維修資產的信息。管理資產信息的用戶表:主要用于保存系統(tǒng)管理員的信息。公司員工其本信息表:主要用于保存公司員工的基本信息。部門表:主要用于保存部門信息。數據庫表的具體設計首先從用戶的業(yè)務數據出發(fā),設計出一張大表,然后對其進行優(yōu)化。業(yè)務分析一定要具體,對于出現的每一張單據和報表都要分析清楚,看哪些字段會用來作為查詢字段,然后為這些字段建立數字型的代碼,如果字段本身就是數字型的可不予考慮。仔細分析業(yè)務數據,從優(yōu)化查詢的角度把業(yè)務數據的大表分割開,確保數據正確分布到相應的數據庫表中,每個字段都代表此表的特性。本系統(tǒng)首先就從固定資產的實際出發(fā),以資產表為主表,擴充出資產修為表、借出歸還表和員工表,員工表屬于部門表,員工升級成為用戶,產生用戶表。然后根據實際需求并考慮系統(tǒng)的后期擴展和健全性填充各個表的字段,以便完成資產管理的操作。各個數據表如下:設備借出歸還表是由資產表和員工表根據實際需求衍生出來的一張業(yè)務表,此表用于保存某位員工于某個時間借出了某個編號的資產借,并打算在什么時間歸還及實際的歸還時間的全部信息,使得用戶對資產的管理更加方便簡單。表結構如表4-1資產設備借出歸還表。表4-1資產設備借出歸還表字段名數據類型長度是否主鍵描述inout_noint10是借用流水號ic_idvarchar30資產編號comployee_novarchar30員工編號out_timevarchar20借出時間should_timevarchar20應還時間back_timevarchar20歸還時間用戶表是依附于員工表而存在的一張管理員表,此表中根據competence字段區(qū)分管理員及操作員兩種權限,管理員具有最高權限,操作員可對資產進行全方位的管理和信息查詢。表結構如表4-2用戶表。表4-2用戶表字段名數據類型長度是否主鍵描述userNamevarchar30是用戶名pwdvarchar20密碼comployee_novarchar30員工編號competencevarchar15權限員工信息表是跟資產基本表密切相關的一張相關操作表,員工編號為唯一主鍵,能夠標識員工身份。每一次對資產的操作都應該落實到具體的員工頭上,讓所有的操作都可查,使業(yè)務更加清晰,方便應用。表結構如表4-3員工信息表。表4-3員工信息表字段名數據類型長度是否主鍵描述comployee_novarchar30是員工編號comployee_namevarchar25員工姓名sexvarchar5性別ageint10年齡deptvarchar45部門professionvarchar20現任職務addressvarchar60家庭地址phonevarchar20聯(lián)系方式comployee_statuvarchar10員工狀態(tài)設備借出歸還表是由資產表和員工表根據實際需求衍生出來的一張業(yè)務表,此表用于保存某位員工于某個時間借出了某個編號的資產借,并打算在什么時間歸還及實際的歸還時間的全部信息,使得用戶對資產的管理更加方便簡單。表結構如表4-4資產設備借出歸還表。表4-4資產設備借出歸還表字段名數據類型長度是否主鍵描述inout_noint10是借用流水號ic_idvarchar30資產編號comployee_novarchar30員工編號out_timevarchar20借出時間should_timevarchar20應還時間back_timevarchar20歸還時間部門表的存在是專門為了方便使用單而存在的表,其主要用于區(qū)分不同部門而方便操作,每個員工都有一個字段叫做dept,使得不同部門的人員,進行不同的歸攏,方便管理。具體表結構如表4-5部門表。表4-5部門表字段名數據類型長度是否主鍵描述deptvarchar45是部門名稱資產設備維修信息表也是由資產基本表衍生出來的一張業(yè)務表,它用于管理哪些設備因為何種原因而需要維修,其中有由誰送去維修并經過誰手而修,維修流水號應該為唯一主鍵,包含所有的維修相關信息。表結構如表4-6資產設備維修信息表。表4-6資產設備維修信息表字段名數據類型長度是否主鍵描述repair_noint10是維修流水號zc_idvarchar30資產編號send_timevarchar30送修時間sendervarchar50送修人Login_uservarchar50經手人reasonvarchar50送修原因wx_timevarchar30維修時間wx_resultvarchar45維修結果costfloat30花費金額wx_commentvarchar45維修備注詳細設計功能設計本系統(tǒng)主要用于高校中的“資產”進行管理。具體地講,固定資產管理系統(tǒng)就是通過資產的增加、刪除、查看、借出、歸還、維修等一系列手段來提高效率,最終達到發(fā)展目標的一種管理行為。總體來說就是解決固定資產管理中經常出現的實物與財務賬目不符的情況,以實物管理為特點,以簡化為目的,實現信息流和實物流的統(tǒng)一,并且提高工作效率減輕工作負擔。本系統(tǒng)中各種功能操作都非常簡單方便,操作員無須專門的培訓就可以使用,大大的減少了誤操作的幾率。具體實現目標如下:系統(tǒng)用戶管理功能當前登陸的用戶可根據個人需要對自己的登陸密碼進行修改。系統(tǒng)用戶即管理員可對系統(tǒng)中的資產進行管理,可以對資產進行錄入、資產查詢、資產銷毀、資產信息修改、資產借用等相關操作。用戶是本系統(tǒng)中最大權限所有者,可以給任意員工分配權限使其成為新的用戶,用戶可以根據實際需求增加新的員工、修改員工的狀態(tài)、修改員工的相關信息,亦可根據員工唯一ID對員工進行查詢和刪除。員工信息管理功能員工是本系統(tǒng)中的一個模塊,主要和資產的歸還、借出、維修等實物資產的流向狀態(tài)進行綁定,使每一次對資產的操作都能落實到具體的人頭上,讓資產管理透明可查。資產入庫管理功能資產入庫功能由用戶進行管理,用戶有權限進行增、減、改、查操作。資產維護管理功能對于資產的管理必定涉及到資產的狀態(tài)如:維修、報廢、借出、正常,這些功能都是根據實際需要進行實現,保證了資產的不明流向和總體管理。打印報表針對資產清單進行打印,可根據實際不同需求打印不同格式如:word、excel、pdf等系統(tǒng)最大限度地實現了易安裝性、易維護性和易操作性本系統(tǒng)以tomcat為服務器,搭建服務器小而輕便,安裝簡單。用戶可根據不同的需求自行對資產進行維護,并且不必經過專門的培訓即可掌握本系統(tǒng)的使用,實現了簡單易懂方便維護等特性。系統(tǒng)運行穩(wěn)定、安全可靠系統(tǒng)經過嚴格的測試并實際運行無誤,可以安全穩(wěn)定上線運行;根據權限攔截器防止越過登陸對本系統(tǒng)進行操作,所以安全可靠,能保證正常的工作運轉。系統(tǒng)登陸用戶登錄模塊是用戶進入主頁面的入口,用戶可根據自己的用戶名和密碼進行登錄,若不符則給予相應提示,重置按鈕可將當前所填的信息清空,登陸頁面如圖4-2所示。圖4-2用戶登錄系統(tǒng)登陸是固定資產管理系統(tǒng)中最先使用的功能,因為用戶登陸在數據庫中使用的是用戶表,人員表中有一個competence字段,是來標識用戶權限的。在登陸時要根據數據庫的這個字段來判斷此用戶是否具有管理員的權限。在網頁里添寫用戶名和密碼和驗證碼后點擊【確定】按鈕,網頁通過action="login"進Struts配置文件中,代碼如下:<html:formmethod="post"action="login">這個html:form與loginForm相綁定,在struts配置文件中的代碼如下:<form-beans><form-beanname="loginForm"type="com.jdy.gdzc.web.struts.form.LoginForm"/><form-beans><actionpath="/login"scope="request"name="loginForm" type="org.springframework.web.struts.DelegatingActionProxy"><forwardname="success"path="/mainframe/framework.jsp"/><forwardname="fail"path="/index.jsp"/></action>在這個配置文件中,可以了解到如下信息:根據type="org.springframework.web.struts.DelegatingActionProxy"可以找到Spring配置文件中對應的具體Action類是class="com.jdy.gdzc.web.struts.action.LoginAction"。根據<forwardname="success"path="/mainframe/framework.jsp"/>和<forwardname="fail"path="/index.jsp"/>可以了解,Action返回success時頁面會被轉到mainframe/framework.jsp文件,這就是登陸成功的頁面。如果當Action返回fail時,頁面會被轉到index.jsp文件,這個文件是當用戶登陸失敗將要轉到的頁面。Struts的Action的實現類是這個登陸頁的核心內容,就來看看它是怎么實現的吧,如下所示:importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importcom.jdy.gdzc.web.struts.form.LoginForm;publicclassLoginActionextendsBaseAction{ publicActionForwardexecute(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ Stringerr=""; HttpSessionsession=(HttpSession)request.getSession();//獲得圖片上的驗證碼 StringrandCode=(String)session.getAttribute("code"); LoginFormlf=(LoginForm)form; Stringusername=lf.getUsername(); Stringpassword=lf.getPassword(); if(lf.getCheckcode().equals(randCode)){ if(assetManagerImpl.login(username,password)){ //把登錄成功的用戶名,放在cookie中 Cookiec=newCookie("username",username); c.setMaxAge(60*60*24); response.addCookie(c); //登錄成功,跳到顯示所有課程的頁面 Stringcompetence=userManaManagerIpetence(username); session.setAttribute("username",username); session.setAttribute("competence",competence); returnmapping.findForward("success"); }else{ err="用戶名或密碼錯誤!"; } }else{ err="驗證碼錯誤!"; } request.setAttribute("gdzc.login.error",err); returnmapping.findForward("fail"); }}Struts的Action實現類的execute()方法是最先被執(zhí)行的,這個方法本身也沒有具體的事務,而是根據action的參數不同執(zhí)行相應的方法。在登陸頁里面可以找到有一個“action=login”的字樣,它的目的就是在這里做邏輯判斷。當action=login時進入Action中執(zhí)行execute()方法。execute()方法從LoginForm中得到用戶提交的數據,然后在調用控制層中的login()方法,并將從LoginForm中得到的username,password做為參數傳給控制層,調用后會返回一個boolean型的值??刂茖釉倮^續(xù)調用DAO層,DAO層得到從上層傳進來的username,password并進行處理,調用后會返回一個boolean型的值并傳給上層。如果為真則將username用戶名放到session范圍中,并返回“mapping.findForward("success")”,進入系統(tǒng)主頁;否則返回“mapping.findForward("fail")”,將錯誤信息存到request范圍中,跳到登陸界面并提示登陸錯誤信息:用戶名或者密碼錯誤、驗證碼錯誤。需要用戶重新正確輸入才能完成登錄。接下來看一下DAO層是如何實現登陸:importorg.hibernate.Query;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importcom.jdy.gdzc.dao.IUserDAO;publicclassUserDAOImplimplementsIUserDAO{ privateSessionFactorysessionFactory; publicvoidsetSessionFactory(Sess
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年員工賠償保障合同
- 2025年倉儲貨物出庫協(xié)議
- 2025年增資協(xié)議簽約審核
- 2025年城市基礎設施勘察評估合同
- 2025年家具定制款式與功能協(xié)議
- 2025年家電定期檢修與保養(yǎng)合同
- 2025年分期付款裝飾材料購買協(xié)議
- 2025年親情傳承與撫養(yǎng)遺贈協(xié)議
- 2025年定值商標保護保險合同
- 二零二五版機床設備采購與生產自動化升級合同3篇
- 2025年度杭州市固廢處理與資源化利用合同3篇
- 2024年安徽省公務員錄用考試《行測》真題及答案解析
- 部編版二年級下冊《道德與法治》教案及反思(更新)
- 充電樁項目運營方案
- 退休人員出國探親申請書
- 高中物理競賽真題分類匯編 4 光學 (學生版+解析版50題)
- 西方經濟學-高鴻業(yè)-筆記
- 幼兒園美術教育研究策略國內外
- 2024屆河南省五市高三第一次聯(lián)考英語試題及答案
- 孕婦學校品管圈課件
- 《愿望的實現》交流ppt課件2
評論
0/150
提交評論