基于JavaEE的項目管理系統(tǒng)畢業(yè)論文_第1頁
基于JavaEE的項目管理系統(tǒng)畢業(yè)論文_第2頁
基于JavaEE的項目管理系統(tǒng)畢業(yè)論文_第3頁
基于JavaEE的項目管理系統(tǒng)畢業(yè)論文_第4頁
基于JavaEE的項目管理系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、基于javaee的項目管理系統(tǒng)的設計與實現(xiàn)摘 要企業(yè)項目管理系統(tǒng)是為了使企業(yè)項目能夠按照預定的成本、進度、質(zhì)量順利完成,而對人員、產(chǎn)品、過程和項目進行分析和管理的活動,系統(tǒng)主要包括項目基本信息操作、項目規(guī)劃管理,合同管理,和項目評價管理四個模塊。java ee技術無疑是當今因特網(wǎng)大型應用的最佳技術方案之一,圍繞java ee技術的應用性,也產(chǎn)生了大量的web開發(fā)框架,它們極大地提升了java ee技術的易用性。本文描述了java ee的相關技術,比如struts2,hibernate,spring等,以及一些前臺js框架,如jquery。并用這些技術完成一個基于ssh架構(gòu)的項目管理系統(tǒng),開發(fā)并

2、實現(xiàn)其中的全部功能模塊。系統(tǒng)是在windows7下,以sql server 2005為數(shù)據(jù)庫開發(fā)平臺,tomcat網(wǎng)絡信息服務作為應用服務器,myeclipse8.5為開發(fā)工具,采用ssh主流架構(gòu)技術,jquery及相關插件而開發(fā)的企業(yè)項目管理系統(tǒng)。項目管理系統(tǒng)將以需求為管理核心,任務為管理內(nèi)容,質(zhì)量為管理指標實現(xiàn)項目過程的管理。項目從需求建立為開始,由任務來跟蹤需求完成的進度,用質(zhì)量管理來考核需求完成的標準,系統(tǒng)可實現(xiàn)需求到任務,任務到質(zhì)量的完整管理,以追溯管理的方式實現(xiàn)項目過程的完整管理。關鍵詞:項目管理系統(tǒng);java ee;ssh ;sql server 2005the design a

3、nd implement of enterprise project management system based on javaeeabstractenterprise project management system is designed to enable enterprises to be able to follow a predetermined project cost, schedule, quality, successful completion, while the people, products, processes and project analysis a

4、nd management activities, including items of basic information systems operations, project planning and management, contract management, and project evaluation and management of four modules.java ee technology is undoubtedly one of the best technical solution for large applications in todays interne

5、t, around the application of java ee technology, also generated a lot of web development framework, which greatly enhance the ease of use of java ee technologies. this paper describes the java ee related technologies, such as struts2, hibernate, spring, as well as some of the front desk js framework

6、s such as jquery. and use these techniques to complete an ssh-based project management system architecture, which developed and implemented the full functionality of the module. system is under windows7 to sql server 2005 database development platform, tomcat as the application server network inform

7、ation services, myeclipse8.5 as a development tool, using ssh architecture technology mainstream, jquery and related plug-ins and development of enterprise project management system.project management system will manage the core needs, the task of managing the content, quality indicators for the man

8、agement of the implementation process of the project management. created for the project began, the task needs to track the progress accomplished by the completion of the quality management standard to assess the needs of the system needs to be achieved, the task to complete quality management, trac

9、eability management approach to achieve a complete project process from requirements management.key word: project management system ; java ee; ssh; sql server 2005目錄摘 要iabstractii1 緒 論11.1 國內(nèi)外研究動態(tài)11.2 項目背景及意義12 java ee運行環(huán)境及開發(fā)技術22.1 java ee運行環(huán)境22.1.1 myeclipse22.1.2 tomcat22.1.3 sql server 200532.2 j

10、ava ee開發(fā)技術32.2.1 mvc設計模式32.2.2 struts242.2.3 hibernate52.2.4 spring52.2.5 jquery63 需求分析73.1 可行性分析73.1.1 經(jīng)濟可行性73.1.2 技術可行性73.1.3 操作可行性73.1.4 法律可行性73.2 本系統(tǒng)的需求分析73.2.1 功能需求73.2.2 性能需求73.3 系統(tǒng)開發(fā)流程84 總體設計94.1 總體設計的目的94.2 系統(tǒng)總體流程圖94.3 功能模塊圖104.4 用戶功能模塊圖114.5 數(shù)據(jù)庫設計124.5.1 系統(tǒng)e-r圖134.5.2 數(shù)據(jù)字典135 系統(tǒng)詳細設計及實現(xiàn)155.1

