本科毕业设计---基于javaweb的邮件管理系统的设计与实现.doc
毕业设计诚信声明书 毕 业 设 计中文题目基于Java web的邮件管理系统的设计与实现英文题目Based on Java web email management system design and implementation2014 年 11 月 26 日毕业设计诚信声明书本人郑重声明:在毕业设计工作中严格遵守学校有关规定,恪守学术规范;我所提交的毕业设计是本人在郑晓东指导教师的指导下独立研究、撰写的成果,设计中所引用他人的文字、研究成果,均已在设计中加以说明;在本人的毕业设计中未剽窃、抄袭他人的学术观点、思想和成果,未篡改实验数据。本设计和资料若有不实之处,本人愿承担一切相关责任。学生签名: 年 月 日 摘要基于Java web的邮件管理系统的设计与实现【摘要】电子邮件(E-mail)是Internet上使用广泛的服务其中之一,传统的Email应用模式基于C/S结构,用户以使用客户端的邮件收发工具(如Outlook、Fox mail等)与提供邮件服务的服务器(如、)进行通信,用户需要进行一些必要的设置在使用客户端邮件工具之前,例如,需要对邮件服务器的主机地址和通信端口等的指定,这些工作对刚开始上网的用户会有一定的困难,如果把E-mail和Web结合在一起,通过Web编程和适当的系统设置,那么用户仅仅以访问Web的方式就可以得到和使用完整的邮件服务,这样使用户上网更加方便,这种系统称为Web Mail。Web Mail是目前Internet上最受欢迎的服务之一,也是很多网站必备功能之一,另外Web Mail同样也适用于企业或校园网的应用。 此邮箱系统功能主要分为管理员管理和用户管理两个部分,管理员管理主要包括管理用户信息、删除用户、管理后台系统等;用户管理主要包括用户个人信息的管理、个人邮箱的管理等。该系统可以根据需求对功能进行扩展和完善。【关键词】电子邮件,邮件服务,Web编程,Web Mail,JavaIIABSTRACTDesign and implementation of the tourism website 【Abstract】 The E-mail is one of the most popular services on Internet, traditional E-mail application mode is based on C/S structure, users use the mail of the customer end to receive and dispatch tools (Such as Outlook, Fox mail ,etc. ) and server (such as 163 net , 263 net , 371 net ) communication offering mail service, before using the mail tool of customer end, user want , carry on some essential establishment, such as appoint mail host computer address and communication port ,etc. of server, these work , have sure difficulties to users surfing the Net at the very beginning , if combine E-mail and Web together, i.e. set up through Web programming and appropriate system , use the family to get and use the intact mail service in a manner to visit Web only , will so facilitate the Internet user greatly, this kind of system will be called Web Mail. Web Mail is one of the most popular services on Internet at present, is one of the indispensable functions of a lot of websites too. In addition Web Mail is suitable for the application of enterprises or campus network too. This mailbox system function is divided into primarily the managing person manages to manage with the customer two big part, managing person the management includes to manage the customer information, delete the customer and manage the backstage system etc. primarily; The customer management includes management etc. of the management, personal mailbox of the personal information in customer primarily. 【Keyword】The E-mail, Mail service, Web Programming, Web Mail, java目录 目 录引言1第一章绪 论21.1课题背景21.2研究内容21.3软件的开发方法31.4系统开发环境的选取4第二章相关技术62.1目录结构62.2通用模块62.2.1数据库连接池72.2.2数据库封装72.3配置站点与数据库连接72.4主要工具详细介绍82.4.1JSP介绍82.4.2与传统的CGI方式相比,JSP的优点82.4.3技术特点92.4.4MVC模式设计思想介绍102.4.5关于Tomcat的安装和注意事项11第三章 功能规划及现状143.1功能规划的主体143.2关键技术14第四章 系统分析154.1系统的可行性分析154.2系统逻辑方案的提出164.2.1用例图的分析164.2.2系统管理员功能174.2.3用户功能17第五章 系统设计195.1系统流程图195.1.1管理员的系统流程图195.1.2用户的系统流程图195.2系统模块的功能图205.3实体之间的关系E-R图215.4数据库结构设计225.4.1创建数据表235.4.2系统信息配置表235.4.3日志表245.4.4用户表245.4.5friend好友表255.4.6邮件信息记录表255.5数据库的E-R图26第六章 程序设计与实现276.1管理员登录模块设计与实现276.2管理员用户管理模块设计与实现286.3管理员系统设置模块设计与实现306.4用户注册模块设计与实现316.5用户登录模块设计与实现326.6用户撰写发送邮件模块设计与实现336.7用户收件箱管理模块设计与实现356.8用户修改个人资料管理模块设计与实现366.9服务器端的系统活动图设计36结束语39第七章 致 谢40第八章 参考文献1IV引言 引言本文就基于Java web的邮件管理系统的设计与实现进行研究。邮件管理系统是一个基于用户关系的邮件收发,邮件管理和用户管理系统。该系统利用Java语言和MyEclipse编辑工具对系统进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,邮件管理系统实现的功能有:用户登录、用户注册、邮件的接收,发送,删除,对用户信息的增加,删除和修改,用户可以对邮箱信息进行管理。适用于所有的邮箱使用者,为用提供了一个良好的邮件管理途径。本系统采用MVC模式设计,实现了一个简单的邮件管理系统。MVC模式极大地提高了系统的复用性、灵活性、适应性、开发效率和可维护性,充分发挥了JSP、Servlet等J2EE组件的特点。此邮件管理系统主要是实现邮件的简单发送,它有很多的优势,例如并不要求发送者和接受者同时存在,任何人在任何地点都可以发送邮件,接收者可以随时接收邮件,它并不会受到时间和地点的限制。而且用户可以对收到的邮件进行阅读,保存,删除等操作,方便了用户对邮件信息进行的管理。此次设计实现了简单邮件管理系统的设计与开发,本系统实现邮件的基本功能有,实现用户登入模块:用户登录后才能进行邮件收发操作。实现邮件收发:用户可收取和发送邮件实现邮件的阅读,删除功能。实现用户管理功能:对用户进行添加,删除和修改信息。1第二章 相关技术第一章 绪 论1.1 课题背景电子邮件是介于书信、电话和传真之间的电子信息传送方式。随着互联网的进一步发展,电子邮件已经成为人们联系沟通的重要途径。电子邮件系统已经发展成为了一个相当复杂而且功能更为丰富的系统,它可以传送文档、图像、声音、图片、图像等多媒体信息,甚至于数据库或帐目报告等更加专业化的文件都可以以电子邮件的形式在网上分发。随着信息技术的发展以及电子邮件系统功能的日益强大,它的应用领域已得到较大的提升。网络的普及使得邮件管理系统得以广泛的应用。采用开放的Web邮件服务不仅为用户省去了维护与升级客户端软件的麻烦,并且也能够充分发挥系统软硬件资源的作用。Web邮件服务的另一个优势是允许用户,甚至是持有移动设备的用户,可以随时、随地的访问系统并进行信息传递1。1.2 研究内容随着新技术的不断涌现,电子邮件产品越来越多,而且也越来越丰富。在邮件服务器端有FTPMail服务器、Microsoft Exchange 服务器、Qmail服务器等等。这些服务器都有相应的操作系统支持,而且有的又有很好的跨平台性,像Send mail服务器它在Linux、Unix、都可用。在邮件系统客户端,其中Microsoft Outlook、Netscape Mail、Fox mail是当今电子邮件客户端软件的主流产品;另外,随着网络的普及,基于Web的应用模式的发展与应用,例如sina、263以及众多的企业都已推出了自己的Web邮件系统2。本课题将研究如何使用PHP、POP3、STMP、IMAP等技术实现B/S邮件服务器。利用JSP等实现其功能,功能主要有邮件的收发、存储、删除等等。1.3 软件的开发方法面向对象的方法经由系统分析、设计和试验等几个阶段,并需要遵从软件生命周期的规律。软件的生命周期指一个软件从它的开发到其消亡的过程3。以下就是利用生命周期法开发软件在各个阶段的具体内容:(1)问题定义及其可行性论证:明确软件开发的请求,并进行初步的调查,通过可行性研究确定下一阶段的实施。可行性分析的任务就是确定项目开发的可行性和必要性。也就是说,对所提出的问题进行分析,来决定所提出的问题是否“可行”。可行性是指,首先要在技术上可行,现有技术能否解决所提出的问题;其次是在经济上可行,用户能否支付实施项目所需要的费用,项目建成后能否取得预期的经济效益;最后进行操作上和法律上的可行性研究。综合这些方面,最终决定是否实施该项目。(2)用户需求分析阶段:在这个阶段中,就是了解用户的需求,准确的确定用户需要的功能,明确为了实现这些功能,需要做哪些处理,需要处理哪些数据;需要存储什么数据文件;得到什么信息。并且需要找出为了实现功能所需要的约束条件,例如,成本约束和时间约束。另一个重要任务是要规定系统的生效准则,规定在目标系统建成后验收目标系统的一些原则以及具体的验收方法等。具体工作主要是详细调查,其具体的调查内容有分析当前各大网站上的邮箱的功能和实现方法,了解使用者在使用过程中存在的问题以及希望使用到的功能。(3)系统设计阶段:此阶段的任务是在系统分析的基础上,按照逻辑模型的要求,合理地进行系统的总体设计和具体的物理设计,为下一阶段的系统实施提供必要的技术资料。具体分为:详细设计阶段和概要设计阶段。详细设计阶段:在这个阶段中的任务是进行系统所需要的数据结构设计和数据库的物理设计。输入输出设计、编写程序模块设计说明书。概要设计阶段:这个阶段中的主要任务是得到一个能够实现用户需求的理想的系统结构。所谓理想的结构指的是:能够实现需求阶段中规定的功能;系统容易设计和实现;系统易于维护。设计内容包括划分子系统、设计规范制定、数据流程图设计、功能结构图设计、系统物理配置方案设计。系统设计工作结束后,要提交系统设计报告。若系统设计被审查批准,整个系统开发工作便进入系统实施阶段4。(4)系统实施阶段:这是软件系统的实现阶段,要进行模块编码和模块测试。模块测试又称为单元测试。模块编码要严格按详细设计阶段开发的模块逻辑进行。模块程序设计完成之后,应经过严格的测试。程序测试应该采用科学的方法。主要是黑盒法和白盒法进行测试,从而尽可能多地发现模块中错误,并加以改正。把经过彻底测试的模块组装起来形成需要的应用系统。再进行集成测试,采用的是黑盒测试方法,集成的方法可采用自顶向下集成或自底向上集成,或者二者结合的方法。(5)维护阶段:主要包括改正性维护、适应性维护和完善性维护:改正性维护指的是修改程序中所遗漏的错误,确保用户程序能正常运行;完善性维护指的是增加了程序的功能,来满足用户的进一步需求;适应性维护指的是在用户改变硬件或软件支持环境时候,满足程序的需求来修改工作。维护阶段是一个非常重要的阶段,维护工作的好坏直接影响到用户的满意程度。1.4 系统开发环境的选取(1)硬件环境:Cpu :P4 内存:512M具备 Internet 上网条件。(2)软件环境:操作系统:Win7 Professional JbuilderX、Mysql、JDKI.4.2、 DREAMWEAVER 、操作系统启用TCP/IP。(3)简介JbuilderBorland JBuilder是全球第一的跨平台Java开发环境,可建构符合业界标准的Java应用系统,开发EJB、Web、XML以及数据库等各类应用程序。经由JBuider双向的、可视化的设计工具,您可以快速开发各种J2EE应用程序,并将其部署到多种应用程序服务器上,包括BEA WebLogic、IBM WebSphere、Sun、One、Oracle9i Application Server以及集成于JBuilder的Borland Enterprise Server。(4)简介MY SQLMY SQL数据库,它的缺点是,缺乏一个全功能数据库的大多数主要特征,但是它又有比类似Xbase记录存储引擎更多的特征。它像企业级RDBMS那样需要一个积极的服务者守护程序,但是不能象他们那样消费资源。其中MY SQL数据库的查询语言允许复杂的连接(join)查询,但它要求所有的参考完整必须有强制保证。 MYSQL在Linux世界里找到一个位置提供简洁和速度,同时仍然提供足够的功能。它具备的查询功能和广泛的客户库被数据程序员广泛运用,数据库管理员会觉得系统缺乏主要数据库功能,他们会发觉它对简单数据库是有价值的5。12第二章 相关技术系统环境的搭建,最基础的就是从目录的建立开始,建立系统的基础应用模块和站点配置环境,并进行数据库的正常连接。22.1 目录结构在程序设计和开发之前要设计系统的目录结构,一般这个结构对任何得B/S系统都是通用的,本系统的目录结构如图2-1所示。 图2-1 目录结构此目录结构中,mail代表本站的根目录,它包含四个子目录:database的功能是用于存放数据库备份文件,docs用于存放系统的文档,jsp和WEB-IN用于存放系统的JSP等的源文件和系统所使用的类包。jsp的根目录下是一些jsp的源文件,下面所包含四个子目录:face用于存放用户自定义的头像,INC用于存放一些公用的jsp页面,js用于存放脚本文件,pic用于存放图片文件。WEB-INF包含两个子目录:classes用于存放类文件,lib用于存放类包文件,同时该目录下还包括站点的配置文件web.xml。2.2 通用模块该系统采用数据库连接池对数据库进行的统一管理,同时在数据库操作上进行了封装,使得程序开发始于数据库的交互更加方便。2.2.1 数据库连接池在实现某一个功能时,首先要连接数据库。如果在每一次需要进行数据库操作前都来加载驱动、创建连接,那么在连接的入口参数处理上便不好管理以及维护。一旦系统移植,数据库参数改变,将需要重新修改所有的连接代码,重新编译。首先在文件db.properties配置数据库连接参数,这些参数包括数据库的驱动、连接通信、用户名、密码。这样,在数据库移植或系统环境改变时,只需修改这一个地方就可以了,十分方便。drivers=com.microsoft.jdbc.Mysql.MysqlDriverlogfile=C:log.txtmysql.url=jdbc:microsoft:Mysql:/Neu029:1433;DatabaseName=bbsmysql.maxconn=1000mysql.user=mailmysql.password=mail此系统采用了类DBConnectionManager来统一管理数据库的连接。具体代码参见DBConnectionManager.java文件。2.2.2 数据库封装数据库已经连接,在每一次需要进行数据库的某种操作时,调用JDBC的函数就可以了,但是直接调用JDBC函数将使代码的编写工作十分浪费,该系统封装了数据库操作的类DBConnect,具体代码参见DBConnect.java。该类封装了数据库操作的基本函数,用于作为JavaBean的父类,便于统一管理。该类的一个重要作用是从连接池里取得一个连接,在使用结束时关闭连接。统一处理了很多额外的工作和异常的抛出。2.3 配置站点与数据库连接(1)安装JDK1.4.0下载JDK1.4.0版本安装程序,连续单击“下一步”按钮,安装过程中均采用默认选择,直至安装结束。安装结束后,在桌面“我的电脑”图表上右击,在谈出的快捷菜单中选择“属性”命令,弹出“系统特性”对话框,在“高级”选项卡中单击“环境变量”按钮,在弹出的对话框中新建环境变量JAVA_HOME,值为C:j2sdk1.4.0。(2)安装Tomcat 5.0连续单击“下一步”按钮,直至安装结束,在选择安装路径时推荐安装在根目录,如:C:Tomcat 5.0。 设置环境变量:在“我的电脑”属性中设置环境变两位TOMCAT_HOME=C:Tomcat。 建立站点:将整个文件目录mail复制到Tomcat 5.0下的webapps文件夹下。(3)访问系统启动Mysql,Tomcat,输入地址:http:/localhost:8080/mail/jsp/login.jsp即可访问,用户admin,密码初始化为test。至此,软件环境安装完成。2.4 主要工具详细介绍2.4.1 JSP介绍JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,其网址为 *.html)中加入Java程序片断(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送Email等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。JSP提供了一种简单快速的建立基于动态内容显示的站点的技术。在JSP文件中可以包含HTML标记、JSP语法、Servlet标记和NCSA标记,使得HTML的编码从Web页面的业务逻辑中有效地分离出来6。122.12.22.32.42.4.12.4.2 与传统的CGI方式相比,JSP的优点(1)后台的实现是基于Java Component 的逻辑,它具有跨平台的特点。(2)将应用逻辑与页面表现分离,最大程度服用应用逻辑能够,从而提高开发效率。(3)运行比CGI方式高,尤其是对于数据库访问,提供了连接池缓冲机制,使运行所需资源最小。(4)安全,由于后台是完全基于Java技术的,安全性由Java的安全机制予以保障。(5)由于与ASP很相似,不需要太多的编程知识就可以动手编写JSP。(6)内置支持XML,使用XML从而使页面具有更强的表现力和减少编程工作量。2.4.3 技术特点(1)将内容的生成和显示进行分离。使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编程和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性7。(2)强调可重用的组件。绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技术和优化结果的开发努力中得到平衡。(3)采用标识简化页面开发。Web页面开发人员不会都是很熟悉脚本语言的程序员。JavaServer Page 技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成 需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标准库,JSP技术好似可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,你可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。2.4.4 MVC模式设计思想介绍MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。 视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据 保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中8。 控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图2-2所示:如图2-2 MVC组件类型的关系和功能2.4.5 关于Tomcat的安装和注意事项(1)通过安装JBulider9来安装Tomcat 直接安装JBulider9,安装过程中会给出JVM(Java虚拟机)的安装路径,一般为JBulider9jdk1.4。再安装Tomcat,安装过程中会询问系统中已有JVM的安装路径,安装程序将会自动定位JVM的位置。l 最好重新启动一遍计算机。m 不必配置诸如Classpath、path、Java Home等系统环境变量。n 正常启动Tomcat即可。(2)直接安装Tomcat 安装JDK1.4,安装完毕后,按程序要求重新启动计算机。 安装Tomcat,安装过程中会询问系统中已有JVM的安装路径,安装程序将会自动定位JVM的位置。l 需要将JDK1.4安装路径下的lib文件夹中的tools.jar文件拷贝到TomCat5.0commonlib文件下,并且只有在Tomcat关闭条件下,更新才有效。m重新启动计算机。n 不必配置诸如Class path、path、Java Home等系统环境变量。o 正常启动Tomcat即可。(3)注意事项 Tomcat对文件名(包括路径和后缀)的大小写是敏感的。 Tomcat的默认网站根路径为TomCat5.0WebappsRootl 在编写jsp文件时,应特别注意其文件命名(包括存放路径)时最好不要大小写混用,应统一为小写,养成良好编程习惯。(4)如何获得Tomcat的错误提示信息Tomcat运行时,会在任务栏右下角中出现类似MSMYSQL的图标,双击即可得到错误提示信息列表窗口。第三章 功能规划及现状第三章 功能规划及现状33.1 功能规划的主体凡事预则立,不预则废。科学的规划对于任何需要经过较长时间努力才能实现的事情都是非常重要的。规划,一般是指对较长时期的活动进行总体的、全面的计划。做好计划是非常重要的环节。比如说邮件的开发系统,它是一个功能很多的系统,我就必须做好规划。主要在进入邮箱后功能方面规划,有收邮件、发邮件、写邮件、通讯录、回邮件、草稿箱、垃圾箱和转发;在登陆邮箱界面上还有注册、注册用户列表、管理员登陆和退出邮箱等几个功能。还有其它一些基本的小功能都实现在各个主要功能的内部,比如说对于邮件箱内的邮件的删除等一些功能,这些都必须在开发前做好规划。总之,软件开发中,往往缺乏科学的、有效的系统规划。一定要尽量避免这些缺点。3.2 关键技术随着互联网的普及,国内外的互联网用户数呈指数增长。为满足不断增长的信息交流需要,作为因特网第一应用的电子邮件系统变得越来越重要。随着网络环境的建设与完善,许多用户已经提出这样的要求:拥有自己的Web邮件系统。国外的电子邮件系统可真叫四通八达,这种手段已经成为他们通信最流行的几种方式之一了。相比较国内,电子邮件系统还不算太完善,电子邮件通信的方式还不算太流行,如何才能把这种方式大众化、流行化呢?这还需要我们去认识它、了解它、使用它。国外已经有了许许多多的电子邮件系统,国内也有一些这样的系统,我觉得这些还不够充实这个庞大的流行团体,所以我自己要开发一个简单的属于我自己的电子邮件系统,来满足我及其他用户的需要。14第四章 系统分析第四章 系统分析44.1 系统的可行性分析可行性研究是以相对短的时间和相对低的成本来确定给定的问题是否有解。这里相对短和相对低是指和实现建议系统所需时间和成本相比较而言。可行性研究主要从下述4个方面进行研究:技术可行性、经济可行性、操作可行性和调度可行性。(1)技术可行性:技术可行性的考虑集中在现存的计算机硬件能否支持被研究的系统,首先关心的是该组织是否有相应的软件和硬件能够支持处理建议的应用程序。其次考虑在规定平台之上,利用现有的成熟技术是否能够实现这个应用。现代计算机硬、软件技术的飞速发展,为系统建设提供了技术条件。计算机等基础设施的更新换代也紧跟潮流的发展,这就为开发系统提供了坚实基础。(2)经济可行性:这是经典的并且是最常使用的评价计算机系统的方法。这个评价的结果称为成本效益分析。简单地说,经济可行性研究是确定得自新系统的节省和利益,将这些利益和系统的实现成本相比较,如果利益超过成本,则开发新系统的决策是肯定的;否则的话,除非有其他特殊原因,这个决策将是否定的。本软件的实现是作为考核学生学习情况的手段,不存在经济可行性的问题。(3)操作可行性:是指人员的手工操作而不是指计算机系统操作是否可行,也就是说在实现了建议的计算机系统后,所需要的配合的手工操作是否可行。作为新时代的学生,几乎人人都具备计算机的基本操作能力,而本软件的使用又十分简单方便,所以具备操作可行性。(4)调度可行性:指的是建议的计算机系统能否在规定的期限内交付给用户。基于本软件,经过上述的分析,可以在规定的期限内完成9。从当前情况来看,本软件的开发是可行的。4.2 系统逻辑方案的提出在问题定义阶段对建议的功能、规模和约束条件等已经作了规定。在可行性研究阶段通过和使用者的交流,对用户的需求有了初步的了解。因此在这个阶段中,设计者应该进一步澄清问题定义中的模糊部分,更正错误部分。通过这个活动,清楚地描述系统的主要功能10。4.2.1 用例图的分析(1)用例的内容:用例图使我们对系统的功能有了一个整体的认知,我们可以知道有哪些参与者会与系统发生交互,每一个参与者需要系统为它提供什么样的服务。(2)用例的优点:用例方法完全是站在用户的角度上(从系统的外部)来描述系统的功能的。在用例方法中,我们把被定义系统看作是一个黑箱,我们并不关心系统内部是如何完成它所提供的功能的。用例方法首先描述了被定义系统有哪些外部使用者(抽象成为Actor),这些使用者与被定义系统发生交互;针对每一参与者,用例方法又描述了系统为这些参与者提供了什么样的服务(抽象成为Use Case),或者说系统是如何被这些参与者使用的。所以从用例图中,我们可以得到对于被定义系统的一个总体印象11。 与传统的功能分解方式相比,用例方法完全是从外部来定义系统的功能,它把需求与设计完全分离开来。在面向对象的分析设计方法中,用例模型主要用于表述系统的功能性需求,系统的设计主要由对象模型来记录表述。另外,用例定义了系统功能的使用环境与上下文,每一个用例描述的是一个完整的系统服务。(3)确定本系统功能的用户用例图,如图4.1。 新用户登陆本系统:注册用户; 已经注册的用户:直接输入用户名和密码登陆系统;l 登陆成功:进入邮箱,其中具有收发邮件、写邮件、删除邮件等功能;m 操作系统完成:可以退出本系统。(4)确定本系统功能的管理员用例图,如图4.2。返回管理员登陆界面; 管理用户信息;l 安排系统设置; 退出管理员系统。4.2.2 系统管理员功能(1)管理员登录:系统初始化好系统管理员,管理员能够通过该入口进入后台进行管理操作。(2)管理员管理注册用户:管理员可以对系统的注册用户进行管理,查询系统中的注册用户,直接添加用户,对于违规用户可以删除,以及查看某注册用户的详细注册信息和列为好友。(3)管理员系统设置:系统一般有一些初始化信息,比如系统名称、系统的URL、主业名称、主页的URL、系统管理员E-mail、系统Logo通信、有新邮件提示等,管理员可以在后台界面自行设置。(4)用户注册:网络用户均能够注册。注册的用户信息包括注册名、性别、密码、确认密码(以便保证用户两次输入的密码都一样)、电子邮件、QICQ号码等。其中注册名、性别、密码和电子邮件是必添项,并且用户名不能重复。