项目报告
基于Java EE平台项目管理系统的设计与实现
随着社会信息化的发展,很多的社会管理问题也一并出现了根本性变化,项目公司的报表及文件管理也发生了变化,以前的管理是一个分布式的信息,然后围绕中心由通过简单的来传输信息,这使得办事效率非常低下,所以需要需要适用信息货的发展,开发一套项目的管理信息系统。
此在这个系统中我综合应用了MySQL、Servlet、JSP等知识。网页界面的结构设计以实用性出发,具有易于操作、简洁、方便等特点。在设计中,首先,运用HTML语言对网站的静态页面进行精细的加工并且在网站的美工方面取得了良好的效果。其次,对于Java编程、JSP的动态编程以及MySQL数据库进行努力学习和大量实践,并运用到了网站的建设中。
本报告就项目管理系统进行了论述。访问本系统的用户主要是管理员,管理员的主要功能有:项目信息管理、项目资源、经费、进度、成果等信息的管理
项目管理;JSP;MySQL;Myeclipse
目录
摘 要......................................................... 1
Abstract.................................................... 2
1. 绪论.................................................... 5
2. 开发工具和环境简介...................................... 7
3. 系统功能分析........................................... 14
3.3 系统功能的分析................................................................................... 15
4. 项目管理系统的总体设计................................. 17
4.1 系统的功能设计目标........................................................................... 17
4.2 项目管理系统功能模块....................................................................... 17
4.4 系统总体结构图................................................................................... 26
4.5项目管理系统用例图............................................................................ 27
5. 数据库设计............................................. 29
5.1 数据库系统概述................................................................................... 29
5.2 数据库逻辑结构设计........................................................................... 29
6. 系统实现............................................... 32
6.2 网页主页面模块................................................................................... 32
7. 系统测试............................................... 33
7.1 软件的安装与配置............................................................................... 33
8. 结束语................................................. 36
附录:外文翻译:.............................................. 39
- 绪论
- 课题背景
随着社会信息化的发展,社会上很多事务的管理也跟着相应发生了根本的变化,项目申报管理也跟着发生了变化,以前的管理是一种各地信息分散然后再集中到中央,信息的传送途径是通过简单人工传送,这样使办事效率低。此外,各个分散机构的项目申报在办理后不能及时集中到中央数据中心,不利于管理层的信息统计与决策。二十一世纪是信息技术的时代,信息量高度膨胀,人们对于信息的需求和控制欲越发强烈,各行各业对信息自动化和控制自动化的需求日益强烈。随着计算机和计算机网络的普及,使人们具有了处理大量的、繁琐的、复杂的、无序的信息的能力,并且随着数据库技术的逐步成熟和逐步深入到社会科学的各个领域,人们可以对以前无法解决或无法在短时间内解决的信息问题做出迅速的判断和解决。
- 目的和意义
基于以上现状,采用先进的信息化管理系统可以解决这些问题。这样就方便了管理层的统一管理和决策,同时提供了工作效率。本系统用于对辖区内单位项目申报立项流程的管理,传统模式的管理花费很多的精力,采用信息新技术优化管理手段,强化申报流程,加强项目监管,提高工作效率。
本报告主要包括软件,数据库和网络技术,可以对信息快速的收集整理,在这个过程中,考察了学生在大学期间所学的知识以及综合知识学习能力,并且在解决问题的水平有了很大提高,而且增强了对项目管理方面的理解与认识。我们运用和掌握了科学的研究方法,首先,我们确立了正确的设计思想,独立的进行思考,积极探索,勇于发现错误并及时改正,对今后的学习生活而言是一个难能可贵的经历。
- 开发设计思想
此在这个系统中我综合应用了MySQL、Servlet、JSP等知识。网页界面的结构设计以实用性出发,具有易于操作、简洁、方便等特点。在设计中,首先,运用HTML语言对网站的静态页面进行精细的加工并且在网站的美工方面取得了良好的效果。其次,对于Java编程、JSP的动态编程以及MySQL数据库进行努力学习和大量实践,并运用到了网站的建设中。
工程管理是一种遵循客观经济规律的管理活动,是系统的全方位的对工程建设项目从追踪各类项目信息开始,然后编制项目书,进行研究,开展设计和施工等工作,直到项目竣工投产或投入使用的全过程的管理。
- 开发目标
高校是科技发展的重要力量,而企业中文件与项目管理更为重要,因此为了促进高校科研发展、提高企业管理水平及服务水平的管理在日常管理中的作用日益凸现。传统的手工管理和计算机的辅助管理越来越不能满足新形势下发展的要求,有必要对管理信息进行计算机的网络管理。
在我国,某些高校或企业一直使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对文件档案信息进行管理,具有手工管理所无法比拟的优点。所以建立项目管理系统,使管理自动化,提高信息处理的速度和准确性十分必要。
- 开发工具和环境简介
2.1 Java Server Page 简介
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术的优点:
(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下
(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。
内部对象说明:request 客户端请求,此请求会包含来自GET/POST请求的参数; response 网页传回客户端的响应;pageContext 网页的属性是在这里管理; session 与请求有关的会话; application servlet正在执行的内容;out 用来传送响应的输出流; config 代码片段配置对象;page JSP网页本身; exception 针对错误网页,未捕捉的例外。
2.2 MySQL简介
MySQL是目前属于Oracle旗下,由瑞典公司MySQL AB开发的关系型数据库管理软件。目前,MySQL在互联网上的中小型网站上得到了广泛的应用。由于其体积小、速度快、整体拥有成本低,则许多中小型网站选择MySQL作为网站,这样可以很大程度的降低网站整体拥有成本。
数据库物理设计阶段的目标是指实际的计算机系统(硬件和数据库管理系统),给指定的数据库模型(database model)确立恰当的存储结构以及存取方法。其中“恰当”含有两种含意:其一,数据库使用的存储空间要尽可能的少;其二,数据库反应时长要尽可能的短。
以作出令人满意的数据库设计为目标,数据库设计人员应该掌握数据库管理系统的核心规则;能很好的运用DBMS的实际运行环境,尤其注意数据应用管理的反应时长以及频率的需求;明确外部存储设施的特性。
物理结构设计阶段的目标是在确定数据库的存储结构和访问方法之前提供有关DBMS提供的信息要做到充分的熟悉,做到能合理优化数据库中物理设计的参数。这种优化的有效性直接关系着DBMS的性能,被称为数据库系统的内模式。
数据库事务的四大特性(简称ACID)是:
原子性(Atomicity)
事务的原子性是指,事务所包含的被当做数据库逻辑工作个体的程序,对数据的操纵要求“一针见血”,即没有完全确定要修改的内容时一个不改,一旦确定目标就要全部都改,这种特性被称为原子性。
例如添加图片事务分为2个步骤(1)上传图片(2)添加图片所在的相册类型。不可能添加了图片类型,却没有上传。2个步骤必须同时完成才能实现添加图片事务。
(2)一致性(Consistency)
事务一致性意味着数据库不会随着事务更改而更改。此属性称为事务一致性。如果是的话,说数据库是一致的。数据库中事务一致性的标准则要求数据库的状态需要满足所有完整性约束。
例如完整性约束图片的删除,如果图片删除事务发生更改,则数据库中的数据也必须删除。
(3)分离性(亦称独立性Isolation)
分离性指的是并发的事务是相互隔离的。即对并发事务正在关联的数据以及内部动作进行分割,远离其他交易。这是为了防止并发事务的发生,而同样的数据操作可能会出现死锁现象。
(4)持久性(Durability)
持久性意味着已持久化的事务不会因为外部环境关闭或其他异常现象的发生而发生改变。即只要事务进行了持久化操作,则数据库数据的改变就会在数据库管理系统的管理下恒久不变,还可以还原已提交事务的更改。
MySQL数据库提供了一些强大的功能,可以在帮助使用者获取信息的同时,对数据进行多样的数据处理。除此之外,便利的数据库分享功能使管理人员可以更好的作出恰到的决策。
不过,单独的DBMS并不能完全满足信息系统的开发者对数据处理的需求,又或是需要更加便捷的方式去实现。
因此,开发者们会在某种在DBMS中,DIY需要自己的应用程序来形成一个应用程序信息系统,以满足应用需求和尽可能简单。这就是所谓的两个发展。
MySQL 还具有以下特点:
1.更便宜的查询和操纵数据
MySQL提供了简化查询和操纵数据的工具。
2.提供信息共享功能(web功能)
MySQL简化了数据库功能,他将桌面以及网址的数据库功能进行了整合,使得它可以轻易将数据库运用到浏览器中。这样它就能仅通过内网的Internet就能实现信息共享。
3.有关于信息处理方面的问题
用户和开发人员可以结合MySQL接口(客户端)的易用性和SQL Server的可扩展性和可靠性来对信息进行创建解决方案。
4.DIY数据库窗口
MySQL可以持久化新的对象,这样很大程度上提升了MySQL 数据库的便捷性。
5.名称自动更改功能
当用户对数据库对象进行重新命名的时候,,MySQL会自动更改与它关联的名称信息,方便数据库的扩展和维护。
6.可以建立子数据表功能
可以在同一窗口中实现可嵌套式的视图子表功能,方便开发者能够只关注相关的数据并对其进行操作。
7.方便快捷的数据库连接导出方式
数据的导出只需要将MySQL对象加载到JDBC-ODBC桥即可实现。
8.数据访问页功能
该功能可使用户快捷方便地创建数掂 HTML页,通过将数据库加载到Intranet Internet连接中,可以高效、快捷地实现信息的共享。
9.集成共享组件
MySQL为了实现多种查询和管理数据则运用Web组件和浏览器中的COM控件。
交互性
MySQL支持OLE DB,让用户结合使用与后台数据库如SQL Server2000的扩展MySQL接口方便。
2.3 MyEclipse 简介
本系统是跨越平台限制和跨越浏览器限制的充满动感的网页。构建项目管理系统所用的网页编辑器为MyEclipse, MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。
-
- MySQL 数据库
MySQL数据库是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被升阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购升阳微系统公司,MySQL成为Oracle旗下产品。MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。
-
- JAVA 简介
在我们大学的课程中了解到,Java其实和c++差不多,在本质上都是面向对象进行设计开发的语言。在跟c语言相比较之后,你会发现,对于开发者而言Java是更趋向于简单易懂的模式。在java中,所有的程序,不论简单与否,都必须构建对象才会有接来下的操作。并且java的源代码必须先经过编译之后才能传递到客户端去执行。Java中的所有变量必须在声明之后才可以使用。并且java是一种与html无关的一种格式,java中的代码是以字节码的形式存在的。他们都是独立的保存在文档中。在java中始终都是先编译后运行,java的引用对象必须是在编译时才会用到。
Java语言的特点:
1.平台无关性
平台无关性是Java语言的一大特色,它是指编写好的Java程序无需任何修改就可以在不同的平台上进行运行。我们知道,.exe文件是windows系统下的可执行文件,类似的,.class文件就是JVM(Java虚拟机)上的“可执行文件”。Java代码在第一次编写的时候所存储的后缀为.java的文件经过编译后,会生成一个后缀为.class的文件,而该文件则独立于平台。怎么说呢?我们的Java程序在平台上不是直接运行于系统上的,而是通过JVM来运行,不同平台的JVM是不同的,但是对外都提供相同的接口,这样.class文件不管在什么平台下都能和这些“相同的”接口正确“嵌合”。
2.安全性
一是java有一种garbage collection机制,也就是垃圾回收机制,garbage collector会让你所编写的程序不容易出现内存泄露。如果内存泄露是很危险的,在内存泄露的时候,黑客有可能会借此对你的电脑进行攻击。二是java中存在异常类,也就是exception类,它可以在程序出错的时候让程序员停止程序的运行,保护程序的安全。三是java里面没有指针,可以防止程序员access错误的内存,从而保护程序的安全。
3.面向对象
想知道什么是面向对象的话,首先需要知道什么是面向过程。面向过程允许在程序中定义函数或者方法。而面向对象更近一步,允许你将这个“过程”,也就是函数或者方法以及和它们所关联的数据封装成对象,而这个对象,又通过继承和派生以及类型限定符,使开发者无法全部的访问和修改其包含的整个内容。
4.分布式
分布式和多处理器的系统不同,分布式系统中每个节点运行独立的操作系统。而多机系统所有的节点在单一的操作系统的控制下。
5.可移植性
Java的可移植性主要体现在你在一个操作系统上编译生成的.class文件,可以直接在另外一个操作系统上运行,当然这些操作系统上都应该安装JDK,其实准确的说,只需要有JRE就可以。
-
- Tomcat简介
Tomcat 服务器是一个轻量级应用服务器,它所占用的资源特别少,在用户和系统所需资源不是很多的情况下经常被使用,是开发和调试JSP 程序的首选。由于sun公司对tomcat发展的支持,所以最新的JSP规范一定会在Tomcat中得以体现。Tomcat的技术十分先进,而且使用也很方便,性能也是相当的稳定,多数的程序开发人员都很喜欢使用tomcat。Tomcat虽然是一个小型的服务器,但它的发展已经相当成熟,并且它是免费的,但是它的效率根本不会输给竞争对手。同样,我们可以把Tomcat看做是Apache服务器的一种扩展,所以当我们在运行tomcat时,本质上它是以一个独立的Apache进程来运行。
2.7 MVC模式
为了满足系统对先进性、安全性、跨平台性、可扩展性、可移植性、分布式等方面的要求,系统总体架构设计采用先进的基于java的B/S的三层体系结构。MVC是
三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)[9]。 MVC模式的目的就是实现Web系统的职能分工。Model层 实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层 用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。Web浏览技术已经广泛地应用于Internet,并被广大用户接受和使用。Web技术是随http和html一起出现的。Web服务器利用http传递html文件,Web浏览器使用http检索html文件。Web服务器一旦检索到信息,Web浏览器就会以静态和交互(如文本、图像)方式显示各种对象。在电子商务业务进行过程中,需要在各种贸易角色之间浏览和交换各种信息,此时就要使用Web浏览技术。 这种模型使系统结构更加清楚,分工更加明确,有利于整个系统后期的维护和升级。
MVC(Model View Controller)模型(model)-视图(view)-控制器(controller)MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC 的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。
三层体系结构由浏览器、web服务器和数据库组成,并结合HTML语言、jsp、JavaScript脚本语言、Ajax、ODBC等技术,后台的数据库采用微软的SQL Server 2005,系统一般的MVC
图2-7 系统MVC结构图
如图1-1可知,用户界面层是用户和个系统的接口,客户端只需安装通用的浏览器即可建立与本系统的连接。业务逻辑层负责处理用户输入的信息,或将这些信息发送给数据库层进行保存,或调用数据库层中的函数再次读出这些数据。数据访问层是整个分层体系的最底层,它主要用来实现与数据库的交互,即完成查询、插入、删除和修改数据库中数据的功能MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。分层概念视图,模型,控制器。
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。MVC模型还可以实现软件工程的高内聚,低耦合的终极目标。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求自己本身并不参与业务逻辑处理,然后再确定用哪个视图来显示返回的数据。
MVC的优点:
1)低耦合性
2)高重用性和可适用性
3)较低的生命周期成本
4)快速的部署
5)可维护性
6)有利于软件工程化管理
- 系统功能分析
我需求分析是理解真实世界中的问题和用户需求,并能找出能满足这些需求的解决方案的过程。需求分析的目标是在开发活动开始之前,对问题的解决方法得到更好的认识。由此可见,需求分析在整个项目运行过程中具有举足轻重的地位。它甚至决定了以后开发活动的大方向。能否得到一个准确全面的需求分析结果将直接影响软件开发项目的质量和成败。
3.1 可行性研究
对于可行性研究而言,其任务就是用最低的代价在最短的时间内做出一个判断当前系统实现后的价值。为了避免在花费了大量的资源之后才发现该功能的实现完成不了或者完成了之后也没有多少实用性的价值。从而造成更多的浪费。在这个过程中,我们进行大量的问卷调查,网上调研等,深刻的考虑了这个系统的可行性,以免开发不必要的功能,对时间和资源等的浪费。
①技术可行性
由于主要接触的是Java编程语言,因此对Java语言比较有深刻的了解,尤其是在实习期间掌握了一些项目经验。在我看来,这次项目管理系统系统于我来说是一项比较大的软件开发工作。在这个开发过程中,我们为了系统的成功开发以及功能的全面实现,采取严谨的开发态度。同时,我们也需要采取科学的、工程化的系统开发方法。并且在这个过程中,我们也会研究一些符合工程化标准的开发方法,以适应我们的开发过程,保证系统功能的实现。研究这些方法意图是为了我们掌握更好的开发方法,并且在保证开发的速度较快的同时保证系统功能的质量,而且还可以更多的降低开发成本,节约时间。
②操作可行性
现在的生活中计算机已经普遍到每个家庭的生活当中,因而也就越来越多的人掌握了使用计算机的基本使用方法和技能。而本系统操作简单,输入信息页面大多数都是下拉框的选择形式,在某些页面,信息可以自动生成,无需输入,时间的输入也是用的日历控件,操作简便,对用户的要求很低,只需对WINDOWS操作熟练,而且本系统可视性非常好,所以在技术上不会有很大难度。
③经济可行性
服务器端的安装简洁明了,客户机无需再装任何软件,通过浏览器就可以直接访问,可以直接接入Internet,无论您身在何处,只要您可以访问Internet都可以使用本系统。本系统对计算机配置的要求不高,企业机房更换下来的低配置电脑都可以完全满足需要,所以在经济上具有完全的可行性
④ 法律的可行性
此系统开发期间,所有工作完全是独立完成,本人具有开发此软件的能力,因此不存在抄袭等盗版侵权的问题。因此具有法律可行性。
综上所述,开发此系统十分有利于我们学习或工作当中的文件或项目管理,使之能够更加方便,快捷,准确,并能够降低成本,这是很多高效或大公司在未来所需要的一款系统。因此,此系统的开发是完全可行的。
⑤运行环境:
此项目管理系统的运行环境包括硬件、操作系统、数据库等软件:
硬件:对于硬件的要求不是很高,基本的中央处理器(CPU):i5-3230M;
硬 盘:硬盘容量需要80 GB以上硬盘;
内 存:8G;
操作系统: Windows7,
关系数据库: MySQL;
3.2 需求分析
"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,在软件工程当中的“需求分析”就是确定要计算机“做什么”,要达到什么样的效果。可以说需求分析是做系统之前必做的。
而对于项目管理系统开发来言,我们了解的就是将来管理者会有什么样的具体要求,同时在管理者运行上也需近乎流畅。在考虑系统的性能的时候,方便用户的前提下,我们应该去实现什么样的功能。
(1)用户的需求分析:
首先用户需要在此网站进行在用户注册成功登录后,用户可以在知道自己原密码的前提下修改自己的登录密码。其次用户可以添加新项目,同时删除旧项目或创建错误的项目,同时,用户可以进行项目经费,资源,进程,成果进行管理以及对这些操作的查看以便进行确认。
(2)系统性能分析:
对数据的安全性、完整性要求:我们需要对用户的信息进行严格保密,防止非法用户对信息进行恶意删改。以下是系统性能需求:
(a)首要的则是系统的安全性和可靠性;
(b)保证安全的同时尽可能完善系统的功能,易于用户的操作;
(c)为了不断地进步发展,系统同时需要进行维护和不断地升级完善功能;
(d)由于多用户同时操作,所以数据库需要满足多次访问,保证其效率处于较高的水平。
3.3 系统功能的分析
如果我们的系统已经初步成型,我们需要对其进行分析时,则需要通过分析系统的功能和实现去确定系统的即将要达成的目的。因此,我们要收集足够的信息去验证我们的分析结果,在该次项目设计中,我们获取的信息大多都是从网上,书库中了解到的。在任何的实践中获取的信息其实才是最可靠,最具有说服力的信息,所以,我们浏览其它的项目管理系统,然后来具体管理以便获得更可靠的信息。从而得到以下的功能模块:
从管理员角度看:
用户登入系统后,可以修改管理员的密码。同时具有以下功能:
1、管理员可以管理具体项目信息。
2、管理员可以管理项目经费信息。
3、管理员可以管理项目资源信息。
4、管理员可以管理项目进度信息。
5、管理员可以管理项目成果信息。
从员工角度看:
员工可以注册,然后可以进行密码以及信息的管理。同时也具有以下功能:
- 员工可以查看具体项目信息
- 员工可以查看具体经费信息
- 员工可以查看具体资源信息
- 员工可以查看具体进度信息
- 员工可以具体查看成果信息
3.4 数据字典
字典最重要的作用是作为分析阶段的工具。日常生活中,任何的字典都是供人查询未知的词条或条目,起到答疑解释的目的。而在系统设计结构化分析中,数据流图上每个成分的定义和说明则依靠数据字典来完成。在数据字典中建立的这种严密且一致的定义对改进分析员和用户的通信有很大的帮助。数据字典由数据项,数据结构,数据流,数据存储以及处理过程组成,在系统分析中有很大的作用。
- 项目管理系统的总体设计
4.1 系统的功能设计目标
理论系统功能设计目标如下:
(1) 实用性强:在设计系统时,做到最大化的贴近实际,操作简单,针对各层次的人群都能够快速学习并运用。
(2) 先进的程序结构:使用先进的程序结构,利于提高整个系统的效率,而且便于维护及管理,以增强系统的使用周期。
(3) 使用模块化设计的方法:首先系统可以具有特别好的可扩充性,便于进一步完善系统,其次,对于系统后期的维护也很方便。
(4) 操作简单,维护方便:系统的维护功能在每个子系统都具备。
4.2 项目管理系统功能模块
我们详细考虑了系统所需要的大致功能,并且大体分为以下几个模块:
1.登录界面:这样的背景下,用于存储系统信息后,必须先进入到执行相应的操作管理系统,登录需要用户通过输入引进正确的用户名,密码,两者都是必要的,管理员在后台识别,后台模块的入口,背景识别模块主要用于验证管理员的身份和密码。
判断管理员身份的部分代码:
public String login(String userName,String userPw,int userType)
{
String result="no";
if(userType==0)//系统管理员登陆
{
String sql="select * from t_admin where userName=? and userPw=?";
Object[] params={userName,userPw};
DB mydb=new DB();
mydb.doPstm(sql, params);
try
{
ResultSet rs=mydb.getRs();
boolean mark=(rs==null||!rs.next()?false:true);
if(mark==false)
{
result="no";
}
else
{
result="yes";
TAdmin admin=new TAdmin();
admin.setUserId(rs.getInt("userId"));
admin.setUserName(rs.getString("userName"));
admin.setUserPw(rs.getString("userPw"));
WebContext ctx = WebContextFactory.get();
HttpSession session=ctx.getSession();
session.setAttribute("userType", 0);
session.setAttribute("admin", admin);
}
rs.close();
}
catch (SQLException e)
{
System.out.println("登录失败!");
e.printStackTrace();
}
finally
{
mydb.closed();
}
}
return result;
}
2.主页:进入主页后可以点击左侧项目信息管理、资源信息管理、进度信息管理、个人密码修改等图标,进入相应的管理页面
3.项目管理:本模块实现对企业项目信息的管理操作,包括企业项目信息的添加、删除操作。
点击企业项目信息管理菜单,进入企业项目信息管理页面,该页面通过列表列出已添加的企业项目信息,包括项目名称、立项时间、负责人等。点击列表的删除按钮,实现企业项目信息的删除操作。
图4-1
点击添加按钮,进入企业项目信息添加页面,输入符合条件的企业项目信息,完成添加
图4-2
该模块的主要功能xiangmu_servlet类 实现的,该类的主要功能是与数据库交互,查询或保存企业项目信息,并通过request跳转,打开相应的jsp页面。部分代码是:
public void xiangmuDel(HttpServletRequest req,HttpServletResponse res)
{
String id=req.getParameter("id");
String sql="update t_xiangmu set del='yes' where id=?";
Object[] params={id};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "xiangmu?type=xiangmuMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void xiangmuMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String sql="select * from t_xiangmu where del='no'";
req.setAttribute("xiangmuList", getxiangmuList(sql));
req.getRequestDispatcher("admin/xiangmu/xiangmuMana.jsp").forward(req, res);
}
public void xiangmuSele(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String sql="select * from t_xiangmu where del='no'";
req.setAttribute("xiangmuList", getxiangmuList(sql));
req.getRequestDispatcher("admin/xiangmu/xiangmuSele.jsp").forward(req, res);
}
private List getxiangmuList(String sql){
List xiangmuList=new ArrayList();
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
TXiangmu xiangmu=new TXiangmu();
xiangmu.setId(rs.getInt("id"));
xiangmu.setMingcheng(rs.getString("mingcheng"));
xiangmu.setShijian(rs.getString("shijian"));
xiangmu.setFuzeren(rs.getString("fuzeren"));
xiangmuList.add(xiangmu);
}
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb.closed();
return xiangmuList;
}
4.项目资源管理:本模块实现对项目资源信息的管理操作,包括项目资源信息的添加、删除操作。
点击项目资源信息管理菜单,进入项目资源信息管理页面,该页面通过列表列出已添加的项目资源信息,包括项目名称、资源名称、添加时间等。
图4-3
图4-4
部分代码:public void ziyuanAdd(HttpServletRequest req,HttpServletResponse res)
{
String xiangmu_id=req.getParameter("xiangmu_id");
String shijian=req.getParameter("shijian");
String mingcheng=req.getParameter("mingcheng");
String miaoshu=req.getParameter("miaoshu");
String sql="insert into t_ziyuan (xiangmu_id,mingcheng,miaoshu,shijian) values(?,?,?,?)";
Object[] params={xiangmu_id,mingcheng,miaoshu,shijian};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "ziyuan?type=ziyuanMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void ziyuanMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String sql="select ta.*,tb.mingcheng xmmc from t_ziyuan ta,t_xiangmu tb " +
"where ta.xiangmu_id=tb.id and del='no'";
List ziyuanList=new ArrayList();
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
TZiyuan ziyuan=new TZiyuan();
ziyuan.setId(rs.getInt("id"));
ziyuan.setXmmc(rs.getString("xmmc"));
ziyuan.setShijian(rs.getString("shijian"));
ziyuan.setMingcheng(rs.getString("mingcheng"));
ziyuan.setMiaoshu(rs.getString("miaoshu"));
ziyuanList.add(ziyuan);
}
rs.close();
}
6.项目经费管理:本模块实现对项目经费信息的管理操作,包括项目经费信息的添加、删除操作。点击项目经费信息管理菜单,进入项目经费信息管理页面,该页面通过列表列出已添加的项目经费信息,包括项目名称、经费金额、追加时间等。
图4-5
图4-6
部分代码:public void jingfeiAdd(HttpServletRequest req,HttpServletResponse res)
{
String xiangmu_id=req.getParameter("xiangmu_id");
String shijian=req.getParameter("shijian");
String jine=req.getParameter("jine");
String sql="insert into t_jingfei (xiangmu_id,jine,shijian) values(?,?,?)";
Object[] params={xiangmu_id,jine,shijian};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "jingfei?type=jingfeiMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void jingfeiMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String sql="select ta.*,tb.mingcheng from t_jingfei ta,t_xiangmu tb " +
"where ta.xiangmu_id=tb.id and del='no'";
List jingfeiList=new ArrayList();
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
TJingfei jingfei=new TJingfei();
jingfei.setId(rs.getInt("id"));
jingfei.setXmmc(rs.getString("mingcheng"));
jingfei.setShijian(rs.getString("shijian"));
jingfei.setJine(rs.getString("jine"));
jingfeiList.add(jingfei);
}
rs.close();
}
7.项目进度管理:本模块实现对项目进度信息的管理操作,包括项目进度信息的添加、删除操作。点击项目进度信息管理菜单,进入项目进度信息管理页面,该页面通过列表列出已添加的项目进度信息,包括进度描述、添加时间、百分比等。
图4-7
图4-8
部分代码:public void jinduAdd(HttpServletRequest req,HttpServletResponse res)
{
String xiangmu_id=req.getParameter("xiangmu_id");
String shijian=req.getParameter("shijian");
String miaoshu=req.getParameter("miaoshu");
String baifenbi=req.getParameter("baifenbi");
String sql="insert into t_jindu (xiangmu_id,shijian,miaoshu,baifenbi) values(?,?,?,?)";
Object[] params={xiangmu_id,shijian,miaoshu,baifenbi};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "jindu?type=jinduMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void jinduMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String sql="select ta.*,tb.mingcheng from t_jindu ta,t_xiangmu tb " +
"where ta.xiangmu_id=tb.id and del='no'";
List jinduList=new ArrayList();
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
TJindu jindu=new TJindu();
jindu.setId(rs.getInt("id"));
jindu.setXmmc(rs.getString("mingcheng"));
jindu.setShijian(rs.getString("shijian"));
jindu.setMiaoshu(rs.getString("miaoshu"));
jindu.setBaifenbi(rs.getString("baifenbi"));
jinduList.add(jindu);
}
rs.close();
}
8.项目成果管理:本模块实现对项目成果信息的管理操作,包括项目成果信息的添加、删除操作。点击项目成果信息管理菜单,进入项目成果信息管理页面,该页面通过列表列出已添加的项目成果信息,包括进度描述、添加时间、百分比等。
图4-9
图4-9
9.退出后台管理:后台管理模块的出现主要用于来自后台系统管理。当从后台管理系统出来,然后单击[退出]按钮,虽然它仍然在后台,但不能做任何事情;点击其他工作的模块,将打开登录窗口的背景下,要求用户介绍了正确的用户名,密码。
4.3 项目管理的体系结构
主要结构:
图4-10
即:JSP技术 + JavaBeans + MySQL 数据库
4.4 系统总体结构图
图 4-11 系统总体结构图
数据流图:
数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。在结构化开发方法中,数据流图是需求分析阶段产生的结果。
数据流图英文缩写DFD(Data Flow Diagram)它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。
数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。
数据流程图包括:
a.指明数据存在的数据符号,这些数据符号也可指明该数据所使用的媒体;
b.指明对数据执行的处理的处理符号,这些符号也可指明该处理所用到的机器功能;
c.指明几个处理和(或)数据媒体之间的数据流的流线符号;
d.便于读、写数据流程图的特殊符号。
在处理符号的前后都应是数据符号。数据流程图以数据符号开始和结束(除9.4规定的特殊符号外)
图4-12系统流程图
4.5项目管理系统用例图
图4-13 管理员用例图
图4-14 员工用例图
- 数据库设计
5.1 数据库系统概述
数据库是“按照数据结构来组织、存储和管理数据的仓库”。作为网络的一个重要应用,数据库在网站建设中发挥着重要的作用,与普通网站相对而言,具有数据库功能的网站网页我们通常称为动态页面,也就是说页面不是一层不变的,页面上内容(或部分内容)是动态生成的,它可以根据数据库中相应部分内容的调整而变化,使网站内容更灵活,维护更方便,更新更便捷。SQL Server数据库作为微软推出的以标准JET为引擎的桌面型数据库系统,由于具有操作简单、界面友好等特点,具有较大的用户群体。
本系统数据库采用SQL Server数据库,系统数据库名称为db_yyw,下面分别给出数据表概要说明、主要数据表的结构。
5.2 数据库逻辑结构设计
系统数据库db_xmgl中含有7张数据表,项目信息表t_xiangmu、资源信息表t_ziyuan、经费信息表t_jingfen、进度信息表t_jindu、成果信息表t_chengguo、管理员信息表t_admin、员工信息表t_admin。
1.项目结构表:项目信息表主要用于保存项目的基本信息,如项目名称、立项时间、项目负责人等
表5-1项目结构表
字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
id | int | 4 | 是 | 自动编号 |
mingcheng | int | 4 | 否 | 项目名称 |
shijian | int | 4 | 否 | 立项时间 |
fuzeren | varchar | 50 | 否 | 项目负责人 |
2.资源信息表:资源信息表主要用于保存项目涉及到的资源信息,如资源名称、描述、添加时间等
表5-2项目信息表
字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
id | int | 4 | 是 | 自动编号 |
xiangmu_id | int | 4 | 否 | 项目信息 |
mingcheng | varchar | 50 | 否 | 资源名称 |
miaoshu | varchar | 50 | 否 | 资源描述 |
shijian | varchar | 50 | 否 | 添加时 |
3.经费信息表:经费信息表主要用于保存项目经费信息,如经费金额、追加时间等
表5-3经费信息表
字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
id | int | 4 | 是 | 自动编号 |
Xiangmu_id | int | 4 | 否 | 项目信息 |
jine | varchar | 50 | 否 | 经费金额 |
jine | varchar | 50 | 否 | 追加时间 |
4.进度信息表:进度信息表主要用于保存项目进度信息,如时间、进度描述、百分比等
表5-4进度信息表
字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
id | int | 4 | 是 | 自动编号 |
Xiangmu_id | int | 4 | 否 | 项目信息 |
shijian | varchar | 50 | 否 | 时间 |
miaoshu | varchar | 50 | 否 | 进度描述 |
baifenbi | varchar | 50 | 否 | 百分比 |
5.成果信息表:成果信息表主要用于项目产生的成果信息,如成果描述、时间、成果相附件等
表5-5成果信息表
字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
id | int | 4 | 是 | 自动编号 |
xiangmu_id | int | 4 | 否 | 项目成果 |
miaoshu | varchar | 50 | 否 | 成果描述 |
shijian | varchar | 50 | 否 | 时间 |
fujian | varchar | 50 | 否 | 附件路径 |
fujianYuanshiming | varchar | 50 | 否 | 附件原始名 |
6.管理员信息表:管理员信息表主要用于保存管理员的基本信息
表5-6管理员信息表
字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
id | int | 4 | 是 | 自动编号 |
userName | varchar | 50 | 否 | 登录账号 |
userPw | varchar | 50 | 否 | 登录密码 |
7.员工信息表:员工信息表主要用于保存员工的基本信息
表5-7员工信息表
字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
id | int | 4 | 是 | 自动编号 |
name | varchar | 50 | 否 | 员工姓名 |
sex | varchar | 50 | 否 | 员工性别 |
tel | varchar | 50 | 否 | 员工电话 |
userN | varchar | 50 | 否 | 员工登录账号 |
userP | varchar | 50 | 否 | 员工登录密码 |
- 系统实现
6.1程序说明
本系统都是以面向对象的方法进行设计实现,我们以Java 语言为基础进行开发,在实现此系统功能时,我们是采用JSP技术,JavaBeans组件和MySQL数据库进行开发实现的。
6.2 网页主页面模块
6-2-1 网页主页模块
- 系统测试
7.1 软件的安装与配置
软件安装的环境:操作系统Windows 7
MySQL
JDK安装:
在我们大学的课程以及实践中,我们有很多次JDK安装的经验,JDK的安装也特别简单,易于操作。
JDK的配置:
设置JAVA_HOME环境变量:JDK 安装目录 例:C:\j2sdk1.4;
设置CLASSPATH环境变量:JDK安装目录\lib\tools.jar 例:
C:\j2sdk1.4\lib\tools.jar;.
设置PATH环境变量:JDK 安装目录\bin;例:C:\j2sdk1.4\bin;
服务器的安装:Tomcat 5.0
设置TOMCAT_HOME环境变量:Tomcat安装目录 例:C:\Tomcat 5.0;
(2)Tomcat5.0 安装时注意在选择Java虚拟机路径是切记要选择安装的JSDK的目录,之后再进行安装。
(3)在安装完毕后,我们随后就可以运行TOMCAT,可以在浏览器中输入http://localhost:8080,成功的TOMCAT的欢迎页面,。
7.2 软件调试
人无完人,我们在软件开发的过程中难免会发生一些错误,而软件调试则是为了发现程序和系统中的出现的问题,并对其及时的加以修改和修正,得以更好的完善系统,更准确的贴近系统开发的预期功能。
我们在项目管理系统中所采用的调试方法包括以下几种:
(1) 程序调试
程序调试的方法主要包含语法调试和逻辑检查两种,在测试过程中,我们不能单单运用正常的数据资料来进行调试,这样的调试并不能保证系统的全面性,我们选用的资料必须全面,从各种方面和角度对系统进行核查调试,这样对系统的功能完善具有很准确的判断。
①首先我们会用正常的数据资料来对系统进行调试。正确的资料是系统完成功能的首要标准,检查系统是否实现了基本功能,正常的数据资料在系统调试中的地位相当重要。
②其次,我们还需要运用有异常的数据资料对系统进行调试,检查系统的容错性,防止系统在遇到异常时无法处理而崩溃,影响用户的使用及体验,此项调试也十分重要。
③最后我们也会用有明显错误的数据资料对系统进行核查调试。在系统接收到错误的资料信息时,是否会返回一定的信息,而不是一味地不作回应。错误的资料对检验系统功能也是必不可少。
7.3 软件测试
软件测试对于系统开发而言是十分重要的一部分,它保证了系统的质量与可靠性。我们在进行软件测试时,最重要的目的是检查是否能够实现该系统的各项功能,是否能够满足消费者的各项需求。
软件测试是对整个系统开发过程的最终审查,若错误没被及时发现,则会给后续开发工作造成很严重的后果。
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
白盒测试,又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。
对于此系统,采取黑盒测试与白盒测试相联系,其中黑盒测试为主,我们将白盒测试则应用于主要的功能模块。
测试用例:
1.登录的测试用例
功能A描述 | 登录界面 | |
用例目的 | 测试管理员能否正常登录 | |
前提条件 | 操作系统正常运行,以及各硬件配置恰当 | |
输入/动作 | 期望的输出/相应 | 实际情况 |
输入:管理员ID:a, 密码:1 | 登录成功 | 与期望相吻合 |
输入:管理员ID:a, 密码:1111 | 密码错误 |
2用户查询的测试用例
功能B描述 | 查询界面 | |
用例目的 | 测试能否正常查询 | |
前提条件 | 操作系统正常运行,以及各硬件配置恰当 | |
查询/动作 | 期望的输出/相应 | 实际情况 |
查询:项目,项目名称:项目A,立项日期:20170511,负责人:许楠楠 | 查询成功 | 吻合 |
查询:项目,项目名称:项目B,立项日期:20170606,负责人:某人 | 查询成功 | 吻合 |
查询:项目,项目名称:项目C ,立项日期:20170606,负责人: | 负责人不显示 | 吻合 |
查询:项目,项目名称:项目D,立项日期: ,负责人:某某人 | 立项日期不显示 | 吻合 |
测试结果:
★可能会有部分的中文数据从数据库中取出后,出现一些乱码的现象。
★系统的参数时而会出现错误,无法再进行传递
★系统在遇到大量用户同时进行访问时,数据库的效率可能没有想象中那么高。会造成部分用户访问失败,影响用户的体验以及系统的运行效率。
主要的解决方法:
☆我使用一部分代码方法来解决乱码问题:
其次我会对各个模块的参数模式进行统一规划。
这个系统是以中小型为根本,在使用JDBC连接数据库时,这些因素会造成一些问
- 结束语
在项目设计和开发期间,经过老师的指导和三个多月的认真学习,同时翻阅了大量的资料,终于完成了项目管理系统的开发设计。其功能基本符合用户需求,能够完成课题的提交。我感觉自己从理论到实践都有了长足的进步和很大的提高,使我在数据库设计方面、JSP编程技术方面有了长足的进步,对项目管理系统开发过程、步骤有了比较深刻的认识。
通过项目设计,我还明白了一点,合作是至关重要的。虽然我是自己一个人为一组,但是在设计过程中也经常和同学们商量,相互借鉴。一个完整软件程序需要若干个人的通力合作。在项目管理系统开发过程中,我加强和同学们的沟通和交流,使得对每一个问题的解决获得较优的方案,从而保证项目管理系统的合理性、完整性,为该平台的进一步完善和扩充打下了良好的基础。
撰写项目报告期间,我深刻体会到,实践到理论的重要性。在实践到理论的转化中,我将自己的工作过程清晰的展现在面前,而且增强了自己查阅资料的能力,获得了一些必要的知识。
总之,在完成该系统的过程中学到很多在大学的教室学不到的东西,不仅仅是专业知识增加了学到了很多,也锻炼了我的意志,让我更坚强。
参考文献
[1] 张志豪.基于Java EE的里程碑科技项目管理系统的设计与实现[D].电子科技大学,2014.
[2] 康蒋伟,周爱玲,邱建林.高校科研项目管理系统的设计与实现[J].科技创新与应用,2016年36期
[3] 刘亚宾,精通Eclipse--JAVA技术大系,电子工业出版社,2005.
[4] 于万波,网站开发与应用案例教程,清华大学出版社,2009.
[5] 杨学瑜,高立军,软件开发过程与项目管理,电子工业出版社,2008.
[6] 张洁才,Java web应用开发教程,科学出版社,2005.
[7] 戴维尔,JavaScript程序员教程,电子工业出版社,2010.
[8] 黎连业、王华、李淑春,软件测试与测试技术,清华大学出版社,2009.
[9] 黄梯云著.管理信息系统.北京.电子工业出版社.2006 .
[10].James D. McCaffrey等著.NET软件测试自动化之道[M]. 北京.电子工业出版社.2007.
[11].甘仞初著.信息系统开发.北京.经济科学出版社.2007.
[12].马赫著. Dreamweaver MX 2004 网页设计经典108例.中国青年出版社.2005.
[13].唐友国 湛洪波著.JSP网站开发详解.电子工业出版社2008年10月.
[14].卫红春等著.信息系统分析与设计[M].北京.清华大学出版社.2009.
[15].张大方 李玮等著.软件测试技术与管理[M].湖南.湖南大学出版社,2007.
[16]. (美) H.M.Deitel,P.Jdeitel著.Java程序设计教程(第五版). 清华大学出版社.2004.
[17]. (美) Elliotte Rusty Harold著.Java Network Programming.东南大学出版社 .2005.
[18] 孙卫琴等著.精通struts:基于MVC的Java Web设计与开发. 电子工业出版社.2005.
[19] 张文静 林琪著.JSP程序设计.人民邮电出版社.2005.
[20] 孙卫琴 李洪成著.Tomcat与Java Web开发技术详解. 电子工业出版社.2005.
[21](美)John J.Patrick著.SQL基础(第二版).清华大学出版社.2004.
[22](美)David flanagan著.Java技术手册(第五版).东南大学出版社.2006.
[23]黄裴、徐汀荣,电子商务原理与技术(第二版),科学出版社,2006年10月
附录:外文翻译:
1.英文原文
Application Specification of J2EE
This text analysis the mechanism of Hibernate and Struts, put forward 1 kind EE according to the J2 of the Hibernate and the Struts application development strategy.In this kind of strategy, the model layer use a Hibernate realization and see diagram and controller to then use a Struts frame a realization.So can consumedly lower the development efficiency that the Ou of code match sex and exaltation system. The key word Hibernate, Struts, the MVC, hold out for long time a layer one preface along with the Java technique of gradual mature and perfect, Be establishment business enterprise class application of standard terrace, the J2EE terrace got substantial of development.Several technique asked for help from to include in the J2 EE norm:Enterprise JavaBean(EJB), Java Servlets(Servlet), Java Server Pages(JSP), Java Message Service(JMS).etc., development many application system.But, also appeared some problem in the tradition J2 the EE the application of the development the process: the antinomy of of data model and logic model.Currently the database of usage basically and all is relation type database, but the Java be essentially a kind of the language which face to object, object at saving with read usage SQL and JDBC carry on a database operation and lowered plait distance of efficiency and system of can maintenance; tradition of J2 EE application much the adoption is according to the EJB heavy weight frame, this kind of frame suitable for develop a large business enterprise application, but usage the EJB container carry on development and adjust to try to need to be waste a great deal of time.For lowering the Out of code to match sex, exaltation system of development efficiency, this text put forward 1 kind EE according to the J2EE of the Struts frame and the Hibernate frame application development strategy.
2 Open Source Technology of J2EE
Datas' holding out for long time layer and Hibernate is one piece according to hold out for long time layer frame, is a kind of realization object and relation of the tool which reflect to shoot(O/R Mapping), it carried on the object of the lightweight to pack to the JDBC and make procedure member can usage object plait distance thought to operation database.It not only provided to shoot from Java to reflect of data form, but also provided a data a search and instauration mechanism.Opposite in usage JDBC and SQL to operation database, use a Hibernate ability consumedly of exaltation realization of efficiency.The Hibernate frame use allocation document of the form come to the reflect of the definition Java object and data form to shoot relation, in the meantime at more deep of level of data form of relation explanation for the relations such as inherit of and containment etc. of Java object.Pass the usage HQL language sentence complications of relation the calculate way use the way of object description, to a large extent simplification logarithms according to of search, speed development of efficiency.Have in the Hibernate a simple but keep the API of view, used for to the database mean of object performance search.Want to establish or the modification be these objects, need in the procedure carry on with them to hand over with each other, then tell Hibernate to keep.So, a great deal of pack hold out for long time turn operation of business logic no longer demand write a trivial JDBC language sentence, make data last long thus the layer got biggest of simplification.
Use the Struts realization MVC structure MVC(Model-View-Controller) is put forward by the Trygve Reenskaug, first drive application in the environment SmallTalk-80, is many to hand over with each other with interface system of constitute foundation.According to the need of variable of the interface design, MVC hand over with each other constitute of system to resolve into model and see diagram, controller three part. Model(Model) is software processing problem logic at independence in outside manifestation under contents and form circumstance of inside abstract, packed the core data, logic of problem and function of calculation relation, independence in concrete of interface expression and I/O operation.See diagram(View) mean information and particular form demonstration of model data and logic relation and appearance to the customer.It acquire a manifestation information from the model, there can be many for homology of information dissimilarity of manifestation form or see diagram.The controller(Controller) is a processing the customer hand over with software with each other operation of, its job is control provide model in any variety of dissemination, insure a customer interface among the model of rightness should contact;It accept a customer of importation, give° the importation feedback model, then realization compute model control, is make model and see diagram to moderate work of parts.Usually 1 see a diagram rightness should a controller.Model, see separate of diagram and controller, make a model be able to have many manifestation to see diagram.If the customer pass a certain see the controller of diagram change the data of model, all other dependence in these see of data diagram all should reflection arrive these variety.When therefore and regardless occurrence what data variety, controller all would variety notice allly see diagram, cause manifestation of renewal.This is actually a kind of variety of model-dissemination mechanism.
The Struts frame is to be the item of Apache Jakarta to constitute part to publish luck to do at the earliest stage, it inheritted MVC of each item characteristic, and did according to the characteristics of J2 EE correspond of variety with expand.The Struts frame was good to combine Jsp, Java Servlet, Java Bean, Taglib etc. technique.In the Struts, what to undertake the controller role in the MVC be an ActionServlet.The ActionServlet is an in general use control module.This control module provided a processing all HTTP claim which send out Struts of entrance point.Its interception with distribute these claim to arrive correspond of action type.(these action all of type is Action son type)Moreover the control module is also responsible for using to correspond of claim the parameter fill Action Form(FromBean), and pass action type(ActionBean).Action type the business logic of the interview core, then interview Java Bean or adjust to use EJB.End action type control the power pass follow-up of JSP document, from JSP document born see diagram.All these control logic make use of Struts-config.xml the document come to allocation.See diagram in the Struts frame main from JSP born page completion, the Struts provide abundant of JSP label database, this is advantageous to separating performance logic and procedure logic.The model is with 1 or the form existence of several Java Bean.In the Struts, main existence three kinds of Bean, respectively BE:Action, ActionForm, EJB perhaps Java Bean. The Struts frame have no concrete definition model layer of realization, in actually the development, model layer usually is close with business logic connect with each other, and want to carry on operation to the first floor data.The underneath's introduction is a kind of development strategy, lead the Hibernate into the model layer of Struts frame, usage it to carry on a data to pack with reflect to shoot, provide hold out for long time turn of support. 4 usage Hibernate and the Struts development J2 EE application 4.1 system structure diagram 3 manifestation according to Hibernate and Struts development strategy of system structure diagram.
Development practice underneath combine a development practice, with in the J2 the EE the application very widespread customer register process for example, elucidation above-mentioned system structure is how concrete usage.The process of register is very clear:Customer from register page login.jsp importation register information, system to register the information carry on verification, if exactitude success register, otherwise hint correspond mistake information. In the development process, the usage Eclipse be used as development environment and added to carry to provide to the Struts and the Hibernate in the meantime better control and support of three square plug-in MyEclipse, Web server usage Tomcat, the database chose to use Mysql. Carry on an allocation to the Hibernate first, need to the system auto the born hibernate.cfg.xml carry on modification, allocation good database conjunction of various parameter and definition the data reflect to shoot a document.Because the Hibernate take of conjunction pond main used for test, the function isn't very good, can pass JNDI will it modification is usage Tomcat of conjunction pond.
2.中文翻译
1. 引言
本文分析了Hibernate和Struts的机制,提出了一种基于Hibernate和Struts的J2EE应用开发策略。在这种策略中,模型层用Hibernate实现,视图和控制器则用Struts框架实现。这样可大大降低代码的耦合性以及提高系统的开发效率。 关键字 Hibernate,Struts,MVC,持久层。
随着Java技术的逐渐成熟与完善,作为建立企业级应用的标准平台,J2EE平台得到了长足的发展。借助于J2EE规范中包含的多项技术:EnterpriseJavaBean(EJB)、Java Servlets(Servlet)、Java Server Pages(JSP)、Java Message Service(JMS)等,开发出了许多应用系统。但是,在传统J2EE应用的开发过程中也出现了一些问题:1)数据模型和逻辑模型之间的矛盾。目前使用的数据库基本上都是关系型数据库,而Java本质上是一种面向对象的语言,对象在存储和读取时使用SQL和JDBC进行数据库操作,降低了编程的效率以及系统的可维护性;2)传统的J2EE应用多采用基于EJB的重量级框架,这种框架适合于开发大型企业应用,但是使用EJB容器进行开发和调试需要耗费大量时间。为了降低代码的耦合性,提高系统的开发效率,本文提出了一种基于Struts框架和Hibernate框架的J2EE应用开发策略。
2. J2EE开源技术介绍
数据持久层及Hibernate,Hibernate是一个数据持久层框架,是一种实现对象和关系之间映射(O/R Mapping)的工具,它对JDBC进行了轻量级的对象封装,使程序员可以使用对象编程思想来操作数据库。它不仅提供了从Java类到数据表的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来操作数据库,使用Hibernate能大大的提高实现的效率。Hibernate框架用配置文件的形式来定义Java对象和数据表之间的映射关系,同时在更深的层面将数据表之间的关系解释为Java对象之间的继承及包含等关系。通过使用HQL语句将复杂的关系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快了开发的效率。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要创建或修改这些对象,只需在程序中与它们进行交互,然后告诉Hibernate保存即可。这样,大量封装持久化操作的业务逻辑不再需要编写烦琐的JDBC语句,从而使数据持久层得到了极大的简化。
用Struts实现MVC架构 MVC(Model-View-Controller)由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础。根据界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制器三部分。 模型(Model)是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,独立于具体的界面表达和I/O操作。视图(View)把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。控制器(Controller)是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图对应一个控制器。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。
Struts框架最早是作为Apache Jakarta项目的组成部分问世运做,它继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts框架很好的结合了Jsp,Java Servlet,Java Bean,Taglib等技术。在Struts中,承担MVC中控制器角色的是ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和 分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充Action Form(FromBean),并传给动作类(ActionBean)。动作类访问核心商业逻辑,即访问Java Bean或调用EJB。最后动作类把控制权传给后续的JSP文件,由JSP文件生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。在Struts框架中,视图主要由JSP生成页面完成,Struts提供丰富的JSP标签库,这有利于分开表现逻辑和程序逻辑。模型以一个或多个Java Bean的形式存在。在Struts中,主要存在三种Bean,分别是:Action,ActionForm,EJB或者Java Bean。 Struts框架没有具体定义模型层的实现,在实际开发中,模型层通常是和业务逻辑紧密相连的,并且要对底层数据进行操作。下面介绍一种开发策略,将Hibernate引入到Struts框架的模型层中,使用它来进行数据封装和映射,提供持久化的支持。
下面结合开发实践,以在J2EE应用中非常普遍的用户登录过程为例,来说明上述体系结构是如何具体运用的。登录的流程非常清晰:用户从登录页面login.jsp输入登录信息,系统对登录信息进行验证,如果正确则成功登录,否则提示相应错误信息。 在开发过程中,使用Eclipse做为开发环境,同时加载了对Struts及Hibernate提供更好的控制和支持的第三方插件MyEclipse,Web服务器使用Tomcat,数据库选用了Mysql。 首先对Hibernate进行配置,只需要对系统自动生成的hibernate.cfg.xml进行修改,配置好数据库连接的各种参数以及定义数据映射文件。由于Hibernate所带的连接池主要用于测试,性能不是很好,可以通过JNDI将其修改为使用Tomcat的连接池。
参考资料:
基于jsp的项目管理平台系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)https://download.csdn.net/download/dwf1354046363/87813628Java毕业设计174例,包含部署视频_易小侠的博客-CSDN博客https://cv2022.blog.csdn.net/article/details/124463185?spm=1001.2014.3001.5502