11、 系統(tǒng)架構(gòu)設計155.2 系統(tǒng)的運行結(jié)果155.3 類的分布165.4 控制層的實現(xiàn)175.4.1 adminaction.java類(處理基本登錄信息的類)175.4.2 hetongaction(實現(xiàn)對合同信息的操作)185.5 持久層的實現(xiàn)225.5.1 接口類225.5.2 實現(xiàn)接口類235.6 服務層的實現(xiàn)266 系統(tǒng)測試306.1 軟件測試306.1.1 黑盒測試306.1.2 白盒測試306.1.3 單元測試306.1.4 集成測試306.1.5 系統(tǒng)測試316.1.6 程序調(diào)試316.2 本系統(tǒng)測試316.2.1 junit單元測試31結(jié)束語33參考文獻34致 謝35外文原文3

12、6中文翻譯421 緒 論1.1 國內(nèi)外研究動態(tài)隨著科學的發(fā)展和社會的進步,尤其是計算機大范圍的普及,計算機應用逐漸由科學計算轉(zhuǎn)向了對日常工作的處理,這就產(chǎn)生了以計算機為核心,以數(shù)據(jù)庫管理系統(tǒng)為開發(fā)環(huán)境的管理信息系統(tǒng)在大規(guī)模的事務處理管理等方面的應用,其中在項目工程管理之中的應用日益受到人們的關注。經(jīng)過二十多年的發(fā)展,市場經(jīng)濟的觀念已經(jīng)深入人心。90年代末,隨著全球經(jīng)濟一體化和知識經(jīng)濟的發(fā)展,項目個性化需求特征愈來愈明顯,只有真正了解市場需要,最大滿足項目需求的產(chǎn)品才能實現(xiàn)競爭優(yōu)勢。企業(yè)以產(chǎn)品為中心的模式向以市場為中心,以項目為中心的模式轉(zhuǎn)移。正確、快速地處理與項目之間的溝通成為企業(yè)利潤的主要源

13、泉。企業(yè)管理的視覺從內(nèi)視型向外視型轉(zhuǎn)變。企業(yè)轉(zhuǎn)換自己的視角外向型地整合內(nèi)外部資源,從而提高企業(yè)的核心競爭力。1.2 項目背景及意義在當今快速發(fā)展的科學和技術的帶動下,一切的商業(yè)行為都能跟計算機搭上邊。這是為了實現(xiàn)更大的商業(yè)利益而通過更好的利用計算機來實現(xiàn)目標。項目管理是為了使工作項目能夠按照預定的需求、成本、進度、質(zhì)量順利完成,而對人員、產(chǎn)品、過程、和項目、進行分析和管理的活動。目前國內(nèi)企業(yè)對項目管理水平和方法越來越重視,而合適的項目管理軟件在其中起了極其重要的作用!主要有工程項目管理軟件和非工程項目管理軟件2大分類。隨著微型計算機的出現(xiàn)和運算速度的提高, 20 世紀80 年代后項目管理技術也

14、呈現(xiàn)出繁榮發(fā)展的趨勢, 項目管理軟件開始出現(xiàn)。對于大型項目管理,沒有軟件支撐,手工完成項目任務制定、跟蹤項目進度、資源管理、成本預算的難度是相當大的。可以說計算機技術的發(fā)展對項目管理深入應用起了舉足輕重的作用。2 java ee運行環(huán)境及開發(fā)技術2.1 java ee運行環(huán)境2.1.1 myeclipse由genuitec公司發(fā)布的myeclipse10,是一款商業(yè)化eclipse集成開發(fā)工具的升級版本。myeclipse10是基于eclipse indigo構(gòu)建,為java和javaee項目提供了maven3的支持。本版本中還添加了對javeee6、html5、jpa2和jsf2的支持。版本

15、號10是為了慶祝eclipse的10歲生日。 myeclipse10使用最高級的桌面和web開發(fā)技術,包括html5和javaee6,支持jpa2.0、jsf2.0、eclipselink 2.1以及openjpa2.0而對ibm websphere用戶來說,myeclipse blue支持最新版本的websphere portal server7.0、websphere8 以及以前的版本,無縫的支持ibm db2數(shù)據(jù)庫。myeclipse是一個十分優(yōu)秀的用于開發(fā)java, j2ee的 eclipse插件集合,myeclipse的功能非常強大,支持也十分廣泛,尤其是對各種開元產(chǎn)品的支持十分不錯

16、。myeclipse目前支持java servlet,ajax, jsp, jsf, struts,spring, hibernate , ejb3,jdbc數(shù)據(jù)庫鏈接工具等多項功能。可以說myeclipse幾乎囊括了目前所有主流開元產(chǎn)品的專屬eclipse開發(fā)工具。myeclipse企業(yè)級工作平臺(myeclipse enterprise workbench ,簡稱myeclipse)是對eclipse ide的擴展,利用它我們可以在數(shù)據(jù)庫和j2ee的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的j2ee集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支

