同学录网站1_第1页
同学录网站1_第2页
同学录网站1_第3页
同学录网站1_第4页
同学录网站1_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

摘要同学录网站是一种能够联络同学之间感情的网站,它能让在千里之外的同学间彼此互相联系,互相交流,因此我制作的同学录就能够实现这种功能。我制作的同学录主要是用来让同学们能在上面相互联络,能够共同想起彼此之间的友谊,还能够想起大学时代的生活。我们制作的同学录通过STRUTSHIBERNATEMYSQLAPACHETOMCAT服务器来进行研究和开发的,制作的目的主要是用来能够进行同学的登录、注册,还能实现留言、发表评论,对我们的网站提出宝贵的意见。总之我们制作的同学录网站最终目的是为了能让同学们能够相互交流,彼此联络一下感情,从而更加加深了同学间的友谊。在这次制作中能使我们充分利用MYECLIPSE来制作一个好的网站,也使我们对JSP语言和MYSQL数据库掌握的更深,更透彻。关键词网络用户数据库HIBERNATESTRUTSABSTRACTTHESCHOOLMATERECORDWEBSITEPROVIDESAROOMFORSCHOOLMATETOCOMMUNICATEHERETHESCHOOLMATESCANEXCHANGETHEIROPINIONNEVERHEISNEARORFARAWAYTHEGREATDISTANCEBETWEENSCHOOLMATESWILLBECLOSERHERETHEREFORETHESCHOOLMATERECORDSIMADECANREALIZETHISKINDOFFUNCTIONIMANUFACTURETHESCHOOLMATERECORDSMAINLYISUSESFORTOENABLETHESCHOOLMATESMUTUALLYTOCONTACTINABOVE,CANREMEMBERBETWEENEACHOTHERTOGETHERTHEFRIENDSHIP,BUTALSOCANREMEMBERTHEUNIVERSITYTIMETHELIFEWEMANUFACTURETHESCHOOLMATERECORDSTHROUGHMANUFACTURESTHREESWORDSMENUSINGTHEHOMEPAGE,THEJSPLANGUAGE,THEMYSQLDATABASE,PHOTOSHOPCONDUCTSTHERESEARCHANDTHEDEVELOPMENT,THEMANUFACTUREGOALMAINLYISUSESFORTOBEABLETOCARRYONTHESCHOOLMATETOREGISTER,THEREGISTRATIONANDSCHOOLMATEPICTUREONPASSESON,BUTALSOCANREALIZETHEMESSAGE,MAKETHECOMMENTARY,GIVESTHEPRECIOUSCOMMENTTOOURWEBSITEALSOCANINTHEWEBSITE,SOLONGASTHEONLINESCHOOLMATESALLMAYMUTUALLYTRANSMITTHEMAILINBRIEFWEMANUFACTURETHESCHOOLMATERECORDSTHEWEBSITEFINALGOALISFORCANLETTHESCHOOLMATESBEABLEMUTUALLYTOEXCHANGE,EACHOTHERCONTACTSTHESENTIMENT,THUSEVENMOREDEEPENEDFRIENDSHIPBETWEENSCHOOLMATESCANCAUSEUSINTHISMANUFACTUREFULLYUSINGTHEHOMEPAGEMANUFACTURE,THEJSPLANGUAGE,THEMYSQLDATABASETOMANUFACTUREAGOODWEBSITE,ALSOCAUSESUSGRASPSDEEPLYTOTHEASPLANGUAGEANDTHEMYSQLDATABASE,ISTHOROUGHKEYWORDSNETWORKUSERDATABASEHIBERNATESTRUTS目录摘要1ABSTRACT2第1章绪论6第2章可行性研究721功能需求722可行性研究7221技术可行性7222操作可行性723结论8第3章相关知识和开发工具简介831JAVA8311JAVA概述8312JAVA的特点832ECLIPSE简介933MYECLIPSE934APACHETOMCAT服务器1035JSP技术概述10第4章需求分析1441业务流程分析14411文字描述14412业务流程图1442功能模型分析(DFD)1543数据模型分析17431同学录系统总ER图17第5章总体设计1851开发思想18511B/S结构开发思想19512系统工程的流程思想19513面向对象机制的设计思想20514代码分层思想2052系统的用例图2153系统实体间的关系2254根据系统总体ER图(图49)实体关系图(图54、55)设计数据库表23541管理员实体表24542权限实体表24543管理员权限对应表25544普通用户实体表26545网络实体如图41128546用户网络表29547网络管理员网络表29548网络信息实体表如图41130549用户好友表315410用户小纸条实体表315411工作信息表如图4153255总体功能模块图33第6章详细设计3761管理员模块37611管理员管理37612网络用户管理38613个人信息管理4062好友管理模块40622好友的添加43623好友的删除4663用户小纸条模块48631传小纸条48第7章软件测试5171什么是软件测试5172软件测试的规则5173软件测试的对象51附录一英文资料原文54附录二英文资料译文65第1章绪论随着社会的发展,科技的进步,人与人之间的联系越来越多样化,关系越来越复杂。这种复杂的关系是社会发展的必然结果,社会里的每个人都不可能离开别人,独自生存。整个人类圈就形成了一个“大网络”。本系统中的“网络”指各种人的集合。系统中由一个抽象的网络NETWORK派生出两种网络原子网络SIMPLEXNETWORK,复合网络MULTINETWORK。原子网络是一种网络,该网络中只能包含人,不能包含其他的任何网络。例如班级、公司等群组。复合网络是一种网络,它可以包含多个原子网络、多个复合网络、多个人。例如地域、大学、学院、高中等。每种网络都有一个属性“所在网络”,清楚的体现各个网络之间的包含与被包含关系。网络和用户形成一个树装结构,每个网络和每个用户都是“大树“上的一个节点。怎样使我们与别人之间的联系更轻松愉快呢近年的计算机技术快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系方式,使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式,已经不能满足现代生活的需要。同学录作为一种方便校友之间联系的实用系统便应运而生。本同学录系统是为班级同学之间进行交流和联系提供的一个平台,通过提供完善的同学录服务和规范同学录的管理,可以达到增进校友之间、校友与母校之间的感情,方便校友联系的目的。第2章可行性研究21功能需求(1)用户通过注册哇哇人同学录登录系统,对自己的个人信息进行修改(2)用户可以查看到自己的好友,并且进行与好友相关的操作(3)群组功能(4)论坛、用户小纸条、其他小功能22可行性研究可行性研究分为技术可行性研究、操作可行性研究、经济可行性研究,而本设计用于毕业设计,暂不考虑经济可行性。221技术可行性哇哇人同学录,可以基于WEB平台,采用JAVA语言,数据量小,只需采用小型数据库MYSQL。实现过程中可以用HIBERNATE等连接数据库,并可以使用建立专门的实体类与数据库的相应表进行映射,通过对实体类的业务实现来控制数据库的表,从而实现了数据库的增加、删除、插入等操作,功能实现不复杂。已经学习过数据库、软件工程等相关课程,而语言基本思想大致是一样的,JAVA掌握起来应该没有问题。再者,网上信息特别丰富,可以上网查找有关资料,在技术方面有指导老师可以进行指导,还可以上网查询相关资料。哇哇人同学录实现的理论及技术已经日趋成熟。因此,在技术方面实现本系统是不存在问题的。222操作可行性本人力哇哇人同学录的开发环境为LINUX,投入WINDOWS环境中使用,开发语言为JAVAECLIPSEMYECLIPSE插件,后台数据库用MYSQL来实现,系统采用B/S模式,用户只需了解WINDOWS基本操作就可以很好地使用本系统。因此,在操作的可行性上不存在任何问题。23结论由技术可行性、操作可行性的研究,可以得出结论,人力资源管理系统的开发是完全可行的。第3章相关知识和开发工具简介31JAVA311JAVA概述1991年,SUNMICROSYSTEM公司的JAMEGOSLING、BILLJOE等人,为在电视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为OAK的软件即一种橡树的名字,但当时并没有引起人们的注意,直到1994年下半年,INTERNET的迅猛发展,环球信息网WWW的快速增长,促进了JAVA语言研制的进展,使得它逐渐成为INTERNET上受欢迎的开发与编程语言,一些著名的计算机公司纷纷购买了JAVA语言的使用权,如MICROSOFT、IBM、NETSCAPE、NOVELL、APPLE、DEC、SGI等,因此,JAVA语言被美国的著名杂志PCMAGAZINE评为1995年十大优秀科技产品,计算机类就此一项入选,随之大量出现了用JAVA编写的软件产品,受到工业界的重视与好评,认为“JAVA是八十年代以来计算机界的一件大事“,微软总裁比尔盖茨在悄悄地观察了一段时间后,不无感慨地说“JAVA是长时间以来最卓越的程序设计语言“,并确定微软整个软件开发的战略从PC单机时代向着以网络为中心的计算时代转移,而购买JAVA则是他的重大战略决策的实施部署。因此,JAVA的诞生必将对整个计算机产业发生深远的影响,对传统的计算模型提出了新的挑战。SUNMICROSYSTEM公司的总裁SCOTTMCNEALY认为JAVA为INTERNET和WWW开辟了一个崭新的时代。环球信息网WWW的创始人BERNERSLEE说“计算机事业发展的下一个浪潮就是JAVA,并且将很快会发生的“。312JAVA的特点JAVA是一个广泛使用的网络编程语言,它是一种新的计算概念。首先,作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其次,它最大限度地利用了网络,JAVA的小应用程序APPLET可在网络上传输而不受CPU和环境的限制。另外,JAVA还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。JAVA语言有面一些特点简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。1简单性JAVA语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。JAVA略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外,JAVA也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,加上标准类库和线程的支持也只有215KB左右。库和线程的支持也只有215KB左右。2面向对象JAVA语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。3分布性JAVA是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其它对象。4鲁棒性JAVA在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制,在编译时,JAVA提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,JAVA在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。5安全性用于网络、分布环境下的JAVA必须要防止病毒的入侵。JAVA不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊“木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。32ECLIPSE简介ECLIPSE是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,ECLIPSE附带了一个标准的插件集,包括JAVA开发工具(JAVADEVELOPMENTTOOLS,JDT)。ECLIPSE还包括插件开发环境(PLUGINDEVELOPMENTENVIRONMENT,PDE),这个组件主要针对希望扩展ECLIPSE的软件开发人员,因为它允许他们构建与ECLIPSE环境无缝集成的工具。33MYECLIPSEMYECLIPSE企业级工作平台(MYECLIPSEENTERPRISEWORKBENCH,简称MYECLIPSE)是对ECLIPSEIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,STRUTS,JSF,CSS,JAVASCRIPT,SQL,HIBERNATE。在结构上,MYECLIPSE的特征可以被分为7类1J2EE模型2WEB开发工具3EJB开发工具4应用程序服务器的连接器5J2EE项目部署服务6数据库服务7MYECLIPSE整合帮助对于以上每一种功能上的类别,在ECLIPSE中都有相应的功能部件,并通过一系列的插件来实现它们。MYECLIPSE结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MYECLIPSE是ECLIPSE的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。34APACHETOMCAT服务器TOMCAT是APACHE软件基金会(APACHESOFTWAREFOUNDATION)的JAKARTA项目中的一个核心项目,由APACHE、SUN和其他一些公司及个人共同开发而成。由于有了SUN的参与和支持,最新的SERVLET和JSP规范总是能在TOMCAT中得到体现,TOMCAT5支持最新的SERVLET24和JSP20规范。因为TOMCAT技术先进、性能稳定,而且免费,因而深受JAVA爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的WEB应用服务器。TOMCAT很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。TOMCAT是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好APACHE服务器,可利用它响应对HTML页面的访问请求。实际上TOMCAT部分是APACHE服务器的扩展,但它是独立运行的,所以当你运行TOMCAT时,它实际上作为一个与APACHE独立的进程单独运行的。这里的诀窍是,当配置正确时,APACHE为HTML页面服务,而TOMCAT实际上运行JSP页面和SERVLET。另外,TOMCAT和IIS、APACHE等WEB服务器一样,具有处理HTML页面的功能,另外它还是一个SERVLET和JSP容器,独立的SERVLET容器是TOMCAT的默认模式。不过,TOMCAT处理静态HTML的能力不如APACHE服务器。35JSP技术概述JSPJAVASERVERPAGES是由SUNMICROSYSTEMS公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件HTM,HTML中插入JAVA程序段SCRIPTLET和JSP标记TAG,从而形成JSP文件JSP。用JSP开发的WEB应用是跨平台的,即能在LINUX下运行,也能在其他操作系统上运行。JSP技术使用JAVA编程语言编写类XML的TAGS和SCRIPTLETS,来封装产生动态网页的处理逻辑。网页还能通过TAGS和SCRIPTLETS访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于WEB的应用程序的开发变得迅速和容易。WEB服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的JAVA程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与JAVASERVLET一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP的10规范的最后版本是1999年9月推出的,12月又推出了11规范。目前较新的是JSP12规范,JSP20规范的征求意见稿也已出台。JSP页面由HTML代码和嵌入其中的JAVA代码所组成。服务器在页面被客户端请求以后对这些JAVA代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JAVASERVLET是JSP的技术基础,而且大型的WEB应用程序的开发需要JAVASERVLET和JSP配合才能完成。JSP具备了JAVA技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。36STRUTS技术STRUTS最早是作为APACHEJAKARTA项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高JAVASERVERPAGES、SERVLET、标签库以及面向对象的技术水准。STRUTS跟TOMCAT、TURBINE等诸多APACHE项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。MVC即MODELVIEWCONTROLLER的缩写,是一种常用的设计模式。MVC减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。STRUTS是MVC的一种实现,它将SERVLET和JSP标记(属于J2EE规范)用作实现的一部分。STRUTS继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。STRUTS框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的WEB应用程序的开发。37HIBERNATE技术HIBERNATE是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得JAVA程序员可以随心所欲的使用对象编程思维来操纵数据库。HIBERNATE可以应用在任何使用JDBC的场合,既可以在JAVA的客户端程序使用,也可以在SERVLET/JSP的WEB应用中使用,最具革命意义的是,HIBERNATE可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。HIBERNATE的核心接口一共有5个,分别为SESSION、SESSIONFACTORY、TRANSACTION、QUERY和CONFIGURATION。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五的核心接口分别加以介绍。SESSION接口SESSION接口负责执行被持久化对象的CRUD操作CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。但需要注意的是SESSION对象是非线程安全的。同时,HIBERNATE的SESSION不同于JSP应用中的HTTPSESSION。这里当使用SESSION这个术语时,其实指的是HIBERNATE中的SESSION,而以后会将HTTPSESION对象称为用户SESSION。SESSIONFACTORY接口SESSIONFACTROY接口负责初始化HIBERNATE。它充当数据存储源的代理,并负责创建SESSION对象。这里用到了工厂模式。需要注意的是SESSIONFACTORY并不是轻量级的,因为一般情况下,一个项目通常只需要一个SESSIONFACTORY就够,当需要操作多个数据库时,可以为每个数据库指定一个SESSIONFACTORY。CONFIGURATION接口CONFIGURATION接口负责配置并启动HIBERNATE,创建SESSIONFACTORY对象。在HIBERNATE的启动的过程中,CONFIGURATION类的实例首先定位映射文档位置、读取配置,然后创建SESSIONFACTORY对象。TRANSACTION接口TRANSACTION接口负责事务相关的操作。它是可选的,可发人员也可以设计编写自己的底层事务处理代码。QUERY和CRITERIA接口QUERY和CRITERIA接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。38MVC的架构思想MVCMODELVIEWCONTROL模型视图控制器MVC与模板概念的理解MVC本来是存在于DESKTOP程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。模型视图控制器(MVC)是XEROXPARC在八十年代为编程语言SMALLTALK80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为SUN公司J2EE平台的设计模式,并且受到越来越多的使用COLDFUSION和PHP的开发者的欢迎。模型视图控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。MVC如何工作MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件模型、视图、控制器。它们各自处理自己的任务。视图视图是用户看到并与之交互的界面。对老式的WEB应用程序来说,视图就是由HTML元素组成的界面,在新式的WEB应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括MACROMEDIAFLASH和象XHTML,XML/XSL,WML等一些标识语言和WEBSERVICES如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。模型模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBS和COLDFUSIONCOMPONENTS这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。控制器控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击WEB页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。为什么要使用MVC大部分WEB应用程序都是用像ASP,PHP,或者CFML这样的过程化语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是无庸质疑的。首先,最重要的一点是多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序。对此,其中一个解决之道是使用MVC,无论你的用户想要FLASH界面或是WAP界面;用一个模型就能处理它们。由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。例如,很多数据可能用HTML来表示,但是它们也有可能要用MACROMEDIAFLASH和WAP来表示。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被FLASH网站或者无线联网的应用程序所重用。因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。如果你想把你的数据库从MYSQL移植到ORACLE,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可。一旦你正确的实现了模型,不管你的数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松偶合的构件。对我来说,控制器的也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。开发方式JAVA开发WEBAPPLICATION有几种符合MVC设计模式的开发方式。1JSPSERVLETJAVABEANEJB2JSPJAVABEANCONTROLLERJAVABEANEJBMODEL3TDKTURBINE,VELOCITY4XSP5JSPSTRUTSJAVABEANEJB第4章需求分析41业务流程分析411文字描述本系统的主要业务流程注册新用户,修改用户信息,删除用户信息;并对其进行管理;在线查找所有好友,在线查找群,加入群组,论坛,在线聊天,还有其他小功能等等。412业务流程图用户注册用户登录用户用户信息修改用户个人管理用户群组管理网站论坛管理在线聊天其他小功能用户好友管理图4142功能模型分析(DFD)绘制数据流图的基本要求系统的顶层图使用来表示整个系统的功能结构。随着需求分析活动的逐渐深入,较高抽象级别上的复杂转换可以精化为一系列的相互关联的数据流和子转换。数据流图描述系统的逻辑模型,在设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体的实现这些,该系统的数据流程图可确定如下哇哇人同学录管理员管理事务管理事务回应图42数据流图顶层图系统一层图如图43所示管理员1人员管理个人信息3系统设置管理员及系统信息2网络管理网络信息系统二层图如图44至图48所示管理员11人员查看12人员删除13人员统计人员信息图44数据流图二层图处理2员工管理细化如图45管理员21网络查看22网络修改23网络统计网络信息图45数据流图二层图43数据模型分析概念结构的主要特点能真实的、充分的反映现实世界,包括事物和事物之间的联系,能够满足用户对数据的处理要求。是对现实世界的一个真实模型。易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户积极参与是数据库设计成功的关键。易于更改,当应用环境和应用要求改变时,容易对概念模型进行修改和扩充。易于向关系、层次、网状等各种数据模型转化。描述概念的有力工具是ER图,下面将对本系统的数据库进行概念设计,并画出ER图。图例实体关系属性431同学录系统总ER图根据系统需求及ER模型的基本属性,可以分析出同学录系统的实体联系模型(ER模型)。如图49所示N1N1NYYREN_NETWORKMESSAGEYYREN_WORKEXPERIENCEM1YYREN_SNYYREN_FRIENDSYYREN_USER对应2对应3对应1NM拥有拥有NYYREN_MANAGERNET对应NMN图49系统总ER图YYREN_NETWORK第5章总体设计51开发思想经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候。总体设计的基本目的就是回答“从总体上说,系统应该如何实现”这个问题,因此,总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后进行详细的设计。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。总体设计是软件设计阶段的第一步,在软件开发时期中,设计阶段是最富有活力,最需要发挥创造精神的阶段。在本阶段,主要就是得用面向对象分析方法把分析阶段产生的软件需求说明转换为用适当手段表示的软件概要设计文档,从而得出本模块的具体实现方案与总体结构以及各组成部分之间的关系。511B/S结构开发思想B/S(BROWSER/SERVER)结构即浏览器和服务器结构。它是随着INTERNET技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(BROWSER)实现,但是主要事务逻辑在服务器端(SERVER)实现,形成所谓三层(3TIER)结构。一个三层架构的应用程序由三部分组成,这三部分各自分布在网络中的不同地方。这三个部分分别是工作站或表示层接口、事务逻辑、数据库以及与其相关的程序设计。在一个典型的三层架构应用程序中,应用程序的用户工作站包括提供图形用户界面(GUI)的程序设计和具体的应用程序入口表格或交互式窗口。事务逻辑处在局域网(LAN)服务器或其他共享主机上,它作为响应工作站所发出客户请求的服务器,而相对于处于大型机的第三层它是作为客户端,并且决定需要什么数据以及数据存储在哪里。第三层包括数据库以及处理读写以及访问数据库的程序。然而应用程序的设计可能比这个架构要复杂,对于大型程序来说,这个三层模式是一种比较简便的考虑方法。这种应用程序的设计使用客户/服务器模式,各层可以同时开发,并且可以由不同的成员组用不同的语言来开发。因为各个层次的开发不会影响其他层次,所以这种模型对于进一步开发软件是很方便的。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过INTERNET/INTRANET模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,INTERNET/INTRANET等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。512系统工程的流程思想我们在系统开发过程中,采用软件工程的开发管理,在开发的过程中也遵循软件工程的思想,软件工程的主要环节有人员管理(自己模拟)、项目管理(我的小组模拟)、可行性与需求分析、系统设计、程序设计、测试、维护等,如图11所示。图51513面向对象机制的设计思想所有计算机均由两种元素组成代码和数据。精确的说,有些程序是围绕着“什么正在发生“而编写,有些则是围绕“谁正在受影响“而编写的。第一种编程方式叫做“面向过程的模型“,按这种模型编写的程序以一系列的线性步骤代码为特征,可被理解为作用于数据的代码。如C等过程化语言。第二种编程方式叫做“面向对象的模型“,按这种模型编写的程序围绕着程序的数据对象和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问通过把控制权转移到数据上,面向对象的模型在组织方式上有抽象、封装、继承和多态的好处。514代码分层思想由于采用B/S设计模式分层思想,同时根据软件工程的管理思想及系统分析的设计与分析的思想进行系统的开发,利用JAVA语言开发WEB应用程序,提供STRINGHIBERNATESPRING框架对系统的程序代码结构进行分层。分层的策略如下SERVICELOCATOR表示层STRUTSSTRUTSACTION,ACTIONFORM,JSP,STRUTSCONFIGXML,ETCDAOCLASSES业务层JAVABEANHIBERNATESESSIONMANAGEMENT持久层HIBERNATEDATASOURCETRANSACTIONSBUSINESSSERVICECLASSESQUERYLANGUAGESUPPORTANDOTHERHIBERNATESERVICESDOMAINMODELBUSINESSOBJECTSSTRUTSJAVABEANHIBERNATE架构图5252系统的用例图图53系统总体用例图数据库53系统实体间的关系图54实体继承关系图图55实体关联关系图54根据系统总体ER图(图49)实体关系图(图54、55)设计数据库表541管理员实体表图56建表语句CREATETABLEYYREN_ADMINPEOPLE_IDNUMBER16PRIMARYKEY,REGISTERNAMEVARCHAR220NOTNULL,EMAILCARCHAR220NOTNULLUNIQUE,PASSWORDVARCHAR220NOTNULL以上SQL创建管理员表YYREN_ADMIN,存放管理员信息542权限实体表YYREN_ADMINREGISTERNAMEPEOPLE_IDEMAILPASSWORDYYREN_ADMINMODULE_ID图57建表语句CREATETABLEE_MODULEMODULE_IDNUMBER10PRIMARYKEY,MODULE_NAMEVARCHAR220以上SQL语句用于建立权限表543管理员权限对应表图58建表语句CREATETABLEYYREN_ADM_RIGHTSADM_IDNUMBER16,MOD_IDNUMBER10,PRIMARYKEYADM_ID,MOD_ID,FOREIGNKEYADM_IDREFERENCESYYREN_ADMINPEOPLE_ID,FOREIGNKEYMOD_IDREFERENCESE_MODULEMODULE_ID以上SQL语句用于建立管理员与其权限的对应关系,用管理员的主键和权限的主键所该表的联合主键,体现管理员和权限的多对多关系MODULE_NAMEYYREN_ADM_RIGHTSADM_IDMOD_ID544普通用户实体表REGISTERNAMEEMAILPASSWORDSTAGENAMEGENDERHEADBIRTHDAYPROVINCECITYQQMSNMOBILNUMBERHOMENUMBERYYREN_USERNETSITEHOBBYMUSICMOVIEGAMECARTOONSPORTUNMESSAGE_IDBOOKPEOPLE_IDPRMESSAGE_IDCLUBJUMESSAGE_IDSSMESSAGE_ID图59建表语句CREATETABLEYYREN_USERPEOPLE_IDNUMBER16PRIMARYKEY,REGISTERNAMEVARCHAR220NOTNULL,EMAILVARCHAR220NOTNULLUNIQUE,PASSWORDVARCHAR220NOTNULL,STAGEVARCHAR220NOTNULL,NAMEVARCHAR220,GENDERVARCHAR210,HEADVARCHAR220,BIRTHDAYDATE,PROVINCEVARCHAR220,CITYVARCHAR220,QQVARCHAR220,MSNVARCHAR220,MOBILENUMBERVARCHAR220,HOMENUMBERVARCHAR220,NETSITEVARCHAR220,HOBBYVARCHAR2255,MUSICVARCHAR2255,GAMEVARCHAR2255,CARTOONVARCHAR2255,SPORTVARCHAR2255,BOOKVARCHAR2255,CLUBVARCHAR2255,UNMESSAGE_IDNUMBER16,SSMESSAGE_IDNUMBER16,JUMESSAGE_IDNUMBER16,PRMESSAGE_IDNUMBER16,FOREIGNKEYADM_IDREFERENCESYYREN_NETWORKMESSAGENW_ID,FOREIGNKEYSSMESSAGE_IDREFERENCESYYREN_NETWORKMESSAGENW_ID,FOREIGNKEYUMESSAGE_IDREFERENCESYYREN_NETWORKMESSAGENW_ID,FOREIGNKEYPRMESSAGE_IDREFERENCESYYREN_NETWORKMESSAGENW_ID以上SQL语句用于建立普通用户实体,记录了所有用户的信息,其中的UNMESSAGE_IDSSMESSAGE_ID,JUMESSAGE_ID,PRMESSAGE_ID为外键,体现用户与各种网络信息的多对一关系545网络实体如图411图510相应的建表语句CREATETABLEYYREN_NETWORKNETWORKIDNUMBER16PRIMARYKEY,NET_TYPEVARCHAR25NOTNULL,NAMEVARCHAR220NOTNULL,CREATEDATEDATE,INTRODUCTIONVARCHAR2255,KEYWORDSVARCHAR220,PCATEGORYVARCHAR220,CATEGORYVARCHAR220,JOINDIRECTNUMBER1,LIULANQUANXIANNUMBER10,ADDRESSVARCHAR2255,COMPANYEMAILVARCHAR250,CREATOR_IDNUMBER16,INMNETWORK_IDNUMBER16,FOREIGNKEYCREATOR_IDREFERENCESYYREN_USERPEOPLE_ID,FOREIGNKEYINMNETWORK_IDREFERENCESYYREN_NETWORKNETWORKID,以上SQL语句用于建立网络实体,通过类型标识字段NET_TYPE可以存储所有由抽象类派生出的所有网络的信息,CREATOR_ID为创建该网络的用户ID,引用了YYREN_USER中的主键作为外YYREN_NETWORKKEYWORDSPCATEGORYNET_TYPECOMPANYEMAILNAMECREATEDATEINTRODUCTIONJOINDIRECTLIULANQUANXIANADDRESSCLASSSITEJOINSCHOOLDATENETWORKIDCATEGORYINNETWORKID键,体现一个用户可以创建多个网络的用户与其创建的网络的一对多关。INMNETWORK_ID为该网络所在网络的ID,表明一个网络中可能会有多个网络。546用户网络表图511建表语句CREATETABLEYYREN_USERNETNETWORK_IDNUMBER16,USER_IDNUMBER16,PRIMARYKEYNETWORK_ID,USER_ID,FOREIGNKEYNETWORK_IDREFERENCESYYREN_NETWORKNETWORKID,FOREIGNKEYUSER_IDREFERENCESYYREN_USERPEOPLE_ID以上SQL语句用于建立用户与网络的对应关系,一个人可以加入到多个网络中,一个网络中有多个用户,典型的多对对关系。用网络的主键和用户的主键作为该表的联合主键。547网络管理员网络表图512建表语句CREATETABLEYYREN_MANAGERNETNETWORK_IDNUMBER16,MANAGER_IDNUMBER16,PRIMARYKEYNETWORK_ID,MANAGER_ID,YYREN_USERNETNETWORK_IDUSER_IDYYREN_MANAGERNETNETWORK_IDMANAGER_IDFOREIGNKEYNETWORK_IDREFERENCESYYREN_NETWORKNETWORKID,FOREIGNKEYMANAGER_IDREFERENCESYYREN_USERPEOPLE_ID以上SQL语句用于建立网络管理员与网络的对应关系,一个人可以管理多个网络,一个网络由多个用户管理,一样的多对对关系。用网络的主键和用户的主键作为该表的联合主键。548网络信息实体表如图411图513网络实体ER图相应的建表语句CREATETABLEYYREN_NETWORKMESSAGENWIDNUMBER16PRIMARYKEY,TYPEVARCHAR25NOTNULL,JOINDATEVARCHAR220,STUDENTTYPEVARCHAR220,COLLEGEVARCHAR220,HOSTELVARCHAR220,GRADEONEVARCHAR220,GRADETWOVARCHAR220,GRADETHREENUMBER20,以上SQL语句用于建立网络信息实体,通过类型标识字段TYPE可以存储所有由抽象类NETWORKMESSAGE派生出的所有网络信息的信息。YYREN_NETWORKMESSAGEHOSTELCOLLEGETYPEGRADEONENAMEJOINDATESTUDENTYPENWIDGRADETHREEGRADETWO549用户好友表图514建表语句CREATETABLEYYREN_FRIENDSFRIEND1NUMBER16,FRIEND2NUMBER16,PRIMARYKEYFRIEND1,FRIEND2,FOREIGNKEYFRIEND1REFERENCESYYREN_USERPEOPLE_ID,FOREIGNKEYFRIEND2REFERENCESYYREN_USERPEOPLE_ID以上SQL语句用于建立用户的好友列表,一个人有可以有多个好友,一个好友他自己又有多个好友,以两个用户的ID作为该表的联合主键,多对对的关系。5410用户小纸条实体表YYREN_FRIENDSFRIEND1FRIEND2YYREN_SNSTAGESIGNSENDTIMEMESSAGESIDF_IDS_ID图515小纸条实体ER图相应的建表语句CREATETABLEYYREN_SNSIDNUMBER16PRIMARYKEY,SIGNNUMBER1,STAGENUMBER1,SENDTIMEDATENOTNULL,MESSAGEVARCHAR2255,S_IDNUMBER16,F_IDNUMBER16,FOREIGNKEYS_IDREFERENCESYYREN_USERPEOPLE_ID,FOREIGNKEYF_IDREFERENCESYYREN_USERPE

温馨提示

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

评论

0/150

提交评论