企业邮件管理系统的设计与实现_毕业设计.doc_第1页
企业邮件管理系统的设计与实现_毕业设计.doc_第2页
企业邮件管理系统的设计与实现_毕业设计.doc_第3页
企业邮件管理系统的设计与实现_毕业设计.doc_第4页
企业邮件管理系统的设计与实现_毕业设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要 随着互联网的迅速发展,E-mail 已经成为人与人之间沟通的桥梁, 越来越多的人开始选择通过网络进行即时沟通。为此,越来越多的网站开始提供发送E-mail的功能。 与此同时,E-mail 也以其快捷、无时空限制、低成本等优势受到众多企业的青睐,成为企业移动商务的主流应用方式。本系统以Swing+JavaDB实现的企业邮件系统,包括以下几个功能:用于管理客户和员工信息的名片夹管理功能;用于对常用短语及其类别进行管理的信息库管理功能;邮件群发功能;发送邮件附件的功能。本文主要介绍了系统的基本情况、系统分析、系统设计、数据库设计以及各个模块的设计与主要代码及其注释。关键词: 分层设计 企业邮件系统目 录一引言.1二.需求分析.1三.总体设计.3四.详细设计与实现.8五.系统测试.14六.结论.15参考文献.16I大连交通大学软件实践第一章 引 言在企业信息化的今天,效率决定成败,企业内、外部沟通的及时性将直接影响企业的运作效率。现在多数企业的办公自动化系统 的信息传递仅限于计算机内部网络,如果用户不在线,将无法知道是否有新的工作或紧急通知,为了确认是否有待办工作,不得不经常去访问OA,检索是否有新任务,而事实上这种检索的结果经常是徒劳。这样一来,不仅造成了机器资源的浪费,也造成了人力资源的浪费。因此急需一套成型的企业邮件系统解决上述问题。企业邮件系统属于小型的企业通信软件,由于该系统的作用是帮助企业解决企业内部、企业与外部沟通难、信息不能及时传播等问题,以提高工作效率。因此根据需求分析可知,在系统实施后,应达到以下目标:提供功能强大的信息库管理,方便用户进行信息的编写;在发送短信时,可以直接从现有信息库中获取信息内容;提供邮件群发功能,提高工作效率。由于系统的目标客户为企业全体工作人员,既包括懂计算机操作技术的人员,也包括对计算机操作不熟练的人员,从而不能保证企业的所有人员都能进行高技术的计算机操作。为此,系统界面设计应当友好、美观,操作必须灵活、方便。另外,应企业进行事务处理过程中正确性、安全性的要求,系统应具备如下功能:对用户输入的数据,进行严格的数据检验,尽可能地避免人为错误;数据存储安全、可靠。第二章 需求分析1.项目范围企业邮件的作用是帮助企业解决企业内部、企业与外部沟通难、信息不能及时传播等问题。为此,企业邮件系统需要提供有邮件群发功能。通过对多数企业日常业务的考察、分析,并结合短信及邮件自身的特点,本系统具有以下功能。名片夹管理功能:用于管理客户和员工信息的。信息库管理功能:用于对常用短语及其类别进行管理的。邮件群发功能:用于向多个用户群发邮件。发送邮件附件的功能:在发送邮件时,可以添加文件形式的附件。2.系统用例模型图2.1系统用例图3.设计上的限制数据库管理软件系统必须使用Java接口同关系型数据库管理软件建立连接。平台要求系统必须在CPU为P3以上,内存为512MB以上,操作系统为微软win2000以上或Linux(Unix)的服务器上顺利运行。Java的版本系统必须在Java1.3以上的版本上运行。 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库的设计通常是以一个已经存在的数据库管理系统为基础的。根据用户需求和业务流程,SQL Server 2000,它是一个完备的数据库和分析包,其功能可以从各个方面降低数据仓库建立和维护的难度和成本。我们认为使用SQL Server 2000作为后台数据库平台,可以在性能和成本方面获得比较好的折衷,所以在本项目的开发中决定使用JAVA DB。此次开发研究使用了JSP+Servlet+JavaBean开发一个基于MVC架构,MVC是一种设计模式,主要有三个主要组件:模型:负责业务逻辑的状态和管理数据;视图:负责显示业务领域的表示视图;控制器:负责控制用户输入的流程和状态。使用MVC模式时,通常会有某种形式的事件通知,当模型某部分有了变动时,可以通知视图控件。NetBeans是SUN公司重点开发的JAVA集成开发环境,使用JAVA编程语言编写,具有很好的可移植性,它集成了程序员开发桌面,WEB,企业级和移动应用所需要的一切软件资源,具有以下特性:(1) 全面支持构建NetBeans插件模块和基于NetBeans平台的富客户端应用程序。 (2) 全面支持SUN Application Server8.2及Tomcat 5x(3) 全面支持JAVA企业版应用程序消息服务(4) 增强了对JAVA Server Faces和Struts的支持(5) 提供了更强大的代码编译器(6) 加快了代码编译的速度(7) 重新实现了对CVS的支持(8) 改进的、用户界面友好的IDE外形(9) 继承了编写、测试以及调试JAVA ME程序的功能第三章 总体设计3.1 系统框架本系统有一个部分,5个完整的功能模块。分别是:名片夹管理、信息库管理、邮件群发、邮件参数设置、系统设置。 图3.1 功能结构图 邮件管理流程图是一种表明客户管理邮件的流程图,它可以帮助分析人员找出流程中的不合理回路。下面图3.2就是客户对邮件管理的流程图。邮件系统用户界面邮件管理退出系统系统进入处理邮件登录结束 图3.2 客户处理邮件流程图3.2数据库设计 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库的设计通常是以一个已经存在的数据库管理系统为基础的。通过对业务流程的分析,得到了系统的实体,以及实体之间关系,根据这些实体与关系之间的联系,得到了系统的E-R图,如图所示。 3.2.1档案实体E-R图 3.2.2常用短语实体E-R图 3.2.3类型实体E-R图3.2.4实体之间关系图数据流程顶层图即是数据流程零层图,是宏观的数据流程图。下面是网上宾馆订房的顶层图,如图3.3所示。管理员企业邮件管理系统客户图3.3 数据流顶层图E-R模型用实体间联系反映现实世界事物间的内在联系,而数据表的建立是应用程序开发过程中的非常重要的一个环节,必须清楚每一模块要操纵的数据是那些,以及数据间的相互关系,然后建立数据表。本系统数据库使用SQL Server 2000,包含以下3个表:档案表(personnel)、常用短语表(info)、类型表(type)。下面分别详细介绍以上各表:表3.1 档案表(personnel)序号字段名类型允许空主键外键1Numint否是2type_idint否是3Namevarchar(8)否4Sexchar(2)否5Birthdaydate否6Companyvarchar(50)否7Deptvarchar(40)否8Dutyvarchar(50)否9Handsetvarchar(15)否10Emailvarchar(30)否 表3.2 常用短语表(info)序号字段名类型是否空主键外键1numint否是2type_idint否是3namevarchar(500)否表3.3 类型表(type)序号字段名类型是否空主键外键1Idint否是2Namevarchar(20)否3Usedchar(4)否第四章 详细设计与实现详细设计阶段就是把解决方法具体化,设计出详细规格说明,包含必要的细节,程序员可以根据它们写出实际的程序代码,详细设计也称模块设计,在这个阶段将详细地设计每个模块,具体的实现功能。在详细设计过程中,具体的功能实现过程可以按照软件工程中的方法描述中的交互模型具体描述,力求完全符合客户的真实需求。该系统的设计基于以下几个原则:1.标准化;2.模块化;3.先进性;4.安全性;5.交互性。首先实现对数据库的连接,代码如下:String CLASSFORNAME=sun.jdbc.odbc.JdbcOdbcDriver;String CONNECSTR=jdbc:odbc:shop_db;Try Class.forName(CLASSFORNAME); This.con=DriverManager.getConnection(CONNECTSTR); catch(Exception e)e.printStackTrace(); 4.1主窗体模块实现1.功能群发E-mail功能在主窗体中完成。在“收信人列表”中显示的为所有接收信息的人员,需要从“名片夹”中添加;发送 E-mail,可以通过单击“添加附件”按钮添加附件。2.输入项目 图4.1主窗体界面 3.主要代码.ExpressLettersrccommwqframeTipWizardFrame.javafinal JToolBar toolBar = new JToolBar(); /创建工具栏对象toolBar.setBorder(new EtchedBorder(EtchedBorder.LOWERED); /设置工具栏的边框样式toolBar.setFloatable(false); /设置工具栏不可移动getContentPane().add(toolBar, BorderLayout.NORTH); /将工具栏添加到面板中final JButton userButton = new JButton(); /创建用户管理按钮userButton.addActionListener(new ActionListener() /添加事件监听器public void actionPerformed(ActionEvent e) /处理按钮事件UserManagerDialog dialog = new UserManagerDialog(); /创建用户管理对话框对象dialog.setVisible(true); /设置用户管理对话框可见);userButton.setMargin(new Insets(0, 0, 0, 0); /设置按钮的边框URL userUrl = this.getClass().getResource(/img/user.png); /获得按钮默认图片的路径userButton.setIcon(new ImageIcon(userUrl); /设置按钮的默认图片URL userOverUrl = this.getClass().getResource(/img/user_over.png); /获得按钮鼠标经过图片的路径userButton.setRolloverIcon(new ImageIcon(userOverUrl); /设置按钮的鼠标经过图片toolBar.add(userButton); /将按钮添加到工具栏4.2 添加名片或信息模块实现1.功能单击系统右下方的“添加” 按钮,将打开“添加名片”对话框,该对话框用来向名片夹中添加名片。2. 输出项目 图4.2添加界面 3.主要代码.ExpressLettersrccommwqdao BaseDao.javaprotected Vector selectSomeNote(String sql) VectorVector vector = new VectorVector(); /创建结果集向量Connection conn = JDBC.getConnection(); /获得数据库连接try Statement stmt = conn.createStatement(); /创建连接状态对象ResultSet rs = stmt.executeQuery(sql); /执行 SQL 语句获得查询结果int columnCount = rs.getMetaData().getColumnCount(); /获得查询数据表的列数int row = 1; /定义行序号while (rs.next() /遍历结果集Vector rowV = new Vector(); /创建行向量rowV.add(new Integer(row+); /添加行序号for (int column = 1; column = columnCount; column+) rowV.add(rs.getObject(column); /添加列值vector.add(rowV); /将行向量添加到结果集向量中rs.close(); /关闭结果集对象stmt.close(); /关闭连接状态对象 catch (SQLException e) e.printStackTrace();return vector; /返回结果集向量 4.3邮件参数设置模块实现1.功能单击“E-mail 设置”按钮,将打开“邮箱设置”对话框,该对话框用来设置发送E-mail 的接口信息2. 输出项目 图4.3邮件参数设置3.主要代码.ExpressLettersrccommwqframeInfoPanel.javaprivate class EmailSendButtonActionListenerimplements ActionListenerpublic void actionPerformed(ActionEvent e) String title = titleField.getText(); /获取邮件标题String content = emailTextArea.getText(); /获取邮件内容if (title.isEmpty() | content.isEmpty() /验证邮件标题和内容JOptionPane.showMessageDialog(InfoPanel.this, 请填写邮件标题和内容);return;int sendCount = sendListTable.getRowCount(); /获取邮件群发总数for (int i = 0; i sendCount; i+) /遍历发送列表Integer id = (Integer) sendListTable.getValueAt(i, 1); /获取用户 IDVector person = dao.sPersonnelByNum(id); /从数据库获取该 ID 用户String addressee = person.get(9).toString(); /获取用户的 E-mail 地址mailForm.setTitle(title); /初始化 mailForm 实例mailForm.setContent(content);if (mailForm.getAddressee() = null| mailForm.getAddressee().isEmpty()mailForm.setAddressee(addressee);elsemailForm.setAddressee(mailForm.getAddressee() + ,+ addressee);int res = mailDao.sendMail(mailForm); /发送邮件String message = null;if (res = 1) /判断发送结果message += E-mail群体发送成功;elsemessage += E-mail发送失败;JOptionPane.showMessageDialog(InfoPanel.this, message); /提示发送结果mailForm = new SendMailForm(); /初始化 mailForm 对象第五章 系统测试软件系统编程完成后,最重要的任务就是对软件进行系统测试。所谓系统测试就是对软件各个模块,各组功能进行数据分析,以确定软件系统的运行效率和执行结果的正确性。当完成项目的软件代码编写阶段,即可进入软件测试阶段。软件测试阶段一般分为单元调试与测试和系统联试与测试两个阶段。测试的目的就是在软件运行之前尽可能多的发现程序中的错误。这是保证软件质量的关键步骤。由于在编写代码过程中不可避免的会出现错误,因此在软件投入运行之前,必须纠正其中大部分差错,以免将来会造成很恶劣的后果。整个系统的测试要求测试人员有较高的计算机水平,是一个非常复杂而重要的过程。经过测试后的软件就可交付用户使用了,进入软件的运行和维护阶段。本系统采用黑盒(BLACK BOX)测试法,亦即不论测试部件的实现如何,只对该部件的输入输出结果进行测试的一种测试方法。在测试时,按则各个模块的相应信息输入测试数据,运行程序,查看输出的结果和系统的状态是否正确。经过测试发现,由于系统是对数据库直接操作,在查找功能上的速度不够理想,顺序的查找是需要在数据库中从第一条记录向后一条一条的查询记录,直到找到记录,或是查询到数据库记录空为止。这样,浪费了大量的时间。在数据量较小的情况下运行速度还可以,但数据量大的时候就会减慢运行速度。这时系统的主要不足之处。本系统的测试就是依照上述方法进行的,经过多次的检测与改正过程,认为系统已经达到了预期要求,能正确处理各种业务,并对非法输入可进行容错处理。下面给出一些系统测试的性能评价:系统的可操作性:较好;系统的操作界面,采用视窗模式,与现在的Windows操作系统相配合,使操作者直接面对系统的界面。 系统运行速度: 一般;由于系统占用资源较多,必然引起系统的运行速度大大降低,这是该系统的不足之一。系统安全性: 较好(进入需管理员密码);在登陆系统的时候,会要求操作者输入使用密码,做到了一定的限制,使系统有一个相对独立使用的操作团体,不是所有的人多可以使用的。系统容错性: 较好(能够识别非法数据,有一定的纠错能力)。在输入数字不符合输入要求时,系统会提示输入的有问题。但不足的是,这只是体现在一小部分功能当中,还没有做到数据的完全纠错。进行测试的过程中,在对该系统进行测试的过程中,重点对该子系统的错误处理功能进行了检验,主要进行了系统模块出错的处理测试,在测试时使用了比较合理的测试用例,不仅仅是对键盘的操作进行测试,对一些链接,查看也进行了测试,也通过测试寻找到一些问题,对这些问题做出了及时有效的改正。测试的结果还是令人乐观和满意的。第六章结 论运用MVC架构,结合普通电子商务网站的用户查询与订房及管理部分,详细的介绍了如何是用JSP、Servlet与Javabean开发一个具有MVC架构的购物网站。通过该项目可以看到使用JSP、Servlet与Javabean开发的具有MVC框架的项目具有易维护、易修改、模块之间的耦合性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论