17、持html, struts, jsf, css, javascript, sql, hibernate。在結(jié)構(gòu)上,myeclipse的特征可以被分為7類:1. j2ee模型2. web開發(fā)工具3. ejb開發(fā)工具4. 應用程序服務器的連接器5. j2ee項目部署服務6. 數(shù)據(jù)庫服務7. myeclipse整合幫助對于以上每一種功能上的類別,在eclipse中都有相應的功能部件,并通過一系列的插件來實現(xiàn)它們。myeclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進行單獨的擴展和升級。簡單而言,myeclipse是eclipse的插件,也是一款功能強大的j2ee集成開

18、發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯。2.1.2 tomcattomcat最初是由sun的軟件構(gòu)架師詹姆斯鄧肯戴維森開發(fā)的。后來他幫助將其變?yōu)殚_源項目,并由sun貢獻給apache軟件基金會。由于大部分開源項目oreilly都會出一本相關的書,并且將其封面設計成某個動物的素描,因此他希望將此項目以一個動物的名字命名。因為他希望這種動物能夠自己照顧自己,最終,他將其命名為tomcat(英語公貓或其他雄性貓科動物)。而oreilly出版的介紹tomcat的書籍(isbn 0-596-00318-8)1的封面也被設計成了一個公貓的形象。而tomcat的logo兼吉祥物也被設計成了一只公貓。tom

19、cat是apache軟件基金會的jakarta項目中的一個核心項目,由apache、sun(oracle已收購)和其他一些公司聯(lián)合開發(fā)。tomcat早就被java-world雜志的編輯選為最具創(chuàng)新性的java產(chǎn)品,又是sun公司官方推薦的servlet/jsp容器。由于符合servlet和jsp最新規(guī)范的內(nèi)容都已在tomcat的新版本中實現(xiàn),結(jié)合tomcat的穩(wěn)定性能,因此得到了軟件開發(fā)商及相關人員的認可,成為目前比較流行的web應用服務器456。2.1.3 sql server 2005sql server 2005具有較好的可伸縮性和可靠性,提供了以web標準為基礎的擴展數(shù)據(jù)庫編程功能,可

20、以滿足電子商務和企業(yè)應用程序的要求。sql server 2005支持xml和internet標準,具有基于web的分析能力,允許使用內(nèi)置的存儲過程以xml格式存儲、更新、刪除、檢索數(shù)據(jù)。sql server 2005能提供超大型系統(tǒng)所需的數(shù)據(jù)庫服務。大型服務器可能有成千上萬的用戶同時連接到sql server 2005的情況,sql server 2005為這些環(huán)境提供了全面的保護,具有防止問題發(fā)生的安全措施,例如,可以防止多個用戶試圖同時更新相同的數(shù)據(jù)。sql server 2005還在多個用戶之間有效地分配可用資源,比如內(nèi)存、網(wǎng)絡帶寬和磁盤i/o等。sql server 2005不僅能作

21、為一個功能強大的數(shù)據(jù)庫服務器有效地工作,而且數(shù)據(jù)庫引擎也用在需要在項目端本地存儲獨立數(shù)據(jù)庫的應用程序中。sql server 2005可以動態(tài)地將自身配置成能有效地使用項目端桌面或膝上型電腦中的可用資源,而不需要為每個項目端專設一個數(shù)據(jù)庫管理員。應用程序供應商還可以將sql server 2005作為應用程序的數(shù)據(jù)存儲組件嵌入到應用程序中。sql server在網(wǎng)絡組件的頂部添加了服務器特有的中介組件,諸如開放式數(shù)據(jù)庫連接(odbc)后能使不同項目機進行相互連接,它可處理基于internet的應用程序,幫助用戶把sql server數(shù)據(jù)庫信息集成到web頁面。 8。2.2 java ee開發(fā)技

22、術2.2.1 mvc設計模式由于c/s開發(fā)程序的變更不夠靈活,且維護和管理的比較復雜。由于應用程序中邏輯結(jié)構(gòu)的表現(xiàn)形式經(jīng)常改變,但本身卻相對穩(wěn)定。因此,將業(yè)務邏輯和數(shù)據(jù)的展現(xiàn)形式分開,可以更容易地根據(jù)需求的變化來改變后臺程序,從而不必觸動業(yè)務邏輯部分就可以開發(fā)新的外觀界面。mvc設計模式提出于80年代末由xerox公司發(fā)表的一系列論文中,專門應對這種實際情況,其關鍵是將組件分成3個各自獨立的單元:模型、視圖、控制器。3者關系如圖2-1所示:圖2-1 mvc設計模式以上三個部分的具體任務如下10:(1)模型表示應用程序中的數(shù)據(jù)結(jié)構(gòu)和元素,模型對數(shù)據(jù)和對數(shù)據(jù)進行了封裝,是應用程序真正進行數(shù)據(jù)計算和

23、處理的地方。在這mvc的三個部分中,模型相對來說是最重要的部分。(2)視圖(view)對象顧名思義,就是用戶可見的并可以與之交互的界面,它負責向用戶顯示模型的狀態(tài)和顯現(xiàn)應用的數(shù)據(jù)。主要作用如下:a.向用戶顯示一些應用中的數(shù)據(jù);b.接收來自用戶的輸入;c.與模型層進行交互,向模型傳遞數(shù)據(jù)進行查詢;d.接收來自模型層的數(shù)據(jù),更新展示給用戶的顯示界面。(3)控制器(controller)負責view和model的交互,主要擔任兩個方面的工作:將模型的改變及時反應到視圖上;將用戶的請求分發(fā)到相對應的模型。為了提高靈活性和可重用性,mvc將這些對象進行了分離。以上即mvc的一個典型的處理過程11。2.2

24、.2 struts2struts2框架是基于struts1和webwork框架發(fā)展而來的,并同時吸收了二者的優(yōu)勢,但與struts1框架相比,在設計思路上有許多本質(zhì)上的不同。對webwork框架有過研究的人會發(fā)現(xiàn)struts2在系統(tǒng)架構(gòu)和運轉(zhuǎn)流程上與webwork是非常相似的。所以,在某種程度上可以說struts2完全與struts1沒有太多關系,而實際上繼承的是webwork 12。struts2框架大致由三部分組成:核心控制器、業(yè)務控制器和用戶實現(xiàn)的業(yè)務邏輯組件。在這之中,由filterdispatcher充當核心控制器,filterdispatcher作為一個過濾器運行在應用程序中,它負

25、責對所有用戶向服務器的請求進行過濾,當用戶發(fā)出以.action結(jié)尾的請求時,filterdispatcher發(fā)現(xiàn)該請求,并將該請求轉(zhuǎn)入到struts2中去處理。業(yè)務控制器即是開發(fā)者實現(xiàn)的actionsupport類的子類實例,這個類通常包含一個自定義方法,并返回是一個字符串值(如none、success等),即result名稱,與該result對應的則是一個jsp頁面或一個action地址。在業(yè)務邏輯組件的層面來說,struts2并沒有提供太多的幫助,它只是一個偏向表現(xiàn)層的框架,在實際的開發(fā)中當控制器需要獲得業(yè)務邏輯組件時,通常是通過工廠開發(fā)模式來獲得一個業(yè)務邏輯組件實例。struts2具體的

26、框架結(jié)構(gòu)及工作流程如圖所示:圖2-2 struts2原理2.2.3 hibernatehibernate是目前比較流行的orm(對象/關系映射)框架(比較流行的還有mybatis),自動映射了關系數(shù)據(jù)庫和java對象之間的關聯(lián),使得程序員可以以非常簡單的方式實現(xiàn)對數(shù)據(jù)庫的操作。hibernate通過封裝jdbc的從而對程序開發(fā)者屏蔽了底層的數(shù)據(jù)庫操作,使開發(fā)者更專注于面向?qū)ο蟪绦虻拈_發(fā),可以有效地提高開發(fā)效率。開發(fā)者訪問數(shù)據(jù)庫所需要做的就是為持久化類編制xml映射文件,或為持久化類設置annotation注解。對于一些底層數(shù)據(jù)庫的必要性的改變,只需要對hibernate.cfg.xml配置文件

27、進行修改即可,并不會對應用程序產(chǎn)生影響。hibernate有自己的面向?qū)ο蟮牟樵冋Z言hql,hql功能強大,支持目前大多數(shù)主流數(shù)據(jù)庫,如oracle、db2、microsoft sqlserver、mysql等,為快速開發(fā)應用程序提供了底層的穩(wěn)定的支持。2.2.4 springspring與臃腫的ejb相對比,spring可以使開發(fā)者把各個技術層次之間的關聯(lián)程度顯著地(耦合度)降低,從該框架本身的架構(gòu)來說,相對其他框架是一個很輕量級的框架。spring框架的核心是控制翻轉(zhuǎn)ioc(inverse of control),也被稱之為依賴注入di(dependence injection)機制。io

28、c是指由容器來對各組件間關系進行控制(在這里,容器是指一種服務程序,在服務器一個端口就有一個提供相應服務的程序,如上文提及的tomcat),而非傳統(tǒng)實現(xiàn)中直接操控的程序代碼,這種由程序代碼到外部容器的控制權(quán)轉(zhuǎn)移,即為“翻轉(zhuǎn)“。di,依賴注入,即將所用到的對象等,依靠web容器注入給使用這些對象的組件中。spring采用設值注入(使用setter方法實現(xiàn)依賴)的機制,通過spring配置文件(xml文件)管理組件對象進行協(xié)作,可以依賴于web容器構(gòu)造應用程序的組件。通過這種方式,不需要依賴單例設計模式、工廠設計模式或者其他構(gòu)造對象的方法,就可以通過代碼操作直接從容器中獲取所需的組件17。spri

29、ng提供了豐富的面向切面編程(aop)的支持,通過允許分離web應用程序的系統(tǒng)級服務(例如日志、數(shù)據(jù)事務管理等)與業(yè)務邏輯,完成內(nèi)聚性開發(fā)。每一個應用方法只關注它們需要做的實現(xiàn)業(yè)務邏輯。它們并不關注其他系統(tǒng)層面的問題(如日志或事務支持)。spring框架是一個松耦合的框架,同時也是一個模塊的框架,框架的部分耦合度被設計為最小。這些特征將使你的代碼更易于測試和管理。2.2.5 jqueryjquery easyui是一組基于jquery的ui插件集合,而jquery easyui的目標就是幫助web開發(fā)者更輕松的打造出功能豐富并且美觀的ui界面。開發(fā)者不需要編寫復雜的javascript,也不需

30、要對css樣式有深入的了解,開發(fā)者需要了解的只有一些簡單的html標簽。jquery easyui有以下特點:1、基于jquery用戶界面插件的集合2、為一些當前用于交互的js應用提供必要的功能3、easyui支持兩種渲染方式分別為javascript方式(如:$(#p).panel(.))和html標記方式(如:class=easyui-panel)4、支持html5(通過data-options屬性)5、開發(fā)產(chǎn)品時可節(jié)省時間和資源6、簡單,但很強大7、支持擴展,可根據(jù)自己的需求擴展控件8、目前各項不足正已版本遞增的方式不斷完善3 需求分析3.1 可行性分析3.1.1 經(jīng)濟可行性經(jīng)濟可行性研

31、究是對使用者的經(jīng)濟現(xiàn)狀和投資能力進行分析,對系統(tǒng)建設運行和維護費用進行估算,對系統(tǒng)建成后可能取得的社會和經(jīng)濟效益進行估計。因為本系統(tǒng)是畢業(yè)設計,由我們自己開發(fā)的,在經(jīng)濟上的投入可以忽略不計,系統(tǒng)完成后將會為企業(yè)項目管理提供很大的方便。3.1.2 技術可行性基于javaee的項目管理系統(tǒng)采用b/s結(jié)構(gòu)、結(jié)合sqlserver2005數(shù)據(jù)庫,在使用myeclipse開發(fā)平臺的基礎上采用mvc設計模式運用struts2,hibernate,spring三大框架前臺使用流行的jquery同時使用tomcat服務器來最終實現(xiàn)項目管理系統(tǒng)。在技術上是絕對可行的。3.1.3 操作可行性從時間上看,在兩個月的

32、時間里了解相關技術,并開發(fā)項目管理系統(tǒng),時間上是有點緊,但是不是不可能實現(xiàn),通過兩個多月的努力功能應該基本實現(xiàn)。3.1.4 法律可行性1所有技術資料都為合法文獻材料。2開發(fā)過程中不存在任何知識產(chǎn)權(quán)問題。3開發(fā)過程中未涉及任何法律責任的承擔。綜上所述,本系統(tǒng)的開發(fā)從技術上、從經(jīng)濟上、從可操作性上、從法律上都是完全可靠的。3.2 本系統(tǒng)的需求分析3.2.1 功能需求本系統(tǒng)是針對中小型企業(yè)項目管理現(xiàn)狀,通過網(wǎng)絡實現(xiàn)對企業(yè)項目信息的管理,主要實現(xiàn)如下目標:(1)對項目信息(項目基本信息、項目經(jīng)辦人、項目方案等信息)進行全面管理。(2)對項目合同的管理。(3)實現(xiàn)各種信息查詢功能。(4)對用戶輸入的數(shù)據(jù)

33、,系統(tǒng)進行嚴格的數(shù)據(jù)檢驗,盡可能排除人為的錯誤。(5)操作員可以隨時修改自己的口令。(6)數(shù)據(jù)保密性強,為每個用戶設置相應的權(quán)限級別。(7)提供輔助工具,方便用戶操作及使用。(8)系統(tǒng)運行穩(wěn)定、安全可靠。3.2.2 性能需求硬件配置:cpu:2.40ghz; 內(nèi)存:4g; 硬盤:500g;軟件配置: 操作系統(tǒng):windows 7; 數(shù)據(jù)庫:sql server 2005; jsp服務器:tomcat; 開發(fā)工具包: jdk1.6.0_263.3 系統(tǒng)開發(fā)流程一般說來,項目管理系統(tǒng)的開發(fā)可以劃分概要設計,詳細設計和編碼階段。其中概要設計階段主要是完成各個模塊主要功能的設計與具體的實現(xiàn)方式,畫出e

34、r圖,完成總體設計。詳細設計階段只要完成各個模塊具體功能的實現(xiàn)方式(邏輯設計等)。在編碼階段主要是依據(jù)概要設計和詳細設計的要求完成各個模塊的代碼編寫。軟件工程體系中曾對一些軟件項目開發(fā)各階段的工作量進行了統(tǒng)計,結(jié)果表明,在開發(fā)過程中各階段的比例分配為: 系統(tǒng)分析:系統(tǒng)設計:編程:模塊調(diào)試:系統(tǒng)調(diào)試20%:15%:20%:25%:20%。由此可見,代碼的編寫在開發(fā)工作中只占很小比例,而需求分析和設計以及最后的測試等工作卻占整個開發(fā)工作量的一半左右。 上述開發(fā)方式的優(yōu)點是便于開發(fā)工作的組織和管理,并且可大大降低企業(yè)項目管理系統(tǒng)開發(fā)的復雜性。國內(nèi)外許多系統(tǒng)開發(fā)的實例都證明這是一種行之有效的開發(fā)方式。

35、4 總體設計4.1 總體設計的目的系統(tǒng)的總體設計中最重要的就是系統(tǒng)的模塊化。模塊化是指解決一個復雜問題時自項向下逐層把軟件系統(tǒng)劃分成若干個模塊的過程。每個模塊完成一個特定的功能,所有的模塊按某種方法組織起來,成為一個整體,完成整個系統(tǒng)所要求的功能。將系統(tǒng)劃分為多個模塊是為了降低軟件系統(tǒng)的復雜性,提高可讀性、可維護性,但模塊的劃分不能是任意的,應盡量保持其獨立性。也就是說,每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單,即盡量做到高內(nèi)聚低耦合,提高模塊的獨立性,為設計高質(zhì)量的軟件結(jié)構(gòu)奠定基礎。核心思想是模塊之間的低耦合和模塊內(nèi)部高內(nèi)聚。在系統(tǒng)的概要設計中采用結(jié)構(gòu)化設計以

36、需求分析階段產(chǎn)生的數(shù)據(jù)流圖為基礎,按一定的步驟映射成軟件結(jié)構(gòu)。首先將整個系統(tǒng)化分為幾個小問題,小模塊。然后,進一步細分模塊,添加細節(jié)。企業(yè)項目管理系統(tǒng)的根本目的是為了讓項目尤其是大型項目的整個生命周期都能在管理者的控制之下,以預定成本按期,按質(zhì)的完成軟件交付用戶使用。而研究項目管理為了從已有的成功或失敗的案例中總結(jié)出能夠指導今后開發(fā)的通用原則,方法,同時避免前人的失誤。該系統(tǒng)通過對項目開發(fā)的各個環(huán)節(jié)進行設置(基本信息操作、項目規(guī)劃管理,合同管理,和項目評價管理),基本信息操作模塊包括基本信息的添加、修改、刪除和查詢;項目規(guī)劃管理模塊包含規(guī)劃項目登記、規(guī)劃項目列表、規(guī)劃項目查詢?nèi)齻€功能。合同管理

37、模塊包括合同的簽訂,合同的管理,合同查詢?nèi)齻€功能。4.2 系統(tǒng)總體流程圖對于數(shù)據(jù)庫軟件應用的設計與開發(fā),數(shù)據(jù)庫系統(tǒng)的設計是其最為核心和基礎的環(huán)節(jié)。數(shù)據(jù)庫系統(tǒng)的優(yōu)劣直接影響到系統(tǒng)的性能,所以對數(shù)據(jù)庫系統(tǒng)的設計必須有優(yōu)良的性能,那么對它的設計也更嚴密周緊。圖4-1 總體流程4.3 功能模塊圖本系統(tǒng)采用myeclipse 作為開發(fā)工具,sqlserver2005 作為后臺數(shù)據(jù)庫,將每個數(shù)據(jù)庫表的字段和操作封裝到類中,從而成功地將面向?qū)ο蟮某绦蛟O計思想應用到數(shù)據(jù)庫應用程序設計中。這也是本系統(tǒng)的特色和優(yōu)勢。圖4-2 模塊劃分圖4.4 用戶功能模塊圖本系統(tǒng)初始化時,有兩個默認的用戶,普通用戶為users,

38、系統(tǒng)管理員用戶為admin,手動添加到數(shù)據(jù)庫中,他的確認密碼為ad。admin用戶可以創(chuàng)建用戶、刪除用戶、修改用戶的信息,普通用戶只能修改自己的用戶名和密碼。圖4-3 用戶功能模塊圖4.5 數(shù)據(jù)庫設計數(shù)據(jù)庫是以一定的組織方式存儲在一起的相關數(shù)據(jù)集合,它能以最佳的方式,最少的數(shù)據(jù)冗余為多種應用服務,程序與數(shù)據(jù)具有較高的獨立性。60年代末到70年代初數(shù)據(jù)庫技術日益成熟,具有了堅實的理論基礎。 70年代,數(shù)據(jù)庫技術有了很大發(fā)展,出現(xiàn)了許多基于層次或網(wǎng)狀模型的商品化數(shù)據(jù)庫系統(tǒng),并廣泛運行在企業(yè)管理、交通運輸、情報檢索、軍事指揮、政管理和輔助決策等各個方面。這一時期,關系模型的理論研究和軟件系統(tǒng)研制也得

39、到了很大進展。1981年ibm公司san jose實驗室宣布具有system r 全部特性的數(shù)據(jù)庫產(chǎn)品sql/ds問世。與此同時,加州大學伯克利分校研制成功關系數(shù)據(jù)庫實驗系統(tǒng)ingres,接著又實現(xiàn)了ingres商務系統(tǒng),使關系方法從實驗室走向社會。20世紀80年代以來,幾乎所有新開發(fā)的數(shù)據(jù)庫系統(tǒng)都是關系型的。微型機平臺的關系數(shù)據(jù)庫管理系統(tǒng)也越來越多,功能越來越強,其應用已經(jīng)遍及各個領域。e-r模型的組成元素有:實體、屬性、聯(lián)系。e-r模型用e-r圖表示。實體是用戶工作環(huán)境中所涉及的事務,屬性是對實體特征的描述。(1)模型中的實體相當于實體集、一個表,而不是單個實體或表中的一行。實體用矩形框表

40、示,實體名稱標注在矩形框內(nèi)。用菱形表示實體間的聯(lián)系,菱形框內(nèi)寫上聯(lián)系名,用無向邊把菱形分別與有關實體相連接,在無向邊旁標上聯(lián)系的類型。(2)屬性是實體的性質(zhì)。用橢圓框表示,與實體之間用一條線相連表的主碼是關鍵屬性,關鍵屬性項加下劃線。(3)各子系統(tǒng)模塊中主鍵相同的字段之間存在著相互關聯(lián)的關系。(4)在程序中實現(xiàn)對他們的完整性和一致性控制。得到上面數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)以后,就可以設計出能夠滿足用戶需求的各種實體,以及它們之間的關系,為后面的邏輯結(jié)構(gòu)設計打下基礎。這些實體包含各種具體信息,通過相互之間的作用形成數(shù)據(jù)的流動。4.5.1 系統(tǒng)e-r圖管理員用戶名密碼普通用戶用戶名密碼管理增刪改查項目合同規(guī)

41、劃項目項目評價增刪增刪增刪用戶增刪增刪增刪圖4-4 系統(tǒng)e-r圖4.5.2 數(shù)據(jù)字典本系統(tǒng)數(shù)據(jù)庫采用sql server 2005數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫名稱為db_client。數(shù)據(jù)庫db_client中包含4張表。表4-1 用戶表(t_admin)字段名數(shù)據(jù)類型主鍵允許非空描述useridint用戶標識usernamevarchar用戶名userpwvarchar用戶密碼表4-2 合同表(t_hetong)字段名數(shù)據(jù)類型主鍵允許非空描述hetong_idint合同標識hetong_namevarchar合同名稱jiafangfuzerenvarchar甲方負責人yifangfuzerenvarc

42、har乙方負責人hetong_kaishishijianvarchar合同的開始時間hetong_jieshushijianvarchar合同的結(jié)束時間hetong_jineint合同金額hetong_beizhuvarchar合同備注xiangmu_idint對應項目的標識(外鍵)delvarchar是否刪除(邏輯刪除)表4-3 評價表(t_pingjia)字段名數(shù)據(jù)類型主鍵允許非空描述pingjia_idint評價標識pingjia_neirongvarchar評價的內(nèi)容xiangmu_idint對應項目的標識(外鍵)delvarchar是否刪除(邏輯刪除)表4-4 項目表(t_xiang

43、mu)字段名數(shù)據(jù)類型主鍵允許非空描述xiangmu_idint項目idxiangmu_namevarchar項目名稱xiangmu_typevarchar項目類型xiangmu_chengdandanweivarchar項目的承擔單位xiangmu_fuzerenvarchar項目負責人xiangmu_shijianvarchar項目時間xiangmu_jineint項目金額xiangmu_fanganvarchar項目方案xiangmu_fangan_yaunshimingvarchar項目方案名稱xiangmu_beizhuvarchar項目備注xiangmu_yanshoujieguov

44、archar項目驗收結(jié)果xiangmu_yanshourenvarchar項目驗收人delvarchar是否刪除(邏輯刪除)5 系統(tǒng)詳細設計及實現(xiàn)5.1 系統(tǒng)架構(gòu)設計在編寫代碼之前,可以先把網(wǎng)站中可能用到的文件夾創(chuàng)建出來(例如:創(chuàng)建一個名為image的文件夾,用于保存網(wǎng)站中需要的圖片),這樣可以方便以后的開發(fā)工作,也可以規(guī)范網(wǎng)站的整體架構(gòu),我在開發(fā)項目管理系統(tǒng)時只需要將文件保存在相應的文件夾中就可以了,非常方便。5.2 系統(tǒng)的運行結(jié)果當管理員在進入項目管理系統(tǒng)后,首先進入項目管理系統(tǒng)的大廳,也就是項目管理系統(tǒng)的首頁。項目管理系統(tǒng)首頁包含基礎信息維護、項目信息維護、項目服務、信息查詢、數(shù)據(jù)管理、

45、輔助工具以及系統(tǒng)管理的超鏈接。項目管理系統(tǒng)網(wǎng)站首頁的運行結(jié)果如圖5-1、5-2所示:圖5-1 網(wǎng)站首頁運行結(jié)果(1)圖5-2 網(wǎng)站首頁運行結(jié)果(2)網(wǎng)站框架說明如表5-1所示:表5-1 網(wǎng)站首頁頁面說明區(qū)域名稱說明對應文件1網(wǎng)站導航主要展示網(wǎng)站的旗幟廣告和站內(nèi)導航條top.jsp2功能模塊主要用于顯示導航模塊中的功能information.jsp3內(nèi)容顯示主要用于顯示功能模塊中的內(nèi)容right.jsp1、 src/struts.xml即為struts2核心配置,主要配置action(訪問路徑)與xxxaction類的映射關系;2、 webroot/web-inf/applicationcont

46、ext.xml為spring+hibernate配置(spring將hibernate配置融入到一起了)3、 hibernate使用jdbc方式,連接sqlserver 2005數(shù)據(jù)庫,使用xml方式映射實體類;4、 spring使用xml配置方式(在applicationcontext.xml文件進行注入的配置);5.3 類的分布整個網(wǎng)站的實現(xiàn)功能利用到的框架struts2,基本上是以“類”的形式實現(xiàn)的。所以我設計一個類的分布圖如下圖5-3:圖5-3 類的分布圖各個類所實現(xiàn)的功能如表5-2所示:表5-2 類的功能控制層(action)引用service層,在這里結(jié)合struts2的配置文件,

47、跳轉(zhuǎn)到指定的頁面,當然也能接受頁面?zhèn)鬟f的請求數(shù)據(jù),也可以做些計算處理服務層(service)引用dao層,完成項目的業(yè)務邏輯持久層(dao)使用了hibernate連接數(shù)據(jù)庫,完成對數(shù)據(jù)的增刪改查(crud)操作實體層(model)與數(shù)據(jù)庫表對應的實體類工具包(util)項目中可能會使用到的一些比較通用的工具代碼的封裝5.4 控制層的實現(xiàn)在控制層中主要存放的是常用的基本類,在這里結(jié)合struts2的配置文件,跳轉(zhuǎn)到指定頁面,當然也能接受頁面?zhèn)鬟f的請求數(shù)據(jù),也可以做些計算處理5.4.1 adminaction.java類(處理基本登錄信息的類)/*adminaction .java*/ pack

48、age com.action;import java.util.list;import java.util.map;import org.apache.struts2.servletactioncontext;import com.dao.tadmindao;import com.model.tadmin;import com.opensymphony.xwork2.actionsupport;import com.util.pagination;public class adminaction extends actionsupportprivate int userid;private s

49、tring username;private string userpw; private string message;private string path;private int index=1;private tadmindao admindao;public string adminadd()tadmin admin=new tadmin();admin.setusername(username);admin.setuserpw(userpw);admindao.save(admin);this.setmessage(操作成功);this.setpath(adminmanage.ac

50、tion);return succeed;public string adminmanage()list adminlist=admindao.findall();map request=(map)servletactioncontext.getcontext().get(request);request.put(adminlist, adminlist);return actionsupport.success;public string adminmanagefenye()list adminlist=admindao.findall();int pagesize=3;int fromin

51、dex = (index - 1) * pagesize;int toindex = math.min(fromindex + pagesize, adminlist.size();list adminlistfenye = adminlist.sublist(fromindex, toindex); pagination p = new pagination();/創(chuàng)建 分頁對象 p.setindex(index);/設置頁數(shù) p.setpagesize(pagesize); p.settotle(adminlist.size();/設置總共的條數(shù) p.setdata(adminlistfe

52、nye);/設置數(shù)據(jù) p.setpath(adminmanagefenye.action?);/跳轉(zhuǎn)的路徑map request=(map)servletactioncontext.getcontext().get(request);request.put(page, p);return actionsupport.success;public string admindel()admindao.delete(admindao.findbyid(userid);this.setmessage(刪除成功);this.setpath(adminmanage.action);return succe

53、ed;5.4.2 hetongaction(實現(xiàn)對合同信息的操作)package com.action;import java.util.list;import java.util.map;import org.apache.struts2.servletactioncontext;import com.dao.tadmindao;import com.dao.thetongdao;import com.model.tadmin;import com.model.thetong;import com.opensymphony.xwork2.actionsupport;import com.util.paginationpublic class hetongaction extends actionsupportprivate int hetongid;private string hetongname;private int xiangmuid;private string jiafangfuzeren;privat